@opensite/ui 2.8.0 → 2.8.2

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 (719) hide show
  1. package/dist/about-culture-tabs.cjs +25 -21
  2. package/dist/about-culture-tabs.js +23 -19
  3. package/dist/about-developer-profile.cjs +6 -2
  4. package/dist/about-developer-profile.js +6 -2
  5. package/dist/about-expandable-values.cjs +6 -2
  6. package/dist/about-expandable-values.js +6 -2
  7. package/dist/about-location-info-hero.cjs +6 -2
  8. package/dist/about-location-info-hero.js +6 -2
  9. package/dist/about-mission-principles.cjs +6 -2
  10. package/dist/about-mission-principles.js +6 -2
  11. package/dist/about-network-spotlight.cjs +18 -14
  12. package/dist/about-network-spotlight.js +16 -12
  13. package/dist/about-split-hero.cjs +6 -2
  14. package/dist/about-split-hero.js +6 -2
  15. package/dist/about-startup-team.cjs +6 -2
  16. package/dist/about-startup-team.js +6 -2
  17. package/dist/article-breadcrumb-social.cjs +27 -23
  18. package/dist/article-breadcrumb-social.js +27 -23
  19. package/dist/article-chapters-author.cjs +29 -25
  20. package/dist/article-chapters-author.js +29 -25
  21. package/dist/article-compact-toc.cjs +26 -22
  22. package/dist/article-compact-toc.js +26 -22
  23. package/dist/article-sidebar-sticky.cjs +6 -2
  24. package/dist/article-sidebar-sticky.js +6 -2
  25. package/dist/auto-scroll-carousel.cjs +28 -24
  26. package/dist/auto-scroll-carousel.js +26 -22
  27. package/dist/banner-announcement-dismissible.cjs +6 -2
  28. package/dist/banner-announcement-dismissible.js +6 -2
  29. package/dist/banner-delivery-countdown.cjs +6 -2
  30. package/dist/banner-delivery-countdown.js +6 -2
  31. package/dist/banner-floating-offer.cjs +6 -2
  32. package/dist/banner-floating-offer.js +6 -2
  33. package/dist/banner-gdpr-rights.cjs +6 -2
  34. package/dist/banner-gdpr-rights.js +6 -2
  35. package/dist/banner-privacy-notice.cjs +6 -2
  36. package/dist/banner-privacy-notice.js +6 -2
  37. package/dist/banner-social-follow.cjs +6 -2
  38. package/dist/banner-social-follow.js +6 -2
  39. package/dist/banner-survey-incentive.cjs +6 -2
  40. package/dist/banner-survey-incentive.js +6 -2
  41. package/dist/blog-cards-read-time.cjs +6 -2
  42. package/dist/blog-cards-read-time.js +6 -2
  43. package/dist/blog-cards-tagline-cta.cjs +6 -2
  44. package/dist/blog-cards-tagline-cta.js +6 -2
  45. package/dist/blog-carousel-apple.cjs +25 -21
  46. package/dist/blog-carousel-apple.js +21 -17
  47. package/dist/blog-category-overlay.cjs +6 -2
  48. package/dist/blog-category-overlay.js +6 -2
  49. package/dist/blog-filtered-results.cjs +30 -26
  50. package/dist/blog-filtered-results.js +24 -20
  51. package/dist/blog-horizontal-cards.cjs +6 -2
  52. package/dist/blog-horizontal-cards.js +6 -2
  53. package/dist/blog-horizontal-timeline.cjs +6 -2
  54. package/dist/blog-horizontal-timeline.js +6 -2
  55. package/dist/carousel-animated-sections.cjs +23 -19
  56. package/dist/carousel-animated-sections.js +23 -19
  57. package/dist/carousel-auto-progress-slides.cjs +6 -2
  58. package/dist/carousel-auto-progress-slides.js +6 -2
  59. package/dist/carousel-autoplay-progress.cjs +34 -30
  60. package/dist/carousel-autoplay-progress.js +34 -30
  61. package/dist/carousel-badge-cards.cjs +31 -27
  62. package/dist/carousel-badge-cards.js +26 -22
  63. package/dist/carousel-demo-link.cjs +32 -28
  64. package/dist/carousel-demo-link.js +26 -22
  65. package/dist/carousel-feature-badge.cjs +22 -18
  66. package/dist/carousel-feature-badge.js +22 -18
  67. package/dist/carousel-gallery-thumbnails.cjs +6 -2
  68. package/dist/carousel-gallery-thumbnails.js +6 -2
  69. package/dist/carousel-gradient-overlay.cjs +32 -28
  70. package/dist/carousel-gradient-overlay.js +26 -22
  71. package/dist/carousel-gradient-text.cjs +32 -28
  72. package/dist/carousel-gradient-text.js +26 -22
  73. package/dist/carousel-horizontal-cards.cjs +20 -16
  74. package/dist/carousel-horizontal-cards.js +20 -16
  75. package/dist/carousel-icon-sidebar.cjs +38 -34
  76. package/dist/carousel-icon-sidebar.js +26 -22
  77. package/dist/carousel-icon-tabs.cjs +39 -35
  78. package/dist/carousel-icon-tabs.js +26 -22
  79. package/dist/carousel-image-hero.cjs +22 -18
  80. package/dist/carousel-image-hero.js +22 -18
  81. package/dist/carousel-multi-step-showcase.cjs +6 -2
  82. package/dist/carousel-multi-step-showcase.js +6 -2
  83. package/dist/carousel-pagination.cjs +6 -2
  84. package/dist/carousel-pagination.js +6 -2
  85. package/dist/carousel-portfolio-hero.cjs +22 -18
  86. package/dist/carousel-portfolio-hero.js +22 -18
  87. package/dist/carousel-product-feature-showcase.cjs +6 -2
  88. package/dist/carousel-product-feature-showcase.js +6 -2
  89. package/dist/carousel-progress-slider.cjs +28 -24
  90. package/dist/carousel-progress-slider.js +28 -24
  91. package/dist/carousel-scale-focus.cjs +41 -37
  92. package/dist/carousel-scale-focus.js +26 -22
  93. package/dist/carousel-sidebar-resources.cjs +34 -30
  94. package/dist/carousel-sidebar-resources.js +26 -22
  95. package/dist/carousel-tabs-content.cjs +39 -35
  96. package/dist/carousel-tabs-content.js +26 -22
  97. package/dist/case-studies-featured-border.cjs +6 -2
  98. package/dist/case-studies-featured-border.js +6 -2
  99. package/dist/case-study-stats-metrics.cjs +6 -2
  100. package/dist/case-study-stats-metrics.js +6 -2
  101. package/dist/case-study-toc-social-sidebar.cjs +6 -2
  102. package/dist/case-study-toc-social-sidebar.js +6 -2
  103. package/dist/community-initiatives.cjs +19 -15
  104. package/dist/community-initiatives.js +17 -13
  105. package/dist/comparison-ai-models.cjs +18 -14
  106. package/dist/comparison-ai-models.js +17 -13
  107. package/dist/comparison-feature-cards.cjs +16 -12
  108. package/dist/comparison-feature-cards.js +16 -12
  109. package/dist/comparison-feature-grid.cjs +14 -10
  110. package/dist/comparison-feature-grid.js +14 -10
  111. package/dist/comparison-grid-badges.cjs +13 -9
  112. package/dist/comparison-grid-badges.js +13 -9
  113. package/dist/comparison-legacy-modern.cjs +15 -11
  114. package/dist/comparison-legacy-modern.js +15 -11
  115. package/dist/comparison-table-tabs.cjs +15 -11
  116. package/dist/comparison-table-tabs.js +14 -10
  117. package/dist/comparison-table-two-column.cjs +14 -10
  118. package/dist/comparison-table-two-column.js +14 -10
  119. package/dist/components.cjs +199 -179
  120. package/dist/components.js +104 -84
  121. package/dist/contact-callback.cjs +27 -7
  122. package/dist/contact-callback.js +10 -5
  123. package/dist/contact-card.cjs +6 -2
  124. package/dist/contact-card.js +6 -2
  125. package/dist/contact-careers.cjs +18 -14
  126. package/dist/contact-careers.js +16 -12
  127. package/dist/contact-dark.cjs +6 -2
  128. package/dist/contact-dark.js +6 -2
  129. package/dist/contact-emergency.cjs +6 -2
  130. package/dist/contact-emergency.js +6 -2
  131. package/dist/contact-faq.cjs +9 -7
  132. package/dist/contact-faq.js +10 -5
  133. package/dist/contact-floating-banner.cjs +6 -2
  134. package/dist/contact-floating-banner.js +6 -2
  135. package/dist/contact-help-center.cjs +16 -12
  136. package/dist/contact-help-center.js +16 -12
  137. package/dist/contact-image.cjs +18 -14
  138. package/dist/contact-image.js +17 -13
  139. package/dist/contact-map.cjs +78 -58
  140. package/dist/contact-map.js +78 -58
  141. package/dist/cta-app-download-newsletter.cjs +6 -2
  142. package/dist/cta-app-download-newsletter.js +6 -2
  143. package/dist/cta-background-icon-badge.cjs +6 -2
  144. package/dist/cta-background-icon-badge.js +6 -2
  145. package/dist/cta-case-study-testimonial.cjs +6 -2
  146. package/dist/cta-case-study-testimonial.js +6 -2
  147. package/dist/cta-documentation-links.cjs +6 -2
  148. package/dist/cta-documentation-links.js +6 -2
  149. package/dist/cta-enterprise-dark-features.cjs +6 -2
  150. package/dist/cta-enterprise-dark-features.js +6 -2
  151. package/dist/cta-enterprise-split.cjs +6 -2
  152. package/dist/cta-enterprise-split.js +6 -2
  153. package/dist/cta-feature-cards-grid.cjs +6 -2
  154. package/dist/cta-feature-cards-grid.js +6 -2
  155. package/dist/cta-feature-checklist.cjs +17 -13
  156. package/dist/cta-feature-checklist.js +16 -12
  157. package/dist/cta-feature-list.cjs +6 -2
  158. package/dist/cta-feature-list.js +6 -2
  159. package/dist/cta-gradient-logos-floating.cjs +6 -2
  160. package/dist/cta-gradient-logos-floating.js +6 -2
  161. package/dist/cta-gradient-stats-hero.cjs +6 -2
  162. package/dist/cta-gradient-stats-hero.js +6 -2
  163. package/dist/cta-hero-feature-cards.cjs +6 -2
  164. package/dist/cta-hero-feature-cards.js +6 -2
  165. package/dist/cta-image-overlay-arrow.cjs +6 -2
  166. package/dist/cta-image-overlay-arrow.js +6 -2
  167. package/dist/cta-newsletter-features.cjs +12 -8
  168. package/dist/cta-newsletter-features.js +12 -8
  169. package/dist/cta-platform-demo.cjs +6 -2
  170. package/dist/cta-platform-demo.js +6 -2
  171. package/dist/cta-simple-centered.cjs +6 -2
  172. package/dist/cta-simple-centered.js +6 -2
  173. package/dist/cta-split-image-logos.cjs +6 -2
  174. package/dist/cta-split-image-logos.js +6 -2
  175. package/dist/cta-video-background-hero.cjs +6 -2
  176. package/dist/cta-video-background-hero.js +6 -2
  177. package/dist/cta-workflow-tabs.cjs +6 -2
  178. package/dist/cta-workflow-tabs.js +6 -2
  179. package/dist/dynamic-icon.cjs +27 -2
  180. package/dist/dynamic-icon.d.cts +2 -2
  181. package/dist/dynamic-icon.d.ts +2 -2
  182. package/dist/dynamic-icon.js +7 -2
  183. package/dist/expandable-case-study-cards.cjs +26 -6
  184. package/dist/expandable-case-study-cards.js +10 -5
  185. package/dist/faq-badge-support.cjs +25 -21
  186. package/dist/faq-badge-support.js +22 -18
  187. package/dist/faq-bordered-badge.cjs +9 -7
  188. package/dist/faq-bordered-badge.js +10 -5
  189. package/dist/faq-card-categories.cjs +18 -14
  190. package/dist/faq-card-categories.js +16 -12
  191. package/dist/faq-categorized-sections.cjs +9 -7
  192. package/dist/faq-categorized-sections.js +10 -5
  193. package/dist/faq-centered-accordion.cjs +9 -7
  194. package/dist/faq-centered-accordion.js +10 -5
  195. package/dist/faq-gradient-categories.cjs +18 -14
  196. package/dist/faq-gradient-categories.js +16 -12
  197. package/dist/faq-icon-benefits.cjs +18 -14
  198. package/dist/faq-icon-benefits.js +16 -12
  199. package/dist/faq-muted-cards.cjs +18 -14
  200. package/dist/faq-muted-cards.js +16 -12
  201. package/dist/faq-profile-sidebar.cjs +25 -21
  202. package/dist/faq-profile-sidebar.js +22 -18
  203. package/dist/faq-rounded-cards.cjs +18 -14
  204. package/dist/faq-rounded-cards.js +16 -12
  205. package/dist/faq-sidebar-navigation.cjs +20 -16
  206. package/dist/faq-sidebar-navigation.js +17 -13
  207. package/dist/faq-simple-accordion.cjs +18 -14
  208. package/dist/faq-simple-accordion.js +16 -12
  209. package/dist/faq-split-help.cjs +25 -21
  210. package/dist/faq-split-help.js +22 -18
  211. package/dist/faq-split-hero.cjs +9 -7
  212. package/dist/faq-split-hero.js +10 -5
  213. package/dist/feature-accordion-image.cjs +20 -16
  214. package/dist/feature-accordion-image.js +17 -13
  215. package/dist/feature-animated-carousel.cjs +35 -31
  216. package/dist/feature-animated-carousel.js +28 -24
  217. package/dist/feature-badge-grid-six.cjs +20 -16
  218. package/dist/feature-badge-grid-six.js +16 -12
  219. package/dist/feature-bento-image-grid.cjs +21 -17
  220. package/dist/feature-bento-image-grid.js +20 -16
  221. package/dist/feature-bento-utilities.cjs +19 -15
  222. package/dist/feature-bento-utilities.js +18 -14
  223. package/dist/feature-capabilities-grid.cjs +18 -14
  224. package/dist/feature-capabilities-grid.js +17 -13
  225. package/dist/feature-carousel-progress.cjs +31 -27
  226. package/dist/feature-carousel-progress.js +26 -22
  227. package/dist/feature-checklist-image.cjs +6 -2
  228. package/dist/feature-checklist-image.js +6 -2
  229. package/dist/feature-checklist-three-column.cjs +22 -18
  230. package/dist/feature-checklist-three-column.js +16 -12
  231. package/dist/feature-icon-grid-accent.cjs +26 -6
  232. package/dist/feature-icon-grid-accent.js +10 -5
  233. package/dist/feature-icon-grid-bordered.cjs +18 -14
  234. package/dist/feature-icon-grid-bordered.js +16 -12
  235. package/dist/feature-icon-grid-muted.cjs +18 -14
  236. package/dist/feature-icon-grid-muted.js +16 -12
  237. package/dist/feature-icon-tabs-content.cjs +20 -16
  238. package/dist/feature-icon-tabs-content.js +16 -12
  239. package/dist/feature-image-cards-three-column.cjs +29 -25
  240. package/dist/feature-image-cards-three-column.js +22 -18
  241. package/dist/feature-image-overlay-badge.cjs +18 -14
  242. package/dist/feature-image-overlay-badge.js +16 -12
  243. package/dist/feature-numbered-cards.cjs +20 -16
  244. package/dist/feature-numbered-cards.js +16 -12
  245. package/dist/feature-pattern-grid-links.cjs +19 -15
  246. package/dist/feature-pattern-grid-links.js +16 -12
  247. package/dist/feature-showcase.cjs +6 -2
  248. package/dist/feature-showcase.js +6 -2
  249. package/dist/feature-tabbed-content-image.cjs +21 -17
  250. package/dist/feature-tabbed-content-image.js +19 -15
  251. package/dist/feature-three-column-values.cjs +18 -14
  252. package/dist/feature-three-column-values.js +17 -13
  253. package/dist/feature-utility-cards-grid.cjs +20 -16
  254. package/dist/feature-utility-cards-grid.js +17 -13
  255. package/dist/footer-accordion-social.cjs +6 -2
  256. package/dist/footer-accordion-social.js +6 -2
  257. package/dist/footer-animated-social.cjs +6 -2
  258. package/dist/footer-animated-social.js +6 -2
  259. package/dist/footer-background-card.cjs +6 -2
  260. package/dist/footer-background-card.js +6 -2
  261. package/dist/footer-brand-description.cjs +6 -2
  262. package/dist/footer-brand-description.js +6 -2
  263. package/dist/footer-brand-links-contact.cjs +6 -2
  264. package/dist/footer-brand-links-contact.js +6 -2
  265. package/dist/footer-comprehensive-links.cjs +6 -2
  266. package/dist/footer-comprehensive-links.js +6 -2
  267. package/dist/footer-contact-card.cjs +6 -2
  268. package/dist/footer-contact-card.js +6 -2
  269. package/dist/footer-cta-banner.cjs +6 -2
  270. package/dist/footer-cta-banner.js +6 -2
  271. package/dist/footer-cta-social.cjs +24 -20
  272. package/dist/footer-cta-social.js +22 -18
  273. package/dist/footer-info-cards-accordion.cjs +24 -20
  274. package/dist/footer-info-cards-accordion.js +23 -19
  275. package/dist/footer-nav-social.cjs +6 -2
  276. package/dist/footer-nav-social.js +6 -2
  277. package/dist/footer-newsletter-contact.cjs +6 -2
  278. package/dist/footer-newsletter-contact.js +6 -2
  279. package/dist/footer-newsletter-grid.cjs +6 -2
  280. package/dist/footer-newsletter-grid.js +6 -2
  281. package/dist/footer-newsletter-minimal.cjs +27 -23
  282. package/dist/footer-newsletter-minimal.js +26 -22
  283. package/dist/footer-social-apps.cjs +26 -22
  284. package/dist/footer-social-apps.js +22 -18
  285. package/dist/footer-social-newsletter.cjs +6 -2
  286. package/dist/footer-social-newsletter.js +6 -2
  287. package/dist/footer-split-image-accordion.cjs +24 -20
  288. package/dist/footer-split-image-accordion.js +23 -19
  289. package/dist/geo-map.cjs +74 -54
  290. package/dist/geo-map.js +73 -53
  291. package/dist/hero-badge-shadow-overlay.cjs +6 -2
  292. package/dist/hero-badge-shadow-overlay.js +6 -2
  293. package/dist/hero-coming-soon-countdown.cjs +6 -2
  294. package/dist/hero-coming-soon-countdown.js +6 -2
  295. package/dist/hero-conversion-video-play.cjs +29 -25
  296. package/dist/hero-conversion-video-play.js +26 -22
  297. package/dist/hero-creative-studio-stacked.cjs +19 -15
  298. package/dist/hero-creative-studio-stacked.js +16 -12
  299. package/dist/hero-dashed-border-features.cjs +6 -2
  300. package/dist/hero-dashed-border-features.js +6 -2
  301. package/dist/hero-design-carousel-portfolio.cjs +29 -25
  302. package/dist/hero-design-carousel-portfolio.js +26 -22
  303. package/dist/hero-design-system-3d.cjs +18 -14
  304. package/dist/hero-design-system-3d.js +16 -12
  305. package/dist/hero-developer-tools-code.cjs +18 -14
  306. package/dist/hero-developer-tools-code.js +16 -12
  307. package/dist/hero-ecommerce-product-showcase.cjs +20 -16
  308. package/dist/hero-ecommerce-product-showcase.js +17 -13
  309. package/dist/hero-enterprise-security.cjs +6 -2
  310. package/dist/hero-enterprise-security.js +6 -2
  311. package/dist/hero-event-registration.cjs +21 -17
  312. package/dist/hero-event-registration.js +17 -13
  313. package/dist/hero-feature-cards-grid.cjs +6 -2
  314. package/dist/hero-feature-cards-grid.js +6 -2
  315. package/dist/hero-floating-images.cjs +26 -6
  316. package/dist/hero-floating-images.js +10 -5
  317. package/dist/hero-gradient-avatars-rating.cjs +19 -15
  318. package/dist/hero-gradient-avatars-rating.js +16 -12
  319. package/dist/hero-grid-pattern-solutions.cjs +6 -2
  320. package/dist/hero-grid-pattern-solutions.js +6 -2
  321. package/dist/hero-marketplace-scattered-images.cjs +6 -2
  322. package/dist/hero-marketplace-scattered-images.js +6 -2
  323. package/dist/hero-mentorship-video-split.cjs +6 -2
  324. package/dist/hero-mentorship-video-split.js +6 -2
  325. package/dist/hero-mobile-app-download.cjs +6 -2
  326. package/dist/hero-mobile-app-download.js +6 -2
  327. package/dist/hero-overlay-cta-grid.cjs +20 -16
  328. package/dist/hero-overlay-cta-grid.js +16 -12
  329. package/dist/hero-platform-features-grid.cjs +6 -2
  330. package/dist/hero-platform-features-grid.js +6 -2
  331. package/dist/hero-portfolio-creative.cjs +6 -2
  332. package/dist/hero-portfolio-creative.js +6 -2
  333. package/dist/hero-pricing-comparison.cjs +6 -2
  334. package/dist/hero-pricing-comparison.js +6 -2
  335. package/dist/hero-product-showcase-floating.cjs +27 -23
  336. package/dist/hero-product-showcase-floating.js +22 -18
  337. package/dist/hero-saas-dashboard-preview.cjs +6 -2
  338. package/dist/hero-saas-dashboard-preview.js +6 -2
  339. package/dist/hero-simple-centered-image.cjs +5 -5
  340. package/dist/hero-simple-centered-image.js +5 -5
  341. package/dist/hero-software-growth-video-dialog.cjs +19 -15
  342. package/dist/hero-software-growth-video-dialog.js +16 -12
  343. package/dist/hero-split-icon-cards.cjs +18 -14
  344. package/dist/hero-split-icon-cards.js +16 -12
  345. package/dist/hero-video-dialog-gradient.cjs +19 -15
  346. package/dist/hero-video-dialog-gradient.js +16 -12
  347. package/dist/hero-video-overlay-stars.cjs +18 -14
  348. package/dist/hero-video-overlay-stars.js +16 -12
  349. package/dist/index.cjs +200 -180
  350. package/dist/index.js +104 -84
  351. package/dist/industries-expandable-showcase.cjs +6 -2
  352. package/dist/industries-expandable-showcase.js +6 -2
  353. package/dist/industries-hover-reveal-grid.cjs +6 -2
  354. package/dist/industries-hover-reveal-grid.js +6 -2
  355. package/dist/industries-timeline-table.cjs +6 -2
  356. package/dist/industries-timeline-table.js +6 -2
  357. package/dist/interior-carousel.cjs +33 -29
  358. package/dist/interior-carousel.js +26 -22
  359. package/dist/link-page-bento-layout.cjs +6 -2
  360. package/dist/link-page-bento-layout.js +6 -2
  361. package/dist/link-page-grid-cards.cjs +6 -2
  362. package/dist/link-page-grid-cards.js +6 -2
  363. package/dist/link-page-minimal-profile.cjs +6 -2
  364. package/dist/link-page-minimal-profile.js +6 -2
  365. package/dist/link-page-newsletter-social.cjs +6 -2
  366. package/dist/link-page-newsletter-social.js +6 -2
  367. package/dist/link-tree-block.cjs +30 -26
  368. package/dist/link-tree-block.js +30 -26
  369. package/dist/list-achievements-showcase.cjs +6 -2
  370. package/dist/list-achievements-showcase.js +6 -2
  371. package/dist/list-feature-comparison.cjs +6 -2
  372. package/dist/list-feature-comparison.js +6 -2
  373. package/dist/list-metrics-dashboard.cjs +6 -2
  374. package/dist/list-metrics-dashboard.js +6 -2
  375. package/dist/list-searchable-grid.cjs +19 -15
  376. package/dist/list-searchable-grid.js +18 -14
  377. package/dist/list-service-category-table.cjs +26 -6
  378. package/dist/list-service-category-table.js +10 -5
  379. package/dist/navbar-animated-preview.cjs +6 -2
  380. package/dist/navbar-animated-preview.js +6 -2
  381. package/dist/navbar-centered-menu.cjs +6 -2
  382. package/dist/navbar-centered-menu.js +6 -2
  383. package/dist/navbar-dark-icons.cjs +6 -2
  384. package/dist/navbar-dark-icons.js +6 -2
  385. package/dist/navbar-dropdown-menu.cjs +6 -2
  386. package/dist/navbar-dropdown-menu.js +6 -2
  387. package/dist/navbar-education-platform.cjs +6 -2
  388. package/dist/navbar-education-platform.js +6 -2
  389. package/dist/navbar-enterprise-mega.cjs +6 -2
  390. package/dist/navbar-enterprise-mega.js +6 -2
  391. package/dist/navbar-feature-grid.cjs +6 -2
  392. package/dist/navbar-feature-grid.js +6 -2
  393. package/dist/navbar-floating-pill.cjs +6 -2
  394. package/dist/navbar-floating-pill.js +6 -2
  395. package/dist/navbar-fullscreen-menu.cjs +6 -2
  396. package/dist/navbar-fullscreen-menu.js +6 -2
  397. package/dist/navbar-icon-links.cjs +6 -2
  398. package/dist/navbar-icon-links.js +6 -2
  399. package/dist/navbar-image-preview.cjs +6 -2
  400. package/dist/navbar-image-preview.js +6 -2
  401. package/dist/navbar-mega-menu.cjs +6 -2
  402. package/dist/navbar-mega-menu.js +6 -2
  403. package/dist/navbar-multi-column-groups.cjs +6 -2
  404. package/dist/navbar-multi-column-groups.js +6 -2
  405. package/dist/navbar-platform-resources.cjs +6 -2
  406. package/dist/navbar-platform-resources.js +6 -2
  407. package/dist/navbar-search-focused.cjs +6 -2
  408. package/dist/navbar-search-focused.js +6 -2
  409. package/dist/navbar-sidebar-mobile.cjs +6 -2
  410. package/dist/navbar-sidebar-mobile.js +6 -2
  411. package/dist/navbar-simple-links.cjs +6 -2
  412. package/dist/navbar-simple-links.js +6 -2
  413. package/dist/navbar-split-cta.cjs +6 -2
  414. package/dist/navbar-split-cta.js +6 -2
  415. package/dist/navbar-sticky-compact.cjs +6 -2
  416. package/dist/navbar-sticky-compact.js +6 -2
  417. package/dist/navbar-tabbed-sections.cjs +6 -2
  418. package/dist/navbar-tabbed-sections.js +6 -2
  419. package/dist/navbar-transparent-overlay.cjs +6 -2
  420. package/dist/navbar-transparent-overlay.js +6 -2
  421. package/dist/offer-modal-membership-image.cjs +6 -2
  422. package/dist/offer-modal-membership-image.js +6 -2
  423. package/dist/offer-modal-newsletter-discount.cjs +6 -2
  424. package/dist/offer-modal-newsletter-discount.js +6 -2
  425. package/dist/offer-modal-sheet-newsletter.cjs +6 -2
  426. package/dist/offer-modal-sheet-newsletter.js +6 -2
  427. package/dist/payment-platform-icon.cjs +27 -2
  428. package/dist/payment-platform-icon.js +7 -2
  429. package/dist/pricing-addons-cards.cjs +19 -15
  430. package/dist/pricing-addons-cards.js +16 -12
  431. package/dist/pricing-addons-featured.cjs +20 -16
  432. package/dist/pricing-addons-featured.js +16 -12
  433. package/dist/pricing-collapsible-plans.cjs +19 -15
  434. package/dist/pricing-collapsible-plans.js +16 -12
  435. package/dist/pricing-columns-toggle.cjs +20 -16
  436. package/dist/pricing-columns-toggle.js +16 -12
  437. package/dist/pricing-comparison-headers.cjs +21 -17
  438. package/dist/pricing-comparison-headers.js +16 -12
  439. package/dist/pricing-comparison-table.cjs +21 -17
  440. package/dist/pricing-comparison-table.js +16 -12
  441. package/dist/pricing-discount-card.cjs +18 -14
  442. package/dist/pricing-discount-card.js +16 -12
  443. package/dist/pricing-enterprise-contact.cjs +18 -14
  444. package/dist/pricing-enterprise-contact.js +16 -12
  445. package/dist/pricing-feature-matrix.cjs +19 -15
  446. package/dist/pricing-feature-matrix.js +16 -12
  447. package/dist/pricing-four-tier-toggle.cjs +20 -16
  448. package/dist/pricing-four-tier-toggle.js +16 -12
  449. package/dist/pricing-full-comparison.cjs +19 -15
  450. package/dist/pricing-full-comparison.js +17 -13
  451. package/dist/pricing-gradient-cards.cjs +20 -16
  452. package/dist/pricing-gradient-cards.js +16 -12
  453. package/dist/pricing-icon-headers.cjs +19 -15
  454. package/dist/pricing-icon-headers.js +16 -12
  455. package/dist/pricing-minimal-cards.cjs +19 -15
  456. package/dist/pricing-minimal-cards.js +16 -12
  457. package/dist/pricing-packages-radio.cjs +18 -14
  458. package/dist/pricing-packages-radio.js +16 -12
  459. package/dist/pricing-popular-highlight.cjs +20 -16
  460. package/dist/pricing-popular-highlight.js +16 -12
  461. package/dist/pricing-radio-toggle.cjs +20 -16
  462. package/dist/pricing-radio-toggle.js +16 -12
  463. package/dist/pricing-responsive-table.cjs +18 -14
  464. package/dist/pricing-responsive-table.js +16 -12
  465. package/dist/pricing-services-cards.cjs +19 -15
  466. package/dist/pricing-services-cards.js +16 -12
  467. package/dist/pricing-simple-card.cjs +18 -14
  468. package/dist/pricing-simple-card.js +16 -12
  469. package/dist/pricing-single-card.cjs +19 -15
  470. package/dist/pricing-single-card.js +16 -12
  471. package/dist/pricing-split-layout.cjs +16 -12
  472. package/dist/pricing-split-layout.js +16 -12
  473. package/dist/pricing-spotlight-card.cjs +18 -14
  474. package/dist/pricing-spotlight-card.js +16 -12
  475. package/dist/pricing-switch-cards.cjs +20 -16
  476. package/dist/pricing-switch-cards.js +16 -12
  477. package/dist/pricing-tabs-toggle.cjs +20 -16
  478. package/dist/pricing-tabs-toggle.js +16 -12
  479. package/dist/pricing-tier-grid.cjs +19 -15
  480. package/dist/pricing-tier-grid.js +16 -12
  481. package/dist/pricing-toggle-cards.cjs +20 -16
  482. package/dist/pricing-toggle-cards.js +16 -12
  483. package/dist/pricing-toggle-period.cjs +18 -14
  484. package/dist/pricing-toggle-period.js +16 -12
  485. package/dist/pricing-two-column-basic.cjs +20 -16
  486. package/dist/pricing-two-column-basic.js +16 -12
  487. package/dist/process-expandable-timeline.cjs +6 -2
  488. package/dist/process-expandable-timeline.js +6 -2
  489. package/dist/process-icon-timeline.cjs +26 -6
  490. package/dist/process-icon-timeline.js +10 -5
  491. package/dist/process-numbered-services.cjs +6 -2
  492. package/dist/process-numbered-services.js +6 -2
  493. package/dist/process-roadmap-timeline.cjs +26 -6
  494. package/dist/process-roadmap-timeline.js +10 -5
  495. package/dist/process-scroll-image.cjs +24 -20
  496. package/dist/process-scroll-image.js +22 -18
  497. package/dist/process-steps-grid.cjs +26 -6
  498. package/dist/process-steps-grid.js +10 -5
  499. package/dist/process-sticky-steps.cjs +6 -2
  500. package/dist/process-sticky-steps.js +6 -2
  501. package/dist/project-background-reveal.cjs +17 -13
  502. package/dist/project-background-reveal.js +16 -12
  503. package/dist/project-card-overlay.cjs +26 -6
  504. package/dist/project-card-overlay.js +10 -5
  505. package/dist/project-carousel-cinematic.cjs +31 -27
  506. package/dist/project-carousel-cinematic.js +26 -22
  507. package/dist/project-carousel-detail-cards.cjs +31 -27
  508. package/dist/project-carousel-detail-cards.js +26 -22
  509. package/dist/project-carousel-minimal.cjs +31 -27
  510. package/dist/project-carousel-minimal.js +26 -22
  511. package/dist/project-detail-architecture-carousel.cjs +6 -2
  512. package/dist/project-detail-architecture-carousel.js +6 -2
  513. package/dist/project-detail-list-related.cjs +6 -2
  514. package/dist/project-detail-list-related.js +6 -2
  515. package/dist/project-detail-photography-breadcrumb.cjs +6 -2
  516. package/dist/project-detail-photography-breadcrumb.js +6 -2
  517. package/dist/project-detail-tabbed-case-study.cjs +6 -2
  518. package/dist/project-detail-tabbed-case-study.js +6 -2
  519. package/dist/project-experience-quote.cjs +17 -13
  520. package/dist/project-experience-quote.js +16 -12
  521. package/dist/project-featured-carousel.cjs +27 -23
  522. package/dist/project-featured-carousel.js +26 -22
  523. package/dist/project-horizontal-cards.cjs +17 -13
  524. package/dist/project-horizontal-cards.js +16 -12
  525. package/dist/project-interactive-hover-reveal.cjs +18 -14
  526. package/dist/project-interactive-hover-reveal.js +16 -12
  527. package/dist/project-scroll-reveal.cjs +26 -6
  528. package/dist/project-scroll-reveal.js +10 -5
  529. package/dist/project-video-carousel.cjs +31 -27
  530. package/dist/project-video-carousel.js +26 -22
  531. package/dist/project-video-hover-bento.cjs +26 -6
  532. package/dist/project-video-hover-bento.js +10 -5
  533. package/dist/project-video-hover-grid.cjs +26 -6
  534. package/dist/project-video-hover-grid.js +10 -5
  535. package/dist/project-video-hover-rounded.cjs +26 -6
  536. package/dist/project-video-hover-rounded.js +10 -5
  537. package/dist/project-video-hover-stack.cjs +26 -6
  538. package/dist/project-video-hover-stack.js +10 -5
  539. package/dist/project-video-hover-two-by-two.cjs +26 -6
  540. package/dist/project-video-hover-two-by-two.js +10 -5
  541. package/dist/project-work-showcase.cjs +17 -13
  542. package/dist/project-work-showcase.js +16 -12
  543. package/dist/project-zigzag-layout.cjs +16 -12
  544. package/dist/project-zigzag-layout.js +16 -12
  545. package/dist/registry.cjs +1742 -1722
  546. package/dist/registry.js +512 -492
  547. package/dist/resource-detail-document-sidebar.cjs +6 -2
  548. package/dist/resource-detail-document-sidebar.js +6 -2
  549. package/dist/resource-detail-whitepaper-sidebar.cjs +6 -2
  550. package/dist/resource-detail-whitepaper-sidebar.js +6 -2
  551. package/dist/resource-list-course-cards.cjs +6 -2
  552. package/dist/resource-list-course-cards.js +6 -2
  553. package/dist/resource-list-featured-articles.cjs +6 -2
  554. package/dist/resource-list-featured-articles.js +6 -2
  555. package/dist/resource-list-featured-grid.cjs +6 -2
  556. package/dist/resource-list-featured-grid.js +6 -2
  557. package/dist/resource-list-hero-filter.cjs +6 -2
  558. package/dist/resource-list-hero-filter.js +6 -2
  559. package/dist/resource-list-news-updates.cjs +6 -2
  560. package/dist/resource-list-news-updates.js +6 -2
  561. package/dist/service-detail-centered-expertise.cjs +16 -12
  562. package/dist/service-detail-centered-expertise.js +16 -12
  563. package/dist/service-detail-compact-cards.cjs +16 -12
  564. package/dist/service-detail-compact-cards.js +16 -12
  565. package/dist/service-detail-sidebar-related.cjs +16 -12
  566. package/dist/service-detail-sidebar-related.js +16 -12
  567. package/dist/service-detail-sidebar-stats.cjs +27 -7
  568. package/dist/service-detail-sidebar-stats.js +10 -5
  569. package/dist/service-hover-carousel.cjs +38 -34
  570. package/dist/service-hover-carousel.js +26 -22
  571. package/dist/services-list-accordion-benefits.cjs +16 -12
  572. package/dist/services-list-accordion-benefits.js +16 -12
  573. package/dist/services-list-accordion.cjs +10 -8
  574. package/dist/services-list-accordion.js +10 -5
  575. package/dist/services-list-cards-hover.cjs +16 -12
  576. package/dist/services-list-cards-hover.js +16 -12
  577. package/dist/services-list-category-accordion.cjs +10 -8
  578. package/dist/services-list-category-accordion.js +10 -5
  579. package/dist/services-list-centered-icons.cjs +27 -7
  580. package/dist/services-list-centered-icons.js +10 -5
  581. package/dist/services-list-culture-tabs.cjs +16 -12
  582. package/dist/services-list-culture-tabs.js +16 -12
  583. package/dist/services-list-feature-spotlight.cjs +27 -7
  584. package/dist/services-list-feature-spotlight.js +10 -5
  585. package/dist/services-list-featured-highlight.cjs +16 -12
  586. package/dist/services-list-featured-highlight.js +16 -12
  587. package/dist/services-list-hero-cards.cjs +6 -2
  588. package/dist/services-list-hero-cards.js +6 -2
  589. package/dist/services-list-icon-grid.cjs +27 -7
  590. package/dist/services-list-icon-grid.js +10 -5
  591. package/dist/services-list-image-cards.cjs +6 -2
  592. package/dist/services-list-image-cards.js +6 -2
  593. package/dist/services-list-image-overlay-grid.cjs +6 -2
  594. package/dist/services-list-image-overlay-grid.js +6 -2
  595. package/dist/services-list-masonry.cjs +16 -12
  596. package/dist/services-list-masonry.js +16 -12
  597. package/dist/services-list-methodology-steps.cjs +16 -12
  598. package/dist/services-list-methodology-steps.js +16 -12
  599. package/dist/services-list-minimal-grid.cjs +16 -12
  600. package/dist/services-list-minimal-grid.js +16 -12
  601. package/dist/services-list-muted-cards.cjs +27 -7
  602. package/dist/services-list-muted-cards.js +10 -5
  603. package/dist/services-list-numbered-steps.cjs +16 -12
  604. package/dist/services-list-numbered-steps.js +16 -12
  605. package/dist/services-list-pricing-grid.cjs +16 -12
  606. package/dist/services-list-pricing-grid.js +16 -12
  607. package/dist/services-list-progress-sidebar.cjs +16 -12
  608. package/dist/services-list-progress-sidebar.js +16 -12
  609. package/dist/services-list-split-checklist.cjs +16 -12
  610. package/dist/services-list-split-checklist.js +16 -12
  611. package/dist/services-list-sticky-image.cjs +6 -2
  612. package/dist/services-list-sticky-image.js +6 -2
  613. package/dist/services-list-table-hover.cjs +6 -2
  614. package/dist/services-list-table-hover.js +6 -2
  615. package/dist/services-list-tabs-features.cjs +10 -8
  616. package/dist/services-list-tabs-features.js +10 -5
  617. package/dist/services-list-timeline.cjs +16 -12
  618. package/dist/services-list-timeline.js +16 -12
  619. package/dist/services-list-two-column-grid.cjs +16 -12
  620. package/dist/services-list-two-column-grid.js +16 -12
  621. package/dist/services-list-vertical-tags.cjs +27 -7
  622. package/dist/services-list-vertical-tags.js +10 -5
  623. package/dist/services-list-video-showcase.cjs +18 -14
  624. package/dist/services-list-video-showcase.js +18 -14
  625. package/dist/social-link-icon.cjs +6 -2
  626. package/dist/social-link-icon.js +6 -2
  627. package/dist/stats-animated-counter.cjs +17 -13
  628. package/dist/stats-animated-counter.js +15 -11
  629. package/dist/stats-card-group.cjs +26 -6
  630. package/dist/stats-card-group.js +10 -5
  631. package/dist/stats-growth-timeline.cjs +22 -18
  632. package/dist/stats-growth-timeline.js +16 -12
  633. package/dist/stats-icon-cards.cjs +26 -6
  634. package/dist/stats-icon-cards.js +10 -5
  635. package/dist/stats-impact-grid.cjs +23 -19
  636. package/dist/stats-impact-grid.js +16 -12
  637. package/dist/stats-primary-secondary.cjs +26 -6
  638. package/dist/stats-primary-secondary.js +10 -5
  639. package/dist/stats-timeline-tabs.cjs +9 -7
  640. package/dist/stats-timeline-tabs.js +10 -5
  641. package/dist/team-alternating-bios.cjs +17 -13
  642. package/dist/team-alternating-bios.js +17 -13
  643. package/dist/team-avatar-social.cjs +17 -13
  644. package/dist/team-avatar-social.js +17 -13
  645. package/dist/team-bio-badges.cjs +17 -13
  646. package/dist/team-bio-badges.js +17 -13
  647. package/dist/team-carousel-experience.cjs +27 -23
  648. package/dist/team-carousel-experience.js +27 -23
  649. package/dist/team-contact-cards.cjs +18 -14
  650. package/dist/team-contact-cards.js +18 -14
  651. package/dist/team-filterable-search.cjs +22 -18
  652. package/dist/team-filterable-search.js +22 -18
  653. package/dist/team-gradient-cards.cjs +17 -13
  654. package/dist/team-gradient-cards.js +17 -13
  655. package/dist/team-grid-animated.cjs +18 -14
  656. package/dist/team-grid-animated.js +18 -14
  657. package/dist/team-hover-highlight.cjs +17 -13
  658. package/dist/team-hover-highlight.js +17 -13
  659. package/dist/team-hover-overlay.cjs +17 -13
  660. package/dist/team-hover-overlay.js +17 -13
  661. package/dist/team-large-images.cjs +17 -13
  662. package/dist/team-large-images.js +17 -13
  663. package/dist/team-role-filter.cjs +20 -16
  664. package/dist/team-role-filter.js +20 -16
  665. package/dist/team-skill-badges.cjs +17 -13
  666. package/dist/team-skill-badges.js +17 -13
  667. package/dist/team-social-cards.cjs +17 -13
  668. package/dist/team-social-cards.js +17 -13
  669. package/dist/team-social-grid.cjs +17 -13
  670. package/dist/team-social-grid.js +17 -13
  671. package/dist/team-testimonial-stats.cjs +17 -13
  672. package/dist/team-testimonial-stats.js +17 -13
  673. package/dist/testimonial-carousel-cards.cjs +33 -29
  674. package/dist/testimonial-carousel-cards.js +26 -22
  675. package/dist/testimonials-animated-split.cjs +9 -7
  676. package/dist/testimonials-animated-split.js +10 -5
  677. package/dist/testimonials-bento-grid.cjs +9 -7
  678. package/dist/testimonials-bento-grid.js +10 -5
  679. package/dist/testimonials-carousel-image.cjs +18 -14
  680. package/dist/testimonials-carousel-image.js +13 -9
  681. package/dist/testimonials-company-logo.cjs +26 -6
  682. package/dist/testimonials-company-logo.js +10 -5
  683. package/dist/testimonials-grid-add-review.cjs +9 -7
  684. package/dist/testimonials-grid-add-review.js +10 -5
  685. package/dist/testimonials-images-helpful.cjs +21 -17
  686. package/dist/testimonials-images-helpful.js +16 -12
  687. package/dist/testimonials-large-quote.cjs +9 -7
  688. package/dist/testimonials-large-quote.js +10 -5
  689. package/dist/testimonials-list-verified.cjs +9 -7
  690. package/dist/testimonials-list-verified.js +10 -5
  691. package/dist/testimonials-mini-dividers.cjs +9 -7
  692. package/dist/testimonials-mini-dividers.js +10 -5
  693. package/dist/testimonials-minimal-numbered.cjs +9 -7
  694. package/dist/testimonials-minimal-numbered.js +10 -5
  695. package/dist/testimonials-quote-carousel.cjs +31 -27
  696. package/dist/testimonials-quote-carousel.js +26 -22
  697. package/dist/testimonials-scrolling-columns.cjs +26 -6
  698. package/dist/testimonials-scrolling-columns.js +10 -5
  699. package/dist/testimonials-split-image.cjs +9 -7
  700. package/dist/testimonials-split-image.js +10 -5
  701. package/dist/testimonials-stats-header.cjs +9 -7
  702. package/dist/testimonials-stats-header.js +10 -5
  703. package/dist/testimonials-twitter-cards.cjs +19 -15
  704. package/dist/testimonials-twitter-cards.js +16 -12
  705. package/dist/timeline-ai-workflow-cards.cjs +27 -7
  706. package/dist/timeline-ai-workflow-cards.js +10 -5
  707. package/dist/timeline-alternating-diagonal.cjs +12 -8
  708. package/dist/timeline-alternating-diagonal.js +12 -8
  709. package/dist/timeline-horizontal-icons.cjs +10 -8
  710. package/dist/timeline-horizontal-icons.js +10 -5
  711. package/dist/timeline-productivity-list.cjs +27 -7
  712. package/dist/timeline-productivity-list.js +10 -5
  713. package/dist/timeline-stepper-animated.cjs +22 -18
  714. package/dist/timeline-stepper-animated.js +21 -17
  715. package/dist/timeline-tabbed-phases.cjs +6 -2
  716. package/dist/timeline-tabbed-phases.js +6 -2
  717. package/dist/timeline-vertical-icon-dashed.cjs +6 -2
  718. package/dist/timeline-vertical-icon-dashed.js +6 -2
  719. package/package.json +3 -3
package/dist/registry.js CHANGED
@@ -1,5 +1,5 @@
1
- import * as React32 from 'react';
2
- import React32__default, { Fragment, createContext, useMemo, forwardRef, useCallback, useState, useEffect, useRef, startTransition, useContext } from 'react';
1
+ import * as React8 from 'react';
2
+ import React8__default, { Fragment, createContext, useMemo, forwardRef, useCallback, useState, useEffect, useRef, startTransition, useContext } from 'react';
3
3
  import { clsx } from 'clsx';
4
4
  import { twMerge } from 'tailwind-merge';
5
5
  import { jsx, jsxs, Fragment as Fragment$1 } from 'react/jsx-runtime';
@@ -148,7 +148,7 @@ var maxWidthStyles = {
148
148
  "4xl": "max-w-[1536px]",
149
149
  full: "max-w-full"
150
150
  };
151
- var Container = React32__default.forwardRef(
151
+ var Container = React8__default.forwardRef(
152
152
  ({ children, maxWidth = "xl", className, as = "div", ...props }, ref) => {
153
153
  const Component = as;
154
154
  return /* @__PURE__ */ jsx(
@@ -454,7 +454,7 @@ var spacingStyles = {
454
454
  };
455
455
  var predefinedSpacings = ["none", "sm", "md", "lg", "xl", "hero"];
456
456
  var isPredefinedSpacing = (spacing) => predefinedSpacings.includes(spacing);
457
- var Section = React32__default.forwardRef(
457
+ var Section = React8__default.forwardRef(
458
458
  ({
459
459
  id,
460
460
  title,
@@ -519,12 +519,12 @@ function TextInner({ as, className, children, ...props }, ref) {
519
519
  const Component = as || "span";
520
520
  return /* @__PURE__ */ jsx(Component, { ref, className: cn(className), ...props, children });
521
521
  }
522
- var Text = React32.forwardRef(TextInner);
522
+ var Text = React8.forwardRef(TextInner);
523
523
  Text.displayName = "Text";
524
524
  function isContentTextItem(item) {
525
- return item !== null && typeof item === "object" && !React32.isValidElement(item) && "_type" in item && item._type === "text";
525
+ return item !== null && typeof item === "object" && !React8.isValidElement(item) && "_type" in item && item._type === "text";
526
526
  }
527
- var ContentGroup = React32.forwardRef(
527
+ var ContentGroup = React8.forwardRef(
528
528
  ({ items, className, children, ...props }, ref) => {
529
529
  const hasContent = items && items.length > 0;
530
530
  if (!hasContent) {
@@ -537,10 +537,10 @@ var ContentGroup = React32.forwardRef(
537
537
  return /* @__PURE__ */ jsx(Text, { ...textProps }, idx);
538
538
  }
539
539
  const reactNode = item;
540
- if (React32.isValidElement(reactNode)) {
541
- return React32.cloneElement(reactNode, { key: reactNode.key ?? idx });
540
+ if (React8.isValidElement(reactNode)) {
541
+ return React8.cloneElement(reactNode, { key: reactNode.key ?? idx });
542
542
  }
543
- return /* @__PURE__ */ jsx(React32.Fragment, { children: reactNode }, idx);
543
+ return /* @__PURE__ */ jsx(React8.Fragment, { children: reactNode }, idx);
544
544
  }),
545
545
  children
546
546
  ] });
@@ -729,7 +729,7 @@ function useNavigation({
729
729
  href,
730
730
  onClick
731
731
  } = {}) {
732
- const linkType = React32.useMemo(() => {
732
+ const linkType = React8.useMemo(() => {
733
733
  if (!href || href.trim() === "") {
734
734
  return onClick ? "none" : "none";
735
735
  }
@@ -750,7 +750,7 @@ function useNavigation({
750
750
  return "internal";
751
751
  }
752
752
  }, [href, onClick]);
753
- const normalizedHref = React32.useMemo(() => {
753
+ const normalizedHref = React8.useMemo(() => {
754
754
  if (!href || href.trim() === "") {
755
755
  return void 0;
756
756
  }
@@ -768,7 +768,7 @@ function useNavigation({
768
768
  return trimmed;
769
769
  }
770
770
  }, [href, linkType]);
771
- const target = React32.useMemo(() => {
771
+ const target = React8.useMemo(() => {
772
772
  switch (linkType) {
773
773
  case "external":
774
774
  return "_blank";
@@ -781,7 +781,7 @@ function useNavigation({
781
781
  return void 0;
782
782
  }
783
783
  }, [linkType]);
784
- const rel = React32.useMemo(() => {
784
+ const rel = React8.useMemo(() => {
785
785
  if (linkType === "external") {
786
786
  return "noopener noreferrer";
787
787
  }
@@ -790,7 +790,7 @@ function useNavigation({
790
790
  const isExternal = linkType === "external";
791
791
  const isInternal = linkType === "internal";
792
792
  const shouldUseRouter = isInternal && typeof normalizedHref === "string" && normalizedHref.startsWith("/");
793
- const handleClick = React32.useCallback(
793
+ const handleClick = React8.useCallback(
794
794
  (event) => {
795
795
  if (onClick) {
796
796
  try {
@@ -974,7 +974,7 @@ var buttonVariants = cva(baseStyles, {
974
974
  size: "default"
975
975
  }
976
976
  });
977
- var Pressable = React32.forwardRef(
977
+ var Pressable = React8.forwardRef(
978
978
  ({
979
979
  children,
980
980
  className,
@@ -1073,9 +1073,13 @@ var Pressable = React32.forwardRef(
1073
1073
  );
1074
1074
  Pressable.displayName = "Pressable";
1075
1075
  var DEFAULT_ICON_API_KEY = "au382bi7fsh96w9h9xlrnat2jglx";
1076
- function DynamicIcon({ apiKey, ...props }) {
1076
+ var DynamicIcon = React8.memo(function DynamicIcon2({
1077
+ apiKey,
1078
+ ...props
1079
+ }) {
1077
1080
  return /* @__PURE__ */ jsx(Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
1078
- }
1081
+ });
1082
+ DynamicIcon.displayName = "DynamicIcon";
1079
1083
  var PANEL_POSITION_CLASS = {
1080
1084
  "top-left": "left-4 top-4",
1081
1085
  "top-right": "right-4 top-4",
@@ -1167,12 +1171,20 @@ function MarkerMediaCarousel({
1167
1171
  mediaItems,
1168
1172
  optixFlowConfig
1169
1173
  }) {
1170
- const [activeIndex, setActiveIndex] = React32.useState(0);
1174
+ const [activeIndex, setActiveIndex] = React8.useState(0);
1171
1175
  const totalItems = mediaItems.length;
1172
- React32.useEffect(() => {
1176
+ const mediaResetKey = React8.useMemo(
1177
+ () => mediaItems.map((item, index) => {
1178
+ const itemId = normalizeId(item.id, `media-${index}`);
1179
+ return `${itemId}:${item.src}:${item.type ?? ""}:${item.poster ?? ""}`;
1180
+ }).join("|"),
1181
+ [mediaItems]
1182
+ );
1183
+ const activeItemIndex = Math.min(activeIndex, Math.max(0, totalItems - 1));
1184
+ React8.useEffect(() => {
1173
1185
  setActiveIndex(0);
1174
- }, [mediaItems]);
1175
- const activeMediaItem = mediaItems[activeIndex];
1186
+ }, [mediaResetKey]);
1187
+ const activeMediaItem = mediaItems[activeItemIndex];
1176
1188
  const mediaType = resolveMediaType(activeMediaItem);
1177
1189
  return /* @__PURE__ */ jsxs("div", { className: "relative border-b border-border/60 bg-muted/40", children: [
1178
1190
  /* @__PURE__ */ jsx("div", { className: "relative h-44 w-full overflow-hidden", children: mediaType === "video" ? /* @__PURE__ */ jsx(
@@ -1206,7 +1218,7 @@ function MarkerMediaCarousel({
1206
1218
  (current) => (current - 1 + totalItems) % totalItems
1207
1219
  );
1208
1220
  },
1209
- children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/arrow-left" })
1221
+ children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/arrow-left", size: 16 })
1210
1222
  }
1211
1223
  ),
1212
1224
  /* @__PURE__ */ jsx(
@@ -1218,7 +1230,7 @@ function MarkerMediaCarousel({
1218
1230
  onClick: () => {
1219
1231
  setActiveIndex((current) => (current + 1) % totalItems);
1220
1232
  },
1221
- children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/arrow-right" })
1233
+ children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/arrow-right", size: 16 })
1222
1234
  }
1223
1235
  ),
1224
1236
  /* @__PURE__ */ jsx("div", { className: "absolute bottom-2 left-1/2 flex -translate-x-1/2 items-center gap-1.5", children: mediaItems.map((item, index) => /* @__PURE__ */ jsx(
@@ -1228,7 +1240,7 @@ function MarkerMediaCarousel({
1228
1240
  "aria-label": `Show media item ${index + 1}`,
1229
1241
  className: cn(
1230
1242
  "h-2 rounded-full transition-all",
1231
- index === activeIndex ? "w-6 bg-card" : "w-2 bg-card opacity-50 hover:opacity-100"
1243
+ index === activeItemIndex ? "w-6 bg-card" : "w-2 bg-card opacity-50 hover:opacity-100"
1232
1244
  ),
1233
1245
  onClick: () => setActiveIndex(index)
1234
1246
  },
@@ -1277,14 +1289,14 @@ function GeoMap({
1277
1289
  mapChildren,
1278
1290
  optixFlowConfig
1279
1291
  }) {
1280
- const normalizedStandaloneMarkers = React32.useMemo(
1292
+ const normalizedStandaloneMarkers = React8.useMemo(
1281
1293
  () => markers.map((marker, index) => ({
1282
1294
  ...marker,
1283
1295
  id: normalizeId(marker.id, `marker-${index}`)
1284
1296
  })),
1285
1297
  [markers]
1286
1298
  );
1287
- const normalizedClusters = React32.useMemo(() => {
1299
+ const normalizedClusters = React8.useMemo(() => {
1288
1300
  const results = [];
1289
1301
  clusters.forEach((cluster, clusterIndex) => {
1290
1302
  const clusterId = normalizeId(cluster.id, `cluster-${clusterIndex}`);
@@ -1309,7 +1321,7 @@ function GeoMap({
1309
1321
  });
1310
1322
  return results;
1311
1323
  }, [clusters]);
1312
- const markerLookup = React32.useMemo(() => {
1324
+ const markerLookup = React8.useMemo(() => {
1313
1325
  const lookup = /* @__PURE__ */ new Map();
1314
1326
  normalizedStandaloneMarkers.forEach((marker) => {
1315
1327
  lookup.set(marker.id, marker);
@@ -1321,14 +1333,14 @@ function GeoMap({
1321
1333
  });
1322
1334
  return lookup;
1323
1335
  }, [normalizedClusters, normalizedStandaloneMarkers]);
1324
- const clusterLookup = React32.useMemo(() => {
1336
+ const clusterLookup = React8.useMemo(() => {
1325
1337
  const lookup = /* @__PURE__ */ new Map();
1326
1338
  normalizedClusters.forEach((cluster) => {
1327
1339
  lookup.set(cluster.id, cluster);
1328
1340
  });
1329
1341
  return lookup;
1330
1342
  }, [normalizedClusters]);
1331
- const firstCoordinate = React32.useMemo(() => {
1343
+ const firstCoordinate = React8.useMemo(() => {
1332
1344
  if (normalizedStandaloneMarkers.length > 0) {
1333
1345
  const firstStandaloneMarker = normalizedStandaloneMarkers[0];
1334
1346
  return {
@@ -1348,23 +1360,27 @@ function GeoMap({
1348
1360
  longitude: DEFAULT_VIEW_STATE.longitude
1349
1361
  };
1350
1362
  }, [normalizedClusters, normalizedStandaloneMarkers]);
1351
- const [uncontrolledViewState, setUncontrolledViewState] = React32.useState({
1363
+ const [uncontrolledViewState, setUncontrolledViewState] = React8.useState({
1352
1364
  latitude: defaultViewState?.latitude ?? firstCoordinate.latitude,
1353
1365
  longitude: defaultViewState?.longitude ?? firstCoordinate.longitude,
1354
1366
  zoom: defaultViewState?.zoom ?? DEFAULT_VIEW_STATE.zoom
1355
1367
  });
1356
1368
  const isControlledViewState = viewState !== void 0;
1357
1369
  const resolvedViewState = isControlledViewState ? viewState : uncontrolledViewState;
1358
- const applyViewState = React32.useCallback(
1370
+ const applyViewState = React8.useCallback(
1359
1371
  (nextState) => {
1360
1372
  if (!isControlledViewState) {
1361
- setUncontrolledViewState((current) => ({ ...current, ...nextState }));
1373
+ setUncontrolledViewState((current) => {
1374
+ const next = { ...current, ...nextState };
1375
+ const hasChanged = current.latitude !== next.latitude || current.longitude !== next.longitude || current.zoom !== next.zoom;
1376
+ return hasChanged ? next : current;
1377
+ });
1362
1378
  }
1363
1379
  onViewStateChange?.(nextState);
1364
1380
  },
1365
1381
  [isControlledViewState, onViewStateChange]
1366
1382
  );
1367
- const [selection, setSelection] = React32.useState(() => {
1383
+ const [selection, setSelection] = React8.useState(() => {
1368
1384
  if (initialSelectedMarkerId !== void 0 && initialSelectedMarkerId !== null) {
1369
1385
  return {
1370
1386
  type: "marker",
@@ -1373,7 +1389,7 @@ function GeoMap({
1373
1389
  }
1374
1390
  return { type: "none" };
1375
1391
  });
1376
- React32.useEffect(() => {
1392
+ React8.useEffect(() => {
1377
1393
  if (selectedMarkerId === void 0 || selectedMarkerId === null) {
1378
1394
  return;
1379
1395
  }
@@ -1384,13 +1400,13 @@ function GeoMap({
1384
1400
  }, [selectedMarkerId]);
1385
1401
  const selectedMarker = selection.markerId ? markerLookup.get(selection.markerId) : void 0;
1386
1402
  const selectedCluster = selection.clusterId ? clusterLookup.get(selection.clusterId) : void 0;
1387
- React32.useEffect(() => {
1403
+ React8.useEffect(() => {
1388
1404
  if (selection.type === "marker" && selection.markerId && !selectedMarker) {
1389
1405
  setSelection({ type: "none" });
1390
1406
  onSelectionChange?.({ type: "none" });
1391
1407
  }
1392
1408
  }, [onSelectionChange, selectedMarker, selection]);
1393
- const emitSelectionChange = React32.useCallback(
1409
+ const emitSelectionChange = React8.useCallback(
1394
1410
  (nextSelection) => {
1395
1411
  if (nextSelection.type === "none") {
1396
1412
  onSelectionChange?.({ type: "none" });
@@ -1412,7 +1428,7 @@ function GeoMap({
1412
1428
  },
1413
1429
  [clusterLookup, onSelectionChange]
1414
1430
  );
1415
- const selectMarker = React32.useCallback(
1431
+ const selectMarker = React8.useCallback(
1416
1432
  (marker) => {
1417
1433
  setSelection({
1418
1434
  type: "marker",
@@ -1428,7 +1444,7 @@ function GeoMap({
1428
1444
  },
1429
1445
  [applyViewState, emitSelectionChange, markerFocusZoom]
1430
1446
  );
1431
- const selectCluster = React32.useCallback(
1447
+ const selectCluster = React8.useCallback(
1432
1448
  (cluster) => {
1433
1449
  setSelection({
1434
1450
  type: "cluster",
@@ -1443,11 +1459,11 @@ function GeoMap({
1443
1459
  },
1444
1460
  [applyViewState, clusterFocusZoom, emitSelectionChange]
1445
1461
  );
1446
- const clearSelection = React32.useCallback(() => {
1462
+ const clearSelection = React8.useCallback(() => {
1447
1463
  setSelection({ type: "none" });
1448
1464
  emitSelectionChange({ type: "none" });
1449
1465
  }, [emitSelectionChange]);
1450
- const mapMarkers = React32.useMemo(() => {
1466
+ const mapMarkers = React8.useMemo(() => {
1451
1467
  const resolvedMarkers = [];
1452
1468
  normalizedClusters.forEach((cluster) => {
1453
1469
  const isSelected = selection.type === "cluster" && selection.clusterId === cluster.id;
@@ -1556,7 +1572,7 @@ function GeoMap({
1556
1572
  "aria-label": "Close marker details",
1557
1573
  className: "flex size-8 items-center justify-center rounded-full border border-border bg-card text-card-foreground transition hover:bg-muted hover:text-foreground absolute top-2 right-2 z-10",
1558
1574
  onClick: clearSelection,
1559
- children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/x" })
1575
+ children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/x", size: 16 })
1560
1576
  }
1561
1577
  ),
1562
1578
  markerMediaItems.length > 0 ? /* @__PURE__ */ jsx(
@@ -1572,36 +1588,40 @@ function GeoMap({
1572
1588
  /* @__PURE__ */ jsx("div", { className: "text-base font-semibold leading-tight", children: selectedMarker.title ?? selectedMarker.label ?? "Location" })
1573
1589
  ] }) }),
1574
1590
  selectedMarker.summary ? /* @__PURE__ */ jsx("div", { className: "text-sm leading-relaxed", children: selectedMarker.summary }) : null,
1575
- selectedMarker.locationLine ? /* @__PURE__ */ jsxs(
1576
- Pressable,
1577
- {
1578
- href: selectedMarker.locationUrl,
1579
- className: "flex flex-row items-center justify-start text-sm gap-2",
1580
- children: [
1581
- /* @__PURE__ */ jsx(
1582
- DynamicIcon,
1583
- {
1584
- name: "lucide:map-pin",
1585
- className: "opacity-50",
1586
- size: 12
1587
- }
1591
+ selectedMarker.locationLine ? /* @__PURE__ */ jsxs("div", { className: "flex flex-row items-center justify-start text-sm gap-2", children: [
1592
+ /* @__PURE__ */ jsx(
1593
+ DynamicIcon,
1594
+ {
1595
+ name: "lucide:map-pin",
1596
+ className: "opacity-50",
1597
+ size: 14
1598
+ }
1599
+ ),
1600
+ typeof selectedMarker.locationLine === "string" ? /* @__PURE__ */ jsx(
1601
+ Pressable,
1602
+ {
1603
+ href: selectedMarker.locationUrl,
1604
+ className: cn(
1605
+ "transition-all duration-500",
1606
+ "font-medium opacity-75 hover:opacity-100",
1607
+ selectedMarker.locationUrl ? "underline underline-offset-4" : ""
1588
1608
  ),
1589
- typeof selectedMarker.locationLine === "string" ? /* @__PURE__ */ jsx("div", { className: "font-medium", children: selectedMarker.locationLine }) : selectedMarker.locationLine
1590
- ]
1591
- }
1592
- ) : null,
1609
+ children: selectedMarker.locationLine
1610
+ }
1611
+ ) : selectedMarker.locationLine
1612
+ ] }) : null,
1593
1613
  selectedMarker.hoursLine ? /* @__PURE__ */ jsxs("div", { className: "flex flex-row items-center justify-start text-sm gap-2", children: [
1594
1614
  /* @__PURE__ */ jsx(
1595
1615
  DynamicIcon,
1596
1616
  {
1597
1617
  name: "lucide:clock",
1598
1618
  className: "opacity-50",
1599
- size: 12
1619
+ size: 14
1600
1620
  }
1601
1621
  ),
1602
1622
  typeof selectedMarker.hoursLine === "string" ? /* @__PURE__ */ jsx("div", { className: "font-medium", children: selectedMarker.hoursLine }) : selectedMarker.hoursLine
1603
1623
  ] }) : null,
1604
- selectedMarker.markerContentComponent ? /* @__PURE__ */ jsx("div", { className: "text-sm", children: selectedMarker.markerContentComponent }) : null,
1624
+ selectedMarker.markerContentComponent ? /* @__PURE__ */ jsx("div", { className: "relative", children: selectedMarker.markerContentComponent }) : null,
1605
1625
  /* @__PURE__ */ jsx(MarkerActions, { actions: selectedMarker.actions })
1606
1626
  ] })
1607
1627
  ]
@@ -1624,7 +1644,7 @@ function GeoMap({
1624
1644
  "aria-label": "Close cluster details",
1625
1645
  className: "flex size-8 items-center justify-center rounded-full border border-border bg-card text-card-foreground transition hover:bg-muted hover:text-foreground absolute top-2 right-2 z-10",
1626
1646
  onClick: clearSelection,
1627
- children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/x" })
1647
+ children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/x", size: 16 })
1628
1648
  }
1629
1649
  ),
1630
1650
  /* @__PURE__ */ jsx("div", { className: "mb-3 flex items-start justify-between gap-3", children: /* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
@@ -1772,10 +1792,10 @@ var ImageSlider = ({
1772
1792
  optixFlowConfig
1773
1793
  }) => {
1774
1794
  const hasImages = images.length > 0;
1775
- const [currentIndex, setCurrentIndex] = React32.useState(
1795
+ const [currentIndex, setCurrentIndex] = React8.useState(
1776
1796
  () => normalizeIndex(startIndex, images.length)
1777
1797
  );
1778
- const handleNext = React32.useCallback(() => {
1798
+ const handleNext = React8.useCallback(() => {
1779
1799
  if (!hasImages) return;
1780
1800
  setCurrentIndex((prevIndex) => {
1781
1801
  const nextIndex = prevIndex + 1 >= images.length ? 0 : prevIndex + 1;
@@ -1783,7 +1803,7 @@ var ImageSlider = ({
1783
1803
  return nextIndex;
1784
1804
  });
1785
1805
  }, [hasImages, images.length, onSlideChange]);
1786
- const handlePrevious = React32.useCallback(() => {
1806
+ const handlePrevious = React8.useCallback(() => {
1787
1807
  if (!hasImages) return;
1788
1808
  setCurrentIndex((prevIndex) => {
1789
1809
  const nextIndex = prevIndex - 1 < 0 ? images.length - 1 : prevIndex - 1;
@@ -1791,11 +1811,11 @@ var ImageSlider = ({
1791
1811
  return nextIndex;
1792
1812
  });
1793
1813
  }, [hasImages, images.length, onSlideChange]);
1794
- React32.useEffect(() => {
1814
+ React8.useEffect(() => {
1795
1815
  if (!hasImages) return;
1796
1816
  setCurrentIndex(normalizeIndex(startIndex, images.length));
1797
1817
  }, [startIndex, images.length, hasImages]);
1798
- React32.useEffect(() => {
1818
+ React8.useEffect(() => {
1799
1819
  if (!enableKeyboard || !hasImages) return;
1800
1820
  const handleKeyDown = (event) => {
1801
1821
  if (event.key === "ArrowRight") {
@@ -1809,7 +1829,7 @@ var ImageSlider = ({
1809
1829
  window.removeEventListener("keydown", handleKeyDown);
1810
1830
  };
1811
1831
  }, [enableKeyboard, handleNext, handlePrevious, hasImages]);
1812
- React32.useEffect(() => {
1832
+ React8.useEffect(() => {
1813
1833
  if (!autoplay || images.length < 2) return;
1814
1834
  const interval = window.setInterval(handleNext, autoplayIntervalMs);
1815
1835
  return () => window.clearInterval(interval);
@@ -2101,7 +2121,7 @@ var platformIconMap = {
2101
2121
  dribbble: "cib/dribbble",
2102
2122
  unknown: "icon-park-solid/circular-connection"
2103
2123
  };
2104
- var SocialLinkIcon = React32.forwardRef(
2124
+ var SocialLinkIcon = React8.forwardRef(
2105
2125
  ({
2106
2126
  platformName,
2107
2127
  label,
@@ -2114,13 +2134,13 @@ var SocialLinkIcon = React32.forwardRef(
2114
2134
  ...pressableProps
2115
2135
  }, ref) => {
2116
2136
  const platform = usePlatformFromUrl(href);
2117
- const smartPlatformName = React32.useMemo(() => {
2137
+ const smartPlatformName = React8.useMemo(() => {
2118
2138
  return platform || platformName;
2119
2139
  }, [platform, platformName]);
2120
- const iconName = React32.useMemo(() => {
2140
+ const iconName = React8.useMemo(() => {
2121
2141
  return iconNameOverride || platformIconMap[smartPlatformName];
2122
2142
  }, [iconNameOverride, smartPlatformName]);
2123
- const accessibleLabel = React32.useMemo(() => {
2143
+ const accessibleLabel = React8.useMemo(() => {
2124
2144
  return label || platformName;
2125
2145
  }, [label, platformName]);
2126
2146
  return /* @__PURE__ */ jsx(
@@ -2604,7 +2624,7 @@ function AboutExpandableValues({
2604
2624
  pattern,
2605
2625
  patternOpacity
2606
2626
  }) {
2607
- const [expandedValue, setExpandedValue] = React32.useState(null);
2627
+ const [expandedValue, setExpandedValue] = React8.useState(null);
2608
2628
  const toggleExpand = useCallback((id) => {
2609
2629
  setExpandedValue((prev) => prev === id ? null : id);
2610
2630
  }, []);
@@ -2840,7 +2860,7 @@ function CommunityInitiatives({
2840
2860
  pattern,
2841
2861
  patternOpacity
2842
2862
  }) {
2843
- const [activeCategory, setActiveCategory] = React32.useState(
2863
+ const [activeCategory, setActiveCategory] = React8.useState(
2844
2864
  categories?.[0]?.id || ""
2845
2865
  );
2846
2866
  const currentCategory = categories?.find((category) => category.id === activeCategory) || categories?.[0];
@@ -3104,7 +3124,7 @@ function AboutCultureTabs({
3104
3124
  patternOpacity
3105
3125
  }) {
3106
3126
  const resolvedAspects = aspects ?? [];
3107
- const [activeTab, setActiveTab] = React32.useState(
3127
+ const [activeTab, setActiveTab] = React8.useState(
3108
3128
  resolvedAspects[0]?.id || ""
3109
3129
  );
3110
3130
  const headerItems = useMemo(() => {
@@ -3637,7 +3657,7 @@ function BannerDeliveryCountdown({
3637
3657
  }, [prefixText, timerContent, middleText, deliveryDateContent]);
3638
3658
  return /* @__PURE__ */ jsx(Section, { background, spacing: "none", className: cn("bg-accent text-accent-foreground", className), children: /* @__PURE__ */ jsx("div", { className: cn("container py-2.5", containerClassName), children: /* @__PURE__ */ jsx("div", { className: cn("flex flex-wrap items-center justify-center gap-3 text-sm", contentClassName), children: /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-2", messageClassName), children: [
3639
3659
  iconContent,
3640
- messageParts.length > 0 && /* @__PURE__ */ jsx("span", { children: messageParts.map((part, index) => /* @__PURE__ */ jsxs(React32.Fragment, { children: [
3660
+ messageParts.length > 0 && /* @__PURE__ */ jsx("span", { children: messageParts.map((part, index) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
3641
3661
  index > 0 ? " " : null,
3642
3662
  part
3643
3663
  ] }, index)) })
@@ -4908,8 +4928,8 @@ var BrandAttribution = ({
4908
4928
  }
4909
4929
  const { prefix = "", anchorText, href, suffix = "" } = options[optionIndex];
4910
4930
  const ContainerEl = variant;
4911
- const [trackedHref, setTrackedHref] = React32.useState(href);
4912
- React32.useEffect(() => {
4931
+ const [trackedHref, setTrackedHref] = React8.useState(href);
4932
+ React8.useEffect(() => {
4913
4933
  setTrackedHref(buildTrackedHref(href));
4914
4934
  }, [href]);
4915
4935
  return /* @__PURE__ */ jsxs(ContainerEl, { className: containerClassName, children: [
@@ -5029,7 +5049,7 @@ function FooterSocialNewsletter({
5029
5049
  patternOpacity,
5030
5050
  optixFlowConfig
5031
5051
  }) {
5032
- const renderForm = React32.useMemo(() => {
5052
+ const renderForm = React8.useMemo(() => {
5033
5053
  if (!formEngineSetup) return null;
5034
5054
  const action = {
5035
5055
  variant: "default",
@@ -5318,7 +5338,7 @@ function FooterSimpleCentered({
5318
5338
  ]);
5319
5339
  const bottomLinksContent = useMemo(() => {
5320
5340
  if (!bottomLinks || bottomLinks.length === 0) return null;
5321
- return bottomLinks.map((link, idx) => /* @__PURE__ */ jsx(React32.Fragment, { children: /* @__PURE__ */ jsx(
5341
+ return bottomLinks.map((link, idx) => /* @__PURE__ */ jsx(React8.Fragment, { children: /* @__PURE__ */ jsx(
5322
5342
  Pressable,
5323
5343
  {
5324
5344
  href: link.href,
@@ -6665,7 +6685,7 @@ function FooterNewsletterMinimal({
6665
6685
  buttonAction,
6666
6686
  formSlot
6667
6687
  }) {
6668
- const navLinksContent = React32.useMemo(() => {
6688
+ const navLinksContent = React8.useMemo(() => {
6669
6689
  if (!navLinks || navLinks.length === 0) return null;
6670
6690
  return navLinks.map((item, idx) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
6671
6691
  Pressable,
@@ -6676,7 +6696,7 @@ function FooterNewsletterMinimal({
6676
6696
  }
6677
6697
  ) }, idx));
6678
6698
  }, [navLinks, navLinkClassName]);
6679
- const socialLinksContent = React32.useMemo(() => {
6699
+ const socialLinksContent = React8.useMemo(() => {
6680
6700
  if (!socialLinks || socialLinks.length === 0) return null;
6681
6701
  return socialLinks.map((item, idx) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
6682
6702
  SocialLinkIcon,
@@ -6692,7 +6712,7 @@ function FooterNewsletterMinimal({
6692
6712
  }
6693
6713
  ) }, idx));
6694
6714
  }, [socialLinks, socialLinkClassName]);
6695
- const footerLinksContent = React32.useMemo(() => {
6715
+ const footerLinksContent = React8.useMemo(() => {
6696
6716
  if (!footerLinks || footerLinks.length === 0) return null;
6697
6717
  return footerLinks.map((item) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
6698
6718
  Pressable,
@@ -6706,7 +6726,7 @@ function FooterNewsletterMinimal({
6706
6726
  }
6707
6727
  ) }, item.label));
6708
6728
  }, [footerLinks, footerLinkClassName]);
6709
- const renderForm = React32.useMemo(() => {
6729
+ const renderForm = React8.useMemo(() => {
6710
6730
  if (formSlot) return formSlot;
6711
6731
  if (!formEngineSetup) return null;
6712
6732
  const defaultButtonAction = {
@@ -9346,7 +9366,7 @@ function AboutInteractiveTabs({
9346
9366
  pattern,
9347
9367
  patternOpacity
9348
9368
  }) {
9349
- const [activeTab, setActiveTab] = React32.useState(tabs?.[0]?.id ?? "");
9369
+ const [activeTab, setActiveTab] = React8.useState(tabs?.[0]?.id ?? "");
9350
9370
  const activeContent = useMemo(() => {
9351
9371
  return tabs?.find((tab) => tab.id === activeTab)?.content;
9352
9372
  }, [tabs, activeTab]);
@@ -9495,7 +9515,7 @@ function AboutMissionDualImage({
9495
9515
  pattern,
9496
9516
  patternOpacity
9497
9517
  }) {
9498
- const renderTextContent = React32.useCallback(
9518
+ const renderTextContent = React8.useCallback(
9499
9519
  (primaryHeading, primaryClassName, secondaryContent, secondaryClassname) => {
9500
9520
  if (!primaryHeading || !secondaryContent) {
9501
9521
  return null;
@@ -12185,7 +12205,7 @@ function CtaAppDownloadNewsletter({
12185
12205
  buttonAction,
12186
12206
  formSlot
12187
12207
  }) {
12188
- const renderForm = React32.useMemo(() => {
12208
+ const renderForm = React8.useMemo(() => {
12189
12209
  if (formSlot) return formSlot;
12190
12210
  if (!formEngineSetup) return null;
12191
12211
  const defaultButtonAction = {
@@ -12218,7 +12238,7 @@ function CtaAppDownloadNewsletter({
12218
12238
  }
12219
12239
  );
12220
12240
  }, [formSlot, formEngineSetup, buttonAction, formClassName]);
12221
- const appActionsContent = React32.useMemo(() => {
12241
+ const appActionsContent = React8.useMemo(() => {
12222
12242
  if (appActionsSlot) return appActionsSlot;
12223
12243
  if (!appActions || appActions.length === 0) return null;
12224
12244
  return /* @__PURE__ */ jsx(
@@ -12359,7 +12379,7 @@ function CtaNewsletterFeatures({
12359
12379
  formEngineSetup,
12360
12380
  buttonAction
12361
12381
  }) {
12362
- const renderForm = React32.useMemo(() => {
12382
+ const renderForm = React8.useMemo(() => {
12363
12383
  if (formSlot) return formSlot;
12364
12384
  if (!formEngineSetup) return null;
12365
12385
  const defaultButtonAction = {
@@ -12392,7 +12412,7 @@ function CtaNewsletterFeatures({
12392
12412
  }
12393
12413
  );
12394
12414
  }, [formSlot, formEngineSetup, buttonAction, formClassName]);
12395
- const featuresContent = React32.useMemo(() => {
12415
+ const featuresContent = React8.useMemo(() => {
12396
12416
  if (featuresSlot) return featuresSlot;
12397
12417
  if (!features || features.length === 0) return null;
12398
12418
  return /* @__PURE__ */ jsx(
@@ -13164,7 +13184,7 @@ function CtaVideoBackgroundHero({
13164
13184
  pattern,
13165
13185
  patternOpacity
13166
13186
  }) {
13167
- const [isModalOpen, setIsModalOpen] = React32.useState(false);
13187
+ const [isModalOpen, setIsModalOpen] = React8.useState(false);
13168
13188
  const handleOpenModal = () => {
13169
13189
  setIsModalOpen(true);
13170
13190
  onModalOpen?.();
@@ -13352,7 +13372,7 @@ function CtaWorkflowTabs({
13352
13372
  patternOpacity,
13353
13373
  optixFlowConfig
13354
13374
  }) {
13355
- const [activeTab, setActiveTab] = React32.useState(tabs?.[0]?.id || "");
13375
+ const [activeTab, setActiveTab] = React8.useState(tabs?.[0]?.id || "");
13356
13376
  const activeTabData = tabs?.find((tab) => tab.id === activeTab) || tabs?.[0];
13357
13377
  const actionsContent = useMemo(() => {
13358
13378
  if (actionsSlot) return actionsSlot;
@@ -13960,7 +13980,7 @@ function ContactFloatingBanner({
13960
13980
  pattern,
13961
13981
  patternOpacity
13962
13982
  }) {
13963
- const actionsContent = React32.useMemo(() => {
13983
+ const actionsContent = React8.useMemo(() => {
13964
13984
  if (actionsSlot) return actionsSlot;
13965
13985
  if (actions && actions.length > 0) {
13966
13986
  return actions.map((action, index) => {
@@ -14304,7 +14324,7 @@ function ContactCard({
14304
14324
  pattern,
14305
14325
  patternOpacity
14306
14326
  }) {
14307
- const contactOptionsContent = React32.useMemo(() => {
14327
+ const contactOptionsContent = React8.useMemo(() => {
14308
14328
  if (contactOptionsSlot) return contactOptionsSlot;
14309
14329
  if (contactOptions && contactOptions.length > 0) {
14310
14330
  return contactOptions.map((option, key) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4", children: [
@@ -14328,7 +14348,7 @@ function ContactCard({
14328
14348
  }
14329
14349
  return null;
14330
14350
  }, [contactOptionsSlot, contactOptions]);
14331
- const socialLinksContent = React32.useMemo(() => {
14351
+ const socialLinksContent = React8.useMemo(() => {
14332
14352
  if (socialLinksSlot) return socialLinksSlot;
14333
14353
  if (socialLinks && socialLinks.length > 0) {
14334
14354
  return socialLinks.map((social, key) => /* @__PURE__ */ jsx(
@@ -15235,7 +15255,7 @@ function ContactDark({
15235
15255
  pattern,
15236
15256
  patternOpacity
15237
15257
  }) {
15238
- const contactOptionsContent = React32.useMemo(() => {
15258
+ const contactOptionsContent = React8.useMemo(() => {
15239
15259
  if (contactOptionsSlot) return contactOptionsSlot;
15240
15260
  if (contactOptions && contactOptions.length > 0) {
15241
15261
  return contactOptions.map((option, key) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
@@ -15259,7 +15279,7 @@ function ContactDark({
15259
15279
  }
15260
15280
  return null;
15261
15281
  }, [contactOptionsSlot, contactOptions]);
15262
- const socialLinksContent = React32.useMemo(() => {
15282
+ const socialLinksContent = React8.useMemo(() => {
15263
15283
  if (socialLinksSlot) return socialLinksSlot;
15264
15284
  if (socialLinks && socialLinks.length > 0) {
15265
15285
  return socialLinks.map((social, key) => /* @__PURE__ */ jsx(
@@ -16554,7 +16574,7 @@ function ContactImage({
16554
16574
  description,
16555
16575
  descriptionClassName
16556
16576
  ]);
16557
- const contactOverlaysContent = React32.useMemo(() => {
16577
+ const contactOverlaysContent = React8.useMemo(() => {
16558
16578
  if (contactOverlaysSlot) return contactOverlaysSlot;
16559
16579
  if (!contactOverlays || contactOverlays.length === 0) return null;
16560
16580
  return /* @__PURE__ */ jsx("div", { className: cn("flex flex-col gap-3", contactOverlaysClassName), children: contactOverlays.map((item, index) => {
@@ -17186,7 +17206,7 @@ function ContactMap({
17186
17206
  mapProps,
17187
17207
  optixFlowConfig
17188
17208
  }) {
17189
- const renderForm = React32.useMemo(() => {
17209
+ const renderForm = React8.useMemo(() => {
17190
17210
  if (!formEngineSetup) {
17191
17211
  return null;
17192
17212
  }
@@ -17199,7 +17219,7 @@ function ContactMap({
17199
17219
  }
17200
17220
  );
17201
17221
  }, [formEngineSetup]);
17202
- const resolvedMapProps = React32.useMemo(() => {
17222
+ const resolvedMapProps = React8.useMemo(() => {
17203
17223
  return {
17204
17224
  mapWrapperClassName: "h-[420px] md:h-[520px]",
17205
17225
  panelPosition: "top-left",
@@ -17794,13 +17814,13 @@ function ContactPhotography({
17794
17814
  }
17795
17815
  return items;
17796
17816
  }, [heading, headingClassName, description, descriptionClassName]);
17797
- const desktopOrder = React32.useMemo(() => {
17817
+ const desktopOrder = React8.useMemo(() => {
17798
17818
  return directionConfig.desktop === "mediaRight" ? "lg:flex-row" : "lg:flex-row-reverse";
17799
17819
  }, [directionConfig?.desktop]);
17800
- const mobileOrder = React32.useMemo(() => {
17820
+ const mobileOrder = React8.useMemo(() => {
17801
17821
  return directionConfig?.mobile === "mediaTop" ? "flex-col" : "flex-col-reverse";
17802
17822
  }, [directionConfig?.mobile]);
17803
- const imageArea = React32.useMemo(() => {
17823
+ const imageArea = React8.useMemo(() => {
17804
17824
  if (!image?.src) {
17805
17825
  return null;
17806
17826
  }
@@ -19724,16 +19744,16 @@ function CarouselAnimatedSections({
19724
19744
  pattern = "diagonalCrossBasic",
19725
19745
  patternOpacity = 0.033
19726
19746
  }) {
19727
- const [currentIndex, setCurrentIndex] = React32.useState(0);
19728
- const [direction, setDirection] = React32.useState(0);
19729
- const [isAnimating, setIsAnimating] = React32.useState(false);
19730
- const goToNext = React32.useCallback(() => {
19747
+ const [currentIndex, setCurrentIndex] = React8.useState(0);
19748
+ const [direction, setDirection] = React8.useState(0);
19749
+ const [isAnimating, setIsAnimating] = React8.useState(false);
19750
+ const goToNext = React8.useCallback(() => {
19731
19751
  if (isAnimating || currentIndex >= (sections?.length ?? 0) - 1) return;
19732
19752
  setIsAnimating(true);
19733
19753
  setDirection(1);
19734
19754
  setCurrentIndex((prev) => prev + 1);
19735
19755
  }, [currentIndex, isAnimating, sections?.length]);
19736
- const goToPrev = React32.useCallback(() => {
19756
+ const goToPrev = React8.useCallback(() => {
19737
19757
  if (isAnimating || currentIndex <= 0) return;
19738
19758
  setIsAnimating(true);
19739
19759
  setDirection(-1);
@@ -19745,7 +19765,7 @@ function CarouselAnimatedSections({
19745
19765
  setDirection(index > currentIndex ? 1 : -1);
19746
19766
  setCurrentIndex(index);
19747
19767
  };
19748
- React32.useEffect(() => {
19768
+ React8.useEffect(() => {
19749
19769
  const handleKeyDown = (e) => {
19750
19770
  if (e.key === "ArrowDown" || e.key === "ArrowRight") {
19751
19771
  goToNext();
@@ -19771,7 +19791,7 @@ function CarouselAnimatedSections({
19771
19791
  })
19772
19792
  };
19773
19793
  const currentSection = sections?.[currentIndex];
19774
- const actionElements = React32.useMemo(() => {
19794
+ const actionElements = React8.useMemo(() => {
19775
19795
  if (actionsSlot) return actionsSlot;
19776
19796
  if (actions && actions.length > 0) {
19777
19797
  return actions.map((action, index) => /* @__PURE__ */ jsxs(
@@ -20019,11 +20039,11 @@ function CarouselAutoProgressSlides({
20019
20039
  pattern,
20020
20040
  patternOpacity
20021
20041
  }) {
20022
- const [currentIndex, setCurrentIndex] = React32.useState(0);
20042
+ const [currentIndex, setCurrentIndex] = React8.useState(0);
20023
20043
  const progress = useMotionValue(100);
20024
- const [direction, setDirection] = React32.useState(1);
20044
+ const [direction, setDirection] = React8.useState(1);
20025
20045
  const clipPath = useMotionTemplate`inset(0 ${progress}% 0 0 round 10px)`;
20026
- React32.useEffect(() => {
20046
+ React8.useEffect(() => {
20027
20047
  const interval = setInterval(() => {
20028
20048
  const currentProgress = progress.get();
20029
20049
  if (currentProgress > 0) {
@@ -20202,22 +20222,22 @@ function CarouselAutoProgressSlides({
20202
20222
  );
20203
20223
  }
20204
20224
  function useDotButton(emblaApi) {
20205
- const [selectedIndex, setSelectedIndex] = React32.useState(0);
20206
- const [scrollSnaps, setScrollSnaps] = React32.useState([]);
20207
- const onDotButtonClick = React32.useCallback(
20225
+ const [selectedIndex, setSelectedIndex] = React8.useState(0);
20226
+ const [scrollSnaps, setScrollSnaps] = React8.useState([]);
20227
+ const onDotButtonClick = React8.useCallback(
20208
20228
  (index) => {
20209
20229
  if (!emblaApi) return;
20210
20230
  emblaApi.scrollTo(index);
20211
20231
  },
20212
20232
  [emblaApi]
20213
20233
  );
20214
- const onInit = React32.useCallback((api) => {
20234
+ const onInit = React8.useCallback((api) => {
20215
20235
  setScrollSnaps(api.scrollSnapList());
20216
20236
  }, []);
20217
- const onSelect = React32.useCallback((api) => {
20237
+ const onSelect = React8.useCallback((api) => {
20218
20238
  setSelectedIndex(api.selectedScrollSnap());
20219
20239
  }, []);
20220
- React32.useEffect(() => {
20240
+ React8.useEffect(() => {
20221
20241
  if (!emblaApi) return;
20222
20242
  onInit(emblaApi);
20223
20243
  onSelect(emblaApi);
@@ -20226,8 +20246,8 @@ function useDotButton(emblaApi) {
20226
20246
  return { selectedIndex, scrollSnaps, onDotButtonClick };
20227
20247
  }
20228
20248
  function useAutoplay(emblaApi) {
20229
- const [autoplayIsPlaying, setAutoplayIsPlaying] = React32.useState(false);
20230
- const onAutoplayButtonClick = React32.useCallback(
20249
+ const [autoplayIsPlaying, setAutoplayIsPlaying] = React8.useState(false);
20250
+ const onAutoplayButtonClick = React8.useCallback(
20231
20251
  (callback) => {
20232
20252
  const autoplay = emblaApi?.plugins()?.autoplay;
20233
20253
  if (!autoplay) return;
@@ -20237,13 +20257,13 @@ function useAutoplay(emblaApi) {
20237
20257
  },
20238
20258
  [emblaApi]
20239
20259
  );
20240
- const toggleAutoplay = React32.useCallback(() => {
20260
+ const toggleAutoplay = React8.useCallback(() => {
20241
20261
  const autoplay = emblaApi?.plugins()?.autoplay;
20242
20262
  if (!autoplay) return;
20243
20263
  const playOrStop = autoplay.isPlaying() ? autoplay.stop : autoplay.play;
20244
20264
  playOrStop();
20245
20265
  }, [emblaApi]);
20246
- React32.useEffect(() => {
20266
+ React8.useEffect(() => {
20247
20267
  const autoplay = emblaApi?.plugins()?.autoplay;
20248
20268
  if (!autoplay) return;
20249
20269
  setAutoplayIsPlaying(autoplay.isPlaying());
@@ -20252,11 +20272,11 @@ function useAutoplay(emblaApi) {
20252
20272
  return { autoplayIsPlaying, toggleAutoplay, onAutoplayButtonClick };
20253
20273
  }
20254
20274
  function useAutoplayProgress(emblaApi, progressNode) {
20255
- const [showAutoplayProgress, setShowAutoplayProgress] = React32.useState(false);
20256
- const animationName = React32.useRef("");
20257
- const timeoutId = React32.useRef(0);
20258
- const rafId = React32.useRef(0);
20259
- const startProgress = React32.useCallback(
20275
+ const [showAutoplayProgress, setShowAutoplayProgress] = React8.useState(false);
20276
+ const animationName = React8.useRef("");
20277
+ const timeoutId = React8.useRef(0);
20278
+ const rafId = React8.useRef(0);
20279
+ const startProgress = React8.useCallback(
20260
20280
  (timeUntilNext) => {
20261
20281
  const node = progressNode.current;
20262
20282
  if (!node || timeUntilNext === null) return;
@@ -20276,12 +20296,12 @@ function useAutoplayProgress(emblaApi, progressNode) {
20276
20296
  },
20277
20297
  [progressNode]
20278
20298
  );
20279
- React32.useEffect(() => {
20299
+ React8.useEffect(() => {
20280
20300
  const autoplay = emblaApi?.plugins()?.autoplay;
20281
20301
  if (!autoplay) return;
20282
20302
  emblaApi.on("autoplay:timerset", () => startProgress(autoplay.timeUntilNext())).on("autoplay:timerstopped", () => setShowAutoplayProgress(false));
20283
20303
  }, [emblaApi, startProgress]);
20284
- React32.useEffect(() => {
20304
+ React8.useEffect(() => {
20285
20305
  return () => {
20286
20306
  cancelAnimationFrame(rafId.current);
20287
20307
  clearTimeout(timeoutId.current);
@@ -20308,7 +20328,7 @@ function CarouselAutoplayProgress({
20308
20328
  pattern,
20309
20329
  patternOpacity
20310
20330
  }) {
20311
- const progressNode = React32.useRef(null);
20331
+ const progressNode = React8.useRef(null);
20312
20332
  const [emblaRef, emblaApi] = useEmblaCarousel(options, [
20313
20333
  Autoplay({ playOnInit: true, delay: autoplayDelay })
20314
20334
  ]);
@@ -20431,20 +20451,20 @@ function CarouselFeatureBadge({
20431
20451
  containerMaxWidth = "2xl"
20432
20452
  }) {
20433
20453
  const [emblaRef, emblaApi] = useEmblaCarousel();
20434
- const [canScrollPrev, setCanScrollPrev] = React32.useState(false);
20435
- const [canScrollNext, setCanScrollNext] = React32.useState(false);
20436
- const scrollPrev = React32.useCallback(() => {
20454
+ const [canScrollPrev, setCanScrollPrev] = React8.useState(false);
20455
+ const [canScrollNext, setCanScrollNext] = React8.useState(false);
20456
+ const scrollPrev = React8.useCallback(() => {
20437
20457
  emblaApi?.scrollPrev();
20438
20458
  }, [emblaApi]);
20439
- const scrollNext = React32.useCallback(() => {
20459
+ const scrollNext = React8.useCallback(() => {
20440
20460
  emblaApi?.scrollNext();
20441
20461
  }, [emblaApi]);
20442
- const onSelect = React32.useCallback(() => {
20462
+ const onSelect = React8.useCallback(() => {
20443
20463
  if (!emblaApi) return;
20444
20464
  setCanScrollPrev(emblaApi.canScrollPrev());
20445
20465
  setCanScrollNext(emblaApi.canScrollNext());
20446
20466
  }, [emblaApi]);
20447
- React32.useEffect(() => {
20467
+ React8.useEffect(() => {
20448
20468
  if (!emblaApi) return;
20449
20469
  onSelect();
20450
20470
  emblaApi.on("reInit", onSelect);
@@ -20564,10 +20584,10 @@ function CarouselFullscreenScrollFx({
20564
20584
  pattern = "diagonalCrossBasic",
20565
20585
  patternOpacity = 0.033
20566
20586
  }) {
20567
- const containerRef = React32.useRef(null);
20568
- const scrollContainerRef = React32.useRef(null);
20569
- const [activeIndex, setActiveIndex] = React32.useState(0);
20570
- React32.useEffect(() => {
20587
+ const containerRef = React8.useRef(null);
20588
+ const scrollContainerRef = React8.useRef(null);
20589
+ const [activeIndex, setActiveIndex] = React8.useState(0);
20590
+ React8.useEffect(() => {
20571
20591
  const scrollContainer = scrollContainerRef.current;
20572
20592
  if (!scrollContainer || !slides?.length) return;
20573
20593
  const handleScroll = () => {
@@ -20579,7 +20599,7 @@ function CarouselFullscreenScrollFx({
20579
20599
  scrollContainer.addEventListener("scroll", handleScroll);
20580
20600
  return () => scrollContainer.removeEventListener("scroll", handleScroll);
20581
20601
  }, [slides]);
20582
- const scrollToSlide = React32.useCallback((index) => {
20602
+ const scrollToSlide = React8.useCallback((index) => {
20583
20603
  const scrollContainer = scrollContainerRef.current;
20584
20604
  if (!scrollContainer) return;
20585
20605
  const slideHeight = scrollContainer.clientHeight;
@@ -20662,7 +20682,7 @@ function CarouselFullscreenScrollFx({
20662
20682
  className: "flex h-screen flex-col snap-y snap-mandatory overflow-x-hidden overflow-y-auto scroll-smooth",
20663
20683
  style: { scrollbarWidth: "none", msOverflowStyle: "none" },
20664
20684
  children: slidesSlot ? slidesSlot : slides?.map((slide, index) => {
20665
- const renderActions = React32.useMemo(() => {
20685
+ const renderActions = React8.useMemo(() => {
20666
20686
  if (!slide.actions || slide.actions.length === 0) return null;
20667
20687
  return slide.actions.map((action, actionIndex) => {
20668
20688
  const {
@@ -20795,25 +20815,25 @@ function CarouselGalleryThumbnails({
20795
20815
  patternOpacity,
20796
20816
  slideMediaBrightness = "100"
20797
20817
  }) {
20798
- const [currentIndex, setCurrentIndex] = React32.useState(0);
20799
- const prevSlide = React32.useCallback(() => {
20818
+ const [currentIndex, setCurrentIndex] = React8.useState(0);
20819
+ const prevSlide = React8.useCallback(() => {
20800
20820
  setCurrentIndex(
20801
20821
  (prev) => prev === 0 ? (images?.length ?? 0) - 1 : prev - 1
20802
20822
  );
20803
20823
  }, [images?.length]);
20804
- const nextSlide = React32.useCallback(() => {
20824
+ const nextSlide = React8.useCallback(() => {
20805
20825
  setCurrentIndex(
20806
20826
  (prev) => prev === (images?.length ?? 0) - 1 ? 0 : prev + 1
20807
20827
  );
20808
20828
  }, [images?.length]);
20809
- React32.useEffect(() => {
20829
+ React8.useEffect(() => {
20810
20830
  if (!autoPlay) return;
20811
20831
  const interval = setInterval(() => {
20812
20832
  nextSlide();
20813
20833
  }, autoPlayInterval);
20814
20834
  return () => clearInterval(interval);
20815
20835
  }, [currentIndex, autoPlay, autoPlayInterval, nextSlide]);
20816
- React32.useEffect(() => {
20836
+ React8.useEffect(() => {
20817
20837
  const handleKeyDown = (e) => {
20818
20838
  if (e.key === "ArrowRight") {
20819
20839
  nextSlide();
@@ -20958,9 +20978,9 @@ function CarouselHorizontalCards({
20958
20978
  pattern,
20959
20979
  patternOpacity
20960
20980
  }) {
20961
- const carouselRef = React32.useRef(null);
20962
- const [isAtStart, setIsAtStart] = React32.useState(true);
20963
- const [isAtEnd, setIsAtEnd] = React32.useState(false);
20981
+ const carouselRef = React8.useRef(null);
20982
+ const [isAtStart, setIsAtStart] = React8.useState(true);
20983
+ const [isAtEnd, setIsAtEnd] = React8.useState(false);
20964
20984
  const scrollLeft = () => {
20965
20985
  if (carouselRef.current) {
20966
20986
  carouselRef.current.scrollBy({ left: -300, behavior: "smooth" });
@@ -20971,7 +20991,7 @@ function CarouselHorizontalCards({
20971
20991
  carouselRef.current.scrollBy({ left: 300, behavior: "smooth" });
20972
20992
  }
20973
20993
  };
20974
- React32.useEffect(() => {
20994
+ React8.useEffect(() => {
20975
20995
  const checkScrollPosition = () => {
20976
20996
  if (carouselRef.current) {
20977
20997
  const { scrollLeft: scrollLeft2, scrollWidth, clientWidth } = carouselRef.current;
@@ -21171,13 +21191,13 @@ function CarouselImageHero({
21171
21191
  pattern,
21172
21192
  patternOpacity
21173
21193
  }) {
21174
- const hasImages = React32.useMemo(() => {
21194
+ const hasImages = React8.useMemo(() => {
21175
21195
  return images && images?.length > 0;
21176
21196
  }, [images]);
21177
- const [currentImageIndex, setCurrentImageIndex] = React32.useState(0);
21197
+ const [currentImageIndex, setCurrentImageIndex] = React8.useState(0);
21178
21198
  const progress = useMotionValue(100);
21179
21199
  const clipPath = useMotionTemplate`inset(0 ${progress}% 0 0 round 10px)`;
21180
- React32.useEffect(() => {
21200
+ React8.useEffect(() => {
21181
21201
  if (!hasImages || (images?.length ?? 0) < 2) return;
21182
21202
  const tickInterval = autoPlayInterval / 100;
21183
21203
  const interval = setInterval(() => {
@@ -21199,19 +21219,19 @@ function CarouselImageHero({
21199
21219
  autoPlayInterval,
21200
21220
  hasImages
21201
21221
  ]);
21202
- const handlePrev = React32.useCallback(() => {
21222
+ const handlePrev = React8.useCallback(() => {
21203
21223
  progress.set(100);
21204
21224
  setCurrentImageIndex(
21205
21225
  (prevIndex) => prevIndex > 0 ? prevIndex - 1 : (images?.length ?? 1) - 1
21206
21226
  );
21207
21227
  }, [images?.length, progress]);
21208
- const handleNext = React32.useCallback(() => {
21228
+ const handleNext = React8.useCallback(() => {
21209
21229
  progress.set(100);
21210
21230
  setCurrentImageIndex(
21211
21231
  (prevIndex) => prevIndex < (images?.length ?? 0) - 1 ? prevIndex + 1 : 0
21212
21232
  );
21213
21233
  }, [images?.length, progress]);
21214
- const handleDotClick = React32.useCallback(
21234
+ const handleDotClick = React8.useCallback(
21215
21235
  (index) => {
21216
21236
  progress.set(100);
21217
21237
  setCurrentImageIndex(index);
@@ -21388,8 +21408,8 @@ function CarouselMultiStepShowcase({
21388
21408
  pattern,
21389
21409
  patternOpacity
21390
21410
  }) {
21391
- const [activeStep, setActiveStep] = React32.useState(0);
21392
- const [direction, setDirection] = React32.useState(0);
21411
+ const [activeStep, setActiveStep] = React8.useState(0);
21412
+ const [direction, setDirection] = React8.useState(0);
21393
21413
  const goToStep = (index) => {
21394
21414
  setDirection(index > activeStep ? 1 : -1);
21395
21415
  setActiveStep(index);
@@ -21681,9 +21701,9 @@ function CarouselPortfolioHero({
21681
21701
  patternOpacity,
21682
21702
  slideMediaBrightness = "50"
21683
21703
  }) {
21684
- const [currentIndex, setCurrentIndex] = React32.useState(0);
21685
- const intervalRef = React32.useRef(null);
21686
- const resetInterval = React32.useCallback(() => {
21704
+ const [currentIndex, setCurrentIndex] = React8.useState(0);
21705
+ const intervalRef = React8.useRef(null);
21706
+ const resetInterval = React8.useCallback(() => {
21687
21707
  if (intervalRef.current) {
21688
21708
  clearInterval(intervalRef.current);
21689
21709
  }
@@ -21691,17 +21711,17 @@ function CarouselPortfolioHero({
21691
21711
  setCurrentIndex((prevIndex) => (prevIndex + 1) % (slides?.length ?? 1));
21692
21712
  }, autoPlayInterval);
21693
21713
  }, [autoPlayInterval, slides?.length]);
21694
- const goToNext = React32.useCallback(() => {
21714
+ const goToNext = React8.useCallback(() => {
21695
21715
  setCurrentIndex((prevIndex) => (prevIndex + 1) % (slides?.length ?? 1));
21696
21716
  resetInterval();
21697
21717
  }, [slides?.length, resetInterval]);
21698
- const goToPrev = React32.useCallback(() => {
21718
+ const goToPrev = React8.useCallback(() => {
21699
21719
  setCurrentIndex(
21700
21720
  (prevIndex) => (prevIndex - 1 + (slides?.length ?? 1)) % (slides?.length ?? 1)
21701
21721
  );
21702
21722
  resetInterval();
21703
21723
  }, [slides?.length, resetInterval]);
21704
- React32.useEffect(() => {
21724
+ React8.useEffect(() => {
21705
21725
  resetInterval();
21706
21726
  return () => {
21707
21727
  if (intervalRef.current) {
@@ -21870,9 +21890,9 @@ function CarouselProductFeatureShowcase({
21870
21890
  pattern,
21871
21891
  patternOpacity
21872
21892
  }) {
21873
- const [activeIndex, setActiveIndex] = React32.useState(0);
21874
- const [activeColorIndex, setActiveColorIndex] = React32.useState(0);
21875
- const [direction, setDirection] = React32.useState(0);
21893
+ const [activeIndex, setActiveIndex] = React8.useState(0);
21894
+ const [activeColorIndex, setActiveColorIndex] = React8.useState(0);
21895
+ const [direction, setDirection] = React8.useState(0);
21876
21896
  const activeFeature = features?.[activeIndex];
21877
21897
  const goToNext = () => {
21878
21898
  setDirection(1);
@@ -22092,9 +22112,9 @@ function CarouselProductFeatureShowcase({
22092
22112
  }
22093
22113
  );
22094
22114
  }
22095
- var ProgressSliderContext = React32.createContext(void 0);
22115
+ var ProgressSliderContext = React8.createContext(void 0);
22096
22116
  function useProgressSliderContext() {
22097
- const context = React32.useContext(ProgressSliderContext);
22117
+ const context = React8.useContext(ProgressSliderContext);
22098
22118
  if (!context) {
22099
22119
  throw new Error(
22100
22120
  "useProgressSliderContext must be used within a ProgressSlider"
@@ -22180,19 +22200,19 @@ function CarouselProgressSlider({
22180
22200
  pattern,
22181
22201
  patternOpacity
22182
22202
  }) {
22183
- const [active, setActive] = React32.useState(slides?.[0]?.id ?? "");
22184
- const [progress, setProgress] = React32.useState(0);
22185
- const [isFastForward, setIsFastForward] = React32.useState(false);
22186
- const [isPaused, setIsPaused] = React32.useState(false);
22187
- const frame = React32.useRef(0);
22188
- const firstFrameTime = React32.useRef(performance.now());
22189
- const targetValue = React32.useRef(null);
22190
- const pausedProgress = React32.useRef(0);
22191
- const sliderValues = React32.useMemo(
22203
+ const [active, setActive] = React8.useState(slides?.[0]?.id ?? "");
22204
+ const [progress, setProgress] = React8.useState(0);
22205
+ const [isFastForward, setIsFastForward] = React8.useState(false);
22206
+ const [isPaused, setIsPaused] = React8.useState(false);
22207
+ const frame = React8.useRef(0);
22208
+ const firstFrameTime = React8.useRef(performance.now());
22209
+ const targetValue = React8.useRef(null);
22210
+ const pausedProgress = React8.useRef(0);
22211
+ const sliderValues = React8.useMemo(
22192
22212
  () => slides?.map((slide) => slide.id),
22193
22213
  [slides]
22194
22214
  );
22195
- React32.useEffect(() => {
22215
+ React8.useEffect(() => {
22196
22216
  if ((sliderValues?.length ?? 0) > 0 && !isPaused) {
22197
22217
  firstFrameTime.current = performance.now();
22198
22218
  if (pausedProgress.current > 0) {
@@ -22358,11 +22378,11 @@ function CarouselScrollingFeatureShowcase({
22358
22378
  patternOpacity,
22359
22379
  patternClassName
22360
22380
  }) {
22361
- const [activeFeature, setActiveFeature] = React32.useState(
22381
+ const [activeFeature, setActiveFeature] = React8.useState(
22362
22382
  features?.[0]?.id ?? ""
22363
22383
  );
22364
- const featureRefs = React32.useRef(/* @__PURE__ */ new Map());
22365
- React32.useEffect(() => {
22384
+ const featureRefs = React8.useRef(/* @__PURE__ */ new Map());
22385
+ React8.useEffect(() => {
22366
22386
  if (!features || features.length === 0) return;
22367
22387
  const observerOptions = {
22368
22388
  root: null,
@@ -23279,9 +23299,9 @@ function FeatureChecklistImage({
23279
23299
  }
23280
23300
  );
23281
23301
  }
23282
- var CarouselContext = React32.createContext(null);
23302
+ var CarouselContext = React8.createContext(null);
23283
23303
  function useCarousel() {
23284
- const context = React32.useContext(CarouselContext);
23304
+ const context = React8.useContext(CarouselContext);
23285
23305
  if (!context) {
23286
23306
  throw new Error("useCarousel must be used within a <Carousel />");
23287
23307
  }
@@ -23303,20 +23323,20 @@ function Carousel({
23303
23323
  },
23304
23324
  plugins
23305
23325
  );
23306
- const [canScrollPrev, setCanScrollPrev] = React32.useState(false);
23307
- const [canScrollNext, setCanScrollNext] = React32.useState(false);
23308
- const onSelect = React32.useCallback((api2) => {
23326
+ const [canScrollPrev, setCanScrollPrev] = React8.useState(false);
23327
+ const [canScrollNext, setCanScrollNext] = React8.useState(false);
23328
+ const onSelect = React8.useCallback((api2) => {
23309
23329
  if (!api2) return;
23310
23330
  setCanScrollPrev(api2.canScrollPrev());
23311
23331
  setCanScrollNext(api2.canScrollNext());
23312
23332
  }, []);
23313
- const scrollPrev = React32.useCallback(() => {
23333
+ const scrollPrev = React8.useCallback(() => {
23314
23334
  api?.scrollPrev();
23315
23335
  }, [api]);
23316
- const scrollNext = React32.useCallback(() => {
23336
+ const scrollNext = React8.useCallback(() => {
23317
23337
  api?.scrollNext();
23318
23338
  }, [api]);
23319
- const handleKeyDown = React32.useCallback(
23339
+ const handleKeyDown = React8.useCallback(
23320
23340
  (event) => {
23321
23341
  if (event.key === "ArrowLeft") {
23322
23342
  event.preventDefault();
@@ -23328,11 +23348,11 @@ function Carousel({
23328
23348
  },
23329
23349
  [scrollPrev, scrollNext]
23330
23350
  );
23331
- React32.useEffect(() => {
23351
+ React8.useEffect(() => {
23332
23352
  if (!api || !setApi) return;
23333
23353
  setApi(api);
23334
23354
  }, [api, setApi]);
23335
- React32.useEffect(() => {
23355
+ React8.useEffect(() => {
23336
23356
  if (!api) return;
23337
23357
  onSelect(api);
23338
23358
  api.on("reInit", onSelect);
@@ -24230,7 +24250,7 @@ function FeatureThreeColumnValues({
24230
24250
  patternOpacity,
24231
24251
  patternClassName
24232
24252
  }) {
24233
- const renderValueIcon = React32.useCallback(
24253
+ const renderValueIcon = React8.useCallback(
24234
24254
  (value) => {
24235
24255
  if (value.icon) return value.icon;
24236
24256
  if (value.iconName)
@@ -24721,7 +24741,7 @@ function FeatureTabbedContentImage({
24721
24741
  patternOpacity,
24722
24742
  patternClassName
24723
24743
  }) {
24724
- const renderFeatures = React32.useCallback(
24744
+ const renderFeatures = React8.useCallback(
24725
24745
  (slide) => {
24726
24746
  if (slide.featuresSlot) return slide.featuresSlot;
24727
24747
  if (!slide.features || slide.features.length === 0) return null;
@@ -24745,7 +24765,7 @@ function FeatureTabbedContentImage({
24745
24765
  },
24746
24766
  []
24747
24767
  );
24748
- const renderActions = React32.useCallback(
24768
+ const renderActions = React8.useCallback(
24749
24769
  (slide) => {
24750
24770
  if (slide.actionsSlot) return slide.actionsSlot;
24751
24771
  if (!slide.actions || slide.actions.length === 0) return null;
@@ -24788,7 +24808,7 @@ function FeatureTabbedContentImage({
24788
24808
  },
24789
24809
  []
24790
24810
  );
24791
- const renderImage = React32.useCallback(
24811
+ const renderImage = React8.useCallback(
24792
24812
  (slide) => {
24793
24813
  if (slide.imageSlot) return slide.imageSlot;
24794
24814
  if (!slide.image) return null;
@@ -25024,7 +25044,7 @@ function FeatureUtilityCardsGrid({
25024
25044
  }
25025
25045
  );
25026
25046
  }, [learnMoreSlot, learnMoreAction, background]);
25027
- const renderUtilityImage = React32.useCallback(
25047
+ const renderUtilityImage = React8.useCallback(
25028
25048
  (utility) => {
25029
25049
  if (utility.imageSlot) return utility.imageSlot;
25030
25050
  if (utility.image) {
@@ -25202,7 +25222,7 @@ function FeatureBentoUtilities({
25202
25222
  patternOpacity,
25203
25223
  patternClassName
25204
25224
  }) {
25205
- const renderCard = React32.useCallback(
25225
+ const renderCard = React8.useCallback(
25206
25226
  (card, index) => {
25207
25227
  const hasImage = card.imageSrc || card.imageSlot;
25208
25228
  const cardClasses = cn(
@@ -25258,7 +25278,7 @@ function FeatureBentoUtilities({
25258
25278
  },
25259
25279
  [optixFlowConfig]
25260
25280
  );
25261
- const renderColumn = React32.useCallback(
25281
+ const renderColumn = React8.useCallback(
25262
25282
  (cards, slot) => {
25263
25283
  if (slot) return slot;
25264
25284
  if (!cards || cards.length === 0) return null;
@@ -26494,7 +26514,7 @@ function FeatureBentoImageGrid({
26494
26514
  patternOpacity,
26495
26515
  patternClassName
26496
26516
  }) {
26497
- const renderItemIcon = React32.useCallback(
26517
+ const renderItemIcon = React8.useCallback(
26498
26518
  (item) => {
26499
26519
  if (item.icon) return item.icon;
26500
26520
  if (item.iconName) return /* @__PURE__ */ jsx(DynamicIcon, { name: item.iconName, size: 24 });
@@ -26502,7 +26522,7 @@ function FeatureBentoImageGrid({
26502
26522
  },
26503
26523
  []
26504
26524
  );
26505
- const renderItemImage = React32.useCallback(
26525
+ const renderItemImage = React8.useCallback(
26506
26526
  (item, imageClassName) => {
26507
26527
  if (item.imageSlot) return item.imageSlot;
26508
26528
  if (item.imageSrc) {
@@ -26521,7 +26541,7 @@ function FeatureBentoImageGrid({
26521
26541
  },
26522
26542
  [optixFlowConfig]
26523
26543
  );
26524
- const renderLargeCard = React32.useCallback(
26544
+ const renderLargeCard = React8.useCallback(
26525
26545
  (item) => {
26526
26546
  const iconContent = renderItemIcon(item);
26527
26547
  const hasIconBadgeContent = iconContent || item.iconBadge;
@@ -26600,7 +26620,7 @@ function FeatureBentoImageGrid({
26600
26620
  },
26601
26621
  [largeCardClassName, renderItemImage, renderItemIcon]
26602
26622
  );
26603
- const renderSmallCard = React32.useCallback(
26623
+ const renderSmallCard = React8.useCallback(
26604
26624
  (item, index) => {
26605
26625
  const iconContent = renderItemIcon(item);
26606
26626
  const hasIconBadgeContent = iconContent || item.iconBadge;
@@ -27250,7 +27270,7 @@ function FeatureAccordionImage({
27250
27270
  patternOpacity,
27251
27271
  patternClassName
27252
27272
  }) {
27253
- const [activeItem, setActiveItem] = React32.useState(defaultValue || "item-0");
27273
+ const [activeItem, setActiveItem] = React8.useState(defaultValue || "item-0");
27254
27274
  const activeIndex = parseInt(activeItem.replace("item-", ""), 10) || 0;
27255
27275
  const accordionItemsContent = useMemo(() => {
27256
27276
  if (itemsSlot) return itemsSlot;
@@ -27423,7 +27443,7 @@ function FeatureCapabilitiesGrid({
27423
27443
  patternOpacity,
27424
27444
  patternClassName
27425
27445
  }) {
27426
- const renderItemIcon = React32.useCallback(
27446
+ const renderItemIcon = React8.useCallback(
27427
27447
  (item) => {
27428
27448
  if (item.icon) return item.icon;
27429
27449
  if (item.iconName) return /* @__PURE__ */ jsx(DynamicIcon, { name: item.iconName, size: 20 });
@@ -27575,7 +27595,7 @@ function FeatureCapabilitiesGrid({
27575
27595
  }
27576
27596
  );
27577
27597
  }
27578
- var TeamMemberBackgroundImageCard = React32.forwardRef(
27598
+ var TeamMemberBackgroundImageCard = React8.forwardRef(
27579
27599
  ({ className, imageUrl, imageAlt, children, optixFlowConfig, background, ...props }, ref) => {
27580
27600
  return /* @__PURE__ */ jsxs(
27581
27601
  "div",
@@ -27623,7 +27643,7 @@ function TeamMediaShowcase({
27623
27643
  actionClassName,
27624
27644
  optixFlowConfig
27625
27645
  }) {
27626
- const renderItems = React32.useMemo(() => {
27646
+ const renderItems = React8.useMemo(() => {
27627
27647
  if (itemsSlot) return itemsSlot;
27628
27648
  return items.map((member, idx) => {
27629
27649
  const imageAlt = member.imageAlt || (member.name && typeof member.name === "string" && member.name.trim() !== "" ? member.name : `member-${idx}`);
@@ -27721,7 +27741,7 @@ function TeamSimpleGrid({
27721
27741
  memberNameClassName,
27722
27742
  memberRoleClassName
27723
27743
  }) {
27724
- const renderMembers = React32.useMemo(() => {
27744
+ const renderMembers = React8.useMemo(() => {
27725
27745
  if (membersSlot) return membersSlot;
27726
27746
  if (!members || members.length === 0) return null;
27727
27747
  return members.map((member) => /* @__PURE__ */ jsxs(
@@ -27883,7 +27903,7 @@ function FooterBrandLinksContact({
27883
27903
  linkListClassName,
27884
27904
  linkItemClassName
27885
27905
  ]);
27886
- const contactItemsContent = React32.useMemo(() => {
27906
+ const contactItemsContent = React8.useMemo(() => {
27887
27907
  if (!contactItems || contactItems.length === 0) return null;
27888
27908
  return contactItems.map((item, idx) => /* @__PURE__ */ jsxs(
27889
27909
  "div",
@@ -28241,7 +28261,7 @@ function TeamSocialGrid({
28241
28261
  memberRoleClassName,
28242
28262
  socialLinksClassName
28243
28263
  }) {
28244
- const renderMembers = React32.useMemo(() => {
28264
+ const renderMembers = React8.useMemo(() => {
28245
28265
  if (membersSlot) return membersSlot;
28246
28266
  if (!members || members.length === 0) return null;
28247
28267
  return members.map((member) => /* @__PURE__ */ jsxs(
@@ -28377,7 +28397,7 @@ function TeamGradientCards({
28377
28397
  memberRoleClassName,
28378
28398
  socialLinksClassName
28379
28399
  }) {
28380
- const renderMembers = React32.useMemo(() => {
28400
+ const renderMembers = React8.useMemo(() => {
28381
28401
  if (membersSlot) return membersSlot;
28382
28402
  if (!members || members.length === 0) return null;
28383
28403
  return members.map((member) => /* @__PURE__ */ jsx(
@@ -28533,7 +28553,7 @@ function TeamBioBadges({
28533
28553
  memberBioClassName,
28534
28554
  socialLinksClassName
28535
28555
  }) {
28536
- const renderMembers = React32.useMemo(() => {
28556
+ const renderMembers = React8.useMemo(() => {
28537
28557
  if (membersSlot) return membersSlot;
28538
28558
  if (!members || members.length === 0) return null;
28539
28559
  return members.map((member) => /* @__PURE__ */ jsxs(
@@ -28710,7 +28730,7 @@ function TeamExpertiseCards({
28710
28730
  ctaDescriptionClassName,
28711
28731
  ctaButtonClassName
28712
28732
  }) {
28713
- const renderMembers = React32.useMemo(() => {
28733
+ const renderMembers = React8.useMemo(() => {
28714
28734
  if (membersSlot) return membersSlot;
28715
28735
  if (!members || members.length === 0) return null;
28716
28736
  return members.map((member) => /* @__PURE__ */ jsx(
@@ -28787,7 +28807,7 @@ function TeamExpertiseCards({
28787
28807
  member.id
28788
28808
  ));
28789
28809
  }, [membersSlot, members, background, memberCardClassName, avatarClassName, memberNameClassName, memberRoleClassName, departmentBadgeClassName, memberDescriptionClassName, expertiseClassName]);
28790
- const renderCta = React32.useMemo(() => {
28810
+ const renderCta = React8.useMemo(() => {
28791
28811
  if (ctaSlot) return ctaSlot;
28792
28812
  return /* @__PURE__ */ jsxs(
28793
28813
  "div",
@@ -28903,7 +28923,7 @@ function TeamCompactGrid({
28903
28923
  ctaDescriptionClassName,
28904
28924
  ctaButtonClassName
28905
28925
  }) {
28906
- const renderMembers = React32.useMemo(() => {
28926
+ const renderMembers = React8.useMemo(() => {
28907
28927
  if (membersSlot) return membersSlot;
28908
28928
  if (!members || members.length === 0) return null;
28909
28929
  return members.map((member) => /* @__PURE__ */ jsxs(
@@ -28958,7 +28978,7 @@ function TeamCompactGrid({
28958
28978
  member.id
28959
28979
  ));
28960
28980
  }, [membersSlot, members, background, memberCardClassName, avatarClassName, memberNameClassName, memberRoleClassName, departmentBadgeClassName]);
28961
- const renderCta = React32.useMemo(() => {
28981
+ const renderCta = React8.useMemo(() => {
28962
28982
  if (ctaSlot) return ctaSlot;
28963
28983
  return /* @__PURE__ */ jsxs(
28964
28984
  "div",
@@ -29062,7 +29082,7 @@ function TeamInvestorShowcase({
29062
29082
  investorCompanyClassName,
29063
29083
  optixFlowConfig
29064
29084
  }) {
29065
- const renderInvestors = React32.useMemo(() => {
29085
+ const renderInvestors = React8.useMemo(() => {
29066
29086
  if (investorsSlot) return investorsSlot;
29067
29087
  if (!investors || investors.length === 0) return null;
29068
29088
  return investors.map((investor) => /* @__PURE__ */ jsxs("div", { className: investorCardClassName, children: [
@@ -29136,7 +29156,7 @@ function TeamCarouselExperience({
29136
29156
  memberRoleClassName,
29137
29157
  optixFlowConfig
29138
29158
  }) {
29139
- const renderMembers = React32.useMemo(() => {
29159
+ const renderMembers = React8.useMemo(() => {
29140
29160
  if (membersSlot) return membersSlot;
29141
29161
  if (!members || members.length === 0) return null;
29142
29162
  return members.map((member, idx) => /* @__PURE__ */ jsx(CarouselItem, { className: "max-w-72", children: /* @__PURE__ */ jsxs(
@@ -29286,20 +29306,20 @@ function TeamFilterableSearch({
29286
29306
  emptyStateClassName,
29287
29307
  emptyStateMessage
29288
29308
  }) {
29289
- const [searchQuery, setSearchQuery] = React32.useState("");
29290
- const [selectedDepartment, setSelectedDepartment] = React32.useState("All");
29291
- const departments = React32.useMemo(() => {
29309
+ const [searchQuery, setSearchQuery] = React8.useState("");
29310
+ const [selectedDepartment, setSelectedDepartment] = React8.useState("All");
29311
+ const departments = React8.useMemo(() => {
29292
29312
  const depts = new Set(members.map((m) => m.department));
29293
29313
  return ["All", ...Array.from(depts)];
29294
29314
  }, [members]);
29295
- const filteredMembers = React32.useMemo(() => {
29315
+ const filteredMembers = React8.useMemo(() => {
29296
29316
  return members.filter((member) => {
29297
29317
  const matchesSearch = searchQuery === "" || member.name.toLowerCase().includes(searchQuery.toLowerCase()) || member.role.toLowerCase().includes(searchQuery.toLowerCase()) || member.description.toLowerCase().includes(searchQuery.toLowerCase());
29298
29318
  const matchesDepartment = selectedDepartment === "All" || member.department === selectedDepartment;
29299
29319
  return matchesSearch && matchesDepartment;
29300
29320
  });
29301
29321
  }, [members, searchQuery, selectedDepartment]);
29302
- const renderFilters = React32.useMemo(() => {
29322
+ const renderFilters = React8.useMemo(() => {
29303
29323
  if (filtersSlot) return filtersSlot;
29304
29324
  return /* @__PURE__ */ jsxs(
29305
29325
  "div",
@@ -29354,7 +29374,7 @@ function TeamFilterableSearch({
29354
29374
  selectedDepartment,
29355
29375
  filterButtonClassName
29356
29376
  ]);
29357
- const renderMembers = React32.useMemo(() => {
29377
+ const renderMembers = React8.useMemo(() => {
29358
29378
  if (membersSlot) return membersSlot;
29359
29379
  return filteredMembers.map((member) => /* @__PURE__ */ jsx(
29360
29380
  "div",
@@ -29541,7 +29561,7 @@ function TeamCompactCta({
29541
29561
  memberRoleClassName,
29542
29562
  ctaClassName
29543
29563
  }) {
29544
- const renderMembers = React32.useMemo(() => {
29564
+ const renderMembers = React8.useMemo(() => {
29545
29565
  if (membersSlot) return membersSlot;
29546
29566
  if (!members || members.length === 0) return null;
29547
29567
  return members.map((member) => /* @__PURE__ */ jsxs(
@@ -29569,7 +29589,7 @@ function TeamCompactCta({
29569
29589
  member.id
29570
29590
  ));
29571
29591
  }, [membersSlot, members, memberCardClassName, avatarClassName, memberNameClassName, memberRoleClassName, background]);
29572
- const renderCta = React32.useMemo(() => {
29592
+ const renderCta = React8.useMemo(() => {
29573
29593
  if (ctaSlot) return ctaSlot;
29574
29594
  return /* @__PURE__ */ jsx(
29575
29595
  Pressable,
@@ -29660,7 +29680,7 @@ function TeamHoverHighlight({
29660
29680
  socialLinksClassName,
29661
29681
  optixFlowConfig
29662
29682
  }) {
29663
- const renderMembers = React32.useMemo(() => {
29683
+ const renderMembers = React8.useMemo(() => {
29664
29684
  if (membersSlot) return membersSlot;
29665
29685
  if (!members || members.length === 0) return null;
29666
29686
  return members.map((member) => /* @__PURE__ */ jsxs(
@@ -29809,7 +29829,7 @@ function TeamSocialCards({
29809
29829
  socialLinksClassName,
29810
29830
  optixFlowConfig
29811
29831
  }) {
29812
- const renderMembers = React32.useMemo(() => {
29832
+ const renderMembers = React8.useMemo(() => {
29813
29833
  if (membersSlot) return membersSlot;
29814
29834
  if (!members || members.length === 0) return null;
29815
29835
  return members.map((member) => /* @__PURE__ */ jsx(
@@ -29979,7 +29999,7 @@ function TeamGridAnimated({
29979
29999
  "hsl(var(--muted))",
29980
30000
  "hsl(var(--warning)/0.2)"
29981
30001
  ];
29982
- const renderMembers = React32.useMemo(() => {
30002
+ const renderMembers = React8.useMemo(() => {
29983
30003
  if (membersSlot) return membersSlot;
29984
30004
  if (!members || members.length === 0) return null;
29985
30005
  return members.map((member, index) => /* @__PURE__ */ jsxs(
@@ -30079,7 +30099,7 @@ function TeamGridAnimated({
30079
30099
  memberDesignationClassName,
30080
30100
  socialLinksClassName
30081
30101
  ]);
30082
- const renderSocialLinksMain = React32.useMemo(() => {
30102
+ const renderSocialLinksMain = React8.useMemo(() => {
30083
30103
  if (socialLinksMainSlot) return socialLinksMainSlot;
30084
30104
  if (!socialLinksMain || socialLinksMain.length === 0) return null;
30085
30105
  return /* @__PURE__ */ jsxs("div", { className: "flex w-full items-center justify-center gap-4 py-4 md:justify-center", children: [
@@ -30196,7 +30216,7 @@ function TeamDepartmentSections({
30196
30216
  memberRoleClassName,
30197
30217
  optixFlowConfig
30198
30218
  }) {
30199
- const renderDepartments = React32.useMemo(() => {
30219
+ const renderDepartments = React8.useMemo(() => {
30200
30220
  if (departmentsSlot) return departmentsSlot;
30201
30221
  if (!departments || departments.length === 0) return null;
30202
30222
  return departments.map((department, deptIndex) => /* @__PURE__ */ jsxs(
@@ -30300,7 +30320,7 @@ function TeamAlternatingBios({
30300
30320
  socialLinksClassName,
30301
30321
  optixFlowConfig
30302
30322
  }) {
30303
- const renderMembers = React32.useMemo(() => {
30323
+ const renderMembers = React8.useMemo(() => {
30304
30324
  if (membersSlot) return membersSlot;
30305
30325
  if (!members || members.length === 0) return null;
30306
30326
  return members.map((member, index) => /* @__PURE__ */ jsxs(
@@ -30482,7 +30502,7 @@ function TeamAvatarSocial({
30482
30502
  memberRoleClassName,
30483
30503
  socialLinksClassName
30484
30504
  }) {
30485
- const renderMembers = React32.useMemo(() => {
30505
+ const renderMembers = React8.useMemo(() => {
30486
30506
  if (membersSlot) return membersSlot;
30487
30507
  if (!members || members.length === 0) return null;
30488
30508
  return members.map((member) => /* @__PURE__ */ jsxs(
@@ -30625,7 +30645,7 @@ function TeamHoverOverlay({
30625
30645
  socialLinksClassName,
30626
30646
  optixFlowConfig
30627
30647
  }) {
30628
- const renderMembers = React32.useMemo(() => {
30648
+ const renderMembers = React8.useMemo(() => {
30629
30649
  if (membersSlot) return membersSlot;
30630
30650
  if (!members || members.length === 0) return null;
30631
30651
  return members.map((member) => /* @__PURE__ */ jsx(
@@ -30801,14 +30821,14 @@ function TeamRoleFilter({
30801
30821
  socialLinksClassName,
30802
30822
  optixFlowConfig
30803
30823
  }) {
30804
- const [selectedRole, setSelectedRole] = React32.useState("All");
30805
- const filteredMembers = React32.useMemo(() => {
30824
+ const [selectedRole, setSelectedRole] = React8.useState("All");
30825
+ const filteredMembers = React8.useMemo(() => {
30806
30826
  if (!members) return [];
30807
30827
  return members.filter(
30808
30828
  (member) => selectedRole === "All" ? true : member.role === selectedRole
30809
30829
  );
30810
30830
  }, [members, selectedRole]);
30811
- const renderRoles = React32.useMemo(() => {
30831
+ const renderRoles = React8.useMemo(() => {
30812
30832
  if (rolesSlot) return rolesSlot;
30813
30833
  if (!roles) return null;
30814
30834
  return /* @__PURE__ */ jsx(
@@ -30832,7 +30852,7 @@ function TeamRoleFilter({
30832
30852
  }
30833
30853
  );
30834
30854
  }, [rolesSlot, filtersClassName, roles, selectedRole, filterButtonClassName]);
30835
- const renderMembers = React32.useMemo(() => {
30855
+ const renderMembers = React8.useMemo(() => {
30836
30856
  if (membersSlot) return membersSlot;
30837
30857
  return filteredMembers.map((member) => /* @__PURE__ */ jsx(
30838
30858
  Card,
@@ -30992,7 +31012,7 @@ function TeamContactCards({
30992
31012
  socialLinksClassName,
30993
31013
  optixFlowConfig
30994
31014
  }) {
30995
- const getStatusColor = React32.useCallback((status) => {
31015
+ const getStatusColor = React8.useCallback((status) => {
30996
31016
  switch (status) {
30997
31017
  case "active":
30998
31018
  return "bg-success";
@@ -31002,7 +31022,7 @@ function TeamContactCards({
31002
31022
  return getTextColor(background, "muted");
31003
31023
  }
31004
31024
  }, [background]);
31005
- const renderMembers = React32.useMemo(() => {
31025
+ const renderMembers = React8.useMemo(() => {
31006
31026
  if (membersSlot) return membersSlot;
31007
31027
  if (!members || members.length === 0) return null;
31008
31028
  return members.map((member) => /* @__PURE__ */ jsx(Card, { className: cn("p-0", memberCardClassName), children: /* @__PURE__ */ jsxs(CardContent, { className: "p-6!", children: [
@@ -31209,7 +31229,7 @@ function TeamLargeImages({
31209
31229
  socialLinksClassName,
31210
31230
  optixFlowConfig
31211
31231
  }) {
31212
- const renderMembers = React32.useMemo(() => {
31232
+ const renderMembers = React8.useMemo(() => {
31213
31233
  if (membersSlot) return membersSlot;
31214
31234
  if (!members || members.length === 0) return null;
31215
31235
  return members.map((member) => /* @__PURE__ */ jsxs(
@@ -31384,7 +31404,7 @@ function TeamSkillBadges({
31384
31404
  socialLinksClassName,
31385
31405
  optixFlowConfig
31386
31406
  }) {
31387
- const renderMembers = React32.useMemo(() => {
31407
+ const renderMembers = React8.useMemo(() => {
31388
31408
  if (membersSlot) return membersSlot;
31389
31409
  if (!members || members.length === 0) return null;
31390
31410
  return members.map((member) => /* @__PURE__ */ jsx(
@@ -31574,7 +31594,7 @@ function TeamTestimonialStats({
31574
31594
  socialLinksClassName,
31575
31595
  optixFlowConfig
31576
31596
  }) {
31577
- const renderMembers = React32.useMemo(() => {
31597
+ const renderMembers = React8.useMemo(() => {
31578
31598
  if (membersSlot) return membersSlot;
31579
31599
  if (!members || members.length === 0) return null;
31580
31600
  return members.map((member) => /* @__PURE__ */ jsx(
@@ -35718,7 +35738,7 @@ function BlogGridAuthorCardsComponent({
35718
35738
  pattern,
35719
35739
  patternOpacity
35720
35740
  }) {
35721
- const viewAllActionContent = React32.useMemo(() => {
35741
+ const viewAllActionContent = React8.useMemo(() => {
35722
35742
  if (viewAllSlot) return viewAllSlot;
35723
35743
  if (!viewAllAction) return null;
35724
35744
  const {
@@ -35743,7 +35763,7 @@ function BlogGridAuthorCardsComponent({
35743
35763
  }
35744
35764
  );
35745
35765
  }, [viewAllSlot, viewAllAction]);
35746
- const postsContent = React32.useMemo(() => {
35766
+ const postsContent = React8.useMemo(() => {
35747
35767
  if (postsSlot) return postsSlot;
35748
35768
  if (!posts || posts.length === 0) return null;
35749
35769
  return posts.map((post) => {
@@ -35855,7 +35875,7 @@ function BlogCardsTaglineCta({
35855
35875
  pattern,
35856
35876
  patternOpacity
35857
35877
  }) {
35858
- const ctaActionContent = React32.useMemo(() => {
35878
+ const ctaActionContent = React8.useMemo(() => {
35859
35879
  if (ctaSlot) return ctaSlot;
35860
35880
  if (!ctaAction) return null;
35861
35881
  const {
@@ -35883,7 +35903,7 @@ function BlogCardsTaglineCta({
35883
35903
  }
35884
35904
  );
35885
35905
  }, [ctaSlot, ctaAction, ctaClassName]);
35886
- const postsContent = React32.useMemo(() => {
35906
+ const postsContent = React8.useMemo(() => {
35887
35907
  if (postsSlot) return postsSlot;
35888
35908
  if (!posts || posts.length === 0) return null;
35889
35909
  return posts.map((post) => {
@@ -36029,7 +36049,7 @@ function BlogCardsReadTime({
36029
36049
  pattern,
36030
36050
  patternOpacity
36031
36051
  }) {
36032
- const renderedViewAllAction = React32.useMemo(() => {
36052
+ const renderedViewAllAction = React8.useMemo(() => {
36033
36053
  if (viewAllSlot) return viewAllSlot;
36034
36054
  if (!viewAllAction) return null;
36035
36055
  const {
@@ -36046,7 +36066,7 @@ function BlogCardsReadTime({
36046
36066
  iconAfter
36047
36067
  ] }) });
36048
36068
  }, [viewAllSlot, viewAllAction]);
36049
- const renderedPosts = React32.useMemo(() => {
36069
+ const renderedPosts = React8.useMemo(() => {
36050
36070
  if (postsSlot) return postsSlot;
36051
36071
  if (!posts || posts.length === 0) return null;
36052
36072
  return posts.map((post) => {
@@ -36183,7 +36203,7 @@ function BlogCategoryOverlay({
36183
36203
  pattern,
36184
36204
  patternOpacity
36185
36205
  }) {
36186
- const viewAllActionContent = React32.useMemo(() => {
36206
+ const viewAllActionContent = React8.useMemo(() => {
36187
36207
  if (viewAllSlot) return viewAllSlot;
36188
36208
  if (!viewAllAction) return null;
36189
36209
  const {
@@ -36211,7 +36231,7 @@ function BlogCategoryOverlay({
36211
36231
  }
36212
36232
  );
36213
36233
  }, [viewAllSlot, viewAllAction, viewAllClassName]);
36214
- const postsContent = React32.useMemo(() => {
36234
+ const postsContent = React8.useMemo(() => {
36215
36235
  if (postsSlot) return postsSlot;
36216
36236
  if (!posts || posts.length === 0) return null;
36217
36237
  return posts.map((post) => {
@@ -36359,7 +36379,7 @@ function BlogFeaturedPopular({
36359
36379
  }) {
36360
36380
  const featuredPost = posts?.[0];
36361
36381
  const popularPosts = posts?.slice(1);
36362
- const renderedFeaturedPost = React32.useMemo(() => {
36382
+ const renderedFeaturedPost = React8.useMemo(() => {
36363
36383
  if (featuredSlot) return featuredSlot;
36364
36384
  if (!featuredPost) return null;
36365
36385
  const postHref = featuredPost.href || featuredPost.url || featuredPost.link;
@@ -36411,7 +36431,7 @@ function BlogFeaturedPopular({
36411
36431
  featuredContentClassName,
36412
36432
  optixFlowConfig
36413
36433
  ]);
36414
- const renderedPopularPosts = React32.useMemo(() => {
36434
+ const renderedPopularPosts = React8.useMemo(() => {
36415
36435
  if (postsSlot) return postsSlot;
36416
36436
  if (!popularPosts || popularPosts.length === 0) return null;
36417
36437
  return popularPosts.map((post) => {
@@ -36528,7 +36548,7 @@ function BlogRelatedArticles({
36528
36548
  pattern,
36529
36549
  patternOpacity
36530
36550
  }) {
36531
- const renderedSeeAllAction = React32.useMemo(() => {
36551
+ const renderedSeeAllAction = React8.useMemo(() => {
36532
36552
  if (seeAllSlot) return seeAllSlot;
36533
36553
  if (!seeAllAction) return null;
36534
36554
  const {
@@ -36557,7 +36577,7 @@ function BlogRelatedArticles({
36557
36577
  }
36558
36578
  );
36559
36579
  }, [seeAllSlot, seeAllAction, seeAllClassName]);
36560
- const renderedArticles = React32.useMemo(() => {
36580
+ const renderedArticles = React8.useMemo(() => {
36561
36581
  if (articlesSlot) return articlesSlot;
36562
36582
  if (!articles || articles.length === 0) return null;
36563
36583
  return articles.map((item) => {
@@ -36850,7 +36870,7 @@ function BlogHorizontalCards({
36850
36870
  pattern,
36851
36871
  patternOpacity
36852
36872
  }) {
36853
- const ctaContent = React32.useMemo(() => {
36873
+ const ctaContent = React8.useMemo(() => {
36854
36874
  if (ctaSlot) return ctaSlot;
36855
36875
  if (!ctaAction) return null;
36856
36876
  const {
@@ -36875,7 +36895,7 @@ function BlogHorizontalCards({
36875
36895
  }
36876
36896
  );
36877
36897
  }, [ctaSlot, ctaAction]);
36878
- const postsContent = React32.useMemo(() => {
36898
+ const postsContent = React8.useMemo(() => {
36879
36899
  if (postsSlot) return postsSlot;
36880
36900
  if (!posts || posts.length === 0) return null;
36881
36901
  return posts.map((post) => {
@@ -37097,7 +37117,7 @@ function Label({
37097
37117
  );
37098
37118
  }
37099
37119
  var POSTS_PER_PAGE = 6;
37100
- var BlogCard = React32.memo(function BlogCard2({
37120
+ var BlogCard = React8.memo(function BlogCard2({
37101
37121
  post,
37102
37122
  optixFlowConfig,
37103
37123
  className
@@ -37136,7 +37156,7 @@ var BlogCard = React32.memo(function BlogCard2({
37136
37156
  ] })
37137
37157
  ] }) });
37138
37158
  });
37139
- var FilterForm = React32.memo(function FilterForm2({
37159
+ var FilterForm = React8.memo(function FilterForm2({
37140
37160
  categories,
37141
37161
  selectedCategories,
37142
37162
  onCategoryChange,
@@ -37169,7 +37189,7 @@ var FilterForm = React32.memo(function FilterForm2({
37169
37189
  }
37170
37190
  );
37171
37191
  });
37172
- var BreadcrumbBlog = React32.memo(function BreadcrumbBlog2({
37192
+ var BreadcrumbBlog = React8.memo(function BreadcrumbBlog2({
37173
37193
  breadcrumb
37174
37194
  }) {
37175
37195
  return /* @__PURE__ */ jsx(Breadcrumb, { children: /* @__PURE__ */ jsx(BreadcrumbList, { children: breadcrumb.map((item, i) => {
@@ -37251,12 +37271,12 @@ function BlogFilteredResultsComponent({
37251
37271
  }, [posts, selectedCategories]);
37252
37272
  const postsToDisplay = filteredPosts.length > 0 ? filteredPosts : posts || [];
37253
37273
  const hasMore = visibleCount < postsToDisplay.length;
37254
- const breadcrumbContent = React32.useMemo(() => {
37274
+ const breadcrumbContent = React8.useMemo(() => {
37255
37275
  if (breadcrumbSlot) return breadcrumbSlot;
37256
37276
  if (!breadcrumb || breadcrumb.length === 0) return null;
37257
37277
  return /* @__PURE__ */ jsx(BreadcrumbBlog, { breadcrumb });
37258
37278
  }, [breadcrumbSlot, breadcrumb]);
37259
- const primaryPostContent = React32.useMemo(() => {
37279
+ const primaryPostContent = React8.useMemo(() => {
37260
37280
  if (primaryPostSlot) return primaryPostSlot;
37261
37281
  if (!primaryPost) return null;
37262
37282
  return /* @__PURE__ */ jsx(
@@ -37268,7 +37288,7 @@ function BlogFilteredResultsComponent({
37268
37288
  }
37269
37289
  );
37270
37290
  }, [primaryPostSlot, primaryPost, optixFlowConfig, postCardClassName]);
37271
- const categoriesContent = React32.useMemo(() => {
37291
+ const categoriesContent = React8.useMemo(() => {
37272
37292
  if (categoriesSlot) return categoriesSlot;
37273
37293
  if (!categories || categories.length === 0) return null;
37274
37294
  return /* @__PURE__ */ jsx(
@@ -37287,7 +37307,7 @@ function BlogFilteredResultsComponent({
37287
37307
  handleCategoryChange,
37288
37308
  categoriesClassName
37289
37309
  ]);
37290
- const postsContent = React32.useMemo(() => {
37310
+ const postsContent = React8.useMemo(() => {
37291
37311
  if (postsSlot) return postsSlot;
37292
37312
  return postsToDisplay.slice(0, visibleCount).map((post) => {
37293
37313
  const postKey = post.id || String(post.title) || Math.random().toString();
@@ -37308,7 +37328,7 @@ function BlogFilteredResultsComponent({
37308
37328
  optixFlowConfig,
37309
37329
  postCardClassName
37310
37330
  ]);
37311
- const loadMoreContent = React32.useMemo(() => {
37331
+ const loadMoreContent = React8.useMemo(() => {
37312
37332
  if (loadMoreSlot) return loadMoreSlot;
37313
37333
  if (!loadMoreAction || !hasMore) return null;
37314
37334
  const {
@@ -37435,7 +37455,7 @@ function BlogMasonryFeaturedComponent({
37435
37455
  }) {
37436
37456
  const featuredPost = posts?.[0];
37437
37457
  const otherPosts = posts?.slice(1);
37438
- const featuredPostContent = React32.useMemo(() => {
37458
+ const featuredPostContent = React8.useMemo(() => {
37439
37459
  if (featuredSlot) return featuredSlot;
37440
37460
  if (!featuredPost) return null;
37441
37461
  const postHref = featuredPost.href || featuredPost.url || featuredPost.link;
@@ -37485,7 +37505,7 @@ function BlogMasonryFeaturedComponent({
37485
37505
  featuredImageClassName,
37486
37506
  optixFlowConfig
37487
37507
  ]);
37488
- const otherPostsContent = React32.useMemo(() => {
37508
+ const otherPostsContent = React8.useMemo(() => {
37489
37509
  if (postsSlot) return postsSlot;
37490
37510
  if (!otherPosts || otherPosts.length === 0) return null;
37491
37511
  return otherPosts.map((post) => {
@@ -37576,7 +37596,7 @@ function BlogHorizontalTimelineComponent({
37576
37596
  pattern,
37577
37597
  patternOpacity
37578
37598
  }) {
37579
- const renderPosts = React32.useMemo(() => {
37599
+ const renderPosts = React8.useMemo(() => {
37580
37600
  if (postsSlot) return postsSlot;
37581
37601
  if (!posts || posts.length === 0) return null;
37582
37602
  return posts.map((post, index) => {
@@ -37701,7 +37721,7 @@ function BlogGridNinePosts({
37701
37721
  pattern,
37702
37722
  patternOpacity
37703
37723
  }) {
37704
- const renderedCtaAction = React32.useMemo(() => {
37724
+ const renderedCtaAction = React8.useMemo(() => {
37705
37725
  if (ctaSlot) return ctaSlot;
37706
37726
  if (!ctaAction) return null;
37707
37727
  const {
@@ -37726,7 +37746,7 @@ function BlogGridNinePosts({
37726
37746
  }
37727
37747
  );
37728
37748
  }, [ctaSlot, ctaAction]);
37729
- const renderedPosts = React32.useMemo(() => {
37749
+ const renderedPosts = React8.useMemo(() => {
37730
37750
  if (postsSlot) return postsSlot;
37731
37751
  if (!posts || posts.length === 0) return null;
37732
37752
  return posts.map((post) => {
@@ -37824,9 +37844,9 @@ var AppleCarousel = ({
37824
37844
  className,
37825
37845
  containerClassName
37826
37846
  }) => {
37827
- const carouselRef = React32__default.useRef(null);
37828
- const [canScrollLeft, setCanScrollLeft] = React32__default.useState(false);
37829
- const [canScrollRight, setCanScrollRight] = React32__default.useState(true);
37847
+ const carouselRef = React8__default.useRef(null);
37848
+ const [canScrollLeft, setCanScrollLeft] = React8__default.useState(false);
37849
+ const [canScrollRight, setCanScrollRight] = React8__default.useState(true);
37830
37850
  const [currentIndex, setCurrentIndex] = useState(0);
37831
37851
  useEffect(() => {
37832
37852
  if (carouselRef.current) {
@@ -38066,7 +38086,7 @@ function BlogCarouselAppleComponent({
38066
38086
  containerClassName,
38067
38087
  cardClassName
38068
38088
  }) {
38069
- const carouselCards = React32.useMemo(() => {
38089
+ const carouselCards = React8.useMemo(() => {
38070
38090
  if (!posts || posts.length === 0) return [];
38071
38091
  return posts.map(
38072
38092
  (post, idx) => ({
@@ -38078,7 +38098,7 @@ function BlogCarouselAppleComponent({
38078
38098
  })
38079
38099
  );
38080
38100
  }, [posts]);
38081
- const cardElements = React32.useMemo(() => {
38101
+ const cardElements = React8.useMemo(() => {
38082
38102
  if (!posts || posts.length === 0) return [];
38083
38103
  return carouselCards.map((card, index) => {
38084
38104
  const post = posts[index];
@@ -38163,7 +38183,7 @@ function ArticleHeroProseComponent({
38163
38183
  description,
38164
38184
  authorImage
38165
38185
  } = post ?? {};
38166
- const authorContent = React32.useMemo(() => {
38186
+ const authorContent = React8.useMemo(() => {
38167
38187
  if (authorSlot) return authorSlot;
38168
38188
  if (!authorName) return null;
38169
38189
  return /* @__PURE__ */ jsxs(
@@ -38197,7 +38217,7 @@ function ArticleHeroProseComponent({
38197
38217
  dateFormat,
38198
38218
  authorClassName
38199
38219
  ]);
38200
- const heroMediaContent = React32.useMemo(() => {
38220
+ const heroMediaContent = React8.useMemo(() => {
38201
38221
  if (heroMediaSlot) return heroMediaSlot;
38202
38222
  if (!image) return null;
38203
38223
  return /* @__PURE__ */ jsx(
@@ -38303,7 +38323,7 @@ function ArticleSidebarStickyComponent({
38303
38323
  patternOpacity,
38304
38324
  sidebarContent
38305
38325
  }) {
38306
- const backLinkContent = React32.useMemo(() => {
38326
+ const backLinkContent = React8.useMemo(() => {
38307
38327
  if (backLinkSlot) return backLinkSlot;
38308
38328
  if (!backHref && !backText) return null;
38309
38329
  return /* @__PURE__ */ jsxs(
@@ -38321,7 +38341,7 @@ function ArticleSidebarStickyComponent({
38321
38341
  }
38322
38342
  );
38323
38343
  }, [backLinkSlot, backHref, backText, backIcon, backLinkClassName]);
38324
- const renderAuthor = React32.useCallback(
38344
+ const renderAuthor = React8.useCallback(
38325
38345
  (isMobile = false) => {
38326
38346
  if (authorSlot) return authorSlot;
38327
38347
  if (!authorName) return null;
@@ -38353,7 +38373,7 @@ function ArticleSidebarStickyComponent({
38353
38373
  authorClassName
38354
38374
  ]
38355
38375
  );
38356
- const heroMediaContent = React32.useMemo(() => {
38376
+ const heroMediaContent = React8.useMemo(() => {
38357
38377
  if (heroMediaSlot) return heroMediaSlot;
38358
38378
  if (!heroImageSrc) return null;
38359
38379
  return /* @__PURE__ */ jsx(
@@ -38464,10 +38484,10 @@ function ArticleTocSidebarComponent({
38464
38484
  patternOpacity,
38465
38485
  patternClassName
38466
38486
  }) {
38467
- const [activeSection, setActiveSection] = React32.useState(
38487
+ const [activeSection, setActiveSection] = React8.useState(
38468
38488
  sections?.[0]?.id || ""
38469
38489
  );
38470
- React32.useEffect(() => {
38490
+ React8.useEffect(() => {
38471
38491
  if (!enableTocTracking || !sections || sections.length === 0) return;
38472
38492
  const observer = new IntersectionObserver(
38473
38493
  (entries) => {
@@ -38485,12 +38505,12 @@ function ArticleTocSidebarComponent({
38485
38505
  });
38486
38506
  return () => observer.disconnect();
38487
38507
  }, [sections, enableTocTracking]);
38488
- const categoryContent = React32.useMemo(() => {
38508
+ const categoryContent = React8.useMemo(() => {
38489
38509
  if (categorySlot) return categorySlot;
38490
38510
  if (!category) return null;
38491
38511
  return /* @__PURE__ */ jsx(Badge, { children: category });
38492
38512
  }, [categorySlot, category]);
38493
- const authorContent = React32.useMemo(() => {
38513
+ const authorContent = React8.useMemo(() => {
38494
38514
  if (authorSlot) return authorSlot;
38495
38515
  if (!authorName) return null;
38496
38516
  return /* @__PURE__ */ jsxs("div", { className: cn("mt-6 flex items-center gap-4", authorClassName), children: [
@@ -38525,7 +38545,7 @@ function ArticleTocSidebarComponent({
38525
38545
  readTime,
38526
38546
  authorClassName
38527
38547
  ]);
38528
- const heroMediaContent = React32.useMemo(() => {
38548
+ const heroMediaContent = React8.useMemo(() => {
38529
38549
  if (heroMediaSlot) return heroMediaSlot;
38530
38550
  if (!heroImageSrc) return null;
38531
38551
  return /* @__PURE__ */ jsx(
@@ -38547,7 +38567,7 @@ function ArticleTocSidebarComponent({
38547
38567
  heroImageClassName,
38548
38568
  optixFlowConfig
38549
38569
  ]);
38550
- const tocContent = React32.useMemo(() => {
38570
+ const tocContent = React8.useMemo(() => {
38551
38571
  if (tocSlot) return tocSlot;
38552
38572
  if (!sections || sections.length === 0) return null;
38553
38573
  return /* @__PURE__ */ jsxs("div", { className: cn("rounded-lg border p-4", tocClassName), children: [
@@ -38555,7 +38575,7 @@ function ArticleTocSidebarComponent({
38555
38575
  /* @__PURE__ */ jsx("nav", { className: "space-y-2", children: sections.map((section) => {
38556
38576
  const isActive = activeSection === section.id;
38557
38577
  if (renderSectionLink) {
38558
- return /* @__PURE__ */ jsx(React32.Fragment, { children: renderSectionLink(section, isActive) }, section.id);
38578
+ return /* @__PURE__ */ jsx(React8.Fragment, { children: renderSectionLink(section, isActive) }, section.id);
38559
38579
  }
38560
38580
  return /* @__PURE__ */ jsx(
38561
38581
  Pressable,
@@ -38572,7 +38592,7 @@ function ArticleTocSidebarComponent({
38572
38592
  }) })
38573
38593
  ] });
38574
38594
  }, [tocSlot, sections, activeSection, renderSectionLink, tocClassName]);
38575
- const ctaContent = React32.useMemo(() => {
38595
+ const ctaContent = React8.useMemo(() => {
38576
38596
  if (ctaSlot) return ctaSlot;
38577
38597
  if (!ctaTitle && !ctaDescription && (!ctaActions || ctaActions.length === 0))
38578
38598
  return null;
@@ -38686,11 +38706,11 @@ function ArticleBreadcrumbSocialComponent({
38686
38706
  patternOpacity,
38687
38707
  patternClassName
38688
38708
  }) {
38689
- const [activeSection, setActiveSection] = React32.useState(
38709
+ const [activeSection, setActiveSection] = React8.useState(
38690
38710
  sections?.[0]?.id || ""
38691
38711
  );
38692
- const [showBackToTop, setShowBackToTop] = React32.useState(false);
38693
- React32.useEffect(() => {
38712
+ const [showBackToTop, setShowBackToTop] = React8.useState(false);
38713
+ React8.useEffect(() => {
38694
38714
  if (!enableTocTracking || !sections || sections.length === 0) return;
38695
38715
  const observer = new IntersectionObserver(
38696
38716
  (entries) => {
@@ -38708,7 +38728,7 @@ function ArticleBreadcrumbSocialComponent({
38708
38728
  });
38709
38729
  return () => observer.disconnect();
38710
38730
  }, [sections, enableTocTracking]);
38711
- React32.useEffect(() => {
38731
+ React8.useEffect(() => {
38712
38732
  if (!enableBackToTop) return;
38713
38733
  const handleScroll = () => {
38714
38734
  setShowBackToTop(window.scrollY > 400);
@@ -38716,15 +38736,15 @@ function ArticleBreadcrumbSocialComponent({
38716
38736
  window.addEventListener("scroll", handleScroll);
38717
38737
  return () => window.removeEventListener("scroll", handleScroll);
38718
38738
  }, [enableBackToTop]);
38719
- const scrollToTop = React32.useCallback(() => {
38739
+ const scrollToTop = React8.useCallback(() => {
38720
38740
  window.scrollTo({ top: 0, behavior: "smooth" });
38721
38741
  }, []);
38722
- const breadcrumbsContent = React32.useMemo(() => {
38742
+ const breadcrumbsContent = React8.useMemo(() => {
38723
38743
  if (breadcrumbsSlot) return breadcrumbsSlot;
38724
38744
  if (!breadcrumbs || breadcrumbs.length === 0) return null;
38725
38745
  return /* @__PURE__ */ jsx(Breadcrumb, { className: cn("mb-8", breadcrumbClassName), children: /* @__PURE__ */ jsxs(BreadcrumbList, { children: [
38726
38746
  /* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: "#", children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/home", size: 16 }) }) }) }),
38727
- breadcrumbs.map((crumb, index) => /* @__PURE__ */ jsxs(React32.Fragment, { children: [
38747
+ breadcrumbs.map((crumb, index) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
38728
38748
  /* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
38729
38749
  /* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: crumb.href, children: crumb.label }) }) })
38730
38750
  ] }, index)),
@@ -38734,7 +38754,7 @@ function ArticleBreadcrumbSocialComponent({
38734
38754
  ] })
38735
38755
  ] }) });
38736
38756
  }, [breadcrumbsSlot, breadcrumbs, currentPage, breadcrumbClassName]);
38737
- const authorContent = React32.useMemo(() => {
38757
+ const authorContent = React8.useMemo(() => {
38738
38758
  if (authorSlot) return authorSlot;
38739
38759
  if (!author) return null;
38740
38760
  return /* @__PURE__ */ jsxs(
@@ -38757,7 +38777,7 @@ function ArticleBreadcrumbSocialComponent({
38757
38777
  }
38758
38778
  );
38759
38779
  }, [authorSlot, author, publishDate, readTime, authorClassName]);
38760
- const heroMediaContent = React32.useMemo(() => {
38780
+ const heroMediaContent = React8.useMemo(() => {
38761
38781
  if (heroMediaSlot) return heroMediaSlot;
38762
38782
  if (!heroImageSrc) return null;
38763
38783
  return /* @__PURE__ */ jsx(
@@ -38779,7 +38799,7 @@ function ArticleBreadcrumbSocialComponent({
38779
38799
  heroImageClassName,
38780
38800
  optixFlowConfig
38781
38801
  ]);
38782
- const tocContent = React32.useMemo(() => {
38802
+ const tocContent = React8.useMemo(() => {
38783
38803
  if (tocSlot) return tocSlot;
38784
38804
  if (!sections || sections.length === 0) return null;
38785
38805
  return /* @__PURE__ */ jsxs("div", { className: cn("rounded-lg border p-4", tocClassName), children: [
@@ -38787,7 +38807,7 @@ function ArticleBreadcrumbSocialComponent({
38787
38807
  /* @__PURE__ */ jsx("nav", { className: "space-y-2", children: sections.map((section) => {
38788
38808
  const isActive = activeSection === section.id;
38789
38809
  if (renderSectionLink) {
38790
- return /* @__PURE__ */ jsx(React32.Fragment, { children: renderSectionLink(section, isActive) }, section.id);
38810
+ return /* @__PURE__ */ jsx(React8.Fragment, { children: renderSectionLink(section, isActive) }, section.id);
38791
38811
  }
38792
38812
  return /* @__PURE__ */ jsx(
38793
38813
  Pressable,
@@ -38894,11 +38914,11 @@ function ArticleCompactTocComponent({
38894
38914
  patternOpacity,
38895
38915
  patternClassName
38896
38916
  }) {
38897
- const [activeSection, setActiveSection] = React32.useState(
38917
+ const [activeSection, setActiveSection] = React8.useState(
38898
38918
  sections?.[0]?.id || ""
38899
38919
  );
38900
- const [isTocOpen, setIsTocOpen] = React32.useState(false);
38901
- React32.useEffect(() => {
38920
+ const [isTocOpen, setIsTocOpen] = React8.useState(false);
38921
+ React8.useEffect(() => {
38902
38922
  if (!enableTocTracking) return;
38903
38923
  const observer = new IntersectionObserver(
38904
38924
  (entries) => {
@@ -38916,12 +38936,12 @@ function ArticleCompactTocComponent({
38916
38936
  });
38917
38937
  return () => observer.disconnect();
38918
38938
  }, [sections, enableTocTracking]);
38919
- const breadcrumbsContent = React32.useMemo(() => {
38939
+ const breadcrumbsContent = React8.useMemo(() => {
38920
38940
  if (breadcrumbsSlot) return breadcrumbsSlot;
38921
38941
  if (!breadcrumbs && !currentPage) return null;
38922
38942
  return /* @__PURE__ */ jsx(Breadcrumb, { className: cn("mb-6 md:mb-20", breadcrumbClassName), children: /* @__PURE__ */ jsxs(BreadcrumbList, { children: [
38923
38943
  /* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: "#", children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/home", size: 16 }) }) }) }),
38924
- breadcrumbs?.map((crumb, index) => /* @__PURE__ */ jsxs(React32.Fragment, { children: [
38944
+ breadcrumbs?.map((crumb, index) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
38925
38945
  /* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
38926
38946
  /* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: crumb.href, children: crumb.label }) }) })
38927
38947
  ] }, index)),
@@ -38929,13 +38949,13 @@ function ArticleCompactTocComponent({
38929
38949
  /* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbPage, { children: currentPage }) })
38930
38950
  ] }) });
38931
38951
  }, [breadcrumbsSlot, breadcrumbs, currentPage, breadcrumbClassName]);
38932
- const renderTocLinks = React32.useCallback(
38952
+ const renderTocLinks = React8.useCallback(
38933
38953
  (onLinkClick) => {
38934
38954
  if (!sections) return null;
38935
38955
  return sections.map((section) => {
38936
38956
  const isActive = activeSection === section.id;
38937
38957
  if (renderSectionLink) {
38938
- return /* @__PURE__ */ jsx(React32.Fragment, { children: renderSectionLink(section, isActive) }, section.id);
38958
+ return /* @__PURE__ */ jsx(React8.Fragment, { children: renderSectionLink(section, isActive) }, section.id);
38939
38959
  }
38940
38960
  return /* @__PURE__ */ jsx(
38941
38961
  Pressable,
@@ -38954,7 +38974,7 @@ function ArticleCompactTocComponent({
38954
38974
  },
38955
38975
  [sections, activeSection, renderSectionLink]
38956
38976
  );
38957
- const tocContent = React32.useMemo(() => {
38977
+ const tocContent = React8.useMemo(() => {
38958
38978
  if (tocSlot) return tocSlot;
38959
38979
  if (!sections || sections.length === 0) return null;
38960
38980
  return /* @__PURE__ */ jsx("div", { className: "mb-8 lg:hidden", children: /* @__PURE__ */ jsxs(Popover, { open: isTocOpen, onOpenChange: setIsTocOpen, children: [
@@ -38988,14 +39008,14 @@ function ArticleCompactTocComponent({
38988
39008
  ] }) });
38989
39009
  }, [tocSlot, sections, isTocOpen, tocClassName, renderTocLinks]);
38990
39010
  const hasDesktopToc = !tocSlot && sections && sections.length > 0;
38991
- const desktopTocContent = React32.useMemo(() => {
39011
+ const desktopTocContent = React8.useMemo(() => {
38992
39012
  if (!hasDesktopToc) return null;
38993
39013
  return /* @__PURE__ */ jsx("aside", { className: cn("hidden lg:block w-64 shrink-0", tocClassName), children: /* @__PURE__ */ jsxs("nav", { className: "sticky top-24 max-h-[calc(100vh-8rem)] overflow-y-auto space-y-2 rounded-lg border p-4", children: [
38994
39014
  /* @__PURE__ */ jsx("span", { className: "mb-3 block text-sm font-semibold", children: "Table of Contents" }),
38995
39015
  renderTocLinks()
38996
39016
  ] }) });
38997
39017
  }, [hasDesktopToc, tocClassName, renderTocLinks]);
38998
- const heroMediaContent = React32.useMemo(() => {
39018
+ const heroMediaContent = React8.useMemo(() => {
38999
39019
  if (heroMediaSlot) return heroMediaSlot;
39000
39020
  if (!heroImageSrc) return null;
39001
39021
  return /* @__PURE__ */ jsx(
@@ -39117,10 +39137,10 @@ function ArticleChaptersAuthorComponent({
39117
39137
  pattern,
39118
39138
  patternOpacity
39119
39139
  }) {
39120
- const [activeChapter, setActiveChapter] = React32.useState(
39140
+ const [activeChapter, setActiveChapter] = React8.useState(
39121
39141
  chapters?.[0]?.id || ""
39122
39142
  );
39123
- React32.useEffect(() => {
39143
+ React8.useEffect(() => {
39124
39144
  if (!enableChapterTracking || !chapters || chapters.length === 0) return;
39125
39145
  const observer = new IntersectionObserver(
39126
39146
  (entries) => {
@@ -39138,12 +39158,12 @@ function ArticleChaptersAuthorComponent({
39138
39158
  });
39139
39159
  return () => observer.disconnect();
39140
39160
  }, [chapters, enableChapterTracking]);
39141
- const breadcrumbsContent = React32.useMemo(() => {
39161
+ const breadcrumbsContent = React8.useMemo(() => {
39142
39162
  if (breadcrumbsSlot) return breadcrumbsSlot;
39143
39163
  if (!breadcrumbs || breadcrumbs.length === 0) return null;
39144
39164
  return /* @__PURE__ */ jsx(Breadcrumb, { className: cn("mb-8 md:mb-20", breadcrumbClassName), children: /* @__PURE__ */ jsxs(BreadcrumbList, { children: [
39145
39165
  /* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: "#", children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/home", size: 16 }) }) }) }),
39146
- breadcrumbs.map((crumb, index) => /* @__PURE__ */ jsxs(React32.Fragment, { children: [
39166
+ breadcrumbs.map((crumb, index) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
39147
39167
  /* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
39148
39168
  /* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: crumb.href, children: crumb.label }) }) })
39149
39169
  ] }, index)),
@@ -39151,7 +39171,7 @@ function ArticleChaptersAuthorComponent({
39151
39171
  /* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbPage, { children: typeof currentPage === "string" ? currentPage : currentPage }) })
39152
39172
  ] }) });
39153
39173
  }, [breadcrumbsSlot, breadcrumbs, currentPage, breadcrumbClassName]);
39154
- const chaptersNavContent = React32.useMemo(() => {
39174
+ const chaptersNavContent = React8.useMemo(() => {
39155
39175
  if (chaptersSlot) return chaptersSlot;
39156
39176
  if (!chapters || chapters.length === 0) return null;
39157
39177
  return /* @__PURE__ */ jsxs("div", { className: cn("rounded-lg border p-4", chaptersClassName), children: [
@@ -39159,7 +39179,7 @@ function ArticleChaptersAuthorComponent({
39159
39179
  /* @__PURE__ */ jsx("nav", { className: "space-y-2", children: chapters.map((chapter) => {
39160
39180
  const isActive = activeChapter === chapter.id;
39161
39181
  if (renderChapterLink) {
39162
- return /* @__PURE__ */ jsx(React32.Fragment, { children: renderChapterLink(chapter, isActive) }, chapter.id);
39182
+ return /* @__PURE__ */ jsx(React8.Fragment, { children: renderChapterLink(chapter, isActive) }, chapter.id);
39163
39183
  }
39164
39184
  return /* @__PURE__ */ jsxs(
39165
39185
  Pressable,
@@ -39193,7 +39213,7 @@ function ArticleChaptersAuthorComponent({
39193
39213
  renderChapterLink,
39194
39214
  chaptersClassName
39195
39215
  ]);
39196
- const authorCardContent = React32.useMemo(() => {
39216
+ const authorCardContent = React8.useMemo(() => {
39197
39217
  if (authorSlot) return authorSlot;
39198
39218
  if (!author) return null;
39199
39219
  let socialLinksContent = null;
@@ -39242,7 +39262,7 @@ function ArticleChaptersAuthorComponent({
39242
39262
  socialLinksContent
39243
39263
  ] });
39244
39264
  }, [authorSlot, author, authorClassName]);
39245
- const heroMediaContent = React32.useMemo(() => {
39265
+ const heroMediaContent = React8.useMemo(() => {
39246
39266
  if (heroMediaSlot) return heroMediaSlot;
39247
39267
  if (!heroImageSrc) return null;
39248
39268
  return /* @__PURE__ */ jsx(
@@ -39264,7 +39284,7 @@ function ArticleChaptersAuthorComponent({
39264
39284
  heroImageClassName,
39265
39285
  optixFlowConfig
39266
39286
  ]);
39267
- const conclusionContent = React32.useMemo(() => {
39287
+ const conclusionContent = React8.useMemo(() => {
39268
39288
  if (conclusionSlot) return conclusionSlot;
39269
39289
  if (!conclusionTitle && !conclusionDescription && (!conclusionActions || conclusionActions.length === 0))
39270
39290
  return null;
@@ -39406,7 +39426,7 @@ function ArticleSplitAnimatedComponent({
39406
39426
  spacing = "lg"
39407
39427
  }) {
39408
39428
  const MotionWrapper = enableAnimations ? motion.div : "div";
39409
- const categoryContent = React32.useMemo(() => {
39429
+ const categoryContent = React8.useMemo(() => {
39410
39430
  if (categorySlot) return categorySlot;
39411
39431
  if (!category) return null;
39412
39432
  return /* @__PURE__ */ jsx(
@@ -39421,7 +39441,7 @@ function ArticleSplitAnimatedComponent({
39421
39441
  }
39422
39442
  );
39423
39443
  }, [categorySlot, category, categoryHref, categoryClassName]);
39424
- const heroMediaContent = React32.useMemo(() => {
39444
+ const heroMediaContent = React8.useMemo(() => {
39425
39445
  if (heroMediaSlot) return heroMediaSlot;
39426
39446
  if (!image) return null;
39427
39447
  return /* @__PURE__ */ jsx(
@@ -39434,7 +39454,7 @@ function ArticleSplitAnimatedComponent({
39434
39454
  }
39435
39455
  );
39436
39456
  }, [heroMediaSlot, image, imageAlt, title, optixFlowConfig]);
39437
- const authorContent = React32.useMemo(() => {
39457
+ const authorContent = React8.useMemo(() => {
39438
39458
  if (authorSlot) return authorSlot;
39439
39459
  if (!authorName) return null;
39440
39460
  return /* @__PURE__ */ jsxs("div", { className: cn("mt-8 flex items-center gap-4", authorClassName), children: [
@@ -39462,7 +39482,7 @@ function ArticleSplitAnimatedComponent({
39462
39482
  authorRole,
39463
39483
  authorClassName
39464
39484
  ]);
39465
- const ctaContent = React32.useMemo(() => {
39485
+ const ctaContent = React8.useMemo(() => {
39466
39486
  if (ctaSlot) return ctaSlot;
39467
39487
  if (!ctaActions || ctaActions.length === 0) return null;
39468
39488
  return /* @__PURE__ */ jsx("div", { className: cn("mt-8 flex flex-wrap gap-3", ctaClassName), children: ctaActions.map((action, index) => {
@@ -41128,7 +41148,7 @@ function FaqSidebarNavigation({
41128
41148
  accordionTriggerClassName,
41129
41149
  accordionContentClassName
41130
41150
  }) {
41131
- const [activeCategory, setActiveCategory] = React32.useState(
41151
+ const [activeCategory, setActiveCategory] = React8.useState(
41132
41152
  categories && categories.length > 1 ? "all" : categories?.[0]?.id || ""
41133
41153
  );
41134
41154
  const filteredCategories = useMemo(() => {
@@ -42186,7 +42206,7 @@ function FaqSplitHero({
42186
42206
  }
42187
42207
  );
42188
42208
  }
42189
- var Controls = React32.memo(
42209
+ var Controls = React8.memo(
42190
42210
  ({
42191
42211
  handleNext,
42192
42212
  handlePrevious,
@@ -42217,7 +42237,7 @@ var Controls = React32.memo(
42217
42237
  ] });
42218
42238
  }
42219
42239
  );
42220
- var FeatureCard = React32.memo(
42240
+ var FeatureCard = React8.memo(
42221
42241
  ({ feature, isActive, onClick }) => {
42222
42242
  const variants2 = useMemo(
42223
42243
  () => ({
@@ -42325,7 +42345,7 @@ var FeatureCard = React32.memo(
42325
42345
  ) });
42326
42346
  }
42327
42347
  );
42328
- var FeaturesDesktop = React32.memo(
42348
+ var FeaturesDesktop = React8.memo(
42329
42349
  ({
42330
42350
  features,
42331
42351
  handleNext,
@@ -42359,7 +42379,7 @@ var FeaturesDesktop = React32.memo(
42359
42379
  ] });
42360
42380
  }
42361
42381
  );
42362
- var FeaturesMobile = React32.memo(
42382
+ var FeaturesMobile = React8.memo(
42363
42383
  ({
42364
42384
  features,
42365
42385
  handleNext,
@@ -42450,8 +42470,8 @@ function FeatureAnimatedCarousel({
42450
42470
  spacing = "py-12 md:py-32",
42451
42471
  containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8"
42452
42472
  }) {
42453
- const [activeIndex, setActiveIndex] = React32.useState(0);
42454
- const [direction, setDirection] = React32.useState(1);
42473
+ const [activeIndex, setActiveIndex] = React8.useState(0);
42474
+ const [direction, setDirection] = React8.useState(1);
42455
42475
  const handleNext = useCallback(() => {
42456
42476
  if (features && activeIndex < features.length - 1) {
42457
42477
  setDirection(1);
@@ -42679,7 +42699,7 @@ function FooterNewsletterContact({
42679
42699
  formSlot,
42680
42700
  newsletterFormClassName
42681
42701
  }) {
42682
- const linkSectionsContent = React32.useMemo(() => {
42702
+ const linkSectionsContent = React8.useMemo(() => {
42683
42703
  if (!footerLinks || footerLinks.length === 0) return null;
42684
42704
  return footerLinks.map((section, idx) => /* @__PURE__ */ jsxs("div", { children: [
42685
42705
  /* @__PURE__ */ jsx("h2", { className: "mb-6 text-sm font-medium uppercase leading-tight opacity-70", children: section.title }),
@@ -42693,7 +42713,7 @@ function FooterNewsletterContact({
42693
42713
  ) }, itemIdx)) })
42694
42714
  ] }, idx));
42695
42715
  }, [footerLinks]);
42696
- const contactDetailsContent = React32.useMemo(() => {
42716
+ const contactDetailsContent = React8.useMemo(() => {
42697
42717
  if (!contactDetails || contactDetails.length === 0) return null;
42698
42718
  return contactDetails.map((item, idx) => /* @__PURE__ */ jsxs("li", { className: "flex items-start gap-3", children: [
42699
42719
  /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center shrink-0 mt-1", children: /* @__PURE__ */ jsx(DynamicIcon, { name: item.icon, size: 16 }) }),
@@ -42707,7 +42727,7 @@ function FooterNewsletterContact({
42707
42727
  ) })
42708
42728
  ] }, idx));
42709
42729
  }, [contactDetails]);
42710
- const socialLinksContent = React32.useMemo(() => {
42730
+ const socialLinksContent = React8.useMemo(() => {
42711
42731
  if (!socialLinks || socialLinks.length === 0) return null;
42712
42732
  return socialLinks.map((social, idx) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
42713
42733
  SocialLinkIcon,
@@ -42721,7 +42741,7 @@ function FooterNewsletterContact({
42721
42741
  }
42722
42742
  ) }, idx));
42723
42743
  }, [socialLinks]);
42724
- const renderForm = React32.useMemo(() => {
42744
+ const renderForm = React8.useMemo(() => {
42725
42745
  if (formSlot) return formSlot;
42726
42746
  if (!formEngineSetup) return null;
42727
42747
  const defaultButtonAction = {
@@ -42866,7 +42886,7 @@ function FooterSplitImageAccordion({
42866
42886
  buttonAction,
42867
42887
  formSlot
42868
42888
  }) {
42869
- const renderForm = React32.useMemo(() => {
42889
+ const renderForm = React8.useMemo(() => {
42870
42890
  if (formSlot) return formSlot;
42871
42891
  if (!formEngineSetup) return null;
42872
42892
  const defaultButtonAction = {
@@ -43127,7 +43147,7 @@ function FooterAccordionSocial({
43127
43147
  patternClassName,
43128
43148
  formEngineSetup
43129
43149
  }) {
43130
- const renderForm = React32.useMemo(() => {
43150
+ const renderForm = React8.useMemo(() => {
43131
43151
  if (!formEngineSetup) return null;
43132
43152
  const action = {
43133
43153
  label: "",
@@ -43271,7 +43291,7 @@ function FooterInfoCardsAccordion({
43271
43291
  patternOpacity,
43272
43292
  optixFlowConfig
43273
43293
  }) {
43274
- const [email, setEmail] = React32.useState("");
43294
+ const [email, setEmail] = React8.useState("");
43275
43295
  (/* @__PURE__ */ new Date()).getFullYear();
43276
43296
  const handleSubmit = (e) => {
43277
43297
  e.preventDefault();
@@ -43576,13 +43596,13 @@ function CaseStudiesImageGrid({
43576
43596
  patternOpacity,
43577
43597
  optixFlowConfig
43578
43598
  }) {
43579
- const getGridClass = React32.useCallback((index) => {
43599
+ const getGridClass = React8.useCallback((index) => {
43580
43600
  if (index === 0 || index === 4) {
43581
43601
  return "row-span-2 aspect-square lg:aspect-auto";
43582
43602
  }
43583
43603
  return "aspect-3/2 md:aspect-2/1";
43584
43604
  }, []);
43585
- const renderedItems = React32.useMemo(() => {
43605
+ const renderedItems = React8.useMemo(() => {
43586
43606
  if (itemsSlot) return itemsSlot;
43587
43607
  if (!items || items.length === 0) return null;
43588
43608
  return items.map((item, index) => /* @__PURE__ */ jsxs(
@@ -43668,7 +43688,7 @@ function CaseStudiesTestimonialStats({
43668
43688
  patternOpacity,
43669
43689
  optixFlowConfig
43670
43690
  }) {
43671
- const renderedTestimonials = React32.useMemo(() => {
43691
+ const renderedTestimonials = React8.useMemo(() => {
43672
43692
  if (testimonialsSlot) return testimonialsSlot;
43673
43693
  if (!testimonials || testimonials.length === 0) return null;
43674
43694
  return testimonials.map((testimonial, index) => /* @__PURE__ */ jsxs("div", { className: testimonialItemClassName, children: [
@@ -47141,7 +47161,7 @@ function CaseStudiesFeaturedBorder({
47141
47161
  patternOpacity,
47142
47162
  optixFlowConfig
47143
47163
  }) {
47144
- const renderedFeatured = React32.useMemo(() => {
47164
+ const renderedFeatured = React8.useMemo(() => {
47145
47165
  if (featuredSlot) return featuredSlot;
47146
47166
  if (!featuredCaseStudy) return null;
47147
47167
  return /* @__PURE__ */ jsxs(
@@ -47215,7 +47235,7 @@ function CaseStudiesFeaturedBorder({
47215
47235
  featuredImageClassName,
47216
47236
  optixFlowConfig
47217
47237
  ]);
47218
- const renderedCaseStudies = React32.useMemo(() => {
47238
+ const renderedCaseStudies = React8.useMemo(() => {
47219
47239
  if (caseStudiesSlot) return caseStudiesSlot;
47220
47240
  if (!caseStudies || caseStudies.length === 0) return null;
47221
47241
  return caseStudies.map((item, idx) => /* @__PURE__ */ jsxs(
@@ -47324,7 +47344,7 @@ function CaseStudiesStatsCard({
47324
47344
  patternOpacity,
47325
47345
  optixFlowConfig
47326
47346
  }) {
47327
- const renderedStats = React32.useMemo(() => {
47347
+ const renderedStats = React8.useMemo(() => {
47328
47348
  if (statsSlot) return statsSlot;
47329
47349
  if (!stats || stats.length === 0) return null;
47330
47350
  return /* @__PURE__ */ jsx("div", { className: cn("flex w-full flex-col gap-8 sm:flex-row", statsClassName), children: stats.map((item, i) => /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
@@ -47332,7 +47352,7 @@ function CaseStudiesStatsCard({
47332
47352
  /* @__PURE__ */ jsx("div", { className: "text-sm font-medium text-muted-foreground", children: item.text })
47333
47353
  ] }, `stats-${i}`)) });
47334
47354
  }, [statsSlot, stats, statsClassName]);
47335
- const renderedAuthor = React32.useMemo(() => {
47355
+ const renderedAuthor = React8.useMemo(() => {
47336
47356
  if (authorSlot) return authorSlot;
47337
47357
  if (!author) return null;
47338
47358
  return /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-2.5", authorClassName), children: [
@@ -47346,7 +47366,7 @@ function CaseStudiesStatsCard({
47346
47366
  ] })
47347
47367
  ] });
47348
47368
  }, [authorSlot, author, authorClassName]);
47349
- const renderedActions = React32.useMemo(() => {
47369
+ const renderedActions = React8.useMemo(() => {
47350
47370
  if (actionsSlot) return actionsSlot;
47351
47371
  if (!actions || actions.length === 0) return null;
47352
47372
  return /* @__PURE__ */ jsx("div", { className: cn("shrink-0", actionsClassName), children: actions.map((action, index) => {
@@ -50234,7 +50254,7 @@ function HeroSimpleCenteredImage({
50234
50254
  "div",
50235
50255
  {
50236
50256
  className: cn(
50237
- "flex flex-col items-center text-center",
50257
+ "flex flex-col items-center text-center gap-6 md:gap-2",
50238
50258
  contentClassName
50239
50259
  ),
50240
50260
  children: [
@@ -50242,22 +50262,22 @@ function HeroSimpleCenteredImage({
50242
50262
  "h1",
50243
50263
  {
50244
50264
  className: cn(
50245
- "my-3 text-3xl font-bold text-balance sm:text-4xl md:my-6 lg:text-6xl",
50265
+ "my-4 text-4xl font-bold text-balance md:my-6 md:text-6xl",
50246
50266
  headingClassName
50247
50267
  ),
50248
50268
  children: heading
50249
50269
  }
50250
- ) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
50270
+ ) : heading),
50251
50271
  description && (typeof description === "string" ? /* @__PURE__ */ jsx(
50252
50272
  "p",
50253
50273
  {
50254
50274
  className: cn(
50255
- "max-w-xl md:max-w-md lg:text-2xl text-balance",
50275
+ "max-w-full md:max-w-md text-lg text-balance opacity-75 leading-relaxed",
50256
50276
  descriptionClassName
50257
50277
  ),
50258
50278
  children: description
50259
50279
  }
50260
- ) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
50280
+ ) : description),
50261
50281
  /* @__PURE__ */ jsx(
50262
50282
  BlockActions,
50263
50283
  {
@@ -54758,7 +54778,7 @@ function HeroSplitImageNewsletter({
54758
54778
  onError,
54759
54779
  uploadTokens
54760
54780
  });
54761
- const renderForm = React32.useMemo(() => {
54781
+ const renderForm = React8.useMemo(() => {
54762
54782
  if (formSlot) return formSlot;
54763
54783
  if (!formFields || formFields.length === 0) return null;
54764
54784
  const defaultButtonAction = {
@@ -54837,7 +54857,7 @@ function HeroSplitImageNewsletter({
54837
54857
  resetUpload,
54838
54858
  resetSubmissionState
54839
54859
  ]);
54840
- const renderImage = React32.useMemo(() => {
54860
+ const renderImage = React8.useMemo(() => {
54841
54861
  if (imageSlot) return imageSlot;
54842
54862
  if (!image) return null;
54843
54863
  return /* @__PURE__ */ jsx("div", { className: "relative lg:w-1/2", children: /* @__PURE__ */ jsx(
@@ -56270,7 +56290,7 @@ function HeroSaasDashboardPreview({
56270
56290
  onError,
56271
56291
  uploadTokens
56272
56292
  });
56273
- const renderBadge = React32.useMemo(() => {
56293
+ const renderBadge = React8.useMemo(() => {
56274
56294
  if (badgeSlot) return badgeSlot;
56275
56295
  return /* @__PURE__ */ jsxs(
56276
56296
  "div",
@@ -56285,7 +56305,7 @@ function HeroSaasDashboardPreview({
56285
56305
  }
56286
56306
  );
56287
56307
  }, [badgeSlot, badgeIcon, badgeText]);
56288
- const renderForm = React32.useMemo(() => {
56308
+ const renderForm = React8.useMemo(() => {
56289
56309
  if (formSlot) return formSlot;
56290
56310
  const defaultButtonAction = {
56291
56311
  label: "Start Free Trial",
@@ -56360,7 +56380,7 @@ function HeroSaasDashboardPreview({
56360
56380
  resetUpload,
56361
56381
  resetSubmissionState
56362
56382
  ]);
56363
- const renderBrowserPreview = React32.useMemo(() => {
56383
+ const renderBrowserPreview = React8.useMemo(() => {
56364
56384
  if (browserPreviewSlot) return browserPreviewSlot;
56365
56385
  if (!browserPreview) return null;
56366
56386
  return /* @__PURE__ */ jsxs("div", { className: cn("relative mt-12 md:mt-20", previewClassName), children: [
@@ -58611,7 +58631,7 @@ function HeroEcommerceProductShowcase({
58611
58631
  "flex flex-col md:flex-row items-center gap-4 md:gap-6 pt-8 md:pt-12",
58612
58632
  statsClassName
58613
58633
  ),
58614
- children: stats.map((stat, index) => /* @__PURE__ */ jsxs(React32.Fragment, { children: [
58634
+ children: stats.map((stat, index) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
58615
58635
  index > 0 && /* @__PURE__ */ jsx("div", { className: "h-12 w-px bg-border hidden md:flex" }),
58616
58636
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 justify-between flex-row md:flex-col text-left md:text-center w-full md:w-fit border md:border-none rounded-xl md:rounded-none p-4 md:p-0", children: [
58617
58637
  /* @__PURE__ */ jsxs(
@@ -59055,7 +59075,7 @@ function HeroNewsletterMinimal({
59055
59075
  disclaimerClassName,
59056
59076
  statsClassName
59057
59077
  }) {
59058
- const renderStats = React32.useMemo(() => {
59078
+ const renderStats = React8.useMemo(() => {
59059
59079
  if (statsSlot) return statsSlot;
59060
59080
  if (!stats || stats.length === 0) return null;
59061
59081
  return stats.map((stat, index) => /* @__PURE__ */ jsx("div", { className: cn("flex items-center", stat.className), children: /* @__PURE__ */ jsxs("div", { className: "text-center", children: [
@@ -59081,7 +59101,7 @@ function HeroNewsletterMinimal({
59081
59101
  /* @__PURE__ */ jsx("div", { className: cn("text-sm"), children: stat.label })
59082
59102
  ] }) }, index));
59083
59103
  }, [statsSlot, stats]);
59084
- const renderForm = React32.useMemo(() => {
59104
+ const renderForm = React8.useMemo(() => {
59085
59105
  if (formSlot) return formSlot;
59086
59106
  if (!formEngineSetup) return null;
59087
59107
  const defaultButtonAction = {
@@ -59248,7 +59268,7 @@ function HeroComingSoonCountdown({
59248
59268
  formClassName,
59249
59269
  socialLinksClassName
59250
59270
  }) {
59251
- const [timeLeft, setTimeLeft] = React32.useState(null);
59271
+ const [timeLeft, setTimeLeft] = React8.useState(null);
59252
59272
  const {
59253
59273
  uploadTokens,
59254
59274
  uploadProgress,
@@ -59268,7 +59288,7 @@ function HeroComingSoonCountdown({
59268
59288
  onError,
59269
59289
  uploadTokens
59270
59290
  });
59271
- const calculateTimeLeft = React32.useCallback(() => {
59291
+ const calculateTimeLeft = React8.useCallback(() => {
59272
59292
  if (!countdownDate) return null;
59273
59293
  const now = Date.now();
59274
59294
  const target = countdownDate.getTime();
@@ -59281,7 +59301,7 @@ function HeroComingSoonCountdown({
59281
59301
  seconds: Math.floor(diff % (1e3 * 60) / 1e3)
59282
59302
  };
59283
59303
  }, [countdownDate]);
59284
- React32.useEffect(() => {
59304
+ React8.useEffect(() => {
59285
59305
  setTimeLeft(calculateTimeLeft());
59286
59306
  if (!countdownDate) return;
59287
59307
  const timer = setInterval(() => {
@@ -59292,7 +59312,7 @@ function HeroComingSoonCountdown({
59292
59312
  return () => clearInterval(timer);
59293
59313
  }, [countdownDate, calculateTimeLeft]);
59294
59314
  const showCountdown = countdownSlot || timeLeft;
59295
- const renderForm = React32.useMemo(() => {
59315
+ const renderForm = React8.useMemo(() => {
59296
59316
  if (formSlot) return formSlot;
59297
59317
  const defaultButtonAction = {
59298
59318
  label: "Notify Me",
@@ -59368,7 +59388,7 @@ function HeroComingSoonCountdown({
59368
59388
  resetUpload,
59369
59389
  resetSubmissionState
59370
59390
  ]);
59371
- const renderSocialLinks = React32.useMemo(() => {
59391
+ const renderSocialLinks = React8.useMemo(() => {
59372
59392
  if (socialLinksSlot) return socialLinksSlot;
59373
59393
  if (!socialLinks || socialLinks.length === 0) return null;
59374
59394
  return socialLinks.map((link, index) => /* @__PURE__ */ jsx(
@@ -59502,7 +59522,7 @@ function HeroEventRegistration({
59502
59522
  "flex flex-col md:flex-row items-center gap-4 md:gap-6 pt-8 md:pt-12 w-full md:w-fit",
59503
59523
  statsClassName
59504
59524
  ),
59505
- children: stats.map((stat, index) => /* @__PURE__ */ jsxs(React32.Fragment, { children: [
59525
+ children: stats.map((stat, index) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
59506
59526
  index > 0 && /* @__PURE__ */ jsx("div", { className: "h-12 w-px bg-border hidden md:flex" }),
59507
59527
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 justify-between flex-row md:flex-col text-left md:text-center w-full md:w-fit border md:border-none rounded-xl md:rounded-none p-4 md:p-0", children: [
59508
59528
  /* @__PURE__ */ jsxs(
@@ -59905,7 +59925,7 @@ function ComparisonTableTwoColumn({
59905
59925
  patternOpacity,
59906
59926
  optixFlowConfig
59907
59927
  }) {
59908
- const tableContent = React32.useMemo(() => {
59928
+ const tableContent = React8.useMemo(() => {
59909
59929
  if (tableSlot) return tableSlot;
59910
59930
  if (!rows || rows.length === 0) return null;
59911
59931
  return /* @__PURE__ */ jsx("div", { className: cn("-mr-4 overflow-x-auto", tableWrapperClassName), children: /* @__PURE__ */ jsx("div", { className: "min-w-2xl overflow-hidden", children: /* @__PURE__ */ jsxs(
@@ -59935,7 +59955,7 @@ function ComparisonTableTwoColumn({
59935
59955
  optixFlowConfig
59936
59956
  }
59937
59957
  ) : optionBLabel && (typeof optionBLabel === "string" ? /* @__PURE__ */ jsx("span", { className: "text-lg font-semibold", children: optionBLabel }) : optionBLabel) }),
59938
- rows.map((row, idx) => /* @__PURE__ */ jsxs(React32.Fragment, { children: [
59958
+ rows.map((row, idx) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
59939
59959
  /* @__PURE__ */ jsx("div", { className: "flex items-center border-b p-3 text-base font-medium md:p-4 md:text-lg", children: row.label }),
59940
59960
  /* @__PURE__ */ jsx("div", { className: cn("border-b bg-success/5 p-3 md:p-6", optionACellClassName), children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
59941
59961
  row.hasIcon && /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/circle-check-big", size: 20, className: "text-success" }),
@@ -59964,14 +59984,14 @@ function ComparisonTableTwoColumn({
59964
59984
  optionBLabel,
59965
59985
  optixFlowConfig
59966
59986
  ]);
59967
- const headingContent = React32.useMemo(() => {
59987
+ const headingContent = React8.useMemo(() => {
59968
59988
  if (!heading) return null;
59969
59989
  if (typeof heading === "string") {
59970
59990
  return /* @__PURE__ */ jsx("h1", { className: cn("mb-8 text-3xl font-bold md:mb-12 md:text-5xl", headingClassName), children: heading });
59971
59991
  }
59972
59992
  return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
59973
59993
  }, [heading, headingClassName]);
59974
- const descriptionContent = React32.useMemo(() => {
59994
+ const descriptionContent = React8.useMemo(() => {
59975
59995
  if (!description) return null;
59976
59996
  if (typeof description === "string") {
59977
59997
  return /* @__PURE__ */ jsx("p", { className: cn("mb-8 text-muted-foreground md:text-lg", descriptionClassName), children: description });
@@ -60018,7 +60038,7 @@ function ComparisonFeatureCards({
60018
60038
  patternOpacity,
60019
60039
  optixFlowConfig
60020
60040
  }) {
60021
- const renderCard = React32.useCallback(
60041
+ const renderCard = React8.useCallback(
60022
60042
  (product, isHighlighted) => /* @__PURE__ */ jsxs(
60023
60043
  "div",
60024
60044
  {
@@ -60074,7 +60094,7 @@ function ComparisonFeatureCards({
60074
60094
  ),
60075
60095
  [cardClassName, optixFlowConfig]
60076
60096
  );
60077
- const cardsContent = React32.useMemo(() => {
60097
+ const cardsContent = React8.useMemo(() => {
60078
60098
  if (cardsSlot) return cardsSlot;
60079
60099
  if (!productA || !productB) return null;
60080
60100
  return /* @__PURE__ */ jsxs(Fragment$1, { children: [
@@ -60082,28 +60102,28 @@ function ComparisonFeatureCards({
60082
60102
  renderCard(productB, productB.highlighted ?? false)
60083
60103
  ] });
60084
60104
  }, [cardsSlot, productA, productB, renderCard]);
60085
- const headingContent = React32.useMemo(() => {
60105
+ const headingContent = React8.useMemo(() => {
60086
60106
  if (!heading) return null;
60087
60107
  if (typeof heading === "string") {
60088
60108
  return /* @__PURE__ */ jsx("h1", { className: cn("mb-6 text-4xl font-semibold md:text-7xl", headingClassName), children: heading });
60089
60109
  }
60090
60110
  return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
60091
60111
  }, [heading, headingClassName]);
60092
- const descriptionContent = React32.useMemo(() => {
60112
+ const descriptionContent = React8.useMemo(() => {
60093
60113
  if (!description) return null;
60094
60114
  if (typeof description === "string") {
60095
60115
  return /* @__PURE__ */ jsx("p", { className: cn("mx-auto max-w-4xl text-muted-foreground md:text-xl", descriptionClassName), children: description });
60096
60116
  }
60097
60117
  return /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description });
60098
60118
  }, [description, descriptionClassName]);
60099
- const suitabilityContent = React32.useMemo(() => {
60119
+ const suitabilityContent = React8.useMemo(() => {
60100
60120
  if (!suitabilityTitle && !suitabilityDescription) return null;
60101
60121
  return /* @__PURE__ */ jsxs("div", { className: suitabilityClassName, children: [
60102
60122
  suitabilityTitle && (typeof suitabilityTitle === "string" ? /* @__PURE__ */ jsx("h2", { className: "mb-4 text-3xl font-semibold", children: suitabilityTitle }) : suitabilityTitle),
60103
60123
  suitabilityDescription && (typeof suitabilityDescription === "string" ? /* @__PURE__ */ jsx("p", { className: "leading-6 text-muted-foreground md:text-lg", children: suitabilityDescription }) : suitabilityDescription)
60104
60124
  ] });
60105
60125
  }, [suitabilityTitle, suitabilityDescription, suitabilityClassName]);
60106
- const differencesContent = React32.useMemo(() => {
60126
+ const differencesContent = React8.useMemo(() => {
60107
60127
  if (!differencesTitle && !differencesDescription) return null;
60108
60128
  return /* @__PURE__ */ jsxs("div", { className: cn("mt-16", differencesClassName), children: [
60109
60129
  differencesTitle && (typeof differencesTitle === "string" ? /* @__PURE__ */ jsx("h2", { className: "mb-4 text-3xl font-semibold", children: differencesTitle }) : differencesTitle),
@@ -60151,7 +60171,7 @@ function ComparisonGridBadges({
60151
60171
  pattern,
60152
60172
  patternOpacity
60153
60173
  }) {
60154
- const featuresContent = React32.useMemo(() => {
60174
+ const featuresContent = React8.useMemo(() => {
60155
60175
  if (featuresSlot) return featuresSlot;
60156
60176
  if (!features || features.length === 0) return null;
60157
60177
  return features.map((feature, idx) => /* @__PURE__ */ jsxs(
@@ -60198,14 +60218,14 @@ function ComparisonGridBadges({
60198
60218
  idx
60199
60219
  ));
60200
60220
  }, [featuresSlot, features, featureCardClassName, badgeClassName, optionALabel, optionBLabel]);
60201
- const headingContent = React32.useMemo(() => {
60221
+ const headingContent = React8.useMemo(() => {
60202
60222
  if (!heading) return null;
60203
60223
  if (typeof heading === "string") {
60204
60224
  return /* @__PURE__ */ jsx("h2", { className: cn("mb-4 text-3xl font-bold md:text-5xl", headingClassName), children: heading });
60205
60225
  }
60206
60226
  return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
60207
60227
  }, [heading, headingClassName]);
60208
- const descriptionContent = React32.useMemo(() => {
60228
+ const descriptionContent = React8.useMemo(() => {
60209
60229
  if (!description) return null;
60210
60230
  if (typeof description === "string") {
60211
60231
  return /* @__PURE__ */ jsx("p", { className: cn("mx-auto max-w-2xl text-muted-foreground md:text-lg", descriptionClassName), children: description });
@@ -60253,7 +60273,7 @@ function ComparisonMetricsRows({
60253
60273
  pattern,
60254
60274
  patternOpacity
60255
60275
  }) {
60256
- const metricsContent = React32.useMemo(() => {
60276
+ const metricsContent = React8.useMemo(() => {
60257
60277
  if (metricsSlot) return metricsSlot;
60258
60278
  if (!metrics || metrics.length === 0) return null;
60259
60279
  return /* @__PURE__ */ jsx(
@@ -60293,7 +60313,7 @@ function ComparisonMetricsRows({
60293
60313
  }
60294
60314
  );
60295
60315
  }, [metricsSlot, metrics, metricsClassName, metricRowClassName]);
60296
- const actionsContent = React32.useMemo(() => {
60316
+ const actionsContent = React8.useMemo(() => {
60297
60317
  if (actionsSlot) return actionsSlot;
60298
60318
  if (!actions || actions.length === 0) return null;
60299
60319
  return /* @__PURE__ */ jsx("div", { className: cn("flex justify-end", actionsClassName), children: actions.map((action, idx) => /* @__PURE__ */ jsxs(
@@ -60314,7 +60334,7 @@ function ComparisonMetricsRows({
60314
60334
  idx
60315
60335
  )) });
60316
60336
  }, [actionsSlot, actions, actionsClassName]);
60317
- const headingContent = React32.useMemo(() => {
60337
+ const headingContent = React8.useMemo(() => {
60318
60338
  if (!heading) return null;
60319
60339
  if (typeof heading === "string") {
60320
60340
  return /* @__PURE__ */ jsx(
@@ -60330,7 +60350,7 @@ function ComparisonMetricsRows({
60330
60350
  }
60331
60351
  return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
60332
60352
  }, [heading, headingClassName]);
60333
- const descriptionContent = React32.useMemo(() => {
60353
+ const descriptionContent = React8.useMemo(() => {
60334
60354
  if (!description) return null;
60335
60355
  if (typeof description === "string") {
60336
60356
  return /* @__PURE__ */ jsx("p", { className: cn("text-muted-foreground md:text-lg", descriptionClassName), children: description });
@@ -60393,7 +60413,7 @@ function ComparisonImageCards({
60393
60413
  patternOpacity,
60394
60414
  optixFlowConfig
60395
60415
  }) {
60396
- const renderCard = React32.useCallback(
60416
+ const renderCard = React8.useCallback(
60397
60417
  (option) => /* @__PURE__ */ jsx("div", { className: cn("relative h-full", cardClassName), children: /* @__PURE__ */ jsxs("div", { className: cn(
60398
60418
  "relative aspect-4/5 min-h-[400px] overflow-hidden rounded-2xl sm:aspect-[0.9] sm:min-h-[480px] sm:rounded-3xl md:min-h-[520px]",
60399
60419
  getNestedCardBg(background, "accent"),
@@ -60417,7 +60437,7 @@ function ComparisonImageCards({
60417
60437
  ] }) }),
60418
60438
  [cardClassName, optixFlowConfig]
60419
60439
  );
60420
- const cardsContent = React32.useMemo(() => {
60440
+ const cardsContent = React8.useMemo(() => {
60421
60441
  if (cardsSlot) return cardsSlot;
60422
60442
  if (!optionA || !optionB) return null;
60423
60443
  return /* @__PURE__ */ jsxs(Fragment$1, { children: [
@@ -60435,14 +60455,14 @@ function ComparisonImageCards({
60435
60455
  )
60436
60456
  ] });
60437
60457
  }, [cardsSlot, optionA, optionB, dividerText, dividerClassName, renderCard]);
60438
- const headingContent = React32.useMemo(() => {
60458
+ const headingContent = React8.useMemo(() => {
60439
60459
  if (!heading) return null;
60440
60460
  if (typeof heading === "string") {
60441
60461
  return /* @__PURE__ */ jsx("h2", { className: cn("text-3xl font-medium sm:text-4xl md:text-5xl lg:text-6xl", headingClassName), children: heading });
60442
60462
  }
60443
60463
  return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
60444
60464
  }, [heading, headingClassName]);
60445
- const descriptionContent = React32.useMemo(() => {
60465
+ const descriptionContent = React8.useMemo(() => {
60446
60466
  if (!description) return null;
60447
60467
  if (typeof description === "string") {
60448
60468
  return /* @__PURE__ */ jsx("p", { className: cn("mx-auto mt-4 max-w-3xl text-lg text-muted-foreground sm:mt-6 sm:text-xl", descriptionClassName), children: description });
@@ -60572,7 +60592,7 @@ function ComparisonTableTabs({
60572
60592
  patternOpacity
60573
60593
  }) {
60574
60594
  const [selectedTab, setSelectedTab] = useState(models?.[0]?.name || "");
60575
- const renderStatusIcon = React32.useCallback((status) => {
60595
+ const renderStatusIcon = React8.useCallback((status) => {
60576
60596
  if (status === "positive") {
60577
60597
  return /* @__PURE__ */ jsx("span", { className: "flex size-8 items-center justify-center rounded-full border bg-success/10", children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/circle-check", size: 16, className: "text-success" }) });
60578
60598
  }
@@ -60581,7 +60601,7 @@ function ComparisonTableTabs({
60581
60601
  }
60582
60602
  return /* @__PURE__ */ jsx("span", { className: "flex size-8 items-center justify-center rounded-full border bg-accent/10", children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/circle-minus", size: 16, className: "text-accent" }) });
60583
60603
  }, []);
60584
- const tableContent = React32.useMemo(() => {
60604
+ const tableContent = React8.useMemo(() => {
60585
60605
  if (tableSlot) return tableSlot;
60586
60606
  if (!models || models.length === 0 || !features || features.length === 0) return null;
60587
60607
  return /* @__PURE__ */ jsxs(Fragment$1, { children: [
@@ -60640,14 +60660,14 @@ function ComparisonTableTabs({
60640
60660
  ] }) })
60641
60661
  ] });
60642
60662
  }, [tableSlot, models, features, tabsClassName, tableClassName, tableHeaderClassName, tableCellClassName, selectedTab, renderStatusIcon]);
60643
- const headingContent = React32.useMemo(() => {
60663
+ const headingContent = React8.useMemo(() => {
60644
60664
  if (!heading) return null;
60645
60665
  if (typeof heading === "string") {
60646
60666
  return /* @__PURE__ */ jsx("h2", { className: cn("text-3xl font-bold md:text-4xl lg:text-5xl", headingClassName), children: heading });
60647
60667
  }
60648
60668
  return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
60649
60669
  }, [heading, headingClassName]);
60650
- const descriptionContent = React32.useMemo(() => {
60670
+ const descriptionContent = React8.useMemo(() => {
60651
60671
  if (!description) return null;
60652
60672
  if (typeof description === "string") {
60653
60673
  return /* @__PURE__ */ jsx("p", { className: cn("mt-4 text-muted-foreground md:text-lg", descriptionClassName), children: description });
@@ -60738,7 +60758,7 @@ function ComparisonTableTooltips({
60738
60758
  pattern,
60739
60759
  patternOpacity
60740
60760
  }) {
60741
- const renderCellContent = React32.useCallback(
60761
+ const renderCellContent = React8.useCallback(
60742
60762
  (cell, isHighlighted) => {
60743
60763
  if (typeof cell === "string") {
60744
60764
  return cell;
@@ -60765,7 +60785,7 @@ function ComparisonTableTooltips({
60765
60785
  },
60766
60786
  []
60767
60787
  );
60768
- const tableContent = React32.useMemo(() => {
60788
+ const tableContent = React8.useMemo(() => {
60769
60789
  if (tableSlot) return tableSlot;
60770
60790
  if (!rows || rows.length === 0) return null;
60771
60791
  return /* @__PURE__ */ jsxs(Table, { className: cn("rounded border text-left shadow-lg", tableClassName), children: [
@@ -60791,14 +60811,14 @@ function ComparisonTableTooltips({
60791
60811
  ] }, idx)) })
60792
60812
  ] });
60793
60813
  }, [tableSlot, rows, tableClassName, tableHeaderClassName, tableCellClassName, optionALabel, optionBLabel, renderCellContent]);
60794
- const headingContent = React32.useMemo(() => {
60814
+ const headingContent = React8.useMemo(() => {
60795
60815
  if (!heading) return null;
60796
60816
  if (typeof heading === "string") {
60797
60817
  return /* @__PURE__ */ jsx("h2", { className: cn("mb-4 text-center text-4xl font-semibold", headingClassName), children: heading });
60798
60818
  }
60799
60819
  return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
60800
60820
  }, [heading, headingClassName]);
60801
- const descriptionContent = React32.useMemo(() => {
60821
+ const descriptionContent = React8.useMemo(() => {
60802
60822
  if (!description) return null;
60803
60823
  if (typeof description === "string") {
60804
60824
  return /* @__PURE__ */ jsx("p", { className: cn("mb-8 text-center text-muted-foreground", descriptionClassName), children: description });
@@ -60840,7 +60860,7 @@ function ComparisonFeatureGrid({
60840
60860
  pattern,
60841
60861
  patternOpacity
60842
60862
  }) {
60843
- const renderStatusIcon = React32.useCallback((status) => {
60863
+ const renderStatusIcon = React8.useCallback((status) => {
60844
60864
  if (status === true) {
60845
60865
  return /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/check", size: 20, className: "text-success" });
60846
60866
  }
@@ -60849,7 +60869,7 @@ function ComparisonFeatureGrid({
60849
60869
  }
60850
60870
  return /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/x", size: 20, className: "text-destructive" });
60851
60871
  }, []);
60852
- const gridContent = React32.useMemo(() => {
60872
+ const gridContent = React8.useMemo(() => {
60853
60873
  if (gridSlot) return gridSlot;
60854
60874
  if (!features || features.length === 0) return null;
60855
60875
  return /* @__PURE__ */ jsxs(
@@ -60915,14 +60935,14 @@ function ComparisonFeatureGrid({
60915
60935
  optionBLabel,
60916
60936
  renderStatusIcon
60917
60937
  ]);
60918
- const headingContent = React32.useMemo(() => {
60938
+ const headingContent = React8.useMemo(() => {
60919
60939
  if (!heading) return null;
60920
60940
  if (typeof heading === "string") {
60921
60941
  return /* @__PURE__ */ jsx("h2", { className: cn("mb-4 text-center text-4xl font-semibold", headingClassName), children: heading });
60922
60942
  }
60923
60943
  return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
60924
60944
  }, [heading, headingClassName]);
60925
- const descriptionContent = React32.useMemo(() => {
60945
+ const descriptionContent = React8.useMemo(() => {
60926
60946
  if (!description) return null;
60927
60947
  if (typeof description === "string") {
60928
60948
  return /* @__PURE__ */ jsx("p", { className: cn("mb-8 text-center text-muted-foreground", descriptionClassName), children: description });
@@ -60966,7 +60986,7 @@ function ComparisonAiModels({
60966
60986
  optixFlowConfig
60967
60987
  }) {
60968
60988
  const [hoveredModel, setHoveredModel] = useState(null);
60969
- const renderStatusIcon = React32.useCallback((status) => {
60989
+ const renderStatusIcon = React8.useCallback((status) => {
60970
60990
  if (status === "best") {
60971
60991
  return /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/circle-check", size: 16, className: "text-success" });
60972
60992
  }
@@ -60975,7 +60995,7 @@ function ComparisonAiModels({
60975
60995
  }
60976
60996
  return /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/minus", size: 16, className: "text-muted-foreground" });
60977
60997
  }, []);
60978
- const getCellClassName = React32.useCallback(
60998
+ const getCellClassName = React8.useCallback(
60979
60999
  (status, modelKey) => {
60980
61000
  const baseClass = "cursor-pointer py-4 text-center font-medium transition-all duration-300";
60981
61001
  let statusClass = "";
@@ -60996,7 +61016,7 @@ function ComparisonAiModels({
60996
61016
  },
60997
61017
  [hoveredModel]
60998
61018
  );
60999
- const getSummaryCardClassName = React32.useCallback(
61019
+ const getSummaryCardClassName = React8.useCallback(
61000
61020
  (modelKey) => {
61001
61021
  const baseClass = "rounded border border-border/30 bg-background/50 p-3 transition-all duration-300";
61002
61022
  if (hoveredModel === modelKey) {
@@ -61011,7 +61031,7 @@ function ComparisonAiModels({
61011
61031
  },
61012
61032
  [hoveredModel]
61013
61033
  );
61014
- const tableContent = React32.useMemo(() => {
61034
+ const tableContent = React8.useMemo(() => {
61015
61035
  if (tableSlot) return tableSlot;
61016
61036
  if (!models || !comparisonData || comparisonData.length === 0) return null;
61017
61037
  return /* @__PURE__ */ jsx(
@@ -61089,7 +61109,7 @@ function ComparisonAiModels({
61089
61109
  getCellClassName,
61090
61110
  renderStatusIcon
61091
61111
  ]);
61092
- const analysisContent = React32.useMemo(() => {
61112
+ const analysisContent = React8.useMemo(() => {
61093
61113
  if (analysisSlot) return analysisSlot;
61094
61114
  if (!models) return null;
61095
61115
  return /* @__PURE__ */ jsx("div", { className: cn(
@@ -61130,14 +61150,14 @@ function ComparisonAiModels({
61130
61150
  ] })
61131
61151
  ] }) });
61132
61152
  }, [analysisSlot, models, analysisClassName, getSummaryCardClassName]);
61133
- const headingContent = React32.useMemo(() => {
61153
+ const headingContent = React8.useMemo(() => {
61134
61154
  if (!heading) return null;
61135
61155
  if (typeof heading === "string") {
61136
61156
  return /* @__PURE__ */ jsx("h2", { className: cn("text-3xl font-bold md:text-4xl lg:text-5xl", headingClassName), children: heading });
61137
61157
  }
61138
61158
  return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
61139
61159
  }, [heading, headingClassName]);
61140
- const descriptionContent = React32.useMemo(() => {
61160
+ const descriptionContent = React8.useMemo(() => {
61141
61161
  if (!description) return null;
61142
61162
  if (typeof description === "string") {
61143
61163
  return /* @__PURE__ */ jsx("p", { className: cn("mt-4 text-muted-foreground md:text-lg", descriptionClassName), children: description });
@@ -61187,7 +61207,7 @@ function ComparisonLegacyModern({
61187
61207
  pattern,
61188
61208
  patternOpacity
61189
61209
  }) {
61190
- const columnsContent = React32.useMemo(() => {
61210
+ const columnsContent = React8.useMemo(() => {
61191
61211
  if (columnsSlot) return columnsSlot;
61192
61212
  if (!legacyFeatures || legacyFeatures.length === 0 || !modernFeatures || modernFeatures.length === 0)
61193
61213
  return null;
@@ -61199,7 +61219,7 @@ function ComparisonLegacyModern({
61199
61219
  legacyColumnClassName
61200
61220
  ), children: [
61201
61221
  legacyTitle && (typeof legacyTitle === "string" ? /* @__PURE__ */ jsx("h3", { className: "text-2xl font-medium", children: legacyTitle }) : legacyTitle),
61202
- /* @__PURE__ */ jsx("ul", { className: "mt-9 space-y-3", children: legacyFeatures.map((feature, idx) => /* @__PURE__ */ jsxs(React32.Fragment, { children: [
61222
+ /* @__PURE__ */ jsx("ul", { className: "mt-9 space-y-3", children: legacyFeatures.map((feature, idx) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
61203
61223
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
61204
61224
  /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/x", size: 16, className: "my-1.5 shrink-0 text-muted-foreground" }),
61205
61225
  /* @__PURE__ */ jsx("li", { className: "text-sm", children: feature.text })
@@ -61216,7 +61236,7 @@ function ComparisonLegacyModern({
61216
61236
  ),
61217
61237
  children: [
61218
61238
  modernTitle && (typeof modernTitle === "string" ? /* @__PURE__ */ jsx("h3", { className: "text-2xl font-medium", children: modernTitle }) : modernTitle),
61219
- /* @__PURE__ */ jsx("ul", { className: "mt-9 space-y-3", children: modernFeatures.map((feature, idx) => /* @__PURE__ */ jsxs(React32.Fragment, { children: [
61239
+ /* @__PURE__ */ jsx("ul", { className: "mt-9 space-y-3", children: modernFeatures.map((feature, idx) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
61220
61240
  /* @__PURE__ */ jsxs("li", { className: "flex items-center gap-2 text-sm", children: [
61221
61241
  /* @__PURE__ */ jsx("span", { className: "text-lg", children: feature.emoji }),
61222
61242
  feature.text
@@ -61228,7 +61248,7 @@ function ComparisonLegacyModern({
61228
61248
  )
61229
61249
  ] });
61230
61250
  }, [columnsSlot, legacyFeatures, modernFeatures, legacyTitle, modernTitle, legacyColumnClassName, modernColumnClassName]);
61231
- const headingContent = React32.useMemo(() => {
61251
+ const headingContent = React8.useMemo(() => {
61232
61252
  if (!heading && !headingHighlight) return null;
61233
61253
  return /* @__PURE__ */ jsxs("h2", { className: cn("text-4xl font-medium md:text-5xl lg:text-7xl", headingClassName), children: [
61234
61254
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxs("span", { className: "text-muted-foreground", children: [
@@ -61241,7 +61261,7 @@ function ComparisonLegacyModern({
61241
61261
  ] }) : headingHighlight)
61242
61262
  ] });
61243
61263
  }, [heading, headingHighlight, headingClassName, headingHighlightClassName]);
61244
- const descriptionContent = React32.useMemo(() => {
61264
+ const descriptionContent = React8.useMemo(() => {
61245
61265
  if (!description) return null;
61246
61266
  if (typeof description === "string") {
61247
61267
  return /* @__PURE__ */ jsx("p", { className: cn("text-lg", descriptionClassName), children: description });
@@ -61414,7 +61434,7 @@ var NavbarMobileMenu = ({
61414
61434
  closeIconClassName,
61415
61435
  title = "Mobile Navigation"
61416
61436
  }) => {
61417
- React32.useEffect(() => {
61437
+ React8.useEffect(() => {
61418
61438
  if (open) {
61419
61439
  const originalOverflow = document.body.style.overflow;
61420
61440
  document.body.style.overflow = "hidden";
@@ -61643,7 +61663,7 @@ var NavbarDropdownMenu = ({
61643
61663
  patternOpacity,
61644
61664
  optixFlowConfig
61645
61665
  }) => {
61646
- const [open, setOpen] = React32.useState(false);
61666
+ const [open, setOpen] = React8.useState(false);
61647
61667
  const renderAuthActions = useMemo(() => {
61648
61668
  if (authActionsSlot) return authActionsSlot;
61649
61669
  if (!authActions || authActions.length === 0) return null;
@@ -61869,7 +61889,7 @@ var NavbarCenteredMenu = ({
61869
61889
  patternOpacity,
61870
61890
  optixFlowConfig
61871
61891
  }) => {
61872
- const [open, setOpen] = React32.useState(false);
61892
+ const [open, setOpen] = React8.useState(false);
61873
61893
  const renderAuthActions = useMemo(() => {
61874
61894
  if (authActionsSlot) return authActionsSlot;
61875
61895
  if (!authActions || authActions.length === 0) return null;
@@ -62009,7 +62029,7 @@ var DesktopMenuItem = ({
62009
62029
  index,
62010
62030
  optixFlowConfig
62011
62031
  }) => {
62012
- const imagesRef = React32.useRef([]);
62032
+ const imagesRef = React8.useRef([]);
62013
62033
  const layout = link.layout || "simple-grid";
62014
62034
  const handleMouseEnter = (event) => {
62015
62035
  const index2 = Number(event.currentTarget.getAttribute("data-index"));
@@ -63244,7 +63264,7 @@ var NavbarFeatureGrid = ({
63244
63264
  patternOpacity,
63245
63265
  optixFlowConfig
63246
63266
  }) => {
63247
- const [open, setOpen] = React32.useState(false);
63267
+ const [open, setOpen] = React8.useState(false);
63248
63268
  const renderAuthActions = useMemo(() => {
63249
63269
  if (authActionsSlot) return authActionsSlot;
63250
63270
  if (!authActions || authActions.length === 0) return null;
@@ -66454,7 +66474,7 @@ var DesktopMenuItem7 = ({
66454
66474
  if (item.groups && item.groups.length > 0) {
66455
66475
  return /* @__PURE__ */ jsxs(NavigationMenuItem, { value: `${index}`, children: [
66456
66476
  /* @__PURE__ */ jsx(NavigationMenuTrigger, { children: item.label }),
66457
- /* @__PURE__ */ jsx(NavigationMenuContent, { className: "p-0", children: /* @__PURE__ */ jsx("div", { className: "flex", children: item.groups.map((group, groupIndex) => /* @__PURE__ */ jsxs(React32.Fragment, { children: [
66477
+ /* @__PURE__ */ jsx(NavigationMenuContent, { className: "p-0", children: /* @__PURE__ */ jsx("div", { className: "flex", children: item.groups.map((group, groupIndex) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
66458
66478
  groupIndex > 0 && /* @__PURE__ */ jsx(
66459
66479
  Separator,
66460
66480
  {
@@ -67206,7 +67226,7 @@ var NavbarSimpleLinks = ({
67206
67226
  const renderNavItems = useMemo(() => {
67207
67227
  if (navItemsSlot) return navItemsSlot;
67208
67228
  if (!navItems || navItems.length === 0) return null;
67209
- return navItems.map((item) => /* @__PURE__ */ jsx(React32.Fragment, { children: /* @__PURE__ */ jsx(NavigationMenuItem, { children: /* @__PURE__ */ jsx(
67229
+ return navItems.map((item) => /* @__PURE__ */ jsx(React8.Fragment, { children: /* @__PURE__ */ jsx(NavigationMenuItem, { children: /* @__PURE__ */ jsx(
67210
67230
  NavigationMenuLink,
67211
67231
  {
67212
67232
  "data-nav-item": item.name,
@@ -72235,7 +72255,7 @@ function PricingFullComparison({
72235
72255
  resolvedPlanIds[index]
72236
72256
  ))
72237
72257
  ] }) }),
72238
- /* @__PURE__ */ jsx("tbody", { children: categories.map((category) => /* @__PURE__ */ jsxs(React32.Fragment, { children: [
72258
+ /* @__PURE__ */ jsx("tbody", { children: categories.map((category) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
72239
72259
  /* @__PURE__ */ jsx("tr", { className: cn(getNestedCardBg(background), getNestedCardTextColor(background), categoryRowClassName), children: /* @__PURE__ */ jsx(
72240
72260
  "td",
72241
72261
  {
@@ -76836,9 +76856,9 @@ function ProcessStickySteps({
76836
76856
  );
76837
76857
  }
76838
76858
  var usePrevious = (value) => {
76839
- const [prev, setPrev] = React32.useState(void 0);
76840
- const ref = React32.useRef(value);
76841
- React32.useEffect(() => {
76859
+ const [prev, setPrev] = React8.useState(void 0);
76860
+ const ref = React8.useRef(value);
76861
+ React8.useEffect(() => {
76842
76862
  setPrev(ref.current);
76843
76863
  ref.current = value;
76844
76864
  }, [value]);
@@ -76851,12 +76871,12 @@ var ProcessCard = ({
76851
76871
  itemClassName,
76852
76872
  background
76853
76873
  }) => {
76854
- const ref = React32.useRef(null);
76874
+ const ref = React8.useRef(null);
76855
76875
  const itemInView = useInView(ref, {
76856
76876
  amount: 0,
76857
76877
  margin: "0px 0px -60% 0px"
76858
76878
  });
76859
- React32.useEffect(() => {
76879
+ React8.useEffect(() => {
76860
76880
  if (itemInView) {
76861
76881
  setActive(index);
76862
76882
  }
@@ -76906,7 +76926,7 @@ function ProcessScrollImage({
76906
76926
  ctaText,
76907
76927
  ctaUrl
76908
76928
  }) {
76909
- const [active, setActive] = React32.useState(0);
76929
+ const [active, setActive] = React8.useState(0);
76910
76930
  const previousActive = usePrevious(active);
76911
76931
  const resolvedHeading = title ?? heading;
76912
76932
  const resolvedActions = actions ?? (ctaText && ctaUrl ? [
@@ -77089,7 +77109,7 @@ var ProcessCard2 = ({
77089
77109
  itemClassName,
77090
77110
  hoverImageClassName
77091
77111
  }) => {
77092
- const [isHovered, setIsHovered] = React32.useState(false);
77112
+ const [isHovered, setIsHovered] = React8.useState(false);
77093
77113
  const titleText = typeof step.title === "string" ? step.title : `Step ${index + 1}`;
77094
77114
  return /* @__PURE__ */ jsxs(
77095
77115
  "li",
@@ -77447,7 +77467,7 @@ function ProcessExpandableTimeline({
77447
77467
  spacing = "xl",
77448
77468
  containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8"
77449
77469
  }) {
77450
- const [expandedIndex, setExpandedIndex] = React32.useState(null);
77470
+ const [expandedIndex, setExpandedIndex] = React8.useState(null);
77451
77471
  const toggleExpand = (index) => {
77452
77472
  setExpandedIndex(expandedIndex === index ? null : index);
77453
77473
  };
@@ -82237,7 +82257,7 @@ function ListAchievementsShowcase({
82237
82257
  if (!items || items.length === 0) return null;
82238
82258
  return /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col", itemsClassName), children: [
82239
82259
  /* @__PURE__ */ jsx(Separator, {}),
82240
- items.map((item, index) => /* @__PURE__ */ jsxs(React32.Fragment, { children: [
82260
+ items.map((item, index) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
82241
82261
  /* @__PURE__ */ jsxs(
82242
82262
  "div",
82243
82263
  {
@@ -82357,7 +82377,7 @@ function ListCareerTimeline({
82357
82377
  const renderExperiences = useMemo(() => {
82358
82378
  if (experiencesSlot) return experiencesSlot;
82359
82379
  if (!experiences || experiences.length === 0) return null;
82360
- return /* @__PURE__ */ jsx("div", { className: experiencesClassName, children: experiences.map((experience, idx) => /* @__PURE__ */ jsxs(React32.Fragment, { children: [
82380
+ return /* @__PURE__ */ jsx("div", { className: experiencesClassName, children: experiences.map((experience, idx) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
82361
82381
  /* @__PURE__ */ jsx(Separator, {}),
82362
82382
  /* @__PURE__ */ jsxs(
82363
82383
  "div",
@@ -82378,7 +82398,7 @@ function ListCareerTimeline({
82378
82398
  const renderAwards = useMemo(() => {
82379
82399
  if (awardsSlot) return awardsSlot;
82380
82400
  if (!awards || awards.length === 0) return null;
82381
- return /* @__PURE__ */ jsx("div", { className: awardsClassName, children: awards.map((award, idx) => /* @__PURE__ */ jsxs(React32.Fragment, { children: [
82401
+ return /* @__PURE__ */ jsx("div", { className: awardsClassName, children: awards.map((award, idx) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
82382
82402
  /* @__PURE__ */ jsx(Separator, {}),
82383
82403
  /* @__PURE__ */ jsxs(
82384
82404
  "div",
@@ -82513,7 +82533,7 @@ function ListMetricsDashboard({
82513
82533
  activeCategory: controlledActiveCategory,
82514
82534
  onActiveCategoryChange
82515
82535
  }) {
82516
- const [internalActiveTab, setInternalActiveTab] = React32.useState("all");
82536
+ const [internalActiveTab, setInternalActiveTab] = React8.useState("all");
82517
82537
  const activeTab = controlledActiveCategory ?? internalActiveTab;
82518
82538
  const handleTabChange = (value) => {
82519
82539
  if (onActiveCategoryChange) {
@@ -82997,7 +83017,7 @@ function ListSearchableGrid({
82997
83017
  searchTerm: controlledSearchTerm,
82998
83018
  onSearchTermChange
82999
83019
  }) {
83000
- const [internalSearchTerm, setInternalSearchTerm] = React32.useState("");
83020
+ const [internalSearchTerm, setInternalSearchTerm] = React8.useState("");
83001
83021
  const searchTerm = controlledSearchTerm ?? internalSearchTerm;
83002
83022
  const handleSearchChange = (value) => {
83003
83023
  if (onSearchTermChange) {
@@ -83006,7 +83026,7 @@ function ListSearchableGrid({
83006
83026
  setInternalSearchTerm(value);
83007
83027
  }
83008
83028
  };
83009
- const filteredItems = React32.useMemo(() => {
83029
+ const filteredItems = React8.useMemo(() => {
83010
83030
  if (!searchTerm) {
83011
83031
  return items ?? [];
83012
83032
  }
@@ -83206,7 +83226,7 @@ function OfferModalNewsletterDiscount({
83206
83226
  buttonAction
83207
83227
  }) {
83208
83228
  const dialogProps = open !== void 0 ? { open, onOpenChange } : { defaultOpen };
83209
- const renderCloseButton = React32.useMemo(() => {
83229
+ const renderCloseButton = React8.useMemo(() => {
83210
83230
  if (closeButtonSlot) return closeButtonSlot;
83211
83231
  if (!closeButtonText) return null;
83212
83232
  return /* @__PURE__ */ jsx("div", { className: "absolute end-1.5 top-1.5", children: /* @__PURE__ */ jsx(DialogClose, { asChild: true, children: /* @__PURE__ */ jsx(
@@ -83223,7 +83243,7 @@ function OfferModalNewsletterDiscount({
83223
83243
  }
83224
83244
  ) }) });
83225
83245
  }, [closeButtonSlot, closeButtonText, closeClassName]);
83226
- const renderHeader = React32.useMemo(() => {
83246
+ const renderHeader = React8.useMemo(() => {
83227
83247
  if (headerSlot) return headerSlot;
83228
83248
  if (!title) return null;
83229
83249
  return /* @__PURE__ */ jsx(DialogHeader, { className: headerClassName, children: /* @__PURE__ */ jsx(
@@ -83237,7 +83257,7 @@ function OfferModalNewsletterDiscount({
83237
83257
  }
83238
83258
  ) });
83239
83259
  }, [headerSlot, title, headerClassName, titleClassName]);
83240
- const renderForm = React32.useMemo(() => {
83260
+ const renderForm = React8.useMemo(() => {
83241
83261
  if (formSlot) return formSlot;
83242
83262
  if (!formEngineSetup) return null;
83243
83263
  const defaultButtonAction = {
@@ -83335,7 +83355,7 @@ function OfferModalMembershipImage({
83335
83355
  buttonAction
83336
83356
  }) {
83337
83357
  const dialogProps = open !== void 0 ? { open, onOpenChange } : { defaultOpen };
83338
- const renderImage = React32.useMemo(() => {
83358
+ const renderImage = React8.useMemo(() => {
83339
83359
  if (imageSlot) return imageSlot;
83340
83360
  if (!image) return null;
83341
83361
  return /* @__PURE__ */ jsx(
@@ -83366,7 +83386,7 @@ function OfferModalMembershipImage({
83366
83386
  imageClassName,
83367
83387
  optixFlowConfig
83368
83388
  ]);
83369
- const renderCloseButton = React32.useMemo(() => {
83389
+ const renderCloseButton = React8.useMemo(() => {
83370
83390
  if (closeButtonSlot) return closeButtonSlot;
83371
83391
  return /* @__PURE__ */ jsx("div", { className: "absolute -end-px -top-px z-10", children: /* @__PURE__ */ jsx(DialogClose, { asChild: true, children: /* @__PURE__ */ jsx(
83372
83392
  Pressable,
@@ -83382,7 +83402,7 @@ function OfferModalMembershipImage({
83382
83402
  }
83383
83403
  ) }) });
83384
83404
  }, [closeButtonSlot, closeClassName]);
83385
- const renderForm = React32.useMemo(() => {
83405
+ const renderForm = React8.useMemo(() => {
83386
83406
  if (formSlot) return formSlot;
83387
83407
  if (!formEngineSetup) return null;
83388
83408
  const defaultButtonAction = {
@@ -83415,7 +83435,7 @@ function OfferModalMembershipImage({
83415
83435
  }
83416
83436
  );
83417
83437
  }, [formSlot, formEngineSetup, buttonAction, formClassName]);
83418
- const renderFooter = React32.useMemo(() => {
83438
+ const renderFooter = React8.useMemo(() => {
83419
83439
  if (footerSlot) return footerSlot;
83420
83440
  if (!description) return null;
83421
83441
  return /* @__PURE__ */ jsx(DialogFooter, { className: footerClassName, children: /* @__PURE__ */ jsx(
@@ -83621,7 +83641,7 @@ function OfferModalSheetNewsletter({
83621
83641
  buttonAction
83622
83642
  }) {
83623
83643
  const sheetProps = open !== void 0 ? { open, onOpenChange } : { defaultOpen };
83624
- const renderLogo = React32.useMemo(() => {
83644
+ const renderLogo = React8.useMemo(() => {
83625
83645
  if (logoSlot) return logoSlot;
83626
83646
  if (!logo) return null;
83627
83647
  const logoSrc = typeof logo.src === "string" ? logo.src : logo.src.light;
@@ -83635,7 +83655,7 @@ function OfferModalSheetNewsletter({
83635
83655
  }
83636
83656
  );
83637
83657
  }, [logoSlot, logo, logoClassName, optixFlowConfig]);
83638
- const renderHeader = React32.useMemo(() => {
83658
+ const renderHeader = React8.useMemo(() => {
83639
83659
  if (headerSlot) return headerSlot;
83640
83660
  return /* @__PURE__ */ jsxs(SheetHeader, { className: cn("gap-8 p-0", headerClassName), children: [
83641
83661
  renderLogo,
@@ -83668,7 +83688,7 @@ function OfferModalSheetNewsletter({
83668
83688
  description,
83669
83689
  descriptionClassName
83670
83690
  ]);
83671
- const renderForm = React32.useMemo(() => {
83691
+ const renderForm = React8.useMemo(() => {
83672
83692
  if (formSlot) return formSlot;
83673
83693
  if (!formEngineSetup) return null;
83674
83694
  const defaultButtonAction = {
@@ -83701,7 +83721,7 @@ function OfferModalSheetNewsletter({
83701
83721
  }
83702
83722
  );
83703
83723
  }, [formSlot, formEngineSetup, buttonAction, formClassName]);
83704
- const renderLegal = React32.useMemo(() => {
83724
+ const renderLegal = React8.useMemo(() => {
83705
83725
  if (legalSlot) return legalSlot;
83706
83726
  if (!termsUrl || !termsText || !privacyUrl || !privacyText) return null;
83707
83727
  return /* @__PURE__ */ jsxs("p", { className: cn("text-muted-foreground text-xs", legalClassName), children: [
@@ -83715,7 +83735,7 @@ function OfferModalSheetNewsletter({
83715
83735
  "."
83716
83736
  ] });
83717
83737
  }, [legalSlot, termsUrl, termsText, privacyUrl, privacyText, legalClassName]);
83718
- const renderImage = React32.useMemo(() => {
83738
+ const renderImage = React8.useMemo(() => {
83719
83739
  if (imageSlot) return imageSlot;
83720
83740
  if (!image) return null;
83721
83741
  return /* @__PURE__ */ jsx("div", { className: cn("h-1/2 basis-1/2", imageWrapperClassName), children: /* @__PURE__ */ jsx(AspectRatio, { ratio: 1, className: "overflow-hidden", children: /* @__PURE__ */ jsx(
@@ -84302,10 +84322,10 @@ function ProjectDetailSidebarNavigation(props) {
84302
84322
  heroImageClassName,
84303
84323
  metadataClassName
84304
84324
  } = props;
84305
- const [activeSection, setActiveSection] = React32.useState(
84325
+ const [activeSection, setActiveSection] = React8.useState(
84306
84326
  sections?.[0]?.id || ""
84307
84327
  );
84308
- React32.useEffect(() => {
84328
+ React8.useEffect(() => {
84309
84329
  const handleScroll = () => {
84310
84330
  const sectionElements = sections?.map(
84311
84331
  (section) => document.getElementById(section.id)
@@ -87165,7 +87185,7 @@ function ProjectDetailTabbedCaseStudy(props) {
87165
87185
  testimonialClassName,
87166
87186
  toolsClassName
87167
87187
  } = props;
87168
- const [activeTab, setActiveTab] = React32.useState(tabs?.[0]?.id || "");
87188
+ const [activeTab, setActiveTab] = React8.useState(tabs?.[0]?.id || "");
87169
87189
  const renderedBackAction = useMemo(() => {
87170
87190
  if (backActionSlot) return backActionSlot;
87171
87191
  if (!backAction) return null;
@@ -87553,7 +87573,7 @@ function RevealImage({
87553
87573
  index,
87554
87574
  optixFlowConfig
87555
87575
  }) {
87556
- const ref = React32.useRef(null);
87576
+ const ref = React8.useRef(null);
87557
87577
  const { scrollYProgress } = useScroll({
87558
87578
  target: ref,
87559
87579
  offset: ["start end", "end start"]
@@ -87748,7 +87768,7 @@ function ParallaxSection({
87748
87768
  index,
87749
87769
  optixFlowConfig
87750
87770
  }) {
87751
- const ref = React32.useRef(null);
87771
+ const ref = React8.useRef(null);
87752
87772
  const { scrollYProgress } = useScroll({
87753
87773
  target: ref,
87754
87774
  offset: ["start end", "end start"]
@@ -87821,7 +87841,7 @@ function ProjectDetailParallaxScroll(props) {
87821
87841
  heroImageClassName,
87822
87842
  sectionsClassName
87823
87843
  } = props;
87824
- const heroRef = React32.useRef(null);
87844
+ const heroRef = React8.useRef(null);
87825
87845
  const { scrollYProgress } = useScroll({
87826
87846
  target: heroRef,
87827
87847
  offset: ["start start", "end start"]
@@ -88359,7 +88379,7 @@ function IndustriesExpandableShowcase({
88359
88379
  patternClassName,
88360
88380
  optixFlowConfig
88361
88381
  }) {
88362
- const [activeContractor, setActiveContractor] = React32.useState(
88382
+ const [activeContractor, setActiveContractor] = React8.useState(
88363
88383
  contractors?.[0]?.id || ""
88364
88384
  );
88365
88385
  const handleContractorHover = (contractorId) => {
@@ -89027,7 +89047,7 @@ function ResourceDetailDocumentSidebar({
89027
89047
  }) {
89028
89048
  const renderedBreadcrumbs = useMemo(() => {
89029
89049
  if (breadcrumbsSlot) return breadcrumbsSlot;
89030
- return /* @__PURE__ */ jsx(Breadcrumb, { className: breadcrumbsClassName, children: /* @__PURE__ */ jsx(BreadcrumbList, { children: breadcrumbs?.map((crumb, index) => /* @__PURE__ */ jsxs(React32.Fragment, { children: [
89050
+ return /* @__PURE__ */ jsx(Breadcrumb, { className: breadcrumbsClassName, children: /* @__PURE__ */ jsx(BreadcrumbList, { children: breadcrumbs?.map((crumb, index) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
89031
89051
  /* @__PURE__ */ jsx(BreadcrumbItem, { children: !crumb.href ? /* @__PURE__ */ jsx(BreadcrumbPage, { children: typeof crumb.label === "string" ? crumb.label : crumb.label }) : /* @__PURE__ */ jsx(BreadcrumbLink, { href: crumb.href, children: index === 0 ? /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/home", size: 16 }) : typeof crumb.label === "string" ? crumb.label : crumb.label }) }),
89032
89052
  index < (breadcrumbs?.length || 0) - 1 && /* @__PURE__ */ jsx(BreadcrumbSeparator, {})
89033
89053
  ] }, index)) }) });
@@ -92435,8 +92455,8 @@ function ServicesListTableHover({
92435
92455
  patternOpacity,
92436
92456
  optixFlowConfig
92437
92457
  }) {
92438
- const [hoveredIndex, setHoveredIndex] = React32.useState(null);
92439
- const [mousePosition, setMousePosition] = React32.useState({ x: 0, y: 0 });
92458
+ const [hoveredIndex, setHoveredIndex] = React8.useState(null);
92459
+ const [mousePosition, setMousePosition] = React8.useState({ x: 0, y: 0 });
92440
92460
  const handleMouseMove = (e) => {
92441
92461
  setMousePosition({ x: e.clientX, y: e.clientY });
92442
92462
  };
@@ -92686,7 +92706,7 @@ function ServicesListStickyImage({
92686
92706
  patternOpacity,
92687
92707
  optixFlowConfig
92688
92708
  }) {
92689
- const [activeIndex, setActiveIndex] = React32.useState(0);
92709
+ const [activeIndex, setActiveIndex] = React8.useState(0);
92690
92710
  const renderServices = () => {
92691
92711
  if (servicesSlot) return servicesSlot;
92692
92712
  if (!services || services.length === 0) return null;
@@ -92938,8 +92958,8 @@ function ServicesListVideoShowcase({
92938
92958
  patternOpacity,
92939
92959
  optixFlowConfig
92940
92960
  }) {
92941
- const [playingIndex, setPlayingIndex] = React32.useState(null);
92942
- const videoRefs = React32.useRef([]);
92961
+ const [playingIndex, setPlayingIndex] = React8.useState(null);
92962
+ const videoRefs = React8.useRef([]);
92943
92963
  const handleMouseEnter = (index) => {
92944
92964
  setPlayingIndex(index);
92945
92965
  videoRefs.current[index]?.play();
@@ -96226,7 +96246,7 @@ function StatsCircularProgress({
96226
96246
  statInfoClassName
96227
96247
  }) {
96228
96248
  const effectiveDefaultCategory = defaultCategory || (categories && categories.length > 0 ? categories[0].id : "");
96229
- const [category, setCategory] = React32.useState(effectiveDefaultCategory);
96249
+ const [category, setCategory] = React8.useState(effectiveDefaultCategory);
96230
96250
  const badgeContent = useMemo(() => {
96231
96251
  if (badgeSlot) return badgeSlot;
96232
96252
  if (!badge) return null;
@@ -96519,8 +96539,8 @@ function StatsCardGroup({
96519
96539
  );
96520
96540
  }
96521
96541
  function useAnimatedCounter(endValue, duration = 2e3, isVisible) {
96522
- const [count, setCount] = React32.useState(0);
96523
- React32.useEffect(() => {
96542
+ const [count, setCount] = React8.useState(0);
96543
+ React8.useEffect(() => {
96524
96544
  if (!isVisible) return;
96525
96545
  let startTime = null;
96526
96546
  let animationFrame;
@@ -96608,9 +96628,9 @@ function StatsAnimatedCounter({
96608
96628
  statLabelClassName,
96609
96629
  statIconClassName
96610
96630
  }) {
96611
- const [isVisible, setIsVisible] = React32.useState(false);
96612
- const sectionRef = React32.useRef(null);
96613
- React32.useEffect(() => {
96631
+ const [isVisible, setIsVisible] = React8.useState(false);
96632
+ const sectionRef = React8.useRef(null);
96633
+ React8.useEffect(() => {
96614
96634
  const observer = new IntersectionObserver(
96615
96635
  ([entry]) => {
96616
96636
  if (entry.isIntersecting) {
@@ -96698,8 +96718,8 @@ function StatsAnimatedCounter({
96698
96718
  );
96699
96719
  }
96700
96720
  function useNumberTicker(endValue, duration = 2500, isVisible, decimals = 0) {
96701
- const [displayValue, setDisplayValue] = React32.useState("0");
96702
- React32.useEffect(() => {
96721
+ const [displayValue, setDisplayValue] = React8.useState("0");
96722
+ React8.useEffect(() => {
96703
96723
  if (!isVisible) return;
96704
96724
  let startTime = null;
96705
96725
  let animationFrame;
@@ -96814,9 +96834,9 @@ function StatsNumberTicker({
96814
96834
  statLabelClassName,
96815
96835
  statDescriptionClassName
96816
96836
  }) {
96817
- const [isVisible, setIsVisible] = React32.useState(false);
96818
- const sectionRef = React32.useRef(null);
96819
- React32.useEffect(() => {
96837
+ const [isVisible, setIsVisible] = React8.useState(false);
96838
+ const sectionRef = React8.useRef(null);
96839
+ React8.useEffect(() => {
96820
96840
  const observer = new IntersectionObserver(
96821
96841
  ([entry]) => {
96822
96842
  if (entry.isIntersecting) {
@@ -97075,9 +97095,9 @@ function StatsBarComparison({
97075
97095
  barValueClassName,
97076
97096
  barTrackClassName
97077
97097
  }) {
97078
- const [isVisible, setIsVisible] = React32.useState(!animate);
97079
- const sectionRef = React32.useRef(null);
97080
- React32.useEffect(() => {
97098
+ const [isVisible, setIsVisible] = React8.useState(!animate);
97099
+ const sectionRef = React8.useRef(null);
97100
+ React8.useEffect(() => {
97081
97101
  if (!animate) return;
97082
97102
  const observer = new IntersectionObserver(
97083
97103
  ([entry]) => {
@@ -97255,7 +97275,7 @@ function TimelineVerticalIconDashed({
97255
97275
  "mx-auto flex flex-col items-center justify-center text-center sm:max-w-xl",
97256
97276
  stepsClassName
97257
97277
  ),
97258
- children: steps.map((step, index) => /* @__PURE__ */ jsxs(React32.Fragment, { children: [
97278
+ children: steps.map((step, index) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
97259
97279
  /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col items-center", stepClassName), children: [
97260
97280
  /* @__PURE__ */ jsx(
97261
97281
  "span",
@@ -97522,7 +97542,7 @@ function TimelineTwoColumnFeatured({
97522
97542
  style,
97523
97543
  optixFlowConfig
97524
97544
  }) {
97525
- const renderActions = React32.useMemo(() => {
97545
+ const renderActions = React8.useMemo(() => {
97526
97546
  if (actionsSlot) {
97527
97547
  return actionsSlot;
97528
97548
  }
@@ -97650,7 +97670,7 @@ function TimelineTwoColumnFeatured({
97650
97670
  }
97651
97671
  );
97652
97672
  }
97653
- var DiagonalPattern = React32.memo(({
97673
+ var DiagonalPattern = React8.memo(({
97654
97674
  className,
97655
97675
  patternOpacity = 0.15
97656
97676
  }) => {
@@ -97689,7 +97709,7 @@ function TimelineAlternatingDiagonal({
97689
97709
  style,
97690
97710
  optixFlowConfig
97691
97711
  }) {
97692
- const renderedBadge = React32.useMemo(() => {
97712
+ const renderedBadge = React8.useMemo(() => {
97693
97713
  if (badgeSlot) {
97694
97714
  return badgeSlot;
97695
97715
  }
@@ -98067,7 +98087,7 @@ function TimelineProductivityList({
98067
98087
  }
98068
98088
  );
98069
98089
  }
98070
- var ProcessBar = React32.memo(({ currentStep, steps }) => /* @__PURE__ */ jsx("div", { className: "relative w-full scale-75", children: /* @__PURE__ */ jsx("div", { className: "flex items-center justify-between", children: steps.map((step, index) => /* @__PURE__ */ jsxs(React32.Fragment, { children: [
98090
+ var ProcessBar = React8.memo(({ currentStep, steps }) => /* @__PURE__ */ jsx("div", { className: "relative w-full scale-75", children: /* @__PURE__ */ jsx("div", { className: "flex items-center justify-between", children: steps.map((step, index) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
98071
98091
  /* @__PURE__ */ jsx("div", { className: "flex flex-col items-center", children: /* @__PURE__ */ jsx(
98072
98092
  motion.div,
98073
98093
  {
@@ -98094,7 +98114,7 @@ var ProcessBar = React32.memo(({ currentStep, steps }) => /* @__PURE__ */ jsx("d
98094
98114
  )
98095
98115
  ] })
98096
98116
  ] }, index)) }) }));
98097
- var StepperContent = React32.memo(({ step, optixFlowConfig, imageClassName, descriptionClassName, background }) => {
98117
+ var StepperContent = React8.memo(({ step, optixFlowConfig, imageClassName, descriptionClassName, background }) => {
98098
98118
  return /* @__PURE__ */ jsxs("div", { className: cn("my-4 flex min-h-[400px] w-full flex-col items-center justify-center overflow-hidden rounded-2xl p-6 text-center", getNestedCardBg(background), getNestedCardTextColor(background)), children: [
98099
98119
  /* @__PURE__ */ jsx(
98100
98120
  motion.div,
@@ -98127,7 +98147,7 @@ var StepperContent = React32.memo(({ step, optixFlowConfig, imageClassName, desc
98127
98147
  )
98128
98148
  ] });
98129
98149
  });
98130
- var NavButtons = React32.memo(({ handlePrev, handleNext }) => /* @__PURE__ */ jsxs("div", { className: "flex w-full justify-end gap-3 tracking-tight", children: [
98150
+ var NavButtons = React8.memo(({ handlePrev, handleNext }) => /* @__PURE__ */ jsxs("div", { className: "flex w-full justify-end gap-3 tracking-tight", children: [
98131
98151
  /* @__PURE__ */ jsxs(
98132
98152
  Pressable,
98133
98153
  {
@@ -98178,10 +98198,10 @@ function TimelineStepperAnimated({
98178
98198
  }) {
98179
98199
  const safeInitialStep = (steps?.length ?? 0) > 0 ? Math.max(0, Math.min(initialStep ?? 0, (steps?.length ?? 1) - 1)) : 0;
98180
98200
  const [currentStep, setCurrentStep] = useState(safeInitialStep);
98181
- const handleNext = React32.useCallback(() => {
98201
+ const handleNext = React8.useCallback(() => {
98182
98202
  setCurrentStep((prev) => Math.min(prev + 1, (steps?.length ?? 1) - 1));
98183
98203
  }, [steps?.length]);
98184
- const handlePrev = React32.useCallback(() => {
98204
+ const handlePrev = React8.useCallback(() => {
98185
98205
  setCurrentStep((prev) => Math.max(prev - 1, 0));
98186
98206
  }, []);
98187
98207
  const safeCurrentStep = (steps?.length ?? 0) > 0 ? Math.max(0, Math.min(currentStep, (steps?.length ?? 1) - 1)) : 0;
@@ -98890,7 +98910,7 @@ function TimelineTabbedPhases({
98890
98910
  style,
98891
98911
  optixFlowConfig
98892
98912
  }) {
98893
- const renderDownloadButton = React32.useMemo(() => {
98913
+ const renderDownloadButton = React8.useMemo(() => {
98894
98914
  if (downloadSlot) {
98895
98915
  return downloadSlot;
98896
98916
  }
@@ -99110,7 +99130,7 @@ function TimelineProductLaunch({
99110
99130
  id,
99111
99131
  style
99112
99132
  }) {
99113
- const renderCta = React32.useMemo(() => {
99133
+ const renderCta = React8.useMemo(() => {
99114
99134
  if (ctaSlot) {
99115
99135
  return ctaSlot;
99116
99136
  }
@@ -99568,9 +99588,9 @@ function LinkTreeBlock({
99568
99588
  }) {
99569
99589
  const resolvedBackground = background;
99570
99590
  const resolvedPattern = pattern ?? backgroundPattern;
99571
- const [lightboxOpen, setLightboxOpen] = React32.useState(false);
99572
- const [lightboxIndex, setLightboxIndex] = React32.useState(0);
99573
- const lightboxItems = React32.useMemo(() => {
99591
+ const [lightboxOpen, setLightboxOpen] = React8.useState(false);
99592
+ const [lightboxIndex, setLightboxIndex] = React8.useState(0);
99593
+ const lightboxItems = React8.useMemo(() => {
99574
99594
  if (!mediaGallery || mediaGallery.length === 0) return [];
99575
99595
  return mediaGallery.slice(0, mediaGalleryLimit).map((item, index) => ({
99576
99596
  id: item.id ?? `media-${index}`,
@@ -99582,11 +99602,11 @@ function LinkTreeBlock({
99582
99602
  share: true
99583
99603
  }));
99584
99604
  }, [mediaGallery, mediaGalleryLimit]);
99585
- const handleMediaClick = React32.useCallback((index) => {
99605
+ const handleMediaClick = React8.useCallback((index) => {
99586
99606
  setLightboxIndex(index);
99587
99607
  setLightboxOpen(true);
99588
99608
  }, []);
99589
- const handleLightboxClose = React32.useCallback(() => {
99609
+ const handleLightboxClose = React8.useCallback(() => {
99590
99610
  setLightboxOpen(false);
99591
99611
  }, []);
99592
99612
  const resolveImage = (value, fallbackAlt) => {
@@ -99598,7 +99618,7 @@ function LinkTreeBlock({
99598
99618
  };
99599
99619
  const nameForAlt = typeof brandName === "string" ? brandName : "Brand avatar";
99600
99620
  const resolvedAvatar = resolveImage(brandAvatar || brandLogo, nameForAlt);
99601
- const renderBrandHeader = React32.useMemo(() => {
99621
+ const renderBrandHeader = React8.useMemo(() => {
99602
99622
  if (brandSlot) return brandSlot;
99603
99623
  return /* @__PURE__ */ jsxs(
99604
99624
  "div",
@@ -99685,7 +99705,7 @@ function LinkTreeBlock({
99685
99705
  brandTagline,
99686
99706
  taglineClassName
99687
99707
  ]);
99688
- const renderLinks = React32.useMemo(() => {
99708
+ const renderLinks = React8.useMemo(() => {
99689
99709
  if (linksSlot) return linksSlot;
99690
99710
  if (!links || links.length === 0) return null;
99691
99711
  return /* @__PURE__ */ jsx("div", { className: cn("space-y-3", linksClassName), children: links.map((link, index) => {
@@ -99801,7 +99821,7 @@ function LinkTreeBlock({
99801
99821
  linkBadgeClassName,
99802
99822
  linkChevronClassName
99803
99823
  ]);
99804
- const renderMediaGallery = React32.useMemo(() => {
99824
+ const renderMediaGallery = React8.useMemo(() => {
99805
99825
  if (mediaGallerySlot) return mediaGallerySlot;
99806
99826
  if (!mediaGallery || mediaGallery.length === 0) return null;
99807
99827
  const items = mediaGallery.slice(0, mediaGalleryLimit);
@@ -99914,7 +99934,7 @@ function LinkTreeBlock({
99914
99934
  mediaGalleryOverlayClassName,
99915
99935
  mediaGalleryPlayIconClassName
99916
99936
  ]);
99917
- const renderSocialLinks = React32.useMemo(() => {
99937
+ const renderSocialLinks = React8.useMemo(() => {
99918
99938
  if (socialLinksSlot) return socialLinksSlot;
99919
99939
  if (!socialLinks || socialLinks.length === 0) return null;
99920
99940
  return /* @__PURE__ */ jsx(
@@ -99947,7 +99967,7 @@ function LinkTreeBlock({
99947
99967
  socialIconClassName,
99948
99968
  socialLinkClassName
99949
99969
  ]);
99950
- const renderFooter = React32.useMemo(() => {
99970
+ const renderFooter = React8.useMemo(() => {
99951
99971
  if (footerSlot) return footerSlot;
99952
99972
  if (!footerAction) return null;
99953
99973
  const resolvedFooterAction = footerAction;