@opensite/ui 2.8.8 → 2.8.9

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 (1309) hide show
  1. package/dist/about-company-profile.d.cts +3 -3
  2. package/dist/about-company-profile.d.ts +3 -3
  3. package/dist/about-culture-tabs.cjs +174 -174
  4. package/dist/about-culture-tabs.d.cts +3 -3
  5. package/dist/about-culture-tabs.d.ts +3 -3
  6. package/dist/about-culture-tabs.js +174 -174
  7. package/dist/about-developer-profile.cjs +200 -200
  8. package/dist/about-developer-profile.d.cts +3 -3
  9. package/dist/about-developer-profile.d.ts +3 -3
  10. package/dist/about-developer-profile.js +198 -198
  11. package/dist/about-developer-story.cjs +142 -142
  12. package/dist/about-developer-story.d.cts +3 -3
  13. package/dist/about-developer-story.d.ts +3 -3
  14. package/dist/about-developer-story.js +142 -142
  15. package/dist/about-expandable-values.d.cts +3 -3
  16. package/dist/about-expandable-values.d.ts +3 -3
  17. package/dist/about-interactive-tabs.d.cts +3 -3
  18. package/dist/about-interactive-tabs.d.ts +3 -3
  19. package/dist/about-location-info-hero.d.cts +3 -3
  20. package/dist/about-location-info-hero.d.ts +3 -3
  21. package/dist/about-minimal-story.d.cts +3 -3
  22. package/dist/about-minimal-story.d.ts +3 -3
  23. package/dist/about-mission-dual-image.cjs +142 -142
  24. package/dist/about-mission-dual-image.d.cts +3 -3
  25. package/dist/about-mission-dual-image.d.ts +3 -3
  26. package/dist/about-mission-dual-image.js +142 -142
  27. package/dist/about-mission-features.cjs +142 -142
  28. package/dist/about-mission-features.d.cts +3 -3
  29. package/dist/about-mission-features.d.ts +3 -3
  30. package/dist/about-mission-features.js +142 -142
  31. package/dist/about-mission-principles.d.cts +3 -3
  32. package/dist/about-mission-principles.d.ts +3 -3
  33. package/dist/about-network-spotlight.cjs +142 -142
  34. package/dist/about-network-spotlight.d.cts +3 -3
  35. package/dist/about-network-spotlight.d.ts +3 -3
  36. package/dist/about-network-spotlight.js +142 -142
  37. package/dist/about-split-hero.d.cts +3 -3
  38. package/dist/about-split-hero.d.ts +3 -3
  39. package/dist/about-startup-team.d.cts +3 -3
  40. package/dist/about-startup-team.d.ts +3 -3
  41. package/dist/about-stats-showcase.d.cts +3 -3
  42. package/dist/about-stats-showcase.d.ts +3 -3
  43. package/dist/about-stats-sidebar.d.cts +3 -3
  44. package/dist/about-stats-sidebar.d.ts +3 -3
  45. package/dist/about-story-expertise.cjs +142 -142
  46. package/dist/about-story-expertise.d.cts +3 -3
  47. package/dist/about-story-expertise.d.ts +3 -3
  48. package/dist/about-story-expertise.js +142 -142
  49. package/dist/about-story-gallery.d.cts +3 -3
  50. package/dist/about-story-gallery.d.ts +3 -3
  51. package/dist/about-story-hero.d.cts +3 -3
  52. package/dist/about-story-hero.d.ts +3 -3
  53. package/dist/about-streamline-team.cjs +142 -142
  54. package/dist/about-streamline-team.d.cts +3 -3
  55. package/dist/about-streamline-team.d.ts +3 -3
  56. package/dist/about-streamline-team.js +142 -142
  57. package/dist/about-vision-gallery.d.cts +3 -3
  58. package/dist/about-vision-gallery.d.ts +3 -3
  59. package/dist/alternating-blocks.d.cts +3 -3
  60. package/dist/alternating-blocks.d.ts +3 -3
  61. package/dist/animated-dialog.d.cts +3 -3
  62. package/dist/animated-dialog.d.ts +3 -3
  63. package/dist/article-breadcrumb-social.d.cts +3 -3
  64. package/dist/article-breadcrumb-social.d.ts +3 -3
  65. package/dist/article-chapters-author.d.cts +3 -3
  66. package/dist/article-chapters-author.d.ts +3 -3
  67. package/dist/article-compact-toc.d.cts +3 -3
  68. package/dist/article-compact-toc.d.ts +3 -3
  69. package/dist/article-hero-prose.d.cts +3 -3
  70. package/dist/article-hero-prose.d.ts +3 -3
  71. package/dist/article-sidebar-sticky.d.cts +3 -3
  72. package/dist/article-sidebar-sticky.d.ts +3 -3
  73. package/dist/article-split-animated.d.cts +3 -3
  74. package/dist/article-split-animated.d.ts +3 -3
  75. package/dist/article-toc-sidebar.d.cts +3 -3
  76. package/dist/article-toc-sidebar.d.ts +3 -3
  77. package/dist/auto-scroll-carousel.d.cts +3 -3
  78. package/dist/auto-scroll-carousel.d.ts +3 -3
  79. package/dist/badge.d.cts +1 -1
  80. package/dist/badge.d.ts +1 -1
  81. package/dist/banner-announcement-dismissible.d.cts +3 -3
  82. package/dist/banner-announcement-dismissible.d.ts +3 -3
  83. package/dist/banner-countdown-sale.d.cts +3 -3
  84. package/dist/banner-countdown-sale.d.ts +3 -3
  85. package/dist/banner-delivery-countdown.d.cts +3 -3
  86. package/dist/banner-delivery-countdown.d.ts +3 -3
  87. package/dist/banner-event-promo.d.cts +3 -3
  88. package/dist/banner-event-promo.d.ts +3 -3
  89. package/dist/banner-floating-offer.d.cts +3 -3
  90. package/dist/banner-floating-offer.d.ts +3 -3
  91. package/dist/banner-gdpr-rights.d.cts +3 -3
  92. package/dist/banner-gdpr-rights.d.ts +3 -3
  93. package/dist/banner-privacy-notice.d.cts +3 -3
  94. package/dist/banner-privacy-notice.d.ts +3 -3
  95. package/dist/banner-promo-cta.d.cts +3 -3
  96. package/dist/banner-promo-cta.d.ts +3 -3
  97. package/dist/banner-social-follow.d.cts +3 -3
  98. package/dist/banner-social-follow.d.ts +3 -3
  99. package/dist/banner-survey-incentive.d.cts +3 -3
  100. package/dist/banner-survey-incentive.d.ts +3 -3
  101. package/dist/{blocks-BtDAbw8d.d.cts → blocks-D1hqLk46.d.cts} +1 -1
  102. package/dist/{blocks-BlWXj9GI.d.ts → blocks-kcru1Ogu.d.ts} +1 -1
  103. package/dist/blog-cards-read-time.d.cts +3 -3
  104. package/dist/blog-cards-read-time.d.ts +3 -3
  105. package/dist/blog-cards-tagline-cta.d.cts +3 -3
  106. package/dist/blog-cards-tagline-cta.d.ts +3 -3
  107. package/dist/blog-carousel-apple.d.cts +3 -3
  108. package/dist/blog-carousel-apple.d.ts +3 -3
  109. package/dist/blog-category-overlay.d.cts +3 -3
  110. package/dist/blog-category-overlay.d.ts +3 -3
  111. package/dist/blog-featured-popular.d.cts +3 -3
  112. package/dist/blog-featured-popular.d.ts +3 -3
  113. package/dist/blog-filtered-results.d.cts +3 -3
  114. package/dist/blog-filtered-results.d.ts +3 -3
  115. package/dist/blog-grid-author-cards.d.cts +3 -3
  116. package/dist/blog-grid-author-cards.d.ts +3 -3
  117. package/dist/blog-grid-nine-posts.d.cts +3 -3
  118. package/dist/blog-grid-nine-posts.d.ts +3 -3
  119. package/dist/blog-horizontal-cards.d.cts +3 -3
  120. package/dist/blog-horizontal-cards.d.ts +3 -3
  121. package/dist/blog-horizontal-timeline.d.cts +3 -3
  122. package/dist/blog-horizontal-timeline.d.ts +3 -3
  123. package/dist/blog-masonry-featured.d.cts +3 -3
  124. package/dist/blog-masonry-featured.d.ts +3 -3
  125. package/dist/blog-related-articles.d.cts +3 -3
  126. package/dist/blog-related-articles.d.ts +3 -3
  127. package/dist/blog-tech-insights.d.cts +3 -3
  128. package/dist/blog-tech-insights.d.ts +3 -3
  129. package/dist/blur-vignette-grid.d.cts +3 -3
  130. package/dist/blur-vignette-grid.d.ts +3 -3
  131. package/dist/{button-variants-8mtEHxev.d.cts → button-variants-lRElsmTc.d.cts} +1 -1
  132. package/dist/{button-variants-8mtEHxev.d.ts → button-variants-lRElsmTc.d.ts} +1 -1
  133. package/dist/button.d.cts +1 -1
  134. package/dist/button.d.ts +1 -1
  135. package/dist/carousel-animated-sections.d.cts +3 -3
  136. package/dist/carousel-animated-sections.d.ts +3 -3
  137. package/dist/carousel-auto-progress-slides.d.cts +3 -3
  138. package/dist/carousel-auto-progress-slides.d.ts +3 -3
  139. package/dist/carousel-autoplay-progress.d.cts +3 -3
  140. package/dist/carousel-autoplay-progress.d.ts +3 -3
  141. package/dist/carousel-badge-cards.d.cts +3 -3
  142. package/dist/carousel-badge-cards.d.ts +3 -3
  143. package/dist/carousel-demo-link.d.cts +3 -3
  144. package/dist/carousel-demo-link.d.ts +3 -3
  145. package/dist/carousel-feature-badge.d.cts +3 -3
  146. package/dist/carousel-feature-badge.d.ts +3 -3
  147. package/dist/carousel-fullscreen-scroll-fx.d.cts +3 -3
  148. package/dist/carousel-fullscreen-scroll-fx.d.ts +3 -3
  149. package/dist/carousel-gallery-thumbnails.d.cts +3 -3
  150. package/dist/carousel-gallery-thumbnails.d.ts +3 -3
  151. package/dist/carousel-gradient-overlay.d.cts +3 -3
  152. package/dist/carousel-gradient-overlay.d.ts +3 -3
  153. package/dist/carousel-gradient-text.d.cts +3 -3
  154. package/dist/carousel-gradient-text.d.ts +3 -3
  155. package/dist/carousel-horizontal-cards.d.cts +3 -3
  156. package/dist/carousel-horizontal-cards.d.ts +3 -3
  157. package/dist/carousel-icon-sidebar.d.cts +3 -3
  158. package/dist/carousel-icon-sidebar.d.ts +3 -3
  159. package/dist/carousel-icon-tabs.d.cts +3 -3
  160. package/dist/carousel-icon-tabs.d.ts +3 -3
  161. package/dist/carousel-image-hero.d.cts +3 -3
  162. package/dist/carousel-image-hero.d.ts +3 -3
  163. package/dist/carousel-multi-step-showcase.d.cts +3 -3
  164. package/dist/carousel-multi-step-showcase.d.ts +3 -3
  165. package/dist/carousel-portfolio-hero.d.cts +3 -3
  166. package/dist/carousel-portfolio-hero.d.ts +3 -3
  167. package/dist/carousel-product-feature-showcase.d.cts +3 -3
  168. package/dist/carousel-product-feature-showcase.d.ts +3 -3
  169. package/dist/carousel-progress-slider.d.cts +3 -3
  170. package/dist/carousel-progress-slider.d.ts +3 -3
  171. package/dist/carousel-scale-focus.d.cts +3 -3
  172. package/dist/carousel-scale-focus.d.ts +3 -3
  173. package/dist/carousel-scrolling-feature-showcase.d.cts +3 -3
  174. package/dist/carousel-scrolling-feature-showcase.d.ts +3 -3
  175. package/dist/carousel-sidebar-resources.d.cts +3 -3
  176. package/dist/carousel-sidebar-resources.d.ts +3 -3
  177. package/dist/carousel-tabs-content.d.cts +3 -3
  178. package/dist/carousel-tabs-content.d.ts +3 -3
  179. package/dist/case-studies-featured-border.d.cts +3 -3
  180. package/dist/case-studies-featured-border.d.ts +3 -3
  181. package/dist/case-studies-image-grid.d.cts +3 -3
  182. package/dist/case-studies-image-grid.d.ts +3 -3
  183. package/dist/case-studies-stats-card.d.cts +3 -3
  184. package/dist/case-studies-stats-card.d.ts +3 -3
  185. package/dist/case-studies-testimonial-stats.d.cts +3 -3
  186. package/dist/case-studies-testimonial-stats.d.ts +3 -3
  187. package/dist/case-study-prose-sidebar.d.cts +3 -3
  188. package/dist/case-study-prose-sidebar.d.ts +3 -3
  189. package/dist/case-study-stats-metrics.d.cts +3 -3
  190. package/dist/case-study-stats-metrics.d.ts +3 -3
  191. package/dist/case-study-toc-social-sidebar.d.cts +3 -3
  192. package/dist/case-study-toc-social-sidebar.d.ts +3 -3
  193. package/dist/{community-initiatives-B8KCpwXH.d.cts → community-initiatives-C3xYbyms.d.cts} +1 -1
  194. package/dist/{community-initiatives-rTRuDt0r.d.ts → community-initiatives-o1TkNw2C.d.ts} +1 -1
  195. package/dist/community-initiatives.cjs +142 -142
  196. package/dist/community-initiatives.d.cts +3 -3
  197. package/dist/community-initiatives.d.ts +3 -3
  198. package/dist/community-initiatives.js +142 -142
  199. package/dist/comparison-ai-models.d.cts +3 -3
  200. package/dist/comparison-ai-models.d.ts +3 -3
  201. package/dist/comparison-feature-cards.d.cts +3 -3
  202. package/dist/comparison-feature-cards.d.ts +3 -3
  203. package/dist/comparison-feature-grid.d.cts +3 -3
  204. package/dist/comparison-feature-grid.d.ts +3 -3
  205. package/dist/comparison-grid-badges.d.cts +3 -3
  206. package/dist/comparison-grid-badges.d.ts +3 -3
  207. package/dist/comparison-image-cards.d.cts +3 -3
  208. package/dist/comparison-image-cards.d.ts +3 -3
  209. package/dist/comparison-legacy-modern.d.cts +3 -3
  210. package/dist/comparison-legacy-modern.d.ts +3 -3
  211. package/dist/comparison-metrics-rows.d.cts +3 -3
  212. package/dist/comparison-metrics-rows.d.ts +3 -3
  213. package/dist/comparison-table-tabs.d.cts +3 -3
  214. package/dist/comparison-table-tabs.d.ts +3 -3
  215. package/dist/comparison-table-tooltips.d.cts +3 -3
  216. package/dist/comparison-table-tooltips.d.ts +3 -3
  217. package/dist/comparison-table-two-column.d.cts +3 -3
  218. package/dist/comparison-table-two-column.d.ts +3 -3
  219. package/dist/components.cjs +723 -1378
  220. package/dist/components.d.cts +3 -5
  221. package/dist/components.d.ts +3 -5
  222. package/dist/components.js +633 -1287
  223. package/dist/contact-callback.d.cts +3 -3
  224. package/dist/contact-callback.d.ts +3 -3
  225. package/dist/contact-card.d.cts +4 -4
  226. package/dist/contact-card.d.ts +4 -4
  227. package/dist/contact-careers.d.cts +3 -3
  228. package/dist/contact-careers.d.ts +3 -3
  229. package/dist/contact-catering.d.cts +3 -3
  230. package/dist/contact-catering.d.ts +3 -3
  231. package/dist/contact-consultation.d.cts +3 -3
  232. package/dist/contact-consultation.d.ts +3 -3
  233. package/dist/{contact-dark-CnLbZs_O.d.cts → contact-dark-BT8IUXg1.d.cts} +1 -1
  234. package/dist/{contact-dark-DEd0P5JW.d.ts → contact-dark-DmOtBZ7t.d.ts} +1 -1
  235. package/dist/contact-dark.d.cts +4 -4
  236. package/dist/contact-dark.d.ts +4 -4
  237. package/dist/contact-demo.d.cts +3 -3
  238. package/dist/contact-demo.d.ts +3 -3
  239. package/dist/contact-emergency.d.cts +3 -3
  240. package/dist/contact-emergency.d.ts +3 -3
  241. package/dist/contact-event.d.cts +3 -3
  242. package/dist/contact-event.d.ts +3 -3
  243. package/dist/contact-faq.d.cts +3 -3
  244. package/dist/contact-faq.d.ts +3 -3
  245. package/dist/contact-feedback.d.cts +3 -3
  246. package/dist/contact-feedback.d.ts +3 -3
  247. package/dist/contact-fitness.d.cts +3 -3
  248. package/dist/contact-fitness.d.ts +3 -3
  249. package/dist/contact-floating-banner.d.cts +3 -3
  250. package/dist/contact-floating-banner.d.ts +3 -3
  251. package/dist/contact-guest.d.cts +3 -3
  252. package/dist/contact-guest.d.ts +3 -3
  253. package/dist/contact-help-center.d.cts +3 -3
  254. package/dist/contact-help-center.d.ts +3 -3
  255. package/dist/contact-image.d.cts +3 -3
  256. package/dist/contact-image.d.ts +3 -3
  257. package/dist/contact-insurance.d.cts +3 -3
  258. package/dist/contact-insurance.d.ts +3 -3
  259. package/dist/contact-interview.d.cts +3 -3
  260. package/dist/contact-interview.d.ts +3 -3
  261. package/dist/contact-locations.d.cts +3 -3
  262. package/dist/contact-locations.d.ts +3 -3
  263. package/dist/contact-maintenance.d.cts +3 -3
  264. package/dist/contact-maintenance.d.ts +3 -3
  265. package/dist/contact-map.cjs +14 -1083
  266. package/dist/contact-map.d.cts +16 -6
  267. package/dist/contact-map.d.ts +16 -6
  268. package/dist/contact-map.js +14 -1083
  269. package/dist/contact-minimal.d.cts +3 -3
  270. package/dist/contact-minimal.d.ts +3 -3
  271. package/dist/contact-moving.d.cts +3 -3
  272. package/dist/contact-moving.d.ts +3 -3
  273. package/dist/contact-multistep.d.cts +3 -3
  274. package/dist/contact-multistep.d.ts +3 -3
  275. package/dist/contact-partnership.d.cts +3 -3
  276. package/dist/contact-partnership.d.ts +3 -3
  277. package/dist/contact-photography.d.cts +3 -3
  278. package/dist/contact-photography.d.ts +3 -3
  279. package/dist/contact-press.d.cts +3 -3
  280. package/dist/contact-press.d.ts +3 -3
  281. package/dist/contact-quote.d.cts +3 -3
  282. package/dist/contact-quote.d.ts +3 -3
  283. package/dist/contact-referral.d.cts +3 -3
  284. package/dist/contact-referral.d.ts +3 -3
  285. package/dist/contact-report.d.cts +3 -3
  286. package/dist/contact-report.d.ts +3 -3
  287. package/dist/contact-reservation.d.cts +3 -3
  288. package/dist/contact-reservation.d.ts +3 -3
  289. package/dist/contact-retreat.d.cts +3 -3
  290. package/dist/contact-retreat.d.ts +3 -3
  291. package/dist/contact-rsvp.d.cts +3 -3
  292. package/dist/contact-rsvp.d.ts +3 -3
  293. package/dist/contact-sales.d.cts +3 -3
  294. package/dist/contact-sales.d.ts +3 -3
  295. package/dist/contact-schedule.d.cts +3 -3
  296. package/dist/contact-schedule.d.ts +3 -3
  297. package/dist/contact-sponsorship.d.cts +3 -3
  298. package/dist/contact-sponsorship.d.ts +3 -3
  299. package/dist/contact-support.d.cts +3 -3
  300. package/dist/contact-support.d.ts +3 -3
  301. package/dist/contact-tenant.d.cts +3 -3
  302. package/dist/contact-tenant.d.ts +3 -3
  303. package/dist/contact-vendor.d.cts +3 -3
  304. package/dist/contact-vendor.d.ts +3 -3
  305. package/dist/contact-volunteer.d.cts +3 -3
  306. package/dist/contact-volunteer.d.ts +3 -3
  307. package/dist/contact-warranty.d.cts +3 -3
  308. package/dist/contact-warranty.d.ts +3 -3
  309. package/dist/contact-wedding.d.cts +3 -3
  310. package/dist/contact-wedding.d.ts +3 -3
  311. package/dist/container.d.cts +3 -3
  312. package/dist/container.d.ts +3 -3
  313. package/dist/cta-accent-background.d.cts +3 -3
  314. package/dist/cta-accent-background.d.ts +3 -3
  315. package/dist/cta-app-download-newsletter.d.cts +3 -3
  316. package/dist/cta-app-download-newsletter.d.ts +3 -3
  317. package/dist/cta-background-icon-badge.d.cts +3 -3
  318. package/dist/cta-background-icon-badge.d.ts +3 -3
  319. package/dist/cta-case-study-testimonial.d.cts +3 -3
  320. package/dist/cta-case-study-testimonial.d.ts +3 -3
  321. package/dist/cta-documentation-links.d.cts +3 -3
  322. package/dist/cta-documentation-links.d.ts +3 -3
  323. package/dist/cta-enterprise-dark-features.d.cts +3 -3
  324. package/dist/cta-enterprise-dark-features.d.ts +3 -3
  325. package/dist/cta-enterprise-split.d.cts +3 -3
  326. package/dist/cta-enterprise-split.d.ts +3 -3
  327. package/dist/cta-feature-cards-grid.d.cts +3 -3
  328. package/dist/cta-feature-cards-grid.d.ts +3 -3
  329. package/dist/cta-feature-checklist.cjs +142 -142
  330. package/dist/cta-feature-checklist.d.cts +3 -3
  331. package/dist/cta-feature-checklist.d.ts +3 -3
  332. package/dist/cta-feature-checklist.js +142 -142
  333. package/dist/cta-feature-list.d.cts +3 -3
  334. package/dist/cta-feature-list.d.ts +3 -3
  335. package/dist/cta-fullwidth-background.d.cts +3 -3
  336. package/dist/cta-fullwidth-background.d.ts +3 -3
  337. package/dist/cta-gradient-logos-floating.d.cts +3 -3
  338. package/dist/cta-gradient-logos-floating.d.ts +3 -3
  339. package/dist/cta-gradient-stats-hero.d.cts +3 -3
  340. package/dist/cta-gradient-stats-hero.d.ts +3 -3
  341. package/dist/cta-hero-feature-cards.d.cts +3 -3
  342. package/dist/cta-hero-feature-cards.d.ts +3 -3
  343. package/dist/cta-image-overlay-arrow.d.cts +3 -3
  344. package/dist/cta-image-overlay-arrow.d.ts +3 -3
  345. package/dist/cta-image-overlay-centered.d.cts +3 -3
  346. package/dist/cta-image-overlay-centered.d.ts +3 -3
  347. package/dist/cta-minimal-separator.d.cts +3 -3
  348. package/dist/cta-minimal-separator.d.ts +3 -3
  349. package/dist/cta-newsletter-features.d.cts +3 -3
  350. package/dist/cta-newsletter-features.d.ts +3 -3
  351. package/dist/cta-pattern-background.d.cts +3 -3
  352. package/dist/cta-pattern-background.d.ts +3 -3
  353. package/dist/cta-platform-demo.d.cts +3 -3
  354. package/dist/cta-platform-demo.d.ts +3 -3
  355. package/dist/cta-simple-centered.d.cts +3 -3
  356. package/dist/cta-simple-centered.d.ts +3 -3
  357. package/dist/cta-split-gradient-image.d.cts +3 -3
  358. package/dist/cta-split-gradient-image.d.ts +3 -3
  359. package/dist/cta-split-image-logos.d.cts +3 -3
  360. package/dist/cta-split-image-logos.d.ts +3 -3
  361. package/dist/cta-split-image.d.cts +3 -3
  362. package/dist/cta-split-image.d.ts +3 -3
  363. package/dist/cta-stacked-cards.d.cts +3 -3
  364. package/dist/cta-stacked-cards.d.ts +3 -3
  365. package/dist/cta-video-background-hero.d.cts +3 -3
  366. package/dist/cta-video-background-hero.d.ts +3 -3
  367. package/dist/cta-workflow-tabs.d.cts +3 -3
  368. package/dist/cta-workflow-tabs.d.ts +3 -3
  369. package/dist/expandable-case-study-cards.d.cts +3 -3
  370. package/dist/expandable-case-study-cards.d.ts +3 -3
  371. package/dist/faq-badge-support.d.cts +3 -3
  372. package/dist/faq-badge-support.d.ts +3 -3
  373. package/dist/faq-bordered-badge.d.cts +3 -3
  374. package/dist/faq-bordered-badge.d.ts +3 -3
  375. package/dist/faq-card-categories.d.cts +3 -3
  376. package/dist/faq-card-categories.d.ts +3 -3
  377. package/dist/faq-categorized-sections.d.cts +3 -3
  378. package/dist/faq-categorized-sections.d.ts +3 -3
  379. package/dist/faq-centered-accordion.d.cts +3 -3
  380. package/dist/faq-centered-accordion.d.ts +3 -3
  381. package/dist/faq-gradient-categories.d.cts +3 -3
  382. package/dist/faq-gradient-categories.d.ts +3 -3
  383. package/dist/faq-icon-benefits.d.cts +3 -3
  384. package/dist/faq-icon-benefits.d.ts +3 -3
  385. package/dist/faq-muted-cards.d.cts +3 -3
  386. package/dist/faq-muted-cards.d.ts +3 -3
  387. package/dist/faq-numbered-grid.cjs +142 -142
  388. package/dist/faq-numbered-grid.d.cts +3 -3
  389. package/dist/faq-numbered-grid.d.ts +3 -3
  390. package/dist/faq-numbered-grid.js +142 -142
  391. package/dist/faq-numbered-list.d.cts +3 -3
  392. package/dist/faq-numbered-list.d.ts +3 -3
  393. package/dist/faq-profile-sidebar.d.cts +3 -3
  394. package/dist/faq-profile-sidebar.d.ts +3 -3
  395. package/dist/faq-rounded-cards.d.cts +3 -3
  396. package/dist/faq-rounded-cards.d.ts +3 -3
  397. package/dist/faq-sidebar-navigation.d.cts +3 -3
  398. package/dist/faq-sidebar-navigation.d.ts +3 -3
  399. package/dist/faq-simple-accordion.d.cts +3 -3
  400. package/dist/faq-simple-accordion.d.ts +3 -3
  401. package/dist/faq-split-help.d.cts +3 -3
  402. package/dist/faq-split-help.d.ts +3 -3
  403. package/dist/faq-split-hero.d.cts +3 -3
  404. package/dist/faq-split-hero.d.ts +3 -3
  405. package/dist/faq-static-list.d.cts +3 -3
  406. package/dist/faq-static-list.d.ts +3 -3
  407. package/dist/feature-accordion-image.d.cts +3 -3
  408. package/dist/feature-accordion-image.d.ts +3 -3
  409. package/dist/feature-animated-carousel.cjs +142 -142
  410. package/dist/feature-animated-carousel.d.cts +3 -3
  411. package/dist/feature-animated-carousel.d.ts +3 -3
  412. package/dist/feature-animated-carousel.js +142 -142
  413. package/dist/feature-badge-grid-six.d.cts +3 -3
  414. package/dist/feature-badge-grid-six.d.ts +3 -3
  415. package/dist/feature-bento-image-grid.d.cts +3 -3
  416. package/dist/feature-bento-image-grid.d.ts +3 -3
  417. package/dist/feature-bento-utilities.cjs +142 -142
  418. package/dist/feature-bento-utilities.d.cts +3 -3
  419. package/dist/feature-bento-utilities.d.ts +3 -3
  420. package/dist/feature-bento-utilities.js +142 -142
  421. package/dist/feature-capabilities-grid.cjs +142 -142
  422. package/dist/feature-capabilities-grid.d.cts +3 -3
  423. package/dist/feature-capabilities-grid.d.ts +3 -3
  424. package/dist/feature-capabilities-grid.js +142 -142
  425. package/dist/feature-card-grid-linked.d.cts +3 -3
  426. package/dist/feature-card-grid-linked.d.ts +3 -3
  427. package/dist/feature-carousel-progress.d.cts +3 -3
  428. package/dist/feature-carousel-progress.d.ts +3 -3
  429. package/dist/feature-category-image-cards.cjs +142 -142
  430. package/dist/feature-category-image-cards.d.cts +3 -3
  431. package/dist/feature-category-image-cards.d.ts +3 -3
  432. package/dist/feature-category-image-cards.js +142 -142
  433. package/dist/feature-checklist-image.d.cts +3 -3
  434. package/dist/feature-checklist-image.d.ts +3 -3
  435. package/dist/feature-checklist-three-column.d.cts +3 -3
  436. package/dist/feature-checklist-three-column.d.ts +3 -3
  437. package/dist/feature-icon-grid-accent.d.cts +3 -3
  438. package/dist/feature-icon-grid-accent.d.ts +3 -3
  439. package/dist/feature-icon-grid-bordered.cjs +142 -142
  440. package/dist/feature-icon-grid-bordered.d.cts +3 -3
  441. package/dist/feature-icon-grid-bordered.d.ts +3 -3
  442. package/dist/feature-icon-grid-bordered.js +142 -142
  443. package/dist/feature-icon-grid-muted.cjs +142 -142
  444. package/dist/feature-icon-grid-muted.d.cts +3 -3
  445. package/dist/feature-icon-grid-muted.d.ts +3 -3
  446. package/dist/feature-icon-grid-muted.js +142 -142
  447. package/dist/feature-icon-tabs-content.d.cts +3 -3
  448. package/dist/feature-icon-tabs-content.d.ts +3 -3
  449. package/dist/feature-image-cards-three-column.d.cts +3 -3
  450. package/dist/feature-image-cards-three-column.d.ts +3 -3
  451. package/dist/feature-image-overlay-badge.d.cts +3 -3
  452. package/dist/feature-image-overlay-badge.d.ts +3 -3
  453. package/dist/feature-integration-cards.d.cts +3 -3
  454. package/dist/feature-integration-cards.d.ts +3 -3
  455. package/dist/feature-numbered-cards.cjs +142 -142
  456. package/dist/feature-numbered-cards.d.cts +3 -3
  457. package/dist/feature-numbered-cards.d.ts +3 -3
  458. package/dist/feature-numbered-cards.js +142 -142
  459. package/dist/feature-pattern-grid-links.d.cts +3 -3
  460. package/dist/feature-pattern-grid-links.d.ts +3 -3
  461. package/dist/feature-showcase.d.cts +4 -4
  462. package/dist/feature-showcase.d.ts +4 -4
  463. package/dist/feature-split-image-reverse.d.cts +3 -3
  464. package/dist/feature-split-image-reverse.d.ts +3 -3
  465. package/dist/feature-split-image.d.cts +3 -3
  466. package/dist/feature-split-image.d.ts +3 -3
  467. package/dist/feature-stats-highlight.d.cts +3 -3
  468. package/dist/feature-stats-highlight.d.ts +3 -3
  469. package/dist/feature-tabbed-content-image.d.cts +3 -3
  470. package/dist/feature-tabbed-content-image.d.ts +3 -3
  471. package/dist/feature-three-column-values.cjs +142 -142
  472. package/dist/feature-three-column-values.d.cts +3 -3
  473. package/dist/feature-three-column-values.d.ts +3 -3
  474. package/dist/feature-three-column-values.js +142 -142
  475. package/dist/feature-utility-cards-grid.d.cts +3 -3
  476. package/dist/feature-utility-cards-grid.d.ts +3 -3
  477. package/dist/footer-accordion-social.d.cts +3 -3
  478. package/dist/footer-accordion-social.d.ts +3 -3
  479. package/dist/footer-animated-social.d.cts +3 -3
  480. package/dist/footer-animated-social.d.ts +3 -3
  481. package/dist/footer-background-card.d.cts +3 -3
  482. package/dist/footer-background-card.d.ts +3 -3
  483. package/dist/footer-brand-description.d.cts +3 -3
  484. package/dist/footer-brand-description.d.ts +3 -3
  485. package/dist/footer-brand-links-contact.d.cts +3 -3
  486. package/dist/footer-brand-links-contact.d.ts +3 -3
  487. package/dist/footer-comprehensive-links.d.cts +3 -3
  488. package/dist/footer-comprehensive-links.d.ts +3 -3
  489. package/dist/footer-contact-card.d.cts +3 -3
  490. package/dist/footer-contact-card.d.ts +3 -3
  491. package/dist/footer-cta-banner.d.cts +3 -3
  492. package/dist/footer-cta-banner.d.ts +3 -3
  493. package/dist/footer-cta-social.d.cts +3 -3
  494. package/dist/footer-cta-social.d.ts +3 -3
  495. package/dist/footer-info-cards-accordion.d.cts +3 -3
  496. package/dist/footer-info-cards-accordion.d.ts +3 -3
  497. package/dist/footer-links-grid.d.cts +3 -3
  498. package/dist/footer-links-grid.d.ts +3 -3
  499. package/dist/footer-nav-social.d.cts +3 -3
  500. package/dist/footer-nav-social.d.ts +3 -3
  501. package/dist/footer-newsletter-contact.d.cts +3 -3
  502. package/dist/footer-newsletter-contact.d.ts +3 -3
  503. package/dist/footer-newsletter-grid.d.cts +3 -3
  504. package/dist/footer-newsletter-grid.d.ts +3 -3
  505. package/dist/footer-newsletter-minimal.d.cts +3 -3
  506. package/dist/footer-newsletter-minimal.d.ts +3 -3
  507. package/dist/footer-simple-centered.d.cts +3 -3
  508. package/dist/footer-simple-centered.d.ts +3 -3
  509. package/dist/footer-social-apps.d.cts +3 -3
  510. package/dist/footer-social-apps.d.ts +3 -3
  511. package/dist/footer-social-newsletter.d.cts +3 -3
  512. package/dist/footer-social-newsletter.d.ts +3 -3
  513. package/dist/footer-split-image-accordion.d.cts +3 -3
  514. package/dist/footer-split-image-accordion.d.ts +3 -3
  515. package/dist/hero-ad-campaign-expert.cjs +142 -142
  516. package/dist/hero-ad-campaign-expert.d.cts +3 -3
  517. package/dist/hero-ad-campaign-expert.d.ts +3 -3
  518. package/dist/hero-ad-campaign-expert.js +142 -142
  519. package/dist/hero-adaptable-product-grid.cjs +142 -142
  520. package/dist/hero-adaptable-product-grid.d.cts +3 -3
  521. package/dist/hero-adaptable-product-grid.d.ts +3 -3
  522. package/dist/hero-adaptable-product-grid.js +142 -142
  523. package/dist/hero-agency-animated-images.cjs +142 -142
  524. package/dist/hero-agency-animated-images.d.cts +3 -3
  525. package/dist/hero-agency-animated-images.d.ts +3 -3
  526. package/dist/hero-agency-animated-images.js +142 -142
  527. package/dist/hero-ai-powered-carousel.d.cts +3 -3
  528. package/dist/hero-ai-powered-carousel.d.ts +3 -3
  529. package/dist/hero-announcement-badge.cjs +142 -142
  530. package/dist/hero-announcement-badge.d.cts +3 -3
  531. package/dist/hero-announcement-badge.d.ts +3 -3
  532. package/dist/hero-announcement-badge.js +142 -142
  533. package/dist/hero-architecture-fullscreen.d.cts +3 -3
  534. package/dist/hero-architecture-fullscreen.d.ts +3 -3
  535. package/dist/hero-badge-image-split.cjs +142 -142
  536. package/dist/hero-badge-image-split.d.cts +3 -3
  537. package/dist/hero-badge-image-split.d.ts +3 -3
  538. package/dist/hero-badge-image-split.js +142 -142
  539. package/dist/hero-badge-shadow-overlay.d.cts +3 -3
  540. package/dist/hero-badge-shadow-overlay.d.ts +3 -3
  541. package/dist/hero-billing-platform-logos.d.cts +3 -3
  542. package/dist/hero-billing-platform-logos.d.ts +3 -3
  543. package/dist/hero-business-carousel-dots.cjs +142 -142
  544. package/dist/hero-business-carousel-dots.d.cts +3 -3
  545. package/dist/hero-business-carousel-dots.d.ts +3 -3
  546. package/dist/hero-business-carousel-dots.js +142 -142
  547. package/dist/hero-business-operations-mosaic.cjs +142 -142
  548. package/dist/hero-business-operations-mosaic.d.cts +3 -3
  549. package/dist/hero-business-operations-mosaic.d.ts +3 -3
  550. package/dist/hero-business-operations-mosaic.js +142 -142
  551. package/dist/hero-centered-gradient-cta.d.cts +3 -3
  552. package/dist/hero-centered-gradient-cta.d.ts +3 -3
  553. package/dist/hero-centered-image-grid.d.cts +3 -3
  554. package/dist/hero-centered-image-grid.d.ts +3 -3
  555. package/dist/hero-centered-screenshot.d.cts +3 -3
  556. package/dist/hero-centered-screenshot.d.ts +3 -3
  557. package/dist/hero-coming-soon-countdown.d.cts +3 -3
  558. package/dist/hero-coming-soon-countdown.d.ts +3 -3
  559. package/dist/hero-community-survey-cta.d.cts +3 -3
  560. package/dist/hero-community-survey-cta.d.ts +3 -3
  561. package/dist/hero-conversation-intelligence.cjs +142 -142
  562. package/dist/hero-conversation-intelligence.d.cts +3 -3
  563. package/dist/hero-conversation-intelligence.d.ts +3 -3
  564. package/dist/hero-conversation-intelligence.js +142 -142
  565. package/dist/hero-conversion-video-play.d.cts +3 -3
  566. package/dist/hero-conversion-video-play.d.ts +3 -3
  567. package/dist/hero-creative-studio-stacked.cjs +142 -142
  568. package/dist/hero-creative-studio-stacked.d.cts +4 -4
  569. package/dist/hero-creative-studio-stacked.d.ts +4 -4
  570. package/dist/hero-creative-studio-stacked.js +142 -142
  571. package/dist/hero-crm-streamlined.cjs +142 -142
  572. package/dist/hero-crm-streamlined.d.cts +3 -3
  573. package/dist/hero-crm-streamlined.d.ts +3 -3
  574. package/dist/hero-crm-streamlined.js +142 -142
  575. package/dist/hero-customer-support-layered.cjs +142 -142
  576. package/dist/hero-customer-support-layered.d.cts +3 -3
  577. package/dist/hero-customer-support-layered.d.ts +3 -3
  578. package/dist/hero-customer-support-layered.js +142 -142
  579. package/dist/hero-dashed-border-features.d.cts +3 -3
  580. package/dist/hero-dashed-border-features.d.ts +3 -3
  581. package/dist/hero-design-carousel-portfolio.d.cts +3 -3
  582. package/dist/hero-design-carousel-portfolio.d.ts +3 -3
  583. package/dist/hero-design-showcase-logos.cjs +142 -142
  584. package/dist/hero-design-showcase-logos.d.cts +3 -3
  585. package/dist/hero-design-showcase-logos.d.ts +3 -3
  586. package/dist/hero-design-showcase-logos.js +142 -142
  587. package/dist/hero-design-system-3d.cjs +142 -142
  588. package/dist/hero-design-system-3d.d.cts +3 -3
  589. package/dist/hero-design-system-3d.d.ts +3 -3
  590. package/dist/hero-design-system-3d.js +142 -142
  591. package/dist/hero-developer-tools-code.cjs +142 -142
  592. package/dist/hero-developer-tools-code.d.cts +3 -3
  593. package/dist/hero-developer-tools-code.d.ts +3 -3
  594. package/dist/hero-developer-tools-code.js +142 -142
  595. package/dist/hero-digital-agency-fullscreen.cjs +142 -142
  596. package/dist/hero-digital-agency-fullscreen.d.cts +3 -3
  597. package/dist/hero-digital-agency-fullscreen.d.ts +3 -3
  598. package/dist/hero-digital-agency-fullscreen.js +142 -142
  599. package/dist/hero-ecommerce-product-showcase.cjs +174 -174
  600. package/dist/hero-ecommerce-product-showcase.d.cts +3 -3
  601. package/dist/hero-ecommerce-product-showcase.d.ts +3 -3
  602. package/dist/hero-ecommerce-product-showcase.js +174 -174
  603. package/dist/hero-enterprise-security.d.cts +3 -3
  604. package/dist/hero-enterprise-security.d.ts +3 -3
  605. package/dist/hero-event-registration.cjs +142 -142
  606. package/dist/hero-event-registration.d.cts +3 -3
  607. package/dist/hero-event-registration.d.ts +3 -3
  608. package/dist/hero-event-registration.js +142 -142
  609. package/dist/hero-feature-cards-grid.d.cts +3 -3
  610. package/dist/hero-feature-cards-grid.d.ts +3 -3
  611. package/dist/hero-floating-images.d.cts +3 -3
  612. package/dist/hero-floating-images.d.ts +3 -3
  613. package/dist/hero-fullscreen-background-image.cjs +142 -142
  614. package/dist/hero-fullscreen-background-image.d.cts +3 -3
  615. package/dist/hero-fullscreen-background-image.d.ts +3 -3
  616. package/dist/hero-fullscreen-background-image.js +142 -142
  617. package/dist/hero-fullscreen-logo-cta.d.cts +3 -3
  618. package/dist/hero-fullscreen-logo-cta.d.ts +3 -3
  619. package/dist/hero-gradient-avatars-rating.cjs +142 -142
  620. package/dist/hero-gradient-avatars-rating.d.cts +3 -3
  621. package/dist/hero-gradient-avatars-rating.d.ts +3 -3
  622. package/dist/hero-gradient-avatars-rating.js +142 -142
  623. package/dist/hero-gradient-client-focused.cjs +142 -142
  624. package/dist/hero-gradient-client-focused.d.cts +3 -3
  625. package/dist/hero-gradient-client-focused.d.ts +3 -3
  626. package/dist/hero-gradient-client-focused.js +142 -142
  627. package/dist/hero-grid-pattern-efficiency.d.cts +3 -3
  628. package/dist/hero-grid-pattern-efficiency.d.ts +3 -3
  629. package/dist/hero-grid-pattern-solutions.d.cts +3 -3
  630. package/dist/hero-grid-pattern-solutions.d.ts +3 -3
  631. package/dist/hero-hiring-animated-text.cjs +142 -142
  632. package/dist/hero-hiring-animated-text.d.cts +3 -3
  633. package/dist/hero-hiring-animated-text.d.ts +3 -3
  634. package/dist/hero-hiring-animated-text.js +142 -142
  635. package/dist/hero-image-left-content.cjs +142 -142
  636. package/dist/hero-image-left-content.d.cts +3 -3
  637. package/dist/hero-image-left-content.d.ts +3 -3
  638. package/dist/hero-image-left-content.js +142 -142
  639. package/dist/hero-image-slider.d.cts +3 -3
  640. package/dist/hero-image-slider.d.ts +3 -3
  641. package/dist/hero-innovation-image-grid.cjs +142 -142
  642. package/dist/hero-innovation-image-grid.d.cts +3 -3
  643. package/dist/hero-innovation-image-grid.d.ts +3 -3
  644. package/dist/hero-innovation-image-grid.js +142 -142
  645. package/dist/hero-logo-centered-screenshot.d.cts +3 -3
  646. package/dist/hero-logo-centered-screenshot.d.ts +3 -3
  647. package/dist/hero-marketplace-scattered-images.d.cts +3 -3
  648. package/dist/hero-marketplace-scattered-images.d.ts +3 -3
  649. package/dist/hero-mental-health-team.cjs +142 -142
  650. package/dist/hero-mental-health-team.d.cts +3 -3
  651. package/dist/hero-mental-health-team.d.ts +3 -3
  652. package/dist/hero-mental-health-team.js +142 -142
  653. package/dist/hero-mentorship-video-split.d.cts +3 -3
  654. package/dist/hero-mentorship-video-split.d.ts +3 -3
  655. package/dist/hero-minimal-centered-dark.cjs +174 -174
  656. package/dist/hero-minimal-centered-dark.d.cts +3 -3
  657. package/dist/hero-minimal-centered-dark.d.ts +3 -3
  658. package/dist/hero-minimal-centered-dark.js +174 -174
  659. package/dist/hero-mobile-app-download.d.cts +3 -3
  660. package/dist/hero-mobile-app-download.d.ts +3 -3
  661. package/dist/hero-newsletter-minimal.d.cts +3 -3
  662. package/dist/hero-newsletter-minimal.d.ts +3 -3
  663. package/dist/hero-overlay-cta-grid.d.cts +3 -3
  664. package/dist/hero-overlay-cta-grid.d.ts +3 -3
  665. package/dist/hero-pattern-badge-logos.d.cts +3 -3
  666. package/dist/hero-pattern-badge-logos.d.ts +3 -3
  667. package/dist/hero-pattern-logo-tech-stack.d.cts +3 -3
  668. package/dist/hero-pattern-logo-tech-stack.d.ts +3 -3
  669. package/dist/hero-platform-features-grid.d.cts +3 -3
  670. package/dist/hero-platform-features-grid.d.ts +3 -3
  671. package/dist/hero-portfolio-creative.d.cts +3 -3
  672. package/dist/hero-portfolio-creative.d.ts +3 -3
  673. package/dist/hero-premium-split-avatars.d.cts +3 -3
  674. package/dist/hero-premium-split-avatars.d.ts +3 -3
  675. package/dist/hero-presentation-platform-video.cjs +142 -142
  676. package/dist/hero-presentation-platform-video.d.cts +3 -3
  677. package/dist/hero-presentation-platform-video.d.ts +3 -3
  678. package/dist/hero-presentation-platform-video.js +142 -142
  679. package/dist/hero-pricing-comparison.d.cts +3 -3
  680. package/dist/hero-pricing-comparison.d.ts +3 -3
  681. package/dist/hero-product-showcase-floating.cjs +174 -174
  682. package/dist/hero-product-showcase-floating.d.cts +3 -3
  683. package/dist/hero-product-showcase-floating.d.ts +3 -3
  684. package/dist/hero-product-showcase-floating.js +174 -174
  685. package/dist/hero-productivity-launcher-video.d.cts +3 -3
  686. package/dist/hero-productivity-launcher-video.d.ts +3 -3
  687. package/dist/hero-saas-dashboard-preview.d.cts +3 -3
  688. package/dist/hero-saas-dashboard-preview.d.ts +3 -3
  689. package/dist/hero-shared-inbox-layered.cjs +142 -142
  690. package/dist/hero-shared-inbox-layered.d.cts +3 -3
  691. package/dist/hero-shared-inbox-layered.d.ts +3 -3
  692. package/dist/hero-shared-inbox-layered.js +142 -142
  693. package/dist/hero-simple-centered-image.d.cts +3 -3
  694. package/dist/hero-simple-centered-image.d.ts +3 -3
  695. package/dist/hero-software-growth-video-dialog.cjs +142 -142
  696. package/dist/hero-software-growth-video-dialog.d.cts +3 -3
  697. package/dist/hero-software-growth-video-dialog.d.ts +3 -3
  698. package/dist/hero-software-growth-video-dialog.js +142 -142
  699. package/dist/hero-spiral-pattern-cards.cjs +174 -174
  700. package/dist/hero-spiral-pattern-cards.d.cts +3 -3
  701. package/dist/hero-spiral-pattern-cards.d.ts +3 -3
  702. package/dist/hero-spiral-pattern-cards.js +174 -174
  703. package/dist/hero-split-geometric-shapes.cjs +142 -142
  704. package/dist/hero-split-geometric-shapes.d.cts +3 -3
  705. package/dist/hero-split-geometric-shapes.d.ts +3 -3
  706. package/dist/hero-split-geometric-shapes.js +142 -142
  707. package/dist/hero-split-icon-cards.d.cts +3 -3
  708. package/dist/hero-split-icon-cards.d.ts +3 -3
  709. package/dist/hero-split-image-newsletter.d.cts +3 -3
  710. package/dist/hero-split-image-newsletter.d.ts +3 -3
  711. package/dist/hero-split-spiral-shapes.d.cts +3 -3
  712. package/dist/hero-split-spiral-shapes.d.ts +3 -3
  713. package/dist/hero-startup-launch-cta.cjs +174 -174
  714. package/dist/hero-startup-launch-cta.d.cts +3 -3
  715. package/dist/hero-startup-launch-cta.d.ts +3 -3
  716. package/dist/hero-startup-launch-cta.js +174 -174
  717. package/dist/hero-stats-social-proof.cjs +174 -174
  718. package/dist/hero-stats-social-proof.d.cts +3 -3
  719. package/dist/hero-stats-social-proof.d.ts +3 -3
  720. package/dist/hero-stats-social-proof.js +174 -174
  721. package/dist/hero-task-timer-animated.cjs +142 -142
  722. package/dist/hero-task-timer-animated.d.cts +3 -3
  723. package/dist/hero-task-timer-animated.d.ts +3 -3
  724. package/dist/hero-task-timer-animated.js +142 -142
  725. package/dist/hero-tech-carousel.d.cts +3 -3
  726. package/dist/hero-tech-carousel.d.ts +3 -3
  727. package/dist/hero-testimonial-image-grid.cjs +142 -142
  728. package/dist/hero-testimonial-image-grid.d.cts +3 -3
  729. package/dist/hero-testimonial-image-grid.d.ts +3 -3
  730. package/dist/hero-testimonial-image-grid.js +142 -142
  731. package/dist/hero-therapy-testimonial-grid.cjs +142 -142
  732. package/dist/hero-therapy-testimonial-grid.d.cts +3 -3
  733. package/dist/hero-therapy-testimonial-grid.d.ts +3 -3
  734. package/dist/hero-therapy-testimonial-grid.js +142 -142
  735. package/dist/hero-ui-library-showcase.cjs +142 -142
  736. package/dist/hero-ui-library-showcase.d.cts +3 -3
  737. package/dist/hero-ui-library-showcase.d.ts +3 -3
  738. package/dist/hero-ui-library-showcase.js +142 -142
  739. package/dist/hero-video-background-dark.cjs +174 -174
  740. package/dist/hero-video-background-dark.d.cts +3 -3
  741. package/dist/hero-video-background-dark.d.ts +3 -3
  742. package/dist/hero-video-background-dark.js +174 -174
  743. package/dist/{hero-video-dialog-gradient-BBE21gqm.d.ts → hero-video-dialog-gradient-BASu_oou.d.ts} +2 -2
  744. package/dist/{hero-video-dialog-gradient-Dx_H_njN.d.cts → hero-video-dialog-gradient-BG-Nc7fz.d.cts} +2 -2
  745. package/dist/hero-video-dialog-gradient.cjs +142 -142
  746. package/dist/hero-video-dialog-gradient.d.cts +4 -4
  747. package/dist/hero-video-dialog-gradient.d.ts +4 -4
  748. package/dist/hero-video-dialog-gradient.js +142 -142
  749. package/dist/hero-video-overlay-stars.cjs +142 -142
  750. package/dist/hero-video-overlay-stars.d.cts +3 -3
  751. package/dist/hero-video-overlay-stars.d.ts +3 -3
  752. package/dist/hero-video-overlay-stars.js +142 -142
  753. package/dist/hero-welcome-asymmetric-images.cjs +142 -142
  754. package/dist/hero-welcome-asymmetric-images.d.cts +3 -3
  755. package/dist/hero-welcome-asymmetric-images.d.ts +3 -3
  756. package/dist/hero-welcome-asymmetric-images.js +142 -142
  757. package/dist/hooks.d.cts +2 -2
  758. package/dist/hooks.d.ts +2 -2
  759. package/dist/image-slider.d.cts +2 -2
  760. package/dist/image-slider.d.ts +2 -2
  761. package/dist/index.cjs +725 -1380
  762. package/dist/index.d.cts +3 -5
  763. package/dist/index.d.ts +3 -5
  764. package/dist/index.js +634 -1288
  765. package/dist/industries-badge-list-bordered.d.cts +3 -3
  766. package/dist/industries-badge-list-bordered.d.ts +3 -3
  767. package/dist/industries-expandable-showcase.d.cts +3 -3
  768. package/dist/industries-expandable-showcase.d.ts +3 -3
  769. package/dist/industries-hover-reveal-grid.d.cts +3 -3
  770. package/dist/industries-hover-reveal-grid.d.ts +3 -3
  771. package/dist/industries-timeline-table.d.cts +3 -3
  772. package/dist/industries-timeline-table.d.ts +3 -3
  773. package/dist/interior-carousel.d.cts +3 -3
  774. package/dist/interior-carousel.d.ts +3 -3
  775. package/dist/link-page-bento-layout.d.cts +3 -3
  776. package/dist/link-page-bento-layout.d.ts +3 -3
  777. package/dist/link-page-grid-cards.d.cts +3 -3
  778. package/dist/link-page-grid-cards.d.ts +3 -3
  779. package/dist/link-page-minimal-profile.d.cts +3 -3
  780. package/dist/link-page-minimal-profile.d.ts +3 -3
  781. package/dist/link-page-newsletter-social.d.cts +3 -3
  782. package/dist/link-page-newsletter-social.d.ts +3 -3
  783. package/dist/link-tree-block.d.cts +3 -3
  784. package/dist/link-tree-block.d.ts +3 -3
  785. package/dist/list-achievements-showcase.d.cts +3 -3
  786. package/dist/list-achievements-showcase.d.ts +3 -3
  787. package/dist/list-career-timeline.d.cts +3 -3
  788. package/dist/list-career-timeline.d.ts +3 -3
  789. package/dist/list-feature-comparison.d.cts +3 -3
  790. package/dist/list-feature-comparison.d.ts +3 -3
  791. package/dist/list-metrics-dashboard.d.cts +3 -3
  792. package/dist/list-metrics-dashboard.d.ts +3 -3
  793. package/dist/list-searchable-grid.d.cts +3 -3
  794. package/dist/list-searchable-grid.d.ts +3 -3
  795. package/dist/list-service-category-table.d.cts +3 -3
  796. package/dist/list-service-category-table.d.ts +3 -3
  797. package/dist/logos-carousel-heading.d.cts +3 -3
  798. package/dist/logos-carousel-heading.d.ts +3 -3
  799. package/dist/logos-centered-simple.d.cts +3 -3
  800. package/dist/logos-centered-simple.d.ts +3 -3
  801. package/dist/logos-certifications-grid.d.cts +3 -3
  802. package/dist/logos-certifications-grid.d.ts +3 -3
  803. package/dist/logos-double-carousel-pattern.d.cts +3 -3
  804. package/dist/logos-double-carousel-pattern.d.ts +3 -3
  805. package/dist/logos-inline-tagline.d.cts +3 -3
  806. package/dist/logos-inline-tagline.d.ts +3 -3
  807. package/dist/logos-marquee-muted.d.cts +3 -3
  808. package/dist/logos-marquee-muted.d.ts +3 -3
  809. package/dist/logos-minimal-carousel.d.cts +3 -3
  810. package/dist/logos-minimal-carousel.d.ts +3 -3
  811. package/dist/logos-numbered-carousel.d.cts +3 -3
  812. package/dist/logos-numbered-carousel.d.ts +3 -3
  813. package/dist/logos-partner-grid-sidebar.d.cts +3 -3
  814. package/dist/logos-partner-grid-sidebar.d.ts +3 -3
  815. package/dist/logos-partner-network.d.cts +3 -3
  816. package/dist/logos-partner-network.d.ts +3 -3
  817. package/dist/logos-two-row-grid.d.cts +3 -3
  818. package/dist/logos-two-row-grid.d.ts +3 -3
  819. package/dist/masonry-motion-grid.d.cts +3 -3
  820. package/dist/masonry-motion-grid.d.ts +3 -3
  821. package/dist/media-hover-ctas.d.cts +3 -3
  822. package/dist/media-hover-ctas.d.ts +3 -3
  823. package/dist/navbar-animated-preview.d.cts +3 -3
  824. package/dist/navbar-animated-preview.d.ts +3 -3
  825. package/dist/navbar-centered-menu.d.cts +3 -3
  826. package/dist/navbar-centered-menu.d.ts +3 -3
  827. package/dist/navbar-dark-icons.d.cts +3 -3
  828. package/dist/navbar-dark-icons.d.ts +3 -3
  829. package/dist/navbar-dropdown-menu.d.cts +3 -3
  830. package/dist/navbar-dropdown-menu.d.ts +3 -3
  831. package/dist/navbar-education-platform.d.cts +3 -3
  832. package/dist/navbar-education-platform.d.ts +3 -3
  833. package/dist/navbar-enterprise-mega.d.cts +3 -3
  834. package/dist/navbar-enterprise-mega.d.ts +3 -3
  835. package/dist/navbar-feature-grid.d.cts +3 -3
  836. package/dist/navbar-feature-grid.d.ts +3 -3
  837. package/dist/navbar-floating-pill.d.cts +3 -3
  838. package/dist/navbar-floating-pill.d.ts +3 -3
  839. package/dist/navbar-fullscreen-menu.d.cts +3 -3
  840. package/dist/navbar-fullscreen-menu.d.ts +3 -3
  841. package/dist/navbar-icon-links.d.cts +3 -3
  842. package/dist/navbar-icon-links.d.ts +3 -3
  843. package/dist/navbar-image-preview.d.cts +3 -3
  844. package/dist/navbar-image-preview.d.ts +3 -3
  845. package/dist/navbar-mega-menu.d.cts +3 -3
  846. package/dist/navbar-mega-menu.d.ts +3 -3
  847. package/dist/navbar-multi-column-groups.d.cts +3 -3
  848. package/dist/navbar-multi-column-groups.d.ts +3 -3
  849. package/dist/navbar-platform-resources.d.cts +3 -3
  850. package/dist/navbar-platform-resources.d.ts +3 -3
  851. package/dist/navbar-search-focused.d.cts +3 -3
  852. package/dist/navbar-search-focused.d.ts +3 -3
  853. package/dist/navbar-sidebar-mobile.d.cts +3 -3
  854. package/dist/navbar-sidebar-mobile.d.ts +3 -3
  855. package/dist/navbar-simple-links.d.cts +3 -3
  856. package/dist/navbar-simple-links.d.ts +3 -3
  857. package/dist/navbar-split-cta.d.cts +3 -3
  858. package/dist/navbar-split-cta.d.ts +3 -3
  859. package/dist/navbar-sticky-compact.d.cts +3 -3
  860. package/dist/navbar-sticky-compact.d.ts +3 -3
  861. package/dist/navbar-tabbed-sections.d.cts +3 -3
  862. package/dist/navbar-tabbed-sections.d.ts +3 -3
  863. package/dist/navbar-transparent-overlay.d.cts +3 -3
  864. package/dist/navbar-transparent-overlay.d.ts +3 -3
  865. package/dist/offer-modal-membership-image.d.cts +3 -3
  866. package/dist/offer-modal-membership-image.d.ts +3 -3
  867. package/dist/offer-modal-newsletter-discount.d.cts +3 -3
  868. package/dist/offer-modal-newsletter-discount.d.ts +3 -3
  869. package/dist/offer-modal-sheet-newsletter.d.cts +3 -3
  870. package/dist/offer-modal-sheet-newsletter.d.ts +3 -3
  871. package/dist/page-hero-banner.d.cts +3 -3
  872. package/dist/page-hero-banner.d.ts +3 -3
  873. package/dist/pressable.d.cts +2 -2
  874. package/dist/pressable.d.ts +2 -2
  875. package/dist/pricing-addons-cards.d.cts +3 -3
  876. package/dist/pricing-addons-cards.d.ts +3 -3
  877. package/dist/pricing-addons-featured.d.cts +3 -3
  878. package/dist/pricing-addons-featured.d.ts +3 -3
  879. package/dist/pricing-collapsible-plans.d.cts +3 -3
  880. package/dist/pricing-collapsible-plans.d.ts +3 -3
  881. package/dist/pricing-columns-toggle.d.cts +3 -3
  882. package/dist/pricing-columns-toggle.d.ts +3 -3
  883. package/dist/pricing-comparison-headers.d.cts +3 -3
  884. package/dist/pricing-comparison-headers.d.ts +3 -3
  885. package/dist/pricing-comparison-table.d.cts +3 -3
  886. package/dist/pricing-comparison-table.d.ts +3 -3
  887. package/dist/pricing-discount-card.d.cts +3 -3
  888. package/dist/pricing-discount-card.d.ts +3 -3
  889. package/dist/pricing-enterprise-contact.d.cts +3 -3
  890. package/dist/pricing-enterprise-contact.d.ts +3 -3
  891. package/dist/pricing-feature-matrix.d.cts +3 -3
  892. package/dist/pricing-feature-matrix.d.ts +3 -3
  893. package/dist/pricing-four-tier-toggle.d.cts +3 -3
  894. package/dist/pricing-four-tier-toggle.d.ts +3 -3
  895. package/dist/pricing-full-comparison.d.cts +3 -3
  896. package/dist/pricing-full-comparison.d.ts +3 -3
  897. package/dist/pricing-gradient-cards.d.cts +3 -3
  898. package/dist/pricing-gradient-cards.d.ts +3 -3
  899. package/dist/pricing-icon-headers.d.cts +3 -3
  900. package/dist/pricing-icon-headers.d.ts +3 -3
  901. package/dist/pricing-minimal-cards.d.cts +3 -3
  902. package/dist/pricing-minimal-cards.d.ts +3 -3
  903. package/dist/pricing-packages-radio.d.cts +3 -3
  904. package/dist/pricing-packages-radio.d.ts +3 -3
  905. package/dist/pricing-popular-highlight.d.cts +3 -3
  906. package/dist/pricing-popular-highlight.d.ts +3 -3
  907. package/dist/pricing-radio-toggle.d.cts +3 -3
  908. package/dist/pricing-radio-toggle.d.ts +3 -3
  909. package/dist/pricing-responsive-table.d.cts +3 -3
  910. package/dist/pricing-responsive-table.d.ts +3 -3
  911. package/dist/pricing-services-cards.d.cts +3 -3
  912. package/dist/pricing-services-cards.d.ts +3 -3
  913. package/dist/pricing-simple-card.d.cts +3 -3
  914. package/dist/pricing-simple-card.d.ts +3 -3
  915. package/dist/pricing-single-card.d.cts +3 -3
  916. package/dist/pricing-single-card.d.ts +3 -3
  917. package/dist/pricing-split-layout.d.cts +3 -3
  918. package/dist/pricing-split-layout.d.ts +3 -3
  919. package/dist/pricing-spotlight-card.d.cts +3 -3
  920. package/dist/pricing-spotlight-card.d.ts +3 -3
  921. package/dist/pricing-switch-cards.d.cts +3 -3
  922. package/dist/pricing-switch-cards.d.ts +3 -3
  923. package/dist/pricing-tabs-toggle.d.cts +3 -3
  924. package/dist/pricing-tabs-toggle.d.ts +3 -3
  925. package/dist/pricing-tier-grid.d.cts +3 -3
  926. package/dist/pricing-tier-grid.d.ts +3 -3
  927. package/dist/pricing-toggle-cards.d.cts +3 -3
  928. package/dist/pricing-toggle-cards.d.ts +3 -3
  929. package/dist/pricing-toggle-period.d.cts +3 -3
  930. package/dist/pricing-toggle-period.d.ts +3 -3
  931. package/dist/pricing-two-column-basic.d.cts +3 -3
  932. package/dist/pricing-two-column-basic.d.ts +3 -3
  933. package/dist/process-expandable-timeline.d.cts +3 -3
  934. package/dist/process-expandable-timeline.d.ts +3 -3
  935. package/dist/process-hover-cards.d.cts +3 -3
  936. package/dist/process-hover-cards.d.ts +3 -3
  937. package/dist/process-icon-timeline.d.cts +3 -3
  938. package/dist/process-icon-timeline.d.ts +3 -3
  939. package/dist/process-mission-principles.d.cts +3 -3
  940. package/dist/process-mission-principles.d.ts +3 -3
  941. package/dist/process-numbered-services.d.cts +3 -3
  942. package/dist/process-numbered-services.d.ts +3 -3
  943. package/dist/process-roadmap-timeline.d.cts +3 -3
  944. package/dist/process-roadmap-timeline.d.ts +3 -3
  945. package/dist/process-scroll-image.d.cts +3 -3
  946. package/dist/process-scroll-image.d.ts +3 -3
  947. package/dist/process-steps-grid.d.cts +3 -3
  948. package/dist/process-steps-grid.d.ts +3 -3
  949. package/dist/process-sticky-steps.d.cts +3 -3
  950. package/dist/process-sticky-steps.d.ts +3 -3
  951. package/dist/project-alternating-motion.d.cts +3 -3
  952. package/dist/project-alternating-motion.d.ts +3 -3
  953. package/dist/project-background-reveal.d.cts +3 -3
  954. package/dist/project-background-reveal.d.ts +3 -3
  955. package/dist/project-card-overlay.d.cts +3 -3
  956. package/dist/project-card-overlay.d.ts +3 -3
  957. package/dist/project-carousel-cinematic.d.cts +3 -3
  958. package/dist/project-carousel-cinematic.d.ts +3 -3
  959. package/dist/project-carousel-detail-cards.d.cts +3 -3
  960. package/dist/project-carousel-detail-cards.d.ts +3 -3
  961. package/dist/project-carousel-minimal.d.cts +3 -3
  962. package/dist/project-carousel-minimal.d.ts +3 -3
  963. package/dist/project-detail-architecture-carousel.d.cts +3 -3
  964. package/dist/project-detail-architecture-carousel.d.ts +3 -3
  965. package/dist/project-detail-card-header.d.cts +3 -3
  966. package/dist/project-detail-card-header.d.ts +3 -3
  967. package/dist/project-detail-case-study-prose.d.cts +3 -3
  968. package/dist/project-detail-case-study-prose.d.ts +3 -3
  969. package/dist/project-detail-compact-metadata.d.cts +3 -3
  970. package/dist/project-detail-compact-metadata.d.ts +3 -3
  971. package/dist/project-detail-exhibition-sidebar.d.cts +3 -3
  972. package/dist/project-detail-exhibition-sidebar.d.ts +3 -3
  973. package/dist/project-detail-fashion-editorial.d.cts +3 -3
  974. package/dist/project-detail-fashion-editorial.d.ts +3 -3
  975. package/dist/project-detail-fullscreen-hero.d.cts +3 -3
  976. package/dist/project-detail-fullscreen-hero.d.ts +3 -3
  977. package/dist/project-detail-grid-gallery.d.cts +3 -3
  978. package/dist/project-detail-grid-gallery.d.ts +3 -3
  979. package/dist/project-detail-hero-metadata.d.cts +3 -3
  980. package/dist/project-detail-hero-metadata.d.ts +3 -3
  981. package/dist/project-detail-hover-gallery.d.cts +3 -3
  982. package/dist/project-detail-hover-gallery.d.ts +3 -3
  983. package/dist/project-detail-large-hero-featured.d.cts +3 -3
  984. package/dist/project-detail-large-hero-featured.d.ts +3 -3
  985. package/dist/project-detail-list-related.d.cts +3 -3
  986. package/dist/project-detail-list-related.d.ts +3 -3
  987. package/dist/project-detail-mask-reveal.d.cts +3 -3
  988. package/dist/project-detail-mask-reveal.d.ts +3 -3
  989. package/dist/project-detail-minimal-centered.d.cts +3 -3
  990. package/dist/project-detail-minimal-centered.d.ts +3 -3
  991. package/dist/project-detail-numbered-sections.d.cts +3 -3
  992. package/dist/project-detail-numbered-sections.d.ts +3 -3
  993. package/dist/project-detail-parallax-scroll.d.cts +3 -3
  994. package/dist/project-detail-parallax-scroll.d.ts +3 -3
  995. package/dist/project-detail-photography-breadcrumb.d.cts +3 -3
  996. package/dist/project-detail-photography-breadcrumb.d.ts +3 -3
  997. package/dist/project-detail-sculpture-showcase.d.cts +3 -3
  998. package/dist/project-detail-sculpture-showcase.d.ts +3 -3
  999. package/dist/project-detail-sidebar-navigation.d.cts +3 -3
  1000. package/dist/project-detail-sidebar-navigation.d.ts +3 -3
  1001. package/dist/project-detail-sidebar-sticky.d.cts +3 -3
  1002. package/dist/project-detail-sidebar-sticky.d.ts +3 -3
  1003. package/dist/project-detail-split-materials.d.cts +3 -3
  1004. package/dist/project-detail-split-materials.d.ts +3 -3
  1005. package/dist/project-detail-tabbed-case-study.d.cts +3 -3
  1006. package/dist/project-detail-tabbed-case-study.d.ts +3 -3
  1007. package/dist/project-experience-quote.d.cts +3 -3
  1008. package/dist/project-experience-quote.d.ts +3 -3
  1009. package/dist/project-featured-carousel.d.cts +3 -3
  1010. package/dist/project-featured-carousel.d.ts +3 -3
  1011. package/dist/project-filterable-gallery.d.cts +3 -3
  1012. package/dist/project-filterable-gallery.d.ts +3 -3
  1013. package/dist/project-filterable-three-column.d.cts +3 -3
  1014. package/dist/project-filterable-three-column.d.ts +3 -3
  1015. package/dist/project-grid-gallery.d.cts +3 -3
  1016. package/dist/project-grid-gallery.d.ts +3 -3
  1017. package/dist/project-grid-motion.d.cts +3 -3
  1018. package/dist/project-grid-motion.d.ts +3 -3
  1019. package/dist/project-horizontal-cards.d.cts +3 -3
  1020. package/dist/project-horizontal-cards.d.ts +3 -3
  1021. package/dist/project-hover-reveal-grid.d.cts +3 -3
  1022. package/dist/project-hover-reveal-grid.d.ts +3 -3
  1023. package/dist/project-interactive-hover-reveal.d.cts +3 -3
  1024. package/dist/project-interactive-hover-reveal.d.ts +3 -3
  1025. package/dist/project-masonry-columns.d.cts +3 -3
  1026. package/dist/project-masonry-columns.d.ts +3 -3
  1027. package/dist/project-nature-mosaic.d.cts +3 -3
  1028. package/dist/project-nature-mosaic.d.ts +3 -3
  1029. package/dist/project-scroll-reveal.d.cts +3 -3
  1030. package/dist/project-scroll-reveal.d.ts +3 -3
  1031. package/dist/project-showcase-alternating.d.cts +3 -3
  1032. package/dist/project-showcase-alternating.d.ts +3 -3
  1033. package/dist/project-sticky-scroll.d.cts +3 -3
  1034. package/dist/project-sticky-scroll.d.ts +3 -3
  1035. package/dist/project-studio-hover-preview.d.cts +3 -3
  1036. package/dist/project-studio-hover-preview.d.ts +3 -3
  1037. package/dist/project-table-list.d.cts +3 -3
  1038. package/dist/project-table-list.d.ts +3 -3
  1039. package/dist/project-video-carousel.d.cts +3 -3
  1040. package/dist/project-video-carousel.d.ts +3 -3
  1041. package/dist/project-video-hover-bento.d.cts +3 -3
  1042. package/dist/project-video-hover-bento.d.ts +3 -3
  1043. package/dist/project-video-hover-grid.d.cts +3 -3
  1044. package/dist/project-video-hover-grid.d.ts +3 -3
  1045. package/dist/project-video-hover-rounded.d.cts +3 -3
  1046. package/dist/project-video-hover-rounded.d.ts +3 -3
  1047. package/dist/project-video-hover-stack.d.cts +3 -3
  1048. package/dist/project-video-hover-stack.d.ts +3 -3
  1049. package/dist/project-video-hover-two-by-two.d.cts +3 -3
  1050. package/dist/project-video-hover-two-by-two.d.ts +3 -3
  1051. package/dist/project-work-showcase.d.cts +3 -3
  1052. package/dist/project-work-showcase.d.ts +3 -3
  1053. package/dist/project-zigzag-layout.d.cts +3 -3
  1054. package/dist/project-zigzag-layout.d.ts +3 -3
  1055. package/dist/registry.cjs +2125 -2775
  1056. package/dist/registry.js +872 -1522
  1057. package/dist/resource-detail-article-hero.d.cts +3 -3
  1058. package/dist/resource-detail-article-hero.d.ts +3 -3
  1059. package/dist/resource-detail-document-sidebar.d.cts +3 -3
  1060. package/dist/resource-detail-document-sidebar.d.ts +3 -3
  1061. package/dist/resource-detail-whitepaper-sidebar.d.cts +3 -3
  1062. package/dist/resource-detail-whitepaper-sidebar.d.ts +3 -3
  1063. package/dist/resource-list-course-cards.d.cts +3 -3
  1064. package/dist/resource-list-course-cards.d.ts +3 -3
  1065. package/dist/resource-list-featured-articles.d.cts +3 -3
  1066. package/dist/resource-list-featured-articles.d.ts +3 -3
  1067. package/dist/resource-list-featured-grid.d.cts +3 -3
  1068. package/dist/resource-list-featured-grid.d.ts +3 -3
  1069. package/dist/resource-list-hero-filter.d.cts +2 -2
  1070. package/dist/resource-list-hero-filter.d.ts +2 -2
  1071. package/dist/resource-list-news-updates.d.cts +3 -3
  1072. package/dist/resource-list-news-updates.d.ts +3 -3
  1073. package/dist/section.d.cts +3 -3
  1074. package/dist/section.d.ts +3 -3
  1075. package/dist/service-detail-centered-expertise.d.cts +3 -3
  1076. package/dist/service-detail-centered-expertise.d.ts +3 -3
  1077. package/dist/service-detail-compact-cards.d.cts +3 -3
  1078. package/dist/service-detail-compact-cards.d.ts +3 -3
  1079. package/dist/service-detail-image-hero.d.cts +3 -3
  1080. package/dist/service-detail-image-hero.d.ts +3 -3
  1081. package/dist/service-detail-prose-minimal.d.cts +3 -3
  1082. package/dist/service-detail-prose-minimal.d.ts +3 -3
  1083. package/dist/service-detail-sidebar-related.d.cts +3 -3
  1084. package/dist/service-detail-sidebar-related.d.ts +3 -3
  1085. package/dist/service-detail-sidebar-stats.d.cts +3 -3
  1086. package/dist/service-detail-sidebar-stats.d.ts +3 -3
  1087. package/dist/service-detail-stats-hero.d.cts +3 -3
  1088. package/dist/service-detail-stats-hero.d.ts +3 -3
  1089. package/dist/service-hover-carousel.d.cts +3 -3
  1090. package/dist/service-hover-carousel.d.ts +3 -3
  1091. package/dist/services-list-accordion-benefits.d.cts +3 -3
  1092. package/dist/services-list-accordion-benefits.d.ts +3 -3
  1093. package/dist/services-list-accordion.d.cts +3 -3
  1094. package/dist/services-list-accordion.d.ts +3 -3
  1095. package/dist/services-list-cards-hover.d.cts +3 -3
  1096. package/dist/services-list-cards-hover.d.ts +3 -3
  1097. package/dist/services-list-category-accordion.d.cts +3 -3
  1098. package/dist/services-list-category-accordion.d.ts +3 -3
  1099. package/dist/services-list-centered-icons.d.cts +3 -3
  1100. package/dist/services-list-centered-icons.d.ts +3 -3
  1101. package/dist/services-list-culture-tabs.d.cts +3 -3
  1102. package/dist/services-list-culture-tabs.d.ts +3 -3
  1103. package/dist/services-list-expandable-cards.d.cts +3 -3
  1104. package/dist/services-list-expandable-cards.d.ts +3 -3
  1105. package/dist/services-list-feature-spotlight.d.cts +3 -3
  1106. package/dist/services-list-feature-spotlight.d.ts +3 -3
  1107. package/dist/services-list-featured-highlight.d.cts +3 -3
  1108. package/dist/services-list-featured-highlight.d.ts +3 -3
  1109. package/dist/services-list-hero-cards.d.cts +3 -3
  1110. package/dist/services-list-hero-cards.d.ts +3 -3
  1111. package/dist/services-list-icon-grid.d.cts +3 -3
  1112. package/dist/services-list-icon-grid.d.ts +3 -3
  1113. package/dist/services-list-image-cards.d.cts +3 -3
  1114. package/dist/services-list-image-cards.d.ts +3 -3
  1115. package/dist/services-list-image-overlay-grid.d.cts +3 -3
  1116. package/dist/services-list-image-overlay-grid.d.ts +3 -3
  1117. package/dist/services-list-masonry.d.cts +3 -3
  1118. package/dist/services-list-masonry.d.ts +3 -3
  1119. package/dist/services-list-methodology-steps.d.cts +3 -3
  1120. package/dist/services-list-methodology-steps.d.ts +3 -3
  1121. package/dist/services-list-minimal-grid.d.cts +3 -3
  1122. package/dist/services-list-minimal-grid.d.ts +3 -3
  1123. package/dist/services-list-muted-cards.d.cts +3 -3
  1124. package/dist/services-list-muted-cards.d.ts +3 -3
  1125. package/dist/services-list-numbered-steps.d.cts +3 -3
  1126. package/dist/services-list-numbered-steps.d.ts +3 -3
  1127. package/dist/services-list-pricing-grid.d.cts +3 -3
  1128. package/dist/services-list-pricing-grid.d.ts +3 -3
  1129. package/dist/services-list-progress-sidebar.d.cts +3 -3
  1130. package/dist/services-list-progress-sidebar.d.ts +3 -3
  1131. package/dist/services-list-split-checklist.d.cts +3 -3
  1132. package/dist/services-list-split-checklist.d.ts +3 -3
  1133. package/dist/services-list-sticky-image.d.cts +3 -3
  1134. package/dist/services-list-sticky-image.d.ts +3 -3
  1135. package/dist/services-list-table-hover.d.cts +3 -3
  1136. package/dist/services-list-table-hover.d.ts +3 -3
  1137. package/dist/services-list-tabs-features.d.cts +3 -3
  1138. package/dist/services-list-tabs-features.d.ts +3 -3
  1139. package/dist/services-list-timeline.d.cts +3 -3
  1140. package/dist/services-list-timeline.d.ts +3 -3
  1141. package/dist/services-list-two-column-grid.d.cts +3 -3
  1142. package/dist/services-list-two-column-grid.d.ts +3 -3
  1143. package/dist/services-list-vertical-tags.d.cts +3 -3
  1144. package/dist/services-list-vertical-tags.d.ts +3 -3
  1145. package/dist/services-list-video-showcase.d.cts +3 -3
  1146. package/dist/services-list-video-showcase.d.ts +3 -3
  1147. package/dist/social-link-icon.d.cts +2 -2
  1148. package/dist/social-link-icon.d.ts +2 -2
  1149. package/dist/stats-animated-counter.d.cts +3 -3
  1150. package/dist/stats-animated-counter.d.ts +3 -3
  1151. package/dist/stats-bar-comparison.d.cts +3 -3
  1152. package/dist/stats-bar-comparison.d.ts +3 -3
  1153. package/dist/stats-card-group.d.cts +3 -3
  1154. package/dist/stats-card-group.d.ts +3 -3
  1155. package/dist/stats-circular-progress.d.cts +3 -3
  1156. package/dist/stats-circular-progress.d.ts +3 -3
  1157. package/dist/stats-growth-timeline.d.cts +3 -3
  1158. package/dist/stats-growth-timeline.d.ts +3 -3
  1159. package/dist/stats-icon-cards.d.cts +3 -3
  1160. package/dist/stats-icon-cards.d.ts +3 -3
  1161. package/dist/stats-impact-grid.d.cts +3 -3
  1162. package/dist/stats-impact-grid.d.ts +3 -3
  1163. package/dist/stats-milestone-sidebar.d.cts +3 -3
  1164. package/dist/stats-milestone-sidebar.d.ts +3 -3
  1165. package/dist/stats-number-ticker.d.cts +3 -3
  1166. package/dist/stats-number-ticker.d.ts +3 -3
  1167. package/dist/stats-primary-secondary.d.cts +3 -3
  1168. package/dist/stats-primary-secondary.d.ts +3 -3
  1169. package/dist/stats-simple-grid.d.cts +3 -3
  1170. package/dist/stats-simple-grid.d.ts +3 -3
  1171. package/dist/stats-timeline-tabs.d.cts +3 -3
  1172. package/dist/stats-timeline-tabs.d.ts +3 -3
  1173. package/dist/team-alternating-bios.d.cts +3 -3
  1174. package/dist/team-alternating-bios.d.ts +3 -3
  1175. package/dist/team-avatar-social.d.cts +3 -3
  1176. package/dist/team-avatar-social.d.ts +3 -3
  1177. package/dist/team-bio-badges.d.cts +3 -3
  1178. package/dist/team-bio-badges.d.ts +3 -3
  1179. package/dist/team-carousel-experience.d.cts +3 -3
  1180. package/dist/team-carousel-experience.d.ts +3 -3
  1181. package/dist/team-compact-cta.d.cts +3 -3
  1182. package/dist/team-compact-cta.d.ts +3 -3
  1183. package/dist/team-compact-grid.d.cts +3 -3
  1184. package/dist/team-compact-grid.d.ts +3 -3
  1185. package/dist/team-contact-cards.d.cts +3 -3
  1186. package/dist/team-contact-cards.d.ts +3 -3
  1187. package/dist/team-department-sections.d.cts +3 -3
  1188. package/dist/team-department-sections.d.ts +3 -3
  1189. package/dist/team-expertise-cards.d.cts +3 -3
  1190. package/dist/team-expertise-cards.d.ts +3 -3
  1191. package/dist/team-filterable-search.d.cts +3 -3
  1192. package/dist/team-filterable-search.d.ts +3 -3
  1193. package/dist/team-gradient-cards.d.cts +3 -3
  1194. package/dist/team-gradient-cards.d.ts +3 -3
  1195. package/dist/team-grid-animated.d.cts +3 -3
  1196. package/dist/team-grid-animated.d.ts +3 -3
  1197. package/dist/team-hover-highlight.d.cts +3 -3
  1198. package/dist/team-hover-highlight.d.ts +3 -3
  1199. package/dist/team-hover-overlay.d.cts +3 -3
  1200. package/dist/team-hover-overlay.d.ts +3 -3
  1201. package/dist/team-investor-showcase.d.cts +3 -3
  1202. package/dist/team-investor-showcase.d.ts +3 -3
  1203. package/dist/team-large-images.d.cts +3 -3
  1204. package/dist/team-large-images.d.ts +3 -3
  1205. package/dist/team-media-showcase.d.cts +3 -3
  1206. package/dist/team-media-showcase.d.ts +3 -3
  1207. package/dist/team-role-filter.d.cts +3 -3
  1208. package/dist/team-role-filter.d.ts +3 -3
  1209. package/dist/team-simple-grid.d.cts +3 -3
  1210. package/dist/team-simple-grid.d.ts +3 -3
  1211. package/dist/team-skill-badges.d.cts +3 -3
  1212. package/dist/team-skill-badges.d.ts +3 -3
  1213. package/dist/team-social-cards.d.cts +3 -3
  1214. package/dist/team-social-cards.d.ts +3 -3
  1215. package/dist/team-social-grid.d.cts +3 -3
  1216. package/dist/team-social-grid.d.ts +3 -3
  1217. package/dist/team-testimonial-stats.d.cts +3 -3
  1218. package/dist/team-testimonial-stats.d.ts +3 -3
  1219. package/dist/testimonial-carousel-cards.d.cts +3 -3
  1220. package/dist/testimonial-carousel-cards.d.ts +3 -3
  1221. package/dist/testimonials-animated-split.d.cts +3 -3
  1222. package/dist/testimonials-animated-split.d.ts +3 -3
  1223. package/dist/testimonials-bento-grid.d.cts +3 -3
  1224. package/dist/testimonials-bento-grid.d.ts +3 -3
  1225. package/dist/testimonials-carousel-image.d.cts +3 -3
  1226. package/dist/testimonials-carousel-image.d.ts +3 -3
  1227. package/dist/testimonials-centered-avatars.d.cts +3 -3
  1228. package/dist/testimonials-centered-avatars.d.ts +3 -3
  1229. package/dist/testimonials-company-logo.d.cts +3 -3
  1230. package/dist/testimonials-company-logo.d.ts +3 -3
  1231. package/dist/testimonials-grid-add-review.d.cts +3 -3
  1232. package/dist/testimonials-grid-add-review.d.ts +3 -3
  1233. package/dist/testimonials-images-helpful.d.cts +3 -3
  1234. package/dist/testimonials-images-helpful.d.ts +3 -3
  1235. package/dist/testimonials-large-quote.d.cts +3 -3
  1236. package/dist/testimonials-large-quote.d.ts +3 -3
  1237. package/dist/testimonials-list-verified.d.cts +3 -3
  1238. package/dist/testimonials-list-verified.d.ts +3 -3
  1239. package/dist/testimonials-logo-cards.d.cts +3 -3
  1240. package/dist/testimonials-logo-cards.d.ts +3 -3
  1241. package/dist/testimonials-marquee.d.cts +3 -3
  1242. package/dist/testimonials-marquee.d.ts +3 -3
  1243. package/dist/testimonials-masonry-grid.cjs +142 -142
  1244. package/dist/testimonials-masonry-grid.d.cts +3 -3
  1245. package/dist/testimonials-masonry-grid.d.ts +3 -3
  1246. package/dist/testimonials-masonry-grid.js +142 -142
  1247. package/dist/testimonials-mini-dividers.d.cts +3 -3
  1248. package/dist/testimonials-mini-dividers.d.ts +3 -3
  1249. package/dist/testimonials-minimal-numbered.d.cts +3 -3
  1250. package/dist/testimonials-minimal-numbered.d.ts +3 -3
  1251. package/dist/testimonials-parallax-number.d.cts +3 -3
  1252. package/dist/testimonials-parallax-number.d.ts +3 -3
  1253. package/dist/testimonials-quote-carousel.d.cts +3 -3
  1254. package/dist/testimonials-quote-carousel.d.ts +3 -3
  1255. package/dist/testimonials-scrolling-columns.d.cts +3 -3
  1256. package/dist/testimonials-scrolling-columns.d.ts +3 -3
  1257. package/dist/testimonials-simple-grid.d.cts +3 -3
  1258. package/dist/testimonials-simple-grid.d.ts +3 -3
  1259. package/dist/testimonials-slider-minimal.d.cts +3 -3
  1260. package/dist/testimonials-slider-minimal.d.ts +3 -3
  1261. package/dist/testimonials-split-image.d.cts +3 -3
  1262. package/dist/testimonials-split-image.d.ts +3 -3
  1263. package/dist/testimonials-stats-header.cjs +159 -159
  1264. package/dist/testimonials-stats-header.d.cts +3 -3
  1265. package/dist/testimonials-stats-header.d.ts +3 -3
  1266. package/dist/testimonials-stats-header.js +159 -159
  1267. package/dist/testimonials-twitter-cards.d.cts +3 -3
  1268. package/dist/testimonials-twitter-cards.d.ts +3 -3
  1269. package/dist/testimonials-wall-compact.d.cts +3 -3
  1270. package/dist/testimonials-wall-compact.d.ts +3 -3
  1271. package/dist/timeline-ai-workflow-cards.d.cts +3 -3
  1272. package/dist/timeline-ai-workflow-cards.d.ts +3 -3
  1273. package/dist/timeline-alternating-diagonal.d.cts +3 -3
  1274. package/dist/timeline-alternating-diagonal.d.ts +3 -3
  1275. package/dist/timeline-changelog-badges.d.cts +3 -3
  1276. package/dist/timeline-changelog-badges.d.ts +3 -3
  1277. package/dist/timeline-history-prose.d.cts +3 -3
  1278. package/dist/timeline-history-prose.d.ts +3 -3
  1279. package/dist/timeline-horizontal-icons.d.cts +3 -3
  1280. package/dist/timeline-horizontal-icons.d.ts +3 -3
  1281. package/dist/timeline-horizontal-phases.d.cts +3 -3
  1282. package/dist/timeline-horizontal-phases.d.ts +3 -3
  1283. package/dist/timeline-product-launch.d.cts +3 -3
  1284. package/dist/timeline-product-launch.d.ts +3 -3
  1285. package/dist/timeline-productivity-list.d.cts +3 -3
  1286. package/dist/timeline-productivity-list.d.ts +3 -3
  1287. package/dist/timeline-scroll-highlight.d.cts +3 -3
  1288. package/dist/timeline-scroll-highlight.d.ts +3 -3
  1289. package/dist/timeline-scroll-sticky-image.d.cts +3 -3
  1290. package/dist/timeline-scroll-sticky-image.d.ts +3 -3
  1291. package/dist/timeline-stepper-animated.d.cts +3 -3
  1292. package/dist/timeline-stepper-animated.d.ts +3 -3
  1293. package/dist/timeline-tabbed-phases.d.cts +3 -3
  1294. package/dist/timeline-tabbed-phases.d.ts +3 -3
  1295. package/dist/timeline-two-column-featured.d.cts +3 -3
  1296. package/dist/timeline-two-column-featured.d.ts +3 -3
  1297. package/dist/timeline-vertical-icon-dashed.d.cts +3 -3
  1298. package/dist/timeline-vertical-icon-dashed.d.ts +3 -3
  1299. package/dist/types.d.cts +3 -3
  1300. package/dist/types.d.ts +3 -3
  1301. package/dist/use-responsive-layout.d.cts +2 -2
  1302. package/dist/use-responsive-layout.d.ts +2 -2
  1303. package/dist/utils.d.cts +3 -3
  1304. package/dist/utils.d.ts +3 -3
  1305. package/package.json +4 -7
  1306. package/dist/geo-map.cjs +0 -1117
  1307. package/dist/geo-map.d.cts +0 -92
  1308. package/dist/geo-map.d.ts +0 -92
  1309. package/dist/geo-map.js +0 -1095
package/dist/registry.js CHANGED
@@ -1,15 +1,14 @@
1
- import * as React8 from 'react';
2
- import React8__default, { Fragment, createContext, useMemo, forwardRef, useCallback, useState, useEffect, useRef, startTransition, useContext } from 'react';
1
+ import * as React32 from 'react';
2
+ import React32__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';
6
6
  import { Img } from '@page-speed/img';
7
- import { MapLibre } from '@page-speed/maps';
8
- import { cva } from 'class-variance-authority';
9
- import { Icon } from '@page-speed/icon';
10
7
  import { motion as motion$1, AnimatePresence as AnimatePresence$1 } from 'motion/react';
8
+ import { cva } from 'class-variance-authority';
11
9
  import { Slot } from '@radix-ui/react-slot';
12
10
  import * as PopoverPrimitive from '@radix-ui/react-popover';
11
+ import { Icon } from '@page-speed/icon';
13
12
  import { usePlatformFromUrl } from '@opensite/hooks/usePlatformFromUrl';
14
13
  import * as TabsPrimitive from '@radix-ui/react-tabs';
15
14
  import { FormEngine, useFileUpload, useContactForm, DynamicFormField, submitPageSpeedForm, PageSpeedFormSubmissionError, isValidEmail } from '@page-speed/forms/integration';
@@ -17,6 +16,7 @@ import { AnimatePresence, motion, useMotionValue, useMotionTemplate, useSpring,
17
16
  import { Lightbox } from '@page-speed/lightbox';
18
17
  import * as SeparatorPrimitive from '@radix-ui/react-separator';
19
18
  import * as AccordionPrimitive from '@radix-ui/react-accordion';
19
+ import { GeoMap } from '@page-speed/maps';
20
20
  import useEmblaCarousel from 'embla-carousel-react';
21
21
  import Autoplay from 'embla-carousel-autoplay';
22
22
  import * as ProgressPrimitive from '@radix-ui/react-progress';
@@ -138,7 +138,7 @@ var maxWidthStyles = {
138
138
  "4xl": "max-w-[1536px]",
139
139
  full: "max-w-full"
140
140
  };
141
- var Container = React8__default.forwardRef(
141
+ var Container = React32__default.forwardRef(
142
142
  ({ children, maxWidth = "xl", className, as = "div", ...props }, ref) => {
143
143
  const Component = as;
144
144
  return /* @__PURE__ */ jsx(
@@ -444,7 +444,7 @@ var spacingStyles = {
444
444
  };
445
445
  var predefinedSpacings = ["none", "sm", "md", "lg", "xl", "hero"];
446
446
  var isPredefinedSpacing = (spacing) => predefinedSpacings.includes(spacing);
447
- var Section = React8__default.forwardRef(
447
+ var Section = React32__default.forwardRef(
448
448
  ({
449
449
  id,
450
450
  title,
@@ -509,12 +509,12 @@ function TextInner({ as, className, children, ...props }, ref) {
509
509
  const Component = as || "span";
510
510
  return /* @__PURE__ */ jsx(Component, { ref, className: cn(className), ...props, children });
511
511
  }
512
- var Text = React8.forwardRef(TextInner);
512
+ var Text = React32.forwardRef(TextInner);
513
513
  Text.displayName = "Text";
514
514
  function isContentTextItem(item) {
515
- return item !== null && typeof item === "object" && !React8.isValidElement(item) && "_type" in item && item._type === "text";
515
+ return item !== null && typeof item === "object" && !React32.isValidElement(item) && "_type" in item && item._type === "text";
516
516
  }
517
- var ContentGroup = React8.forwardRef(
517
+ var ContentGroup = React32.forwardRef(
518
518
  ({ items, className, children, ...props }, ref) => {
519
519
  const hasContent = items && items.length > 0;
520
520
  if (!hasContent) {
@@ -527,10 +527,10 @@ var ContentGroup = React8.forwardRef(
527
527
  return /* @__PURE__ */ jsx(Text, { ...textProps }, idx);
528
528
  }
529
529
  const reactNode = item;
530
- if (React8.isValidElement(reactNode)) {
531
- return React8.cloneElement(reactNode, { key: reactNode.key ?? idx });
530
+ if (React32.isValidElement(reactNode)) {
531
+ return React32.cloneElement(reactNode, { key: reactNode.key ?? idx });
532
532
  }
533
- return /* @__PURE__ */ jsx(React8.Fragment, { children: reactNode }, idx);
533
+ return /* @__PURE__ */ jsx(React32.Fragment, { children: reactNode }, idx);
534
534
  }),
535
535
  children
536
536
  ] });
@@ -644,1085 +644,6 @@ function AlternatingBlocks({
644
644
  }
645
645
  );
646
646
  }
647
- function normalizePhoneNumber(input) {
648
- const trimmed = input.trim();
649
- if (trimmed.toLowerCase().startsWith("tel:")) {
650
- return trimmed;
651
- }
652
- const match = trimmed.match(/^[\s\+\-\(\)]*(\d[\d\s\-\(\)\.]*\d)[\s\-]*(x|ext\.?|extension)?[\s\-]*(\d+)?$/i);
653
- if (match) {
654
- const mainNumber = match[1].replace(/[\s\-\(\)\.]/g, "");
655
- const extension = match[3];
656
- const normalized = mainNumber.length >= 10 && !trimmed.startsWith("+") ? `+${mainNumber}` : mainNumber;
657
- const withExtension = extension ? `${normalized};ext=${extension}` : normalized;
658
- return `tel:${withExtension}`;
659
- }
660
- const cleaned = trimmed.replace(/[\s\-\(\)\.]/g, "");
661
- return `tel:${cleaned}`;
662
- }
663
- function normalizeEmail(input) {
664
- const trimmed = input.trim();
665
- if (trimmed.toLowerCase().startsWith("mailto:")) {
666
- return trimmed;
667
- }
668
- return `mailto:${trimmed}`;
669
- }
670
- function isEmail(input) {
671
- const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
672
- return emailRegex.test(input.trim());
673
- }
674
- function isPhoneNumber(input) {
675
- const trimmed = input.trim();
676
- if (trimmed.toLowerCase().startsWith("tel:")) {
677
- return true;
678
- }
679
- const phoneRegex = /^[\s\+\-\(\)]*\d[\d\s\-\(\)\.]*\d[\s\-]*(x|ext\.?|extension)?[\s\-]*\d*$/i;
680
- return phoneRegex.test(trimmed);
681
- }
682
- function isInternalUrl(href) {
683
- if (typeof window === "undefined") {
684
- return href.startsWith("/") && !href.startsWith("//");
685
- }
686
- const trimmed = href.trim();
687
- if (trimmed.startsWith("/") && !trimmed.startsWith("//")) {
688
- return true;
689
- }
690
- try {
691
- const url = new URL(trimmed, window.location.href);
692
- const currentOrigin = window.location.origin;
693
- const normalizeOrigin = (origin) => origin.replace(/^(https?:\/\/)(www\.)?/, "$1");
694
- return normalizeOrigin(url.origin) === normalizeOrigin(currentOrigin);
695
- } catch {
696
- return false;
697
- }
698
- }
699
- function toRelativePath(href) {
700
- if (typeof window === "undefined") {
701
- return href;
702
- }
703
- const trimmed = href.trim();
704
- if (trimmed.startsWith("/") && !trimmed.startsWith("//")) {
705
- return trimmed;
706
- }
707
- try {
708
- const url = new URL(trimmed, window.location.href);
709
- const currentOrigin = window.location.origin;
710
- const normalizeOrigin = (origin) => origin.replace(/^(https?:\/\/)(www\.)?/, "$1");
711
- if (normalizeOrigin(url.origin) === normalizeOrigin(currentOrigin)) {
712
- return url.pathname + url.search + url.hash;
713
- }
714
- } catch {
715
- }
716
- return trimmed;
717
- }
718
- function useNavigation({
719
- href,
720
- onClick
721
- } = {}) {
722
- const linkType = React8.useMemo(() => {
723
- if (!href || href.trim() === "") {
724
- return onClick ? "none" : "none";
725
- }
726
- const trimmed = href.trim();
727
- if (trimmed.toLowerCase().startsWith("mailto:") || isEmail(trimmed)) {
728
- return "mailto";
729
- }
730
- if (trimmed.toLowerCase().startsWith("tel:") || isPhoneNumber(trimmed)) {
731
- return "tel";
732
- }
733
- if (isInternalUrl(trimmed)) {
734
- return "internal";
735
- }
736
- try {
737
- new URL(trimmed, typeof window !== "undefined" ? window.location.href : "http://localhost");
738
- return "external";
739
- } catch {
740
- return "internal";
741
- }
742
- }, [href, onClick]);
743
- const normalizedHref = React8.useMemo(() => {
744
- if (!href || href.trim() === "") {
745
- return void 0;
746
- }
747
- const trimmed = href.trim();
748
- switch (linkType) {
749
- case "tel":
750
- return normalizePhoneNumber(trimmed);
751
- case "mailto":
752
- return normalizeEmail(trimmed);
753
- case "internal":
754
- return toRelativePath(trimmed);
755
- case "external":
756
- return trimmed;
757
- default:
758
- return trimmed;
759
- }
760
- }, [href, linkType]);
761
- const target = React8.useMemo(() => {
762
- switch (linkType) {
763
- case "external":
764
- return "_blank";
765
- case "internal":
766
- return "_self";
767
- case "mailto":
768
- case "tel":
769
- return void 0;
770
- default:
771
- return void 0;
772
- }
773
- }, [linkType]);
774
- const rel = React8.useMemo(() => {
775
- if (linkType === "external") {
776
- return "noopener noreferrer";
777
- }
778
- return void 0;
779
- }, [linkType]);
780
- const isExternal = linkType === "external";
781
- const isInternal = linkType === "internal";
782
- const shouldUseRouter = isInternal && typeof normalizedHref === "string" && normalizedHref.startsWith("/");
783
- const handleClick = React8.useCallback(
784
- (event) => {
785
- if (onClick) {
786
- try {
787
- onClick(event);
788
- } catch (error) {
789
- console.error("Error in user onClick handler:", error);
790
- }
791
- }
792
- if (event.defaultPrevented) {
793
- return;
794
- }
795
- if (shouldUseRouter && normalizedHref && event.button === 0 && // left-click only
796
- !event.metaKey && !event.altKey && !event.ctrlKey && !event.shiftKey) {
797
- if (typeof window !== "undefined") {
798
- const handler = window.__opensiteNavigationHandler;
799
- if (typeof handler === "function") {
800
- try {
801
- const handled = handler(normalizedHref, event.nativeEvent || event);
802
- if (handled !== false) {
803
- event.preventDefault();
804
- }
805
- } catch (error) {
806
- console.error("Error in navigation handler:", error);
807
- }
808
- }
809
- }
810
- }
811
- },
812
- [onClick, shouldUseRouter, normalizedHref]
813
- );
814
- return {
815
- linkType,
816
- normalizedHref,
817
- target,
818
- rel,
819
- isExternal,
820
- isInternal,
821
- shouldUseRouter,
822
- handleClick
823
- };
824
- }
825
- var baseStyles = [
826
- // Layout
827
- "inline-flex items-center justify-center gap-2 whitespace-nowrap shrink-0",
828
- // Typography - using CSS variables with sensible defaults
829
- "font-[var(--button-font-family,inherit)]",
830
- "font-[var(--button-font-weight,500)]",
831
- "tracking-[var(--button-letter-spacing,0)]",
832
- "leading-[var(--button-line-height,1.25)]",
833
- "[text-transform:var(--button-text-transform,none)]",
834
- "text-sm",
835
- // Border radius
836
- "rounded-[var(--button-radius,var(--radius,0.375rem))]",
837
- // Smooth transition - using [transition:...] to set full shorthand property (not just transition-property)
838
- "[transition:var(--button-transition,all_250ms_cubic-bezier(0.4,0,0.2,1))]",
839
- // Box shadow (master level) - using [box-shadow:...] for complex multi-value shadows
840
- "[box-shadow:var(--button-shadow,none)]",
841
- "hover:[box-shadow:var(--button-shadow-hover,var(--button-shadow,none))]",
842
- // Disabled state
843
- "disabled:pointer-events-none disabled:opacity-50",
844
- // SVG handling
845
- "[&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0",
846
- // Focus styles
847
- "outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
848
- // Invalid state
849
- "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive"
850
- ].join(" ");
851
- var buttonVariants = cva(baseStyles, {
852
- variants: {
853
- variant: {
854
- // Default (Primary) variant - full customization
855
- default: [
856
- "bg-[var(--button-default-bg,hsl(var(--primary)))]",
857
- "text-[var(--button-default-fg,hsl(var(--primary-foreground)))]",
858
- "border-[length:var(--button-default-border-width,0px)]",
859
- "border-[color:var(--button-default-border,transparent)]",
860
- "[box-shadow:var(--button-default-shadow,var(--button-shadow,none))]",
861
- "hover:bg-[var(--button-default-hover-bg,hsl(var(--primary)/0.9))]",
862
- "hover:text-[var(--button-default-hover-fg,var(--button-default-fg,hsl(var(--primary-foreground))))]",
863
- "hover:border-[color:var(--button-default-hover-border,var(--button-default-border,transparent))]",
864
- "hover:[box-shadow:var(--button-default-shadow-hover,var(--button-shadow-hover,var(--button-default-shadow,var(--button-shadow,none))))]"
865
- ].join(" "),
866
- // Destructive variant - full customization
867
- destructive: [
868
- "bg-[var(--button-destructive-bg,hsl(var(--destructive)))]",
869
- "text-[var(--button-destructive-fg,white)]",
870
- "border-[length:var(--button-destructive-border-width,0px)]",
871
- "border-[color:var(--button-destructive-border,transparent)]",
872
- "[box-shadow:var(--button-destructive-shadow,var(--button-shadow,none))]",
873
- "hover:bg-[var(--button-destructive-hover-bg,hsl(var(--destructive)/0.9))]",
874
- "hover:text-[var(--button-destructive-hover-fg,var(--button-destructive-fg,white))]",
875
- "hover:border-[color:var(--button-destructive-hover-border,var(--button-destructive-border,transparent))]",
876
- "hover:[box-shadow:var(--button-destructive-shadow-hover,var(--button-shadow-hover,var(--button-destructive-shadow,var(--button-shadow,none))))]",
877
- "focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40",
878
- "dark:bg-destructive/60"
879
- ].join(" "),
880
- // Outline variant - full customization with proper border handling
881
- outline: [
882
- "bg-[var(--button-outline-bg,hsl(var(--background)))]",
883
- "text-[var(--button-outline-fg,inherit)]",
884
- "border-[length:var(--button-outline-border-width,1px)]",
885
- "border-[color:var(--button-outline-border,hsl(var(--border)))]",
886
- "[box-shadow:var(--button-outline-shadow,var(--button-shadow,0_1px_2px_0_rgb(0_0_0/0.05)))]",
887
- "hover:bg-[var(--button-outline-hover-bg,hsl(var(--accent)))]",
888
- "hover:text-[var(--button-outline-hover-fg,hsl(var(--accent-foreground)))]",
889
- "hover:border-[color:var(--button-outline-hover-border,var(--button-outline-border,hsl(var(--border))))]",
890
- "hover:[box-shadow:var(--button-outline-shadow-hover,var(--button-shadow-hover,var(--button-outline-shadow,var(--button-shadow,none))))]",
891
- "dark:bg-input/30 dark:border-input dark:hover:bg-input/50"
892
- ].join(" "),
893
- // Secondary variant - full customization
894
- secondary: [
895
- "bg-[var(--button-secondary-bg,hsl(var(--secondary)))]",
896
- "text-[var(--button-secondary-fg,hsl(var(--secondary-foreground)))]",
897
- "border-[length:var(--button-secondary-border-width,0px)]",
898
- "border-[color:var(--button-secondary-border,transparent)]",
899
- "[box-shadow:var(--button-secondary-shadow,var(--button-shadow,none))]",
900
- "hover:bg-[var(--button-secondary-hover-bg,hsl(var(--secondary)/0.8))]",
901
- "hover:text-[var(--button-secondary-hover-fg,var(--button-secondary-fg,hsl(var(--secondary-foreground))))]",
902
- "hover:border-[color:var(--button-secondary-hover-border,var(--button-secondary-border,transparent))]",
903
- "hover:[box-shadow:var(--button-secondary-shadow-hover,var(--button-shadow-hover,var(--button-secondary-shadow,var(--button-shadow,none))))]"
904
- ].join(" "),
905
- // Ghost variant - full customization
906
- ghost: [
907
- "bg-[var(--button-ghost-bg,transparent)]",
908
- "text-[var(--button-ghost-fg,inherit)]",
909
- "border-[length:var(--button-ghost-border-width,0px)]",
910
- "border-[color:var(--button-ghost-border,transparent)]",
911
- "[box-shadow:var(--button-ghost-shadow,var(--button-shadow,none))]",
912
- "hover:bg-[var(--button-ghost-hover-bg,hsl(var(--accent)))]",
913
- "hover:text-[var(--button-ghost-hover-fg,hsl(var(--accent-foreground)))]",
914
- "hover:border-[color:var(--button-ghost-hover-border,var(--button-ghost-border,transparent))]",
915
- "hover:[box-shadow:var(--button-ghost-shadow-hover,var(--button-shadow-hover,var(--button-ghost-shadow,var(--button-shadow,none))))]",
916
- "dark:hover:bg-accent/50"
917
- ].join(" "),
918
- // Link variant - full customization
919
- link: [
920
- "bg-[var(--button-link-bg,transparent)]",
921
- "text-[var(--button-link-fg,hsl(var(--primary)))]",
922
- "border-[length:var(--button-link-border-width,0px)]",
923
- "border-[color:var(--button-link-border,transparent)]",
924
- "[box-shadow:var(--button-link-shadow,none)]",
925
- "hover:bg-[var(--button-link-hover-bg,transparent)]",
926
- "hover:text-[var(--button-link-hover-fg,var(--button-link-fg,hsl(var(--primary))))]",
927
- "hover:[box-shadow:var(--button-link-shadow-hover,none)]",
928
- "underline-offset-4 hover:underline"
929
- ].join(" ")
930
- },
931
- size: {
932
- default: [
933
- "h-[var(--button-height-md,2.25rem)]",
934
- "px-[var(--button-padding-x-md,1rem)]",
935
- "py-[var(--button-padding-y-md,0.5rem)]",
936
- "has-[>svg]:px-[calc(var(--button-padding-x-md,1rem)*0.75)]"
937
- ].join(" "),
938
- sm: [
939
- "h-[var(--button-height-sm,2rem)]",
940
- "px-[var(--button-padding-x-sm,0.75rem)]",
941
- "py-[var(--button-padding-y-sm,0.25rem)]",
942
- "gap-1.5",
943
- "has-[>svg]:px-[calc(var(--button-padding-x-sm,0.75rem)*0.83)]"
944
- ].join(" "),
945
- md: [
946
- "h-[var(--button-height-md,2.25rem)]",
947
- "px-[var(--button-padding-x-md,1rem)]",
948
- "py-[var(--button-padding-y-md,0.5rem)]",
949
- "has-[>svg]:px-[calc(var(--button-padding-x-md,1rem)*0.75)]"
950
- ].join(" "),
951
- lg: [
952
- "h-[var(--button-height-lg,2.5rem)]",
953
- "px-[var(--button-padding-x-lg,1.5rem)]",
954
- "py-[var(--button-padding-y-lg,0.5rem)]",
955
- "has-[>svg]:px-[calc(var(--button-padding-x-lg,1.5rem)*0.67)]"
956
- ].join(" "),
957
- icon: "size-[var(--button-height-md,2.25rem)]",
958
- "icon-sm": "size-[var(--button-height-sm,2rem)]",
959
- "icon-lg": "size-[var(--button-height-lg,2.5rem)]"
960
- }
961
- },
962
- defaultVariants: {
963
- variant: "default",
964
- size: "default"
965
- }
966
- });
967
- var Pressable = React8.forwardRef(
968
- ({
969
- children,
970
- className,
971
- href,
972
- onClick,
973
- variant,
974
- size,
975
- asButton = false,
976
- fallbackComponentType = "span",
977
- componentType,
978
- "aria-label": ariaLabel,
979
- "aria-describedby": ariaDescribedby,
980
- id,
981
- ...props
982
- }, ref) => {
983
- const navigation = useNavigation({ href, onClick });
984
- const {
985
- normalizedHref,
986
- target,
987
- rel,
988
- linkType,
989
- isInternal,
990
- handleClick
991
- } = navigation;
992
- const shouldRenderLink = normalizedHref && linkType !== "none";
993
- const shouldRenderButton = !shouldRenderLink && onClick;
994
- const effectiveComponentType = componentType || (shouldRenderLink ? "a" : shouldRenderButton ? "button" : fallbackComponentType);
995
- const finalComponentType = isInternal && shouldRenderLink ? "a" : effectiveComponentType;
996
- const shouldApplyButtonStyles = asButton || variant || size;
997
- const combinedClassName = cn(
998
- shouldApplyButtonStyles && buttonVariants({ variant, size }),
999
- className
1000
- );
1001
- const dataProps = Object.fromEntries(
1002
- Object.entries(props).filter(([key]) => key.startsWith("data-"))
1003
- );
1004
- const buttonDataAttributes = shouldApplyButtonStyles ? {
1005
- "data-slot": "button",
1006
- "data-variant": variant ?? "default",
1007
- "data-size": size ?? "default"
1008
- } : {};
1009
- const commonProps = {
1010
- className: combinedClassName,
1011
- onClick: handleClick,
1012
- "aria-label": ariaLabel,
1013
- "aria-describedby": ariaDescribedby,
1014
- id,
1015
- ...dataProps,
1016
- ...buttonDataAttributes
1017
- };
1018
- if (finalComponentType === "a" && shouldRenderLink) {
1019
- return /* @__PURE__ */ jsx(
1020
- "a",
1021
- {
1022
- ref,
1023
- href: normalizedHref,
1024
- target,
1025
- rel,
1026
- ...commonProps,
1027
- ...props,
1028
- children
1029
- }
1030
- );
1031
- }
1032
- if (finalComponentType === "button") {
1033
- return /* @__PURE__ */ jsx(
1034
- "button",
1035
- {
1036
- ref,
1037
- type: props.type || "button",
1038
- ...commonProps,
1039
- ...props,
1040
- children
1041
- }
1042
- );
1043
- }
1044
- if (finalComponentType === "div") {
1045
- return /* @__PURE__ */ jsx(
1046
- "div",
1047
- {
1048
- ref,
1049
- ...commonProps,
1050
- children
1051
- }
1052
- );
1053
- }
1054
- return /* @__PURE__ */ jsx(
1055
- "span",
1056
- {
1057
- ref,
1058
- ...commonProps,
1059
- children
1060
- }
1061
- );
1062
- }
1063
- );
1064
- Pressable.displayName = "Pressable";
1065
- var DEFAULT_ICON_API_KEY = "au382bi7fsh96w9h9xlrnat2jglx";
1066
- var DynamicIcon = React8.memo(function DynamicIcon2({
1067
- apiKey,
1068
- ...props
1069
- }) {
1070
- return /* @__PURE__ */ jsx(Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
1071
- });
1072
- DynamicIcon.displayName = "DynamicIcon";
1073
- var PANEL_POSITION_CLASS = {
1074
- "top-left": "left-4 top-4",
1075
- "top-right": "right-4 top-4",
1076
- "bottom-left": "bottom-4 left-4",
1077
- "bottom-right": "bottom-4 right-4"
1078
- };
1079
- var DEFAULT_VIEW_STATE = {
1080
- latitude: 39.5,
1081
- longitude: -98.35,
1082
- zoom: 3
1083
- };
1084
- var VIDEO_FILE_EXTENSION_REGEX = /\.(mp4|webm|ogg|mov|m4v|m3u8)(\?.*)?$/i;
1085
- function resolveMediaType(item) {
1086
- if (item.type) {
1087
- return item.type;
1088
- }
1089
- return VIDEO_FILE_EXTENSION_REGEX.test(item.src) ? "video" : "image";
1090
- }
1091
- function normalizeId(value, fallback) {
1092
- if (value === null || value === void 0 || value === "") {
1093
- return fallback;
1094
- }
1095
- return String(value);
1096
- }
1097
- function buildClusterCenter(markers) {
1098
- if (!markers.length) {
1099
- return null;
1100
- }
1101
- const total = markers.reduce(
1102
- (accumulator, marker) => ({
1103
- latitude: accumulator.latitude + marker.latitude,
1104
- longitude: accumulator.longitude + marker.longitude
1105
- }),
1106
- { latitude: 0, longitude: 0 }
1107
- );
1108
- return {
1109
- latitude: total.latitude / markers.length,
1110
- longitude: total.longitude / markers.length
1111
- };
1112
- }
1113
- function resolveActionKey(action, index) {
1114
- if (typeof action.label === "string" && action.label.trim().length > 0) {
1115
- return `label:${action.label}:${index}`;
1116
- }
1117
- if (action.href) {
1118
- return `href:${action.href}:${index}`;
1119
- }
1120
- return `action:${index}`;
1121
- }
1122
- function MarkerActions({ actions }) {
1123
- if (!actions || actions.length === 0) {
1124
- return null;
1125
- }
1126
- return /* @__PURE__ */ jsx("div", { className: "mt-4 flex flex-wrap gap-2", children: actions.map((action, index) => {
1127
- const {
1128
- label,
1129
- icon,
1130
- iconAfter,
1131
- children,
1132
- href,
1133
- onClick,
1134
- className: actionClassName,
1135
- variant,
1136
- size,
1137
- asButton,
1138
- ...rest
1139
- } = action;
1140
- return /* @__PURE__ */ jsx(
1141
- Pressable,
1142
- {
1143
- href,
1144
- onClick,
1145
- variant: variant ?? (index === 0 ? "default" : "outline"),
1146
- size: size ?? "sm",
1147
- asButton: asButton ?? true,
1148
- className: cn("inline-flex items-center gap-2", actionClassName),
1149
- ...rest,
1150
- children: children ?? /* @__PURE__ */ jsxs(Fragment$1, { children: [
1151
- icon,
1152
- label,
1153
- iconAfter
1154
- ] })
1155
- },
1156
- resolveActionKey(action, index)
1157
- );
1158
- }) });
1159
- }
1160
- function MarkerMediaCarousel({
1161
- mediaItems,
1162
- optixFlowConfig
1163
- }) {
1164
- const [activeIndex, setActiveIndex] = React8.useState(0);
1165
- const totalItems = mediaItems.length;
1166
- const mediaResetKey = React8.useMemo(
1167
- () => mediaItems.map((item, index) => {
1168
- const itemId = normalizeId(item.id, `media-${index}`);
1169
- return `${itemId}:${item.src}:${item.type ?? ""}:${item.poster ?? ""}`;
1170
- }).join("|"),
1171
- [mediaItems]
1172
- );
1173
- const activeItemIndex = Math.min(activeIndex, Math.max(0, totalItems - 1));
1174
- React8.useEffect(() => {
1175
- setActiveIndex(0);
1176
- }, [mediaResetKey]);
1177
- return /* @__PURE__ */ jsxs("div", { className: "relative border-b border-border/60 bg-muted/40", children: [
1178
- /* @__PURE__ */ jsx("div", { className: "relative aspect-video w-full overflow-hidden", children: mediaItems.map((item, index) => {
1179
- const isActive = index === activeItemIndex;
1180
- const mediaType = resolveMediaType(item);
1181
- return /* @__PURE__ */ jsx(
1182
- "div",
1183
- {
1184
- "aria-hidden": !isActive,
1185
- className: cn(
1186
- "absolute inset-0 transition-opacity duration-500 ease-in-out",
1187
- isActive ? "opacity-100 z-[1]" : "opacity-0 z-0 pointer-events-none"
1188
- ),
1189
- children: mediaType === "video" ? /* @__PURE__ */ jsx(
1190
- "video",
1191
- {
1192
- className: "h-full w-full object-cover",
1193
- controls: isActive,
1194
- preload: "metadata",
1195
- poster: item.poster,
1196
- tabIndex: isActive ? 0 : -1,
1197
- children: /* @__PURE__ */ jsx("source", { src: item.src })
1198
- }
1199
- ) : /* @__PURE__ */ jsx(
1200
- Img,
1201
- {
1202
- src: item.src,
1203
- alt: item.alt ?? "Map marker media",
1204
- className: "h-full w-full object-cover",
1205
- loading: "eager",
1206
- optixFlowConfig
1207
- }
1208
- )
1209
- },
1210
- normalizeId(item.id, `media-slide-${index}`)
1211
- );
1212
- }) }),
1213
- totalItems > 1 ? /* @__PURE__ */ jsxs(Fragment$1, { children: [
1214
- /* @__PURE__ */ jsx(
1215
- "button",
1216
- {
1217
- type: "button",
1218
- "aria-label": "Show previous media",
1219
- className: "absolute left-4 top-1/2 inline-flex size-10 -translate-y-1/2 items-center justify-center rounded-2xl bg-card text-card-foreground shadow-lg border-4 border-black hover:border-white hover:bg-black hover:text-white transition-all duration-500 z-[2]",
1220
- onClick: () => {
1221
- setActiveIndex(
1222
- (current) => (current - 1 + totalItems) % totalItems
1223
- );
1224
- },
1225
- children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/arrow-left", size: 18 })
1226
- }
1227
- ),
1228
- /* @__PURE__ */ jsx(
1229
- "button",
1230
- {
1231
- type: "button",
1232
- "aria-label": "Show next media",
1233
- className: "absolute right-4 top-1/2 inline-flex size-10 -translate-y-1/2 items-center justify-center rounded-2xl bg-card text-card-foreground shadow-lg border-4 border-black hover:border-white hover:bg-black hover:text-white transition-all duration-500 z-[2]",
1234
- onClick: () => {
1235
- setActiveIndex((current) => (current + 1) % totalItems);
1236
- },
1237
- children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/arrow-right", size: 18 })
1238
- }
1239
- ),
1240
- /* @__PURE__ */ jsx("div", { className: "absolute bottom-2 left-1/2 flex -translate-x-1/2 items-center gap-1.5 z-[2]", children: mediaItems.map((item, index) => /* @__PURE__ */ jsx(
1241
- "button",
1242
- {
1243
- type: "button",
1244
- "aria-label": `Show media item ${index + 1}`,
1245
- className: cn(
1246
- "h-2 rounded-full transition-all duration-300",
1247
- index === activeItemIndex ? "w-6 bg-card" : "w-2 bg-card opacity-50 hover:opacity-100"
1248
- ),
1249
- onClick: () => setActiveIndex(index)
1250
- },
1251
- normalizeId(item.id, `media-dot-${index}`)
1252
- )) })
1253
- ] }) : null
1254
- ] });
1255
- }
1256
- function getMarkerTitle(marker, markerIndex) {
1257
- if (marker.title !== void 0 && marker.title !== null) {
1258
- return marker.title;
1259
- }
1260
- if (marker.label !== void 0 && marker.label !== null) {
1261
- return marker.label;
1262
- }
1263
- return `Location ${markerIndex + 1}`;
1264
- }
1265
- function GeoMap({
1266
- className,
1267
- mapWrapperClassName,
1268
- mapClassName,
1269
- panelClassName,
1270
- panelPosition = "top-left",
1271
- stadiaApiKey = "",
1272
- mapStyle = "osm-bright",
1273
- styleUrl,
1274
- mapLibreCssHref,
1275
- markers = [],
1276
- clusters = [],
1277
- viewState,
1278
- defaultViewState,
1279
- onViewStateChange,
1280
- onMapClick,
1281
- onMarkerDrag,
1282
- showNavigationControl = true,
1283
- showGeolocateControl = false,
1284
- navigationControlPosition = "top-right",
1285
- geolocateControlPosition = "top-left",
1286
- flyToOptions,
1287
- markerFocusZoom = 14,
1288
- clusterFocusZoom = 5,
1289
- selectedMarkerId,
1290
- initialSelectedMarkerId,
1291
- onSelectionChange,
1292
- clearSelectionOnMapClick = true,
1293
- mapChildren,
1294
- optixFlowConfig
1295
- }) {
1296
- const normalizedStandaloneMarkers = React8.useMemo(
1297
- () => markers.map((marker, index) => ({
1298
- ...marker,
1299
- id: normalizeId(marker.id, `marker-${index}`)
1300
- })),
1301
- [markers]
1302
- );
1303
- const normalizedClusters = React8.useMemo(() => {
1304
- const results = [];
1305
- clusters.forEach((cluster, clusterIndex) => {
1306
- const clusterId = normalizeId(cluster.id, `cluster-${clusterIndex}`);
1307
- const normalizedClusterMarkers = cluster.markers.map(
1308
- (marker, markerIndex) => ({
1309
- ...marker,
1310
- id: normalizeId(marker.id, `${clusterId}-marker-${markerIndex}`),
1311
- clusterId
1312
- })
1313
- );
1314
- const clusterCenter = cluster.latitude !== void 0 && cluster.longitude !== void 0 ? { latitude: cluster.latitude, longitude: cluster.longitude } : buildClusterCenter(normalizedClusterMarkers);
1315
- if (!clusterCenter) {
1316
- return;
1317
- }
1318
- results.push({
1319
- ...cluster,
1320
- id: clusterId,
1321
- latitude: clusterCenter.latitude,
1322
- longitude: clusterCenter.longitude,
1323
- markers: normalizedClusterMarkers
1324
- });
1325
- });
1326
- return results;
1327
- }, [clusters]);
1328
- const markerLookup = React8.useMemo(() => {
1329
- const lookup = /* @__PURE__ */ new Map();
1330
- normalizedStandaloneMarkers.forEach((marker) => {
1331
- lookup.set(marker.id, marker);
1332
- });
1333
- normalizedClusters.forEach((cluster) => {
1334
- cluster.markers.forEach((marker) => {
1335
- lookup.set(marker.id, marker);
1336
- });
1337
- });
1338
- return lookup;
1339
- }, [normalizedClusters, normalizedStandaloneMarkers]);
1340
- const clusterLookup = React8.useMemo(() => {
1341
- const lookup = /* @__PURE__ */ new Map();
1342
- normalizedClusters.forEach((cluster) => {
1343
- lookup.set(cluster.id, cluster);
1344
- });
1345
- return lookup;
1346
- }, [normalizedClusters]);
1347
- const firstCoordinate = React8.useMemo(() => {
1348
- if (normalizedStandaloneMarkers.length > 0) {
1349
- const firstStandaloneMarker = normalizedStandaloneMarkers[0];
1350
- return {
1351
- latitude: firstStandaloneMarker.latitude,
1352
- longitude: firstStandaloneMarker.longitude
1353
- };
1354
- }
1355
- if (normalizedClusters.length > 0) {
1356
- const firstCluster = normalizedClusters[0];
1357
- return {
1358
- latitude: firstCluster.latitude,
1359
- longitude: firstCluster.longitude
1360
- };
1361
- }
1362
- return {
1363
- latitude: DEFAULT_VIEW_STATE.latitude,
1364
- longitude: DEFAULT_VIEW_STATE.longitude
1365
- };
1366
- }, [normalizedClusters, normalizedStandaloneMarkers]);
1367
- const [uncontrolledViewState, setUncontrolledViewState] = React8.useState({
1368
- latitude: defaultViewState?.latitude ?? firstCoordinate.latitude,
1369
- longitude: defaultViewState?.longitude ?? firstCoordinate.longitude,
1370
- zoom: defaultViewState?.zoom ?? DEFAULT_VIEW_STATE.zoom
1371
- });
1372
- const isControlledViewState = viewState !== void 0;
1373
- const resolvedViewState = isControlledViewState ? viewState : uncontrolledViewState;
1374
- const applyViewState = React8.useCallback(
1375
- (nextState) => {
1376
- if (!isControlledViewState) {
1377
- setUncontrolledViewState((current) => {
1378
- const next = { ...current, ...nextState };
1379
- const hasChanged = current.latitude !== next.latitude || current.longitude !== next.longitude || current.zoom !== next.zoom;
1380
- return hasChanged ? next : current;
1381
- });
1382
- }
1383
- onViewStateChange?.(nextState);
1384
- },
1385
- [isControlledViewState, onViewStateChange]
1386
- );
1387
- const [selection, setSelection] = React8.useState(() => {
1388
- if (initialSelectedMarkerId !== void 0 && initialSelectedMarkerId !== null) {
1389
- return {
1390
- type: "marker",
1391
- markerId: String(initialSelectedMarkerId)
1392
- };
1393
- }
1394
- return { type: "none" };
1395
- });
1396
- React8.useEffect(() => {
1397
- if (selectedMarkerId === void 0 || selectedMarkerId === null) {
1398
- return;
1399
- }
1400
- setSelection({
1401
- type: "marker",
1402
- markerId: String(selectedMarkerId)
1403
- });
1404
- }, [selectedMarkerId]);
1405
- const selectedMarker = selection.markerId ? markerLookup.get(selection.markerId) : void 0;
1406
- const selectedCluster = selection.clusterId ? clusterLookup.get(selection.clusterId) : void 0;
1407
- React8.useEffect(() => {
1408
- if (selection.type === "marker" && selection.markerId && !selectedMarker) {
1409
- setSelection({ type: "none" });
1410
- onSelectionChange?.({ type: "none" });
1411
- }
1412
- }, [onSelectionChange, selectedMarker, selection]);
1413
- const emitSelectionChange = React8.useCallback(
1414
- (nextSelection) => {
1415
- if (nextSelection.type === "none") {
1416
- onSelectionChange?.({ type: "none" });
1417
- return;
1418
- }
1419
- if (nextSelection.type === "marker") {
1420
- const parentCluster = nextSelection.marker.clusterId ? clusterLookup.get(nextSelection.marker.clusterId) : void 0;
1421
- onSelectionChange?.({
1422
- type: "marker",
1423
- marker: nextSelection.marker,
1424
- cluster: parentCluster
1425
- });
1426
- return;
1427
- }
1428
- onSelectionChange?.({
1429
- type: "cluster",
1430
- cluster: nextSelection.cluster
1431
- });
1432
- },
1433
- [clusterLookup, onSelectionChange]
1434
- );
1435
- const selectMarker = React8.useCallback(
1436
- (marker) => {
1437
- setSelection({
1438
- type: "marker",
1439
- markerId: marker.id,
1440
- clusterId: marker.clusterId
1441
- });
1442
- applyViewState({
1443
- latitude: marker.latitude,
1444
- longitude: marker.longitude,
1445
- zoom: markerFocusZoom
1446
- });
1447
- emitSelectionChange({ type: "marker", marker });
1448
- },
1449
- [applyViewState, emitSelectionChange, markerFocusZoom]
1450
- );
1451
- const selectCluster = React8.useCallback(
1452
- (cluster) => {
1453
- setSelection({
1454
- type: "cluster",
1455
- clusterId: cluster.id
1456
- });
1457
- applyViewState({
1458
- latitude: cluster.latitude,
1459
- longitude: cluster.longitude,
1460
- zoom: clusterFocusZoom
1461
- });
1462
- emitSelectionChange({ type: "cluster", cluster });
1463
- },
1464
- [applyViewState, clusterFocusZoom, emitSelectionChange]
1465
- );
1466
- const clearSelection = React8.useCallback(() => {
1467
- setSelection({ type: "none" });
1468
- emitSelectionChange({ type: "none" });
1469
- }, [emitSelectionChange]);
1470
- const mapMarkers = React8.useMemo(() => {
1471
- const resolvedMarkers = [];
1472
- normalizedClusters.forEach((cluster) => {
1473
- const isSelected = selection.type === "cluster" && selection.clusterId === cluster.id;
1474
- resolvedMarkers.push({
1475
- id: `cluster-pin:${cluster.id}`,
1476
- latitude: cluster.latitude,
1477
- longitude: cluster.longitude,
1478
- element: () => {
1479
- const customMarkerElement = cluster.markerElement;
1480
- const markerBody = typeof customMarkerElement === "function" ? customMarkerElement({
1481
- isSelected,
1482
- count: cluster.markers.length
1483
- }) : customMarkerElement;
1484
- return /* @__PURE__ */ jsx(
1485
- "button",
1486
- {
1487
- type: "button",
1488
- className: "group cursor-pointer",
1489
- onClick: (event) => {
1490
- event.preventDefault();
1491
- event.stopPropagation();
1492
- selectCluster(cluster);
1493
- },
1494
- "aria-label": `View ${cluster.markers.length} clustered locations`,
1495
- children: markerBody ?? /* @__PURE__ */ jsx(
1496
- "span",
1497
- {
1498
- className: cn(
1499
- "inline-flex min-h-10 min-w-10 items-center justify-center rounded-full border-2 border-white px-2 text-xs font-semibold text-white shadow-lg transition-transform duration-200 group-hover:scale-105",
1500
- isSelected && "ring-4 ring-primary/30",
1501
- cluster.pinClassName
1502
- ),
1503
- style: {
1504
- backgroundColor: cluster.pinColor ?? "var(--foreground)"
1505
- },
1506
- children: cluster.markers.length
1507
- }
1508
- )
1509
- }
1510
- );
1511
- }
1512
- });
1513
- });
1514
- normalizedStandaloneMarkers.forEach((marker) => {
1515
- const isSelected = selection.type === "marker" && selection.markerId === marker.id;
1516
- const customMarkerElement = marker.markerElement;
1517
- resolvedMarkers.push({
1518
- id: marker.id,
1519
- latitude: marker.latitude,
1520
- longitude: marker.longitude,
1521
- draggable: marker.draggable,
1522
- element: () => {
1523
- const markerBody = typeof customMarkerElement === "function" ? customMarkerElement({ isSelected }) : customMarkerElement;
1524
- return /* @__PURE__ */ jsx(
1525
- "button",
1526
- {
1527
- type: "button",
1528
- className: "group cursor-pointer",
1529
- onClick: (event) => {
1530
- event.preventDefault();
1531
- event.stopPropagation();
1532
- selectMarker(marker);
1533
- },
1534
- "aria-label": typeof marker.title === "string" ? `View ${marker.title}` : "View location details",
1535
- children: markerBody ?? /* @__PURE__ */ jsx(
1536
- "span",
1537
- {
1538
- className: cn(
1539
- "inline-flex h-4 w-4 rounded-full border-2 border-white shadow-md transition-transform duration-200 group-hover:scale-110",
1540
- isSelected && "h-5 w-5 ring-4 ring-primary/30",
1541
- marker.pinClassName
1542
- ),
1543
- style: {
1544
- backgroundColor: marker.pinColor ?? "#f43f5e"
1545
- }
1546
- }
1547
- )
1548
- }
1549
- );
1550
- }
1551
- });
1552
- });
1553
- return resolvedMarkers;
1554
- }, [
1555
- normalizedClusters,
1556
- normalizedStandaloneMarkers,
1557
- selectCluster,
1558
- selectMarker,
1559
- selection
1560
- ]);
1561
- const renderMarkerPanel = () => {
1562
- if (selectedMarker) {
1563
- const markerMediaItems = selectedMarker.mediaItems ?? [];
1564
- return /* @__PURE__ */ jsxs(
1565
- "div",
1566
- {
1567
- className: cn(
1568
- "relative w-[min(24rem,calc(100vw-2rem))] overflow-hidden rounded-xl border border-border bg-card text-card-foreground shadow-2xl",
1569
- panelClassName
1570
- ),
1571
- children: [
1572
- /* @__PURE__ */ jsx(
1573
- "button",
1574
- {
1575
- type: "button",
1576
- "aria-label": "Close marker details",
1577
- className: "\n flex size-12 items-center justify-center rounded-bl-lg rounded-br-0 rounded-t-0 bg-black text-white transition-all duration-500 absolute top-0 right-0 z-10 cursor-pointer ring-4 ring-white\n",
1578
- onClick: clearSelection,
1579
- children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/x", size: 20 })
1580
- }
1581
- ),
1582
- markerMediaItems.length > 0 ? /* @__PURE__ */ jsx(
1583
- MarkerMediaCarousel,
1584
- {
1585
- mediaItems: markerMediaItems,
1586
- optixFlowConfig
1587
- }
1588
- ) : null,
1589
- /* @__PURE__ */ jsxs("div", { className: "space-y-2 p-4", children: [
1590
- /* @__PURE__ */ jsx("div", { className: "flex items-start justify-between gap-3", children: /* @__PURE__ */ jsxs("div", { className: "min-w-0 space-y-1", children: [
1591
- selectedMarker.eyebrow ? /* @__PURE__ */ jsx("p", { className: "text-xs font-semibold uppercase tracking-wide", children: selectedMarker.eyebrow }) : null,
1592
- /* @__PURE__ */ jsx("div", { className: "text-base font-semibold leading-tight", children: selectedMarker.title ?? selectedMarker.label ?? "Location" })
1593
- ] }) }),
1594
- selectedMarker.summary ? /* @__PURE__ */ jsx("div", { className: "text-sm leading-relaxed", children: selectedMarker.summary }) : null,
1595
- selectedMarker.locationLine ? /* @__PURE__ */ jsxs("div", { className: "flex flex-row items-center justify-start text-sm gap-2", children: [
1596
- /* @__PURE__ */ jsx(
1597
- DynamicIcon,
1598
- {
1599
- name: "lucide:map-pin",
1600
- className: "opacity-50",
1601
- size: 18
1602
- }
1603
- ),
1604
- typeof selectedMarker.locationLine === "string" ? /* @__PURE__ */ jsx(
1605
- Pressable,
1606
- {
1607
- href: selectedMarker.locationUrl,
1608
- className: cn(
1609
- "transition-all duration-500",
1610
- "font-medium opacity-75 hover:opacity-100",
1611
- selectedMarker.locationUrl ? "underline underline-offset-4" : ""
1612
- ),
1613
- children: selectedMarker.locationLine
1614
- }
1615
- ) : selectedMarker.locationLine
1616
- ] }) : null,
1617
- selectedMarker.hoursLine ? /* @__PURE__ */ jsxs("div", { className: "flex flex-row items-center justify-start text-sm gap-2", children: [
1618
- /* @__PURE__ */ jsx(
1619
- DynamicIcon,
1620
- {
1621
- name: "lucide:clock",
1622
- className: "opacity-50",
1623
- size: 18
1624
- }
1625
- ),
1626
- typeof selectedMarker.hoursLine === "string" ? /* @__PURE__ */ jsx("div", { className: "font-medium", children: selectedMarker.hoursLine }) : selectedMarker.hoursLine
1627
- ] }) : null,
1628
- selectedMarker.markerContentComponent ? /* @__PURE__ */ jsx("div", { className: "relative", children: selectedMarker.markerContentComponent }) : null,
1629
- /* @__PURE__ */ jsx(MarkerActions, { actions: selectedMarker.actions })
1630
- ] })
1631
- ]
1632
- }
1633
- );
1634
- }
1635
- if (selectedCluster) {
1636
- return /* @__PURE__ */ jsxs(
1637
- "div",
1638
- {
1639
- className: cn(
1640
- "relative w-[min(24rem,calc(100vw-2rem))] overflow-hidden rounded-xl border border-border bg-card text-card-foreground p-4 shadow-2xl",
1641
- panelClassName
1642
- ),
1643
- children: [
1644
- /* @__PURE__ */ jsx(
1645
- "button",
1646
- {
1647
- type: "button",
1648
- "aria-label": "Close cluster details",
1649
- 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",
1650
- onClick: clearSelection,
1651
- children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/x", size: 20 })
1652
- }
1653
- ),
1654
- /* @__PURE__ */ jsx("div", { className: "mb-3 flex items-start justify-between gap-3", children: /* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
1655
- selectedCluster.label ? /* @__PURE__ */ jsx("p", { className: "text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: selectedCluster.label }) : null,
1656
- /* @__PURE__ */ jsx("div", { className: "text-base font-semibold leading-tight text-foreground", children: selectedCluster.title ?? "Clustered Locations" }),
1657
- /* @__PURE__ */ jsx("p", { className: "mt-1 text-sm text-muted-foreground", children: selectedCluster.summary ?? `${selectedCluster.markers.length} location${selectedCluster.markers.length === 1 ? "" : "s"} in this cluster.` })
1658
- ] }) }),
1659
- /* @__PURE__ */ jsx("div", { className: "max-h-56 space-y-2 overflow-y-auto pr-1", children: selectedCluster.markers.map((marker, markerIndex) => /* @__PURE__ */ jsxs(
1660
- "button",
1661
- {
1662
- type: "button",
1663
- className: "w-full rounded-lg border border-border/60 p-3 text-left transition hover:border-border hover:bg-muted/50",
1664
- onClick: () => selectMarker(marker),
1665
- children: [
1666
- /* @__PURE__ */ jsx("div", { className: "line-clamp-1 text-sm font-semibold text-foreground", children: getMarkerTitle(marker, markerIndex) }),
1667
- marker.summary ? /* @__PURE__ */ jsx("div", { className: "mt-1 line-clamp-2 text-xs text-muted-foreground", children: marker.summary }) : null
1668
- ]
1669
- },
1670
- marker.id
1671
- )) })
1672
- ]
1673
- }
1674
- );
1675
- }
1676
- return null;
1677
- };
1678
- return /* @__PURE__ */ jsxs(
1679
- "div",
1680
- {
1681
- className: cn(
1682
- "relative overflow-hidden rounded-2xl border border-border bg-background",
1683
- className
1684
- ),
1685
- children: [
1686
- /* @__PURE__ */ jsx("div", { className: cn("h-[520px] w-full", mapWrapperClassName), children: /* @__PURE__ */ jsx(
1687
- MapLibre,
1688
- {
1689
- stadiaApiKey,
1690
- mapStyle,
1691
- styleUrl,
1692
- mapLibreCssHref,
1693
- viewState: resolvedViewState,
1694
- onViewStateChange: applyViewState,
1695
- markers: mapMarkers,
1696
- onClick: (coord) => {
1697
- onMapClick?.(coord);
1698
- if (clearSelectionOnMapClick) {
1699
- clearSelection();
1700
- }
1701
- },
1702
- onMarkerDrag,
1703
- showNavigationControl,
1704
- showGeolocateControl,
1705
- navigationControlPosition,
1706
- geolocateControlPosition,
1707
- flyToOptions,
1708
- className: cn("h-full w-full", mapClassName),
1709
- children: mapChildren
1710
- }
1711
- ) }),
1712
- selection.type !== "none" ? /* @__PURE__ */ jsx(
1713
- "div",
1714
- {
1715
- className: cn(
1716
- "pointer-events-none absolute z-20",
1717
- PANEL_POSITION_CLASS[panelPosition]
1718
- ),
1719
- children: /* @__PURE__ */ jsx("div", { className: "pointer-events-auto", children: renderMarkerPanel() })
1720
- }
1721
- ) : null
1722
- ]
1723
- }
1724
- );
1725
- }
1726
647
  var slideVariants = {
1727
648
  initial: {
1728
649
  scale: 0.98,
@@ -1796,10 +717,10 @@ var ImageSlider = ({
1796
717
  optixFlowConfig
1797
718
  }) => {
1798
719
  const hasImages = images.length > 0;
1799
- const [currentIndex, setCurrentIndex] = React8.useState(
720
+ const [currentIndex, setCurrentIndex] = React32.useState(
1800
721
  () => normalizeIndex(startIndex, images.length)
1801
722
  );
1802
- const handleNext = React8.useCallback(() => {
723
+ const handleNext = React32.useCallback(() => {
1803
724
  if (!hasImages) return;
1804
725
  setCurrentIndex((prevIndex) => {
1805
726
  const nextIndex = prevIndex + 1 >= images.length ? 0 : prevIndex + 1;
@@ -1807,7 +728,7 @@ var ImageSlider = ({
1807
728
  return nextIndex;
1808
729
  });
1809
730
  }, [hasImages, images.length, onSlideChange]);
1810
- const handlePrevious = React8.useCallback(() => {
731
+ const handlePrevious = React32.useCallback(() => {
1811
732
  if (!hasImages) return;
1812
733
  setCurrentIndex((prevIndex) => {
1813
734
  const nextIndex = prevIndex - 1 < 0 ? images.length - 1 : prevIndex - 1;
@@ -1815,11 +736,11 @@ var ImageSlider = ({
1815
736
  return nextIndex;
1816
737
  });
1817
738
  }, [hasImages, images.length, onSlideChange]);
1818
- React8.useEffect(() => {
739
+ React32.useEffect(() => {
1819
740
  if (!hasImages) return;
1820
741
  setCurrentIndex(normalizeIndex(startIndex, images.length));
1821
742
  }, [startIndex, images.length, hasImages]);
1822
- React8.useEffect(() => {
743
+ React32.useEffect(() => {
1823
744
  if (!enableKeyboard || !hasImages) return;
1824
745
  const handleKeyDown = (event) => {
1825
746
  if (event.key === "ArrowRight") {
@@ -1833,7 +754,7 @@ var ImageSlider = ({
1833
754
  window.removeEventListener("keydown", handleKeyDown);
1834
755
  };
1835
756
  }, [enableKeyboard, handleNext, handlePrevious, hasImages]);
1836
- React8.useEffect(() => {
757
+ React32.useEffect(() => {
1837
758
  if (!autoplay || images.length < 2) return;
1838
759
  const interval = window.setInterval(handleNext, autoplayIntervalMs);
1839
760
  return () => window.clearInterval(interval);
@@ -1906,6 +827,148 @@ var ImageSlider = ({
1906
827
  }
1907
828
  );
1908
829
  };
830
+ var baseStyles = [
831
+ // Layout
832
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap shrink-0",
833
+ // Typography - using CSS variables with sensible defaults
834
+ "font-[var(--button-font-family,inherit)]",
835
+ "font-[var(--button-font-weight,500)]",
836
+ "tracking-[var(--button-letter-spacing,0)]",
837
+ "leading-[var(--button-line-height,1.25)]",
838
+ "[text-transform:var(--button-text-transform,none)]",
839
+ "text-sm",
840
+ // Border radius
841
+ "rounded-[var(--button-radius,var(--radius,0.375rem))]",
842
+ // Smooth transition - using [transition:...] to set full shorthand property (not just transition-property)
843
+ "[transition:var(--button-transition,all_250ms_cubic-bezier(0.4,0,0.2,1))]",
844
+ // Box shadow (master level) - using [box-shadow:...] for complex multi-value shadows
845
+ "[box-shadow:var(--button-shadow,none)]",
846
+ "hover:[box-shadow:var(--button-shadow-hover,var(--button-shadow,none))]",
847
+ // Disabled state
848
+ "disabled:pointer-events-none disabled:opacity-50",
849
+ // SVG handling
850
+ "[&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0",
851
+ // Focus styles
852
+ "outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
853
+ // Invalid state
854
+ "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive"
855
+ ].join(" ");
856
+ var buttonVariants = cva(baseStyles, {
857
+ variants: {
858
+ variant: {
859
+ // Default (Primary) variant - full customization
860
+ default: [
861
+ "bg-[var(--button-default-bg,hsl(var(--primary)))]",
862
+ "text-[var(--button-default-fg,hsl(var(--primary-foreground)))]",
863
+ "border-[length:var(--button-default-border-width,0px)]",
864
+ "border-[color:var(--button-default-border,transparent)]",
865
+ "[box-shadow:var(--button-default-shadow,var(--button-shadow,none))]",
866
+ "hover:bg-[var(--button-default-hover-bg,hsl(var(--primary)/0.9))]",
867
+ "hover:text-[var(--button-default-hover-fg,var(--button-default-fg,hsl(var(--primary-foreground))))]",
868
+ "hover:border-[color:var(--button-default-hover-border,var(--button-default-border,transparent))]",
869
+ "hover:[box-shadow:var(--button-default-shadow-hover,var(--button-shadow-hover,var(--button-default-shadow,var(--button-shadow,none))))]"
870
+ ].join(" "),
871
+ // Destructive variant - full customization
872
+ destructive: [
873
+ "bg-[var(--button-destructive-bg,hsl(var(--destructive)))]",
874
+ "text-[var(--button-destructive-fg,white)]",
875
+ "border-[length:var(--button-destructive-border-width,0px)]",
876
+ "border-[color:var(--button-destructive-border,transparent)]",
877
+ "[box-shadow:var(--button-destructive-shadow,var(--button-shadow,none))]",
878
+ "hover:bg-[var(--button-destructive-hover-bg,hsl(var(--destructive)/0.9))]",
879
+ "hover:text-[var(--button-destructive-hover-fg,var(--button-destructive-fg,white))]",
880
+ "hover:border-[color:var(--button-destructive-hover-border,var(--button-destructive-border,transparent))]",
881
+ "hover:[box-shadow:var(--button-destructive-shadow-hover,var(--button-shadow-hover,var(--button-destructive-shadow,var(--button-shadow,none))))]",
882
+ "focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40",
883
+ "dark:bg-destructive/60"
884
+ ].join(" "),
885
+ // Outline variant - full customization with proper border handling
886
+ outline: [
887
+ "bg-[var(--button-outline-bg,hsl(var(--background)))]",
888
+ "text-[var(--button-outline-fg,inherit)]",
889
+ "border-[length:var(--button-outline-border-width,1px)]",
890
+ "border-[color:var(--button-outline-border,hsl(var(--border)))]",
891
+ "[box-shadow:var(--button-outline-shadow,var(--button-shadow,0_1px_2px_0_rgb(0_0_0/0.05)))]",
892
+ "hover:bg-[var(--button-outline-hover-bg,hsl(var(--accent)))]",
893
+ "hover:text-[var(--button-outline-hover-fg,hsl(var(--accent-foreground)))]",
894
+ "hover:border-[color:var(--button-outline-hover-border,var(--button-outline-border,hsl(var(--border))))]",
895
+ "hover:[box-shadow:var(--button-outline-shadow-hover,var(--button-shadow-hover,var(--button-outline-shadow,var(--button-shadow,none))))]",
896
+ "dark:bg-input/30 dark:border-input dark:hover:bg-input/50"
897
+ ].join(" "),
898
+ // Secondary variant - full customization
899
+ secondary: [
900
+ "bg-[var(--button-secondary-bg,hsl(var(--secondary)))]",
901
+ "text-[var(--button-secondary-fg,hsl(var(--secondary-foreground)))]",
902
+ "border-[length:var(--button-secondary-border-width,0px)]",
903
+ "border-[color:var(--button-secondary-border,transparent)]",
904
+ "[box-shadow:var(--button-secondary-shadow,var(--button-shadow,none))]",
905
+ "hover:bg-[var(--button-secondary-hover-bg,hsl(var(--secondary)/0.8))]",
906
+ "hover:text-[var(--button-secondary-hover-fg,var(--button-secondary-fg,hsl(var(--secondary-foreground))))]",
907
+ "hover:border-[color:var(--button-secondary-hover-border,var(--button-secondary-border,transparent))]",
908
+ "hover:[box-shadow:var(--button-secondary-shadow-hover,var(--button-shadow-hover,var(--button-secondary-shadow,var(--button-shadow,none))))]"
909
+ ].join(" "),
910
+ // Ghost variant - full customization
911
+ ghost: [
912
+ "bg-[var(--button-ghost-bg,transparent)]",
913
+ "text-[var(--button-ghost-fg,inherit)]",
914
+ "border-[length:var(--button-ghost-border-width,0px)]",
915
+ "border-[color:var(--button-ghost-border,transparent)]",
916
+ "[box-shadow:var(--button-ghost-shadow,var(--button-shadow,none))]",
917
+ "hover:bg-[var(--button-ghost-hover-bg,hsl(var(--accent)))]",
918
+ "hover:text-[var(--button-ghost-hover-fg,hsl(var(--accent-foreground)))]",
919
+ "hover:border-[color:var(--button-ghost-hover-border,var(--button-ghost-border,transparent))]",
920
+ "hover:[box-shadow:var(--button-ghost-shadow-hover,var(--button-shadow-hover,var(--button-ghost-shadow,var(--button-shadow,none))))]",
921
+ "dark:hover:bg-accent/50"
922
+ ].join(" "),
923
+ // Link variant - full customization
924
+ link: [
925
+ "bg-[var(--button-link-bg,transparent)]",
926
+ "text-[var(--button-link-fg,hsl(var(--primary)))]",
927
+ "border-[length:var(--button-link-border-width,0px)]",
928
+ "border-[color:var(--button-link-border,transparent)]",
929
+ "[box-shadow:var(--button-link-shadow,none)]",
930
+ "hover:bg-[var(--button-link-hover-bg,transparent)]",
931
+ "hover:text-[var(--button-link-hover-fg,var(--button-link-fg,hsl(var(--primary))))]",
932
+ "hover:[box-shadow:var(--button-link-shadow-hover,none)]",
933
+ "underline-offset-4 hover:underline"
934
+ ].join(" ")
935
+ },
936
+ size: {
937
+ default: [
938
+ "h-[var(--button-height-md,2.25rem)]",
939
+ "px-[var(--button-padding-x-md,1rem)]",
940
+ "py-[var(--button-padding-y-md,0.5rem)]",
941
+ "has-[>svg]:px-[calc(var(--button-padding-x-md,1rem)*0.75)]"
942
+ ].join(" "),
943
+ sm: [
944
+ "h-[var(--button-height-sm,2rem)]",
945
+ "px-[var(--button-padding-x-sm,0.75rem)]",
946
+ "py-[var(--button-padding-y-sm,0.25rem)]",
947
+ "gap-1.5",
948
+ "has-[>svg]:px-[calc(var(--button-padding-x-sm,0.75rem)*0.83)]"
949
+ ].join(" "),
950
+ md: [
951
+ "h-[var(--button-height-md,2.25rem)]",
952
+ "px-[var(--button-padding-x-md,1rem)]",
953
+ "py-[var(--button-padding-y-md,0.5rem)]",
954
+ "has-[>svg]:px-[calc(var(--button-padding-x-md,1rem)*0.75)]"
955
+ ].join(" "),
956
+ lg: [
957
+ "h-[var(--button-height-lg,2.5rem)]",
958
+ "px-[var(--button-padding-x-lg,1.5rem)]",
959
+ "py-[var(--button-padding-y-lg,0.5rem)]",
960
+ "has-[>svg]:px-[calc(var(--button-padding-x-lg,1.5rem)*0.67)]"
961
+ ].join(" "),
962
+ icon: "size-[var(--button-height-md,2.25rem)]",
963
+ "icon-sm": "size-[var(--button-height-sm,2rem)]",
964
+ "icon-lg": "size-[var(--button-height-lg,2.5rem)]"
965
+ }
966
+ },
967
+ defaultVariants: {
968
+ variant: "default",
969
+ size: "default"
970
+ }
971
+ });
1909
972
  function Card({ className, ...props }) {
1910
973
  return /* @__PURE__ */ jsx(
1911
974
  "div",
@@ -2034,6 +1097,14 @@ function PopoverContent({
2034
1097
  }
2035
1098
  ) });
2036
1099
  }
1100
+ var DEFAULT_ICON_API_KEY = "au382bi7fsh96w9h9xlrnat2jglx";
1101
+ var DynamicIcon = React32.memo(function DynamicIcon2({
1102
+ apiKey,
1103
+ ...props
1104
+ }) {
1105
+ return /* @__PURE__ */ jsx(Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
1106
+ });
1107
+ DynamicIcon.displayName = "DynamicIcon";
2037
1108
  function StarRating({
2038
1109
  rating,
2039
1110
  size = 18,
@@ -2051,6 +1122,282 @@ function StarRating({
2051
1122
  star
2052
1123
  )) });
2053
1124
  }
1125
+ function normalizePhoneNumber(input) {
1126
+ const trimmed = input.trim();
1127
+ if (trimmed.toLowerCase().startsWith("tel:")) {
1128
+ return trimmed;
1129
+ }
1130
+ const match = trimmed.match(/^[\s\+\-\(\)]*(\d[\d\s\-\(\)\.]*\d)[\s\-]*(x|ext\.?|extension)?[\s\-]*(\d+)?$/i);
1131
+ if (match) {
1132
+ const mainNumber = match[1].replace(/[\s\-\(\)\.]/g, "");
1133
+ const extension = match[3];
1134
+ const normalized = mainNumber.length >= 10 && !trimmed.startsWith("+") ? `+${mainNumber}` : mainNumber;
1135
+ const withExtension = extension ? `${normalized};ext=${extension}` : normalized;
1136
+ return `tel:${withExtension}`;
1137
+ }
1138
+ const cleaned = trimmed.replace(/[\s\-\(\)\.]/g, "");
1139
+ return `tel:${cleaned}`;
1140
+ }
1141
+ function normalizeEmail(input) {
1142
+ const trimmed = input.trim();
1143
+ if (trimmed.toLowerCase().startsWith("mailto:")) {
1144
+ return trimmed;
1145
+ }
1146
+ return `mailto:${trimmed}`;
1147
+ }
1148
+ function isEmail(input) {
1149
+ const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
1150
+ return emailRegex.test(input.trim());
1151
+ }
1152
+ function isPhoneNumber(input) {
1153
+ const trimmed = input.trim();
1154
+ if (trimmed.toLowerCase().startsWith("tel:")) {
1155
+ return true;
1156
+ }
1157
+ const phoneRegex = /^[\s\+\-\(\)]*\d[\d\s\-\(\)\.]*\d[\s\-]*(x|ext\.?|extension)?[\s\-]*\d*$/i;
1158
+ return phoneRegex.test(trimmed);
1159
+ }
1160
+ function isInternalUrl(href) {
1161
+ if (typeof window === "undefined") {
1162
+ return href.startsWith("/") && !href.startsWith("//");
1163
+ }
1164
+ const trimmed = href.trim();
1165
+ if (trimmed.startsWith("/") && !trimmed.startsWith("//")) {
1166
+ return true;
1167
+ }
1168
+ try {
1169
+ const url = new URL(trimmed, window.location.href);
1170
+ const currentOrigin = window.location.origin;
1171
+ const normalizeOrigin = (origin) => origin.replace(/^(https?:\/\/)(www\.)?/, "$1");
1172
+ return normalizeOrigin(url.origin) === normalizeOrigin(currentOrigin);
1173
+ } catch {
1174
+ return false;
1175
+ }
1176
+ }
1177
+ function toRelativePath(href) {
1178
+ if (typeof window === "undefined") {
1179
+ return href;
1180
+ }
1181
+ const trimmed = href.trim();
1182
+ if (trimmed.startsWith("/") && !trimmed.startsWith("//")) {
1183
+ return trimmed;
1184
+ }
1185
+ try {
1186
+ const url = new URL(trimmed, window.location.href);
1187
+ const currentOrigin = window.location.origin;
1188
+ const normalizeOrigin = (origin) => origin.replace(/^(https?:\/\/)(www\.)?/, "$1");
1189
+ if (normalizeOrigin(url.origin) === normalizeOrigin(currentOrigin)) {
1190
+ return url.pathname + url.search + url.hash;
1191
+ }
1192
+ } catch {
1193
+ }
1194
+ return trimmed;
1195
+ }
1196
+ function useNavigation({
1197
+ href,
1198
+ onClick
1199
+ } = {}) {
1200
+ const linkType = React32.useMemo(() => {
1201
+ if (!href || href.trim() === "") {
1202
+ return onClick ? "none" : "none";
1203
+ }
1204
+ const trimmed = href.trim();
1205
+ if (trimmed.toLowerCase().startsWith("mailto:") || isEmail(trimmed)) {
1206
+ return "mailto";
1207
+ }
1208
+ if (trimmed.toLowerCase().startsWith("tel:") || isPhoneNumber(trimmed)) {
1209
+ return "tel";
1210
+ }
1211
+ if (isInternalUrl(trimmed)) {
1212
+ return "internal";
1213
+ }
1214
+ try {
1215
+ new URL(trimmed, typeof window !== "undefined" ? window.location.href : "http://localhost");
1216
+ return "external";
1217
+ } catch {
1218
+ return "internal";
1219
+ }
1220
+ }, [href, onClick]);
1221
+ const normalizedHref = React32.useMemo(() => {
1222
+ if (!href || href.trim() === "") {
1223
+ return void 0;
1224
+ }
1225
+ const trimmed = href.trim();
1226
+ switch (linkType) {
1227
+ case "tel":
1228
+ return normalizePhoneNumber(trimmed);
1229
+ case "mailto":
1230
+ return normalizeEmail(trimmed);
1231
+ case "internal":
1232
+ return toRelativePath(trimmed);
1233
+ case "external":
1234
+ return trimmed;
1235
+ default:
1236
+ return trimmed;
1237
+ }
1238
+ }, [href, linkType]);
1239
+ const target = React32.useMemo(() => {
1240
+ switch (linkType) {
1241
+ case "external":
1242
+ return "_blank";
1243
+ case "internal":
1244
+ return "_self";
1245
+ case "mailto":
1246
+ case "tel":
1247
+ return void 0;
1248
+ default:
1249
+ return void 0;
1250
+ }
1251
+ }, [linkType]);
1252
+ const rel = React32.useMemo(() => {
1253
+ if (linkType === "external") {
1254
+ return "noopener noreferrer";
1255
+ }
1256
+ return void 0;
1257
+ }, [linkType]);
1258
+ const isExternal = linkType === "external";
1259
+ const isInternal = linkType === "internal";
1260
+ const shouldUseRouter = isInternal && typeof normalizedHref === "string" && normalizedHref.startsWith("/");
1261
+ const handleClick = React32.useCallback(
1262
+ (event) => {
1263
+ if (onClick) {
1264
+ try {
1265
+ onClick(event);
1266
+ } catch (error) {
1267
+ console.error("Error in user onClick handler:", error);
1268
+ }
1269
+ }
1270
+ if (event.defaultPrevented) {
1271
+ return;
1272
+ }
1273
+ if (shouldUseRouter && normalizedHref && event.button === 0 && // left-click only
1274
+ !event.metaKey && !event.altKey && !event.ctrlKey && !event.shiftKey) {
1275
+ if (typeof window !== "undefined") {
1276
+ const handler = window.__opensiteNavigationHandler;
1277
+ if (typeof handler === "function") {
1278
+ try {
1279
+ const handled = handler(normalizedHref, event.nativeEvent || event);
1280
+ if (handled !== false) {
1281
+ event.preventDefault();
1282
+ }
1283
+ } catch (error) {
1284
+ console.error("Error in navigation handler:", error);
1285
+ }
1286
+ }
1287
+ }
1288
+ }
1289
+ },
1290
+ [onClick, shouldUseRouter, normalizedHref]
1291
+ );
1292
+ return {
1293
+ linkType,
1294
+ normalizedHref,
1295
+ target,
1296
+ rel,
1297
+ isExternal,
1298
+ isInternal,
1299
+ shouldUseRouter,
1300
+ handleClick
1301
+ };
1302
+ }
1303
+ var Pressable = React32.forwardRef(
1304
+ ({
1305
+ children,
1306
+ className,
1307
+ href,
1308
+ onClick,
1309
+ variant,
1310
+ size,
1311
+ asButton = false,
1312
+ fallbackComponentType = "span",
1313
+ componentType,
1314
+ "aria-label": ariaLabel,
1315
+ "aria-describedby": ariaDescribedby,
1316
+ id,
1317
+ ...props
1318
+ }, ref) => {
1319
+ const navigation = useNavigation({ href, onClick });
1320
+ const {
1321
+ normalizedHref,
1322
+ target,
1323
+ rel,
1324
+ linkType,
1325
+ isInternal,
1326
+ handleClick
1327
+ } = navigation;
1328
+ const shouldRenderLink = normalizedHref && linkType !== "none";
1329
+ const shouldRenderButton = !shouldRenderLink && onClick;
1330
+ const effectiveComponentType = componentType || (shouldRenderLink ? "a" : shouldRenderButton ? "button" : fallbackComponentType);
1331
+ const finalComponentType = isInternal && shouldRenderLink ? "a" : effectiveComponentType;
1332
+ const shouldApplyButtonStyles = asButton || variant || size;
1333
+ const combinedClassName = cn(
1334
+ shouldApplyButtonStyles && buttonVariants({ variant, size }),
1335
+ className
1336
+ );
1337
+ const dataProps = Object.fromEntries(
1338
+ Object.entries(props).filter(([key]) => key.startsWith("data-"))
1339
+ );
1340
+ const buttonDataAttributes = shouldApplyButtonStyles ? {
1341
+ "data-slot": "button",
1342
+ "data-variant": variant ?? "default",
1343
+ "data-size": size ?? "default"
1344
+ } : {};
1345
+ const commonProps = {
1346
+ className: combinedClassName,
1347
+ onClick: handleClick,
1348
+ "aria-label": ariaLabel,
1349
+ "aria-describedby": ariaDescribedby,
1350
+ id,
1351
+ ...dataProps,
1352
+ ...buttonDataAttributes
1353
+ };
1354
+ if (finalComponentType === "a" && shouldRenderLink) {
1355
+ return /* @__PURE__ */ jsx(
1356
+ "a",
1357
+ {
1358
+ ref,
1359
+ href: normalizedHref,
1360
+ target,
1361
+ rel,
1362
+ ...commonProps,
1363
+ ...props,
1364
+ children
1365
+ }
1366
+ );
1367
+ }
1368
+ if (finalComponentType === "button") {
1369
+ return /* @__PURE__ */ jsx(
1370
+ "button",
1371
+ {
1372
+ ref,
1373
+ type: props.type || "button",
1374
+ ...commonProps,
1375
+ ...props,
1376
+ children
1377
+ }
1378
+ );
1379
+ }
1380
+ if (finalComponentType === "div") {
1381
+ return /* @__PURE__ */ jsx(
1382
+ "div",
1383
+ {
1384
+ ref,
1385
+ ...commonProps,
1386
+ children
1387
+ }
1388
+ );
1389
+ }
1390
+ return /* @__PURE__ */ jsx(
1391
+ "span",
1392
+ {
1393
+ ref,
1394
+ ...commonProps,
1395
+ children
1396
+ }
1397
+ );
1398
+ }
1399
+ );
1400
+ Pressable.displayName = "Pressable";
2054
1401
  var BUTTON_SIZES = {
2055
1402
  sm: { buttonSize: "size-8", iconSize: 16 },
2056
1403
  md: { buttonSize: "size-10", iconSize: 20 },
@@ -2142,7 +1489,7 @@ var platformIconMap = {
2142
1489
  dribbble: "cib/dribbble",
2143
1490
  unknown: "icon-park-solid/circular-connection"
2144
1491
  };
2145
- var SocialLinkIcon = React8.forwardRef(
1492
+ var SocialLinkIcon = React32.forwardRef(
2146
1493
  ({
2147
1494
  platformName,
2148
1495
  label,
@@ -2156,16 +1503,16 @@ var SocialLinkIcon = React8.forwardRef(
2156
1503
  ...pressableProps
2157
1504
  }, ref) => {
2158
1505
  const platform = usePlatformFromUrl(href);
2159
- const smartPlatformName = React8.useMemo(() => {
1506
+ const smartPlatformName = React32.useMemo(() => {
2160
1507
  return platform || platformName;
2161
1508
  }, [platform, platformName]);
2162
- const iconName = React8.useMemo(() => {
1509
+ const iconName = React32.useMemo(() => {
2163
1510
  return iconNameOverride || platformIconMap[smartPlatformName];
2164
1511
  }, [iconNameOverride, smartPlatformName]);
2165
- const accessibleLabel = React8.useMemo(() => {
1512
+ const accessibleLabel = React32.useMemo(() => {
2166
1513
  return label || platformName;
2167
1514
  }, [label, platformName]);
2168
- const icon = React8.useMemo(() => {
1515
+ const icon = React32.useMemo(() => {
2169
1516
  return /* @__PURE__ */ jsx(
2170
1517
  DynamicIcon,
2171
1518
  {
@@ -2652,7 +1999,7 @@ function AboutExpandableValues({
2652
1999
  pattern,
2653
2000
  patternOpacity
2654
2001
  }) {
2655
- const [expandedValue, setExpandedValue] = React8.useState(null);
2002
+ const [expandedValue, setExpandedValue] = React32.useState(null);
2656
2003
  const toggleExpand = useCallback((id) => {
2657
2004
  setExpandedValue((prev) => prev === id ? null : id);
2658
2005
  }, []);
@@ -2888,7 +2235,7 @@ function CommunityInitiatives({
2888
2235
  pattern,
2889
2236
  patternOpacity
2890
2237
  }) {
2891
- const [activeCategory, setActiveCategory] = React8.useState(
2238
+ const [activeCategory, setActiveCategory] = React32.useState(
2892
2239
  categories?.[0]?.id || ""
2893
2240
  );
2894
2241
  const currentCategory = categories?.find((category) => category.id === activeCategory) || categories?.[0];
@@ -3152,7 +2499,7 @@ function AboutCultureTabs({
3152
2499
  patternOpacity
3153
2500
  }) {
3154
2501
  const resolvedAspects = aspects ?? [];
3155
- const [activeTab, setActiveTab] = React8.useState(
2502
+ const [activeTab, setActiveTab] = React32.useState(
3156
2503
  resolvedAspects[0]?.id || ""
3157
2504
  );
3158
2505
  const headerItems = useMemo(() => {
@@ -3685,7 +3032,7 @@ function BannerDeliveryCountdown({
3685
3032
  }, [prefixText, timerContent, middleText, deliveryDateContent]);
3686
3033
  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: [
3687
3034
  iconContent,
3688
- messageParts.length > 0 && /* @__PURE__ */ jsx("span", { children: messageParts.map((part, index) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
3035
+ messageParts.length > 0 && /* @__PURE__ */ jsx("span", { children: messageParts.map((part, index) => /* @__PURE__ */ jsxs(React32.Fragment, { children: [
3689
3036
  index > 0 ? " " : null,
3690
3037
  part
3691
3038
  ] }, index)) })
@@ -4956,8 +4303,8 @@ var BrandAttribution = ({
4956
4303
  }
4957
4304
  const { prefix = "", anchorText, href, suffix = "" } = options[optionIndex];
4958
4305
  const ContainerEl = variant;
4959
- const [trackedHref, setTrackedHref] = React8.useState(href);
4960
- React8.useEffect(() => {
4306
+ const [trackedHref, setTrackedHref] = React32.useState(href);
4307
+ React32.useEffect(() => {
4961
4308
  setTrackedHref(buildTrackedHref(href));
4962
4309
  }, [href]);
4963
4310
  return /* @__PURE__ */ jsxs(ContainerEl, { className: containerClassName, children: [
@@ -5077,7 +4424,7 @@ function FooterSocialNewsletter({
5077
4424
  patternOpacity,
5078
4425
  optixFlowConfig
5079
4426
  }) {
5080
- const renderForm = React8.useMemo(() => {
4427
+ const renderForm = React32.useMemo(() => {
5081
4428
  if (!formEngineSetup) return null;
5082
4429
  const action = {
5083
4430
  variant: "default",
@@ -5366,7 +4713,7 @@ function FooterSimpleCentered({
5366
4713
  ]);
5367
4714
  const bottomLinksContent = useMemo(() => {
5368
4715
  if (!bottomLinks || bottomLinks.length === 0) return null;
5369
- return bottomLinks.map((link, idx) => /* @__PURE__ */ jsx(React8.Fragment, { children: /* @__PURE__ */ jsx(
4716
+ return bottomLinks.map((link, idx) => /* @__PURE__ */ jsx(React32.Fragment, { children: /* @__PURE__ */ jsx(
5370
4717
  Pressable,
5371
4718
  {
5372
4719
  href: link.href,
@@ -6713,7 +6060,7 @@ function FooterNewsletterMinimal({
6713
6060
  buttonAction,
6714
6061
  formSlot
6715
6062
  }) {
6716
- const navLinksContent = React8.useMemo(() => {
6063
+ const navLinksContent = React32.useMemo(() => {
6717
6064
  if (!navLinks || navLinks.length === 0) return null;
6718
6065
  return navLinks.map((item, idx) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
6719
6066
  Pressable,
@@ -6724,7 +6071,7 @@ function FooterNewsletterMinimal({
6724
6071
  }
6725
6072
  ) }, idx));
6726
6073
  }, [navLinks, navLinkClassName]);
6727
- const socialLinksContent = React8.useMemo(() => {
6074
+ const socialLinksContent = React32.useMemo(() => {
6728
6075
  if (!socialLinks || socialLinks.length === 0) return null;
6729
6076
  return socialLinks.map((item, idx) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
6730
6077
  SocialLinkIcon,
@@ -6740,7 +6087,7 @@ function FooterNewsletterMinimal({
6740
6087
  }
6741
6088
  ) }, idx));
6742
6089
  }, [socialLinks, socialLinkClassName]);
6743
- const footerLinksContent = React8.useMemo(() => {
6090
+ const footerLinksContent = React32.useMemo(() => {
6744
6091
  if (!footerLinks || footerLinks.length === 0) return null;
6745
6092
  return footerLinks.map((item) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
6746
6093
  Pressable,
@@ -6754,7 +6101,7 @@ function FooterNewsletterMinimal({
6754
6101
  }
6755
6102
  ) }, item.label));
6756
6103
  }, [footerLinks, footerLinkClassName]);
6757
- const renderForm = React8.useMemo(() => {
6104
+ const renderForm = React32.useMemo(() => {
6758
6105
  if (formSlot) return formSlot;
6759
6106
  if (!formEngineSetup) return null;
6760
6107
  const defaultButtonAction = {
@@ -9394,7 +8741,7 @@ function AboutInteractiveTabs({
9394
8741
  pattern,
9395
8742
  patternOpacity
9396
8743
  }) {
9397
- const [activeTab, setActiveTab] = React8.useState(tabs?.[0]?.id ?? "");
8744
+ const [activeTab, setActiveTab] = React32.useState(tabs?.[0]?.id ?? "");
9398
8745
  const activeContent = useMemo(() => {
9399
8746
  return tabs?.find((tab) => tab.id === activeTab)?.content;
9400
8747
  }, [tabs, activeTab]);
@@ -9543,7 +8890,7 @@ function AboutMissionDualImage({
9543
8890
  pattern,
9544
8891
  patternOpacity
9545
8892
  }) {
9546
- const renderTextContent = React8.useCallback(
8893
+ const renderTextContent = React32.useCallback(
9547
8894
  (primaryHeading, primaryClassName, secondaryContent, secondaryClassname) => {
9548
8895
  if (!primaryHeading || !secondaryContent) {
9549
8896
  return null;
@@ -12233,7 +11580,7 @@ function CtaAppDownloadNewsletter({
12233
11580
  buttonAction,
12234
11581
  formSlot
12235
11582
  }) {
12236
- const renderForm = React8.useMemo(() => {
11583
+ const renderForm = React32.useMemo(() => {
12237
11584
  if (formSlot) return formSlot;
12238
11585
  if (!formEngineSetup) return null;
12239
11586
  const defaultButtonAction = {
@@ -12266,7 +11613,7 @@ function CtaAppDownloadNewsletter({
12266
11613
  }
12267
11614
  );
12268
11615
  }, [formSlot, formEngineSetup, buttonAction, formClassName]);
12269
- const appActionsContent = React8.useMemo(() => {
11616
+ const appActionsContent = React32.useMemo(() => {
12270
11617
  if (appActionsSlot) return appActionsSlot;
12271
11618
  if (!appActions || appActions.length === 0) return null;
12272
11619
  return /* @__PURE__ */ jsx(
@@ -12407,7 +11754,7 @@ function CtaNewsletterFeatures({
12407
11754
  formEngineSetup,
12408
11755
  buttonAction
12409
11756
  }) {
12410
- const renderForm = React8.useMemo(() => {
11757
+ const renderForm = React32.useMemo(() => {
12411
11758
  if (formSlot) return formSlot;
12412
11759
  if (!formEngineSetup) return null;
12413
11760
  const defaultButtonAction = {
@@ -12440,7 +11787,7 @@ function CtaNewsletterFeatures({
12440
11787
  }
12441
11788
  );
12442
11789
  }, [formSlot, formEngineSetup, buttonAction, formClassName]);
12443
- const featuresContent = React8.useMemo(() => {
11790
+ const featuresContent = React32.useMemo(() => {
12444
11791
  if (featuresSlot) return featuresSlot;
12445
11792
  if (!features || features.length === 0) return null;
12446
11793
  return /* @__PURE__ */ jsx(
@@ -13212,7 +12559,7 @@ function CtaVideoBackgroundHero({
13212
12559
  pattern,
13213
12560
  patternOpacity
13214
12561
  }) {
13215
- const [isModalOpen, setIsModalOpen] = React8.useState(false);
12562
+ const [isModalOpen, setIsModalOpen] = React32.useState(false);
13216
12563
  const handleOpenModal = () => {
13217
12564
  setIsModalOpen(true);
13218
12565
  onModalOpen?.();
@@ -13400,7 +12747,7 @@ function CtaWorkflowTabs({
13400
12747
  patternOpacity,
13401
12748
  optixFlowConfig
13402
12749
  }) {
13403
- const [activeTab, setActiveTab] = React8.useState(tabs?.[0]?.id || "");
12750
+ const [activeTab, setActiveTab] = React32.useState(tabs?.[0]?.id || "");
13404
12751
  const activeTabData = tabs?.find((tab) => tab.id === activeTab) || tabs?.[0];
13405
12752
  const actionsContent = useMemo(() => {
13406
12753
  if (actionsSlot) return actionsSlot;
@@ -14008,7 +13355,7 @@ function ContactFloatingBanner({
14008
13355
  pattern,
14009
13356
  patternOpacity
14010
13357
  }) {
14011
- const actionsContent = React8.useMemo(() => {
13358
+ const actionsContent = React32.useMemo(() => {
14012
13359
  if (actionsSlot) return actionsSlot;
14013
13360
  if (actions && actions.length > 0) {
14014
13361
  return actions.map((action, index) => {
@@ -14352,7 +13699,7 @@ function ContactCard({
14352
13699
  pattern,
14353
13700
  patternOpacity
14354
13701
  }) {
14355
- const contactOptionsContent = React8.useMemo(() => {
13702
+ const contactOptionsContent = React32.useMemo(() => {
14356
13703
  if (contactOptionsSlot) return contactOptionsSlot;
14357
13704
  if (contactOptions && contactOptions.length > 0) {
14358
13705
  return contactOptions.map((option, key) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4", children: [
@@ -14376,7 +13723,7 @@ function ContactCard({
14376
13723
  }
14377
13724
  return null;
14378
13725
  }, [contactOptionsSlot, contactOptions]);
14379
- const socialLinksContent = React8.useMemo(() => {
13726
+ const socialLinksContent = React32.useMemo(() => {
14380
13727
  if (socialLinksSlot) return socialLinksSlot;
14381
13728
  if (socialLinks && socialLinks.length > 0) {
14382
13729
  return socialLinks.map((social, key) => /* @__PURE__ */ jsx(
@@ -15283,7 +14630,7 @@ function ContactDark({
15283
14630
  pattern,
15284
14631
  patternOpacity
15285
14632
  }) {
15286
- const contactOptionsContent = React8.useMemo(() => {
14633
+ const contactOptionsContent = React32.useMemo(() => {
15287
14634
  if (contactOptionsSlot) return contactOptionsSlot;
15288
14635
  if (contactOptions && contactOptions.length > 0) {
15289
14636
  return contactOptions.map((option, key) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
@@ -15307,7 +14654,7 @@ function ContactDark({
15307
14654
  }
15308
14655
  return null;
15309
14656
  }, [contactOptionsSlot, contactOptions]);
15310
- const socialLinksContent = React8.useMemo(() => {
14657
+ const socialLinksContent = React32.useMemo(() => {
15311
14658
  if (socialLinksSlot) return socialLinksSlot;
15312
14659
  if (socialLinks && socialLinks.length > 0) {
15313
14660
  return socialLinks.map((social, key) => /* @__PURE__ */ jsx(
@@ -16602,7 +15949,7 @@ function ContactImage({
16602
15949
  description,
16603
15950
  descriptionClassName
16604
15951
  ]);
16605
- const contactOverlaysContent = React8.useMemo(() => {
15952
+ const contactOverlaysContent = React32.useMemo(() => {
16606
15953
  if (contactOverlaysSlot) return contactOverlaysSlot;
16607
15954
  if (!contactOverlays || contactOverlays.length === 0) return null;
16608
15955
  return /* @__PURE__ */ jsx("div", { className: cn("flex flex-col gap-3", contactOverlaysClassName), children: contactOverlays.map((item, index) => {
@@ -17234,7 +16581,7 @@ function ContactMap({
17234
16581
  mapProps,
17235
16582
  optixFlowConfig
17236
16583
  }) {
17237
- const renderForm = React8.useMemo(() => {
16584
+ const renderForm = React32.useMemo(() => {
17238
16585
  if (!formEngineSetup) {
17239
16586
  return null;
17240
16587
  }
@@ -17247,13 +16594,16 @@ function ContactMap({
17247
16594
  }
17248
16595
  );
17249
16596
  }, [formEngineSetup]);
17250
- const resolvedMapProps = React8.useMemo(() => {
16597
+ const resolvedMapProps = React32.useMemo(() => {
17251
16598
  return {
17252
16599
  mapWrapperClassName: "h-[420px] md:h-[520px]",
17253
16600
  panelPosition: "top-left",
17254
16601
  ...mapProps,
17255
16602
  className: cn("h-full w-full", mapClassName, mapProps?.className),
17256
- optixFlowConfig
16603
+ optixFlowConfig,
16604
+ // Provide icon and image components for rich marker panels
16605
+ IconComponent: DynamicIcon,
16606
+ ImgComponent: Img
17257
16607
  };
17258
16608
  }, [mapClassName, mapProps, optixFlowConfig]);
17259
16609
  return /* @__PURE__ */ jsx(
@@ -17842,13 +17192,13 @@ function ContactPhotography({
17842
17192
  }
17843
17193
  return items;
17844
17194
  }, [heading, headingClassName, description, descriptionClassName]);
17845
- const desktopOrder = React8.useMemo(() => {
17195
+ const desktopOrder = React32.useMemo(() => {
17846
17196
  return directionConfig.desktop === "mediaRight" ? "lg:flex-row" : "lg:flex-row-reverse";
17847
17197
  }, [directionConfig?.desktop]);
17848
- const mobileOrder = React8.useMemo(() => {
17198
+ const mobileOrder = React32.useMemo(() => {
17849
17199
  return directionConfig?.mobile === "mediaTop" ? "flex-col" : "flex-col-reverse";
17850
17200
  }, [directionConfig?.mobile]);
17851
- const imageArea = React8.useMemo(() => {
17201
+ const imageArea = React32.useMemo(() => {
17852
17202
  if (!image?.src) {
17853
17203
  return null;
17854
17204
  }
@@ -19834,16 +19184,16 @@ function CarouselAnimatedSections({
19834
19184
  pattern = "diagonalCrossBasic",
19835
19185
  patternOpacity = 0.033
19836
19186
  }) {
19837
- const [currentIndex, setCurrentIndex] = React8.useState(0);
19838
- const [direction, setDirection] = React8.useState(0);
19839
- const [isAnimating, setIsAnimating] = React8.useState(false);
19840
- const goToNext = React8.useCallback(() => {
19187
+ const [currentIndex, setCurrentIndex] = React32.useState(0);
19188
+ const [direction, setDirection] = React32.useState(0);
19189
+ const [isAnimating, setIsAnimating] = React32.useState(false);
19190
+ const goToNext = React32.useCallback(() => {
19841
19191
  if (isAnimating || currentIndex >= (sections?.length ?? 0) - 1) return;
19842
19192
  setIsAnimating(true);
19843
19193
  setDirection(1);
19844
19194
  setCurrentIndex((prev) => prev + 1);
19845
19195
  }, [currentIndex, isAnimating, sections?.length]);
19846
- const goToPrev = React8.useCallback(() => {
19196
+ const goToPrev = React32.useCallback(() => {
19847
19197
  if (isAnimating || currentIndex <= 0) return;
19848
19198
  setIsAnimating(true);
19849
19199
  setDirection(-1);
@@ -19855,7 +19205,7 @@ function CarouselAnimatedSections({
19855
19205
  setDirection(index > currentIndex ? 1 : -1);
19856
19206
  setCurrentIndex(index);
19857
19207
  };
19858
- React8.useEffect(() => {
19208
+ React32.useEffect(() => {
19859
19209
  const handleKeyDown = (e) => {
19860
19210
  if (e.key === "ArrowDown" || e.key === "ArrowRight") {
19861
19211
  goToNext();
@@ -19881,7 +19231,7 @@ function CarouselAnimatedSections({
19881
19231
  })
19882
19232
  };
19883
19233
  const currentSection = sections?.[currentIndex];
19884
- const actionElements = React8.useMemo(() => {
19234
+ const actionElements = React32.useMemo(() => {
19885
19235
  if (actionsSlot) return actionsSlot;
19886
19236
  if (actions && actions.length > 0) {
19887
19237
  return actions.map((action, index) => /* @__PURE__ */ jsxs(
@@ -20131,11 +19481,11 @@ function CarouselAutoProgressSlides({
20131
19481
  pattern,
20132
19482
  patternOpacity
20133
19483
  }) {
20134
- const [currentIndex, setCurrentIndex] = React8.useState(0);
19484
+ const [currentIndex, setCurrentIndex] = React32.useState(0);
20135
19485
  const progress = useMotionValue(100);
20136
- const [direction, setDirection] = React8.useState(1);
19486
+ const [direction, setDirection] = React32.useState(1);
20137
19487
  const clipPath = useMotionTemplate`inset(0 ${progress}% 0 0 round 10px)`;
20138
- React8.useEffect(() => {
19488
+ React32.useEffect(() => {
20139
19489
  const interval = setInterval(() => {
20140
19490
  const currentProgress = progress.get();
20141
19491
  if (currentProgress > 0) {
@@ -20314,22 +19664,22 @@ function CarouselAutoProgressSlides({
20314
19664
  );
20315
19665
  }
20316
19666
  function useDotButton(emblaApi) {
20317
- const [selectedIndex, setSelectedIndex] = React8.useState(0);
20318
- const [scrollSnaps, setScrollSnaps] = React8.useState([]);
20319
- const onDotButtonClick = React8.useCallback(
19667
+ const [selectedIndex, setSelectedIndex] = React32.useState(0);
19668
+ const [scrollSnaps, setScrollSnaps] = React32.useState([]);
19669
+ const onDotButtonClick = React32.useCallback(
20320
19670
  (index) => {
20321
19671
  if (!emblaApi) return;
20322
19672
  emblaApi.scrollTo(index);
20323
19673
  },
20324
19674
  [emblaApi]
20325
19675
  );
20326
- const onInit = React8.useCallback((api) => {
19676
+ const onInit = React32.useCallback((api) => {
20327
19677
  setScrollSnaps(api.scrollSnapList());
20328
19678
  }, []);
20329
- const onSelect = React8.useCallback((api) => {
19679
+ const onSelect = React32.useCallback((api) => {
20330
19680
  setSelectedIndex(api.selectedScrollSnap());
20331
19681
  }, []);
20332
- React8.useEffect(() => {
19682
+ React32.useEffect(() => {
20333
19683
  if (!emblaApi) return;
20334
19684
  onInit(emblaApi);
20335
19685
  onSelect(emblaApi);
@@ -20338,8 +19688,8 @@ function useDotButton(emblaApi) {
20338
19688
  return { selectedIndex, scrollSnaps, onDotButtonClick };
20339
19689
  }
20340
19690
  function useAutoplay(emblaApi) {
20341
- const [autoplayIsPlaying, setAutoplayIsPlaying] = React8.useState(false);
20342
- const onAutoplayButtonClick = React8.useCallback(
19691
+ const [autoplayIsPlaying, setAutoplayIsPlaying] = React32.useState(false);
19692
+ const onAutoplayButtonClick = React32.useCallback(
20343
19693
  (callback) => {
20344
19694
  const autoplay = emblaApi?.plugins()?.autoplay;
20345
19695
  if (!autoplay) return;
@@ -20349,13 +19699,13 @@ function useAutoplay(emblaApi) {
20349
19699
  },
20350
19700
  [emblaApi]
20351
19701
  );
20352
- const toggleAutoplay = React8.useCallback(() => {
19702
+ const toggleAutoplay = React32.useCallback(() => {
20353
19703
  const autoplay = emblaApi?.plugins()?.autoplay;
20354
19704
  if (!autoplay) return;
20355
19705
  const playOrStop = autoplay.isPlaying() ? autoplay.stop : autoplay.play;
20356
19706
  playOrStop();
20357
19707
  }, [emblaApi]);
20358
- React8.useEffect(() => {
19708
+ React32.useEffect(() => {
20359
19709
  const autoplay = emblaApi?.plugins()?.autoplay;
20360
19710
  if (!autoplay) return;
20361
19711
  setAutoplayIsPlaying(autoplay.isPlaying());
@@ -20364,11 +19714,11 @@ function useAutoplay(emblaApi) {
20364
19714
  return { autoplayIsPlaying, toggleAutoplay, onAutoplayButtonClick };
20365
19715
  }
20366
19716
  function useAutoplayProgress(emblaApi, progressNode) {
20367
- const [showAutoplayProgress, setShowAutoplayProgress] = React8.useState(false);
20368
- const animationName = React8.useRef("");
20369
- const timeoutId = React8.useRef(0);
20370
- const rafId = React8.useRef(0);
20371
- const startProgress = React8.useCallback(
19717
+ const [showAutoplayProgress, setShowAutoplayProgress] = React32.useState(false);
19718
+ const animationName = React32.useRef("");
19719
+ const timeoutId = React32.useRef(0);
19720
+ const rafId = React32.useRef(0);
19721
+ const startProgress = React32.useCallback(
20372
19722
  (timeUntilNext) => {
20373
19723
  const node = progressNode.current;
20374
19724
  if (!node || timeUntilNext === null) return;
@@ -20388,12 +19738,12 @@ function useAutoplayProgress(emblaApi, progressNode) {
20388
19738
  },
20389
19739
  [progressNode]
20390
19740
  );
20391
- React8.useEffect(() => {
19741
+ React32.useEffect(() => {
20392
19742
  const autoplay = emblaApi?.plugins()?.autoplay;
20393
19743
  if (!autoplay) return;
20394
19744
  emblaApi.on("autoplay:timerset", () => startProgress(autoplay.timeUntilNext())).on("autoplay:timerstopped", () => setShowAutoplayProgress(false));
20395
19745
  }, [emblaApi, startProgress]);
20396
- React8.useEffect(() => {
19746
+ React32.useEffect(() => {
20397
19747
  return () => {
20398
19748
  cancelAnimationFrame(rafId.current);
20399
19749
  clearTimeout(timeoutId.current);
@@ -20420,7 +19770,7 @@ function CarouselAutoplayProgress({
20420
19770
  pattern,
20421
19771
  patternOpacity
20422
19772
  }) {
20423
- const progressNode = React8.useRef(null);
19773
+ const progressNode = React32.useRef(null);
20424
19774
  const [emblaRef, emblaApi] = useEmblaCarousel(options, [
20425
19775
  Autoplay({ playOnInit: true, delay: autoplayDelay })
20426
19776
  ]);
@@ -20543,20 +19893,20 @@ function CarouselFeatureBadge({
20543
19893
  containerMaxWidth = "2xl"
20544
19894
  }) {
20545
19895
  const [emblaRef, emblaApi] = useEmblaCarousel();
20546
- const [canScrollPrev, setCanScrollPrev] = React8.useState(false);
20547
- const [canScrollNext, setCanScrollNext] = React8.useState(false);
20548
- const scrollPrev = React8.useCallback(() => {
19896
+ const [canScrollPrev, setCanScrollPrev] = React32.useState(false);
19897
+ const [canScrollNext, setCanScrollNext] = React32.useState(false);
19898
+ const scrollPrev = React32.useCallback(() => {
20549
19899
  emblaApi?.scrollPrev();
20550
19900
  }, [emblaApi]);
20551
- const scrollNext = React8.useCallback(() => {
19901
+ const scrollNext = React32.useCallback(() => {
20552
19902
  emblaApi?.scrollNext();
20553
19903
  }, [emblaApi]);
20554
- const onSelect = React8.useCallback(() => {
19904
+ const onSelect = React32.useCallback(() => {
20555
19905
  if (!emblaApi) return;
20556
19906
  setCanScrollPrev(emblaApi.canScrollPrev());
20557
19907
  setCanScrollNext(emblaApi.canScrollNext());
20558
19908
  }, [emblaApi]);
20559
- React8.useEffect(() => {
19909
+ React32.useEffect(() => {
20560
19910
  if (!emblaApi) return;
20561
19911
  onSelect();
20562
19912
  emblaApi.on("reInit", onSelect);
@@ -20676,10 +20026,10 @@ function CarouselFullscreenScrollFx({
20676
20026
  pattern = "diagonalCrossBasic",
20677
20027
  patternOpacity = 0.033
20678
20028
  }) {
20679
- const containerRef = React8.useRef(null);
20680
- const scrollContainerRef = React8.useRef(null);
20681
- const [activeIndex, setActiveIndex] = React8.useState(0);
20682
- React8.useEffect(() => {
20029
+ const containerRef = React32.useRef(null);
20030
+ const scrollContainerRef = React32.useRef(null);
20031
+ const [activeIndex, setActiveIndex] = React32.useState(0);
20032
+ React32.useEffect(() => {
20683
20033
  const scrollContainer = scrollContainerRef.current;
20684
20034
  if (!scrollContainer || !slides?.length) return;
20685
20035
  const handleScroll = () => {
@@ -20691,7 +20041,7 @@ function CarouselFullscreenScrollFx({
20691
20041
  scrollContainer.addEventListener("scroll", handleScroll);
20692
20042
  return () => scrollContainer.removeEventListener("scroll", handleScroll);
20693
20043
  }, [slides]);
20694
- const scrollToSlide = React8.useCallback((index) => {
20044
+ const scrollToSlide = React32.useCallback((index) => {
20695
20045
  const scrollContainer = scrollContainerRef.current;
20696
20046
  if (!scrollContainer) return;
20697
20047
  const slideHeight = scrollContainer.clientHeight;
@@ -20774,7 +20124,7 @@ function CarouselFullscreenScrollFx({
20774
20124
  className: "flex h-screen flex-col snap-y snap-mandatory overflow-x-hidden overflow-y-auto scroll-smooth",
20775
20125
  style: { scrollbarWidth: "none", msOverflowStyle: "none" },
20776
20126
  children: slidesSlot ? slidesSlot : slides?.map((slide, index) => {
20777
- const renderActions = React8.useMemo(() => {
20127
+ const renderActions = React32.useMemo(() => {
20778
20128
  if (!slide.actions || slide.actions.length === 0) return null;
20779
20129
  return slide.actions.map((action, actionIndex) => {
20780
20130
  const {
@@ -20908,25 +20258,25 @@ function CarouselGalleryThumbnails({
20908
20258
  slideMediaBrightness,
20909
20259
  slideMediaOverlayIntensity = "default"
20910
20260
  }) {
20911
- const [currentIndex, setCurrentIndex] = React8.useState(0);
20912
- const prevSlide = React8.useCallback(() => {
20261
+ const [currentIndex, setCurrentIndex] = React32.useState(0);
20262
+ const prevSlide = React32.useCallback(() => {
20913
20263
  setCurrentIndex(
20914
20264
  (prev) => prev === 0 ? (images?.length ?? 0) - 1 : prev - 1
20915
20265
  );
20916
20266
  }, [images?.length]);
20917
- const nextSlide = React8.useCallback(() => {
20267
+ const nextSlide = React32.useCallback(() => {
20918
20268
  setCurrentIndex(
20919
20269
  (prev) => prev === (images?.length ?? 0) - 1 ? 0 : prev + 1
20920
20270
  );
20921
20271
  }, [images?.length]);
20922
- React8.useEffect(() => {
20272
+ React32.useEffect(() => {
20923
20273
  if (!autoPlay) return;
20924
20274
  const interval = setInterval(() => {
20925
20275
  nextSlide();
20926
20276
  }, autoPlayInterval);
20927
20277
  return () => clearInterval(interval);
20928
20278
  }, [currentIndex, autoPlay, autoPlayInterval, nextSlide]);
20929
- React8.useEffect(() => {
20279
+ React32.useEffect(() => {
20930
20280
  const handleKeyDown = (e) => {
20931
20281
  if (e.key === "ArrowRight") {
20932
20282
  nextSlide();
@@ -21073,9 +20423,9 @@ function CarouselHorizontalCards({
21073
20423
  pattern,
21074
20424
  patternOpacity
21075
20425
  }) {
21076
- const carouselRef = React8.useRef(null);
21077
- const [isAtStart, setIsAtStart] = React8.useState(true);
21078
- const [isAtEnd, setIsAtEnd] = React8.useState(false);
20426
+ const carouselRef = React32.useRef(null);
20427
+ const [isAtStart, setIsAtStart] = React32.useState(true);
20428
+ const [isAtEnd, setIsAtEnd] = React32.useState(false);
21079
20429
  const scrollLeft = () => {
21080
20430
  if (carouselRef.current) {
21081
20431
  carouselRef.current.scrollBy({ left: -300, behavior: "smooth" });
@@ -21086,7 +20436,7 @@ function CarouselHorizontalCards({
21086
20436
  carouselRef.current.scrollBy({ left: 300, behavior: "smooth" });
21087
20437
  }
21088
20438
  };
21089
- React8.useEffect(() => {
20439
+ React32.useEffect(() => {
21090
20440
  const checkScrollPosition = () => {
21091
20441
  if (carouselRef.current) {
21092
20442
  const { scrollLeft: scrollLeft2, scrollWidth, clientWidth } = carouselRef.current;
@@ -21286,13 +20636,13 @@ function CarouselImageHero({
21286
20636
  pattern,
21287
20637
  patternOpacity
21288
20638
  }) {
21289
- const hasImages = React8.useMemo(() => {
20639
+ const hasImages = React32.useMemo(() => {
21290
20640
  return images && images?.length > 0;
21291
20641
  }, [images]);
21292
- const [currentImageIndex, setCurrentImageIndex] = React8.useState(0);
20642
+ const [currentImageIndex, setCurrentImageIndex] = React32.useState(0);
21293
20643
  const progress = useMotionValue(100);
21294
20644
  const clipPath = useMotionTemplate`inset(0 ${progress}% 0 0 round 10px)`;
21295
- React8.useEffect(() => {
20645
+ React32.useEffect(() => {
21296
20646
  if (!hasImages || (images?.length ?? 0) < 2) return;
21297
20647
  const tickInterval = autoPlayInterval / 100;
21298
20648
  const interval = setInterval(() => {
@@ -21314,19 +20664,19 @@ function CarouselImageHero({
21314
20664
  autoPlayInterval,
21315
20665
  hasImages
21316
20666
  ]);
21317
- const handlePrev = React8.useCallback(() => {
20667
+ const handlePrev = React32.useCallback(() => {
21318
20668
  progress.set(100);
21319
20669
  setCurrentImageIndex(
21320
20670
  (prevIndex) => prevIndex > 0 ? prevIndex - 1 : (images?.length ?? 1) - 1
21321
20671
  );
21322
20672
  }, [images?.length, progress]);
21323
- const handleNext = React8.useCallback(() => {
20673
+ const handleNext = React32.useCallback(() => {
21324
20674
  progress.set(100);
21325
20675
  setCurrentImageIndex(
21326
20676
  (prevIndex) => prevIndex < (images?.length ?? 0) - 1 ? prevIndex + 1 : 0
21327
20677
  );
21328
20678
  }, [images?.length, progress]);
21329
- const handleDotClick = React8.useCallback(
20679
+ const handleDotClick = React32.useCallback(
21330
20680
  (index) => {
21331
20681
  progress.set(100);
21332
20682
  setCurrentImageIndex(index);
@@ -21503,8 +20853,8 @@ function CarouselMultiStepShowcase({
21503
20853
  pattern,
21504
20854
  patternOpacity
21505
20855
  }) {
21506
- const [activeStep, setActiveStep] = React8.useState(0);
21507
- const [direction, setDirection] = React8.useState(0);
20856
+ const [activeStep, setActiveStep] = React32.useState(0);
20857
+ const [direction, setDirection] = React32.useState(0);
21508
20858
  const goToStep = (index) => {
21509
20859
  setDirection(index > activeStep ? 1 : -1);
21510
20860
  setActiveStep(index);
@@ -21797,9 +21147,9 @@ function CarouselPortfolioHero({
21797
21147
  slideMediaBrightness,
21798
21148
  slideMediaOverlayIntensity = "high"
21799
21149
  }) {
21800
- const [currentIndex, setCurrentIndex] = React8.useState(0);
21801
- const intervalRef = React8.useRef(null);
21802
- const resetInterval = React8.useCallback(() => {
21150
+ const [currentIndex, setCurrentIndex] = React32.useState(0);
21151
+ const intervalRef = React32.useRef(null);
21152
+ const resetInterval = React32.useCallback(() => {
21803
21153
  if (intervalRef.current) {
21804
21154
  clearInterval(intervalRef.current);
21805
21155
  }
@@ -21807,17 +21157,17 @@ function CarouselPortfolioHero({
21807
21157
  setCurrentIndex((prevIndex) => (prevIndex + 1) % (slides?.length ?? 1));
21808
21158
  }, autoPlayInterval);
21809
21159
  }, [autoPlayInterval, slides?.length]);
21810
- const goToNext = React8.useCallback(() => {
21160
+ const goToNext = React32.useCallback(() => {
21811
21161
  setCurrentIndex((prevIndex) => (prevIndex + 1) % (slides?.length ?? 1));
21812
21162
  resetInterval();
21813
21163
  }, [slides?.length, resetInterval]);
21814
- const goToPrev = React8.useCallback(() => {
21164
+ const goToPrev = React32.useCallback(() => {
21815
21165
  setCurrentIndex(
21816
21166
  (prevIndex) => (prevIndex - 1 + (slides?.length ?? 1)) % (slides?.length ?? 1)
21817
21167
  );
21818
21168
  resetInterval();
21819
21169
  }, [slides?.length, resetInterval]);
21820
- React8.useEffect(() => {
21170
+ React32.useEffect(() => {
21821
21171
  resetInterval();
21822
21172
  return () => {
21823
21173
  if (intervalRef.current) {
@@ -21988,9 +21338,9 @@ function CarouselProductFeatureShowcase({
21988
21338
  pattern,
21989
21339
  patternOpacity
21990
21340
  }) {
21991
- const [activeIndex, setActiveIndex] = React8.useState(0);
21992
- const [activeColorIndex, setActiveColorIndex] = React8.useState(0);
21993
- const [direction, setDirection] = React8.useState(0);
21341
+ const [activeIndex, setActiveIndex] = React32.useState(0);
21342
+ const [activeColorIndex, setActiveColorIndex] = React32.useState(0);
21343
+ const [direction, setDirection] = React32.useState(0);
21994
21344
  const activeFeature = features?.[activeIndex];
21995
21345
  const goToNext = () => {
21996
21346
  setDirection(1);
@@ -22210,9 +21560,9 @@ function CarouselProductFeatureShowcase({
22210
21560
  }
22211
21561
  );
22212
21562
  }
22213
- var ProgressSliderContext = React8.createContext(void 0);
21563
+ var ProgressSliderContext = React32.createContext(void 0);
22214
21564
  function useProgressSliderContext() {
22215
- const context = React8.useContext(ProgressSliderContext);
21565
+ const context = React32.useContext(ProgressSliderContext);
22216
21566
  if (!context) {
22217
21567
  throw new Error(
22218
21568
  "useProgressSliderContext must be used within a ProgressSlider"
@@ -22298,19 +21648,19 @@ function CarouselProgressSlider({
22298
21648
  pattern,
22299
21649
  patternOpacity
22300
21650
  }) {
22301
- const [active, setActive] = React8.useState(slides?.[0]?.id ?? "");
22302
- const [progress, setProgress] = React8.useState(0);
22303
- const [isFastForward, setIsFastForward] = React8.useState(false);
22304
- const [isPaused, setIsPaused] = React8.useState(false);
22305
- const frame = React8.useRef(0);
22306
- const firstFrameTime = React8.useRef(performance.now());
22307
- const targetValue = React8.useRef(null);
22308
- const pausedProgress = React8.useRef(0);
22309
- const sliderValues = React8.useMemo(
21651
+ const [active, setActive] = React32.useState(slides?.[0]?.id ?? "");
21652
+ const [progress, setProgress] = React32.useState(0);
21653
+ const [isFastForward, setIsFastForward] = React32.useState(false);
21654
+ const [isPaused, setIsPaused] = React32.useState(false);
21655
+ const frame = React32.useRef(0);
21656
+ const firstFrameTime = React32.useRef(performance.now());
21657
+ const targetValue = React32.useRef(null);
21658
+ const pausedProgress = React32.useRef(0);
21659
+ const sliderValues = React32.useMemo(
22310
21660
  () => slides?.map((slide) => slide.id),
22311
21661
  [slides]
22312
21662
  );
22313
- React8.useEffect(() => {
21663
+ React32.useEffect(() => {
22314
21664
  if ((sliderValues?.length ?? 0) > 0 && !isPaused) {
22315
21665
  firstFrameTime.current = performance.now();
22316
21666
  if (pausedProgress.current > 0) {
@@ -22476,11 +21826,11 @@ function CarouselScrollingFeatureShowcase({
22476
21826
  patternOpacity,
22477
21827
  patternClassName
22478
21828
  }) {
22479
- const [activeFeature, setActiveFeature] = React8.useState(
21829
+ const [activeFeature, setActiveFeature] = React32.useState(
22480
21830
  features?.[0]?.id ?? ""
22481
21831
  );
22482
- const featureRefs = React8.useRef(/* @__PURE__ */ new Map());
22483
- React8.useEffect(() => {
21832
+ const featureRefs = React32.useRef(/* @__PURE__ */ new Map());
21833
+ React32.useEffect(() => {
22484
21834
  if (!features || features.length === 0) return;
22485
21835
  const observerOptions = {
22486
21836
  root: null,
@@ -23397,9 +22747,9 @@ function FeatureChecklistImage({
23397
22747
  }
23398
22748
  );
23399
22749
  }
23400
- var CarouselContext = React8.createContext(null);
22750
+ var CarouselContext = React32.createContext(null);
23401
22751
  function useCarousel() {
23402
- const context = React8.useContext(CarouselContext);
22752
+ const context = React32.useContext(CarouselContext);
23403
22753
  if (!context) {
23404
22754
  throw new Error("useCarousel must be used within a <Carousel />");
23405
22755
  }
@@ -23421,20 +22771,20 @@ function Carousel({
23421
22771
  },
23422
22772
  plugins
23423
22773
  );
23424
- const [canScrollPrev, setCanScrollPrev] = React8.useState(false);
23425
- const [canScrollNext, setCanScrollNext] = React8.useState(false);
23426
- const onSelect = React8.useCallback((api2) => {
22774
+ const [canScrollPrev, setCanScrollPrev] = React32.useState(false);
22775
+ const [canScrollNext, setCanScrollNext] = React32.useState(false);
22776
+ const onSelect = React32.useCallback((api2) => {
23427
22777
  if (!api2) return;
23428
22778
  setCanScrollPrev(api2.canScrollPrev());
23429
22779
  setCanScrollNext(api2.canScrollNext());
23430
22780
  }, []);
23431
- const scrollPrev = React8.useCallback(() => {
22781
+ const scrollPrev = React32.useCallback(() => {
23432
22782
  api?.scrollPrev();
23433
22783
  }, [api]);
23434
- const scrollNext = React8.useCallback(() => {
22784
+ const scrollNext = React32.useCallback(() => {
23435
22785
  api?.scrollNext();
23436
22786
  }, [api]);
23437
- const handleKeyDown = React8.useCallback(
22787
+ const handleKeyDown = React32.useCallback(
23438
22788
  (event) => {
23439
22789
  if (event.key === "ArrowLeft") {
23440
22790
  event.preventDefault();
@@ -23446,11 +22796,11 @@ function Carousel({
23446
22796
  },
23447
22797
  [scrollPrev, scrollNext]
23448
22798
  );
23449
- React8.useEffect(() => {
22799
+ React32.useEffect(() => {
23450
22800
  if (!api || !setApi) return;
23451
22801
  setApi(api);
23452
22802
  }, [api, setApi]);
23453
- React8.useEffect(() => {
22803
+ React32.useEffect(() => {
23454
22804
  if (!api) return;
23455
22805
  onSelect(api);
23456
22806
  api.on("reInit", onSelect);
@@ -24350,7 +23700,7 @@ function FeatureThreeColumnValues({
24350
23700
  patternOpacity,
24351
23701
  patternClassName
24352
23702
  }) {
24353
- const renderValueIcon = React8.useCallback(
23703
+ const renderValueIcon = React32.useCallback(
24354
23704
  (value) => {
24355
23705
  if (value.icon) return value.icon;
24356
23706
  if (value.iconName)
@@ -24841,7 +24191,7 @@ function FeatureTabbedContentImage({
24841
24191
  patternOpacity,
24842
24192
  patternClassName
24843
24193
  }) {
24844
- const renderFeatures = React8.useCallback(
24194
+ const renderFeatures = React32.useCallback(
24845
24195
  (slide) => {
24846
24196
  if (slide.featuresSlot) return slide.featuresSlot;
24847
24197
  if (!slide.features || slide.features.length === 0) return null;
@@ -24865,7 +24215,7 @@ function FeatureTabbedContentImage({
24865
24215
  },
24866
24216
  []
24867
24217
  );
24868
- const renderActions = React8.useCallback(
24218
+ const renderActions = React32.useCallback(
24869
24219
  (slide) => {
24870
24220
  if (slide.actionsSlot) return slide.actionsSlot;
24871
24221
  if (!slide.actions || slide.actions.length === 0) return null;
@@ -24908,7 +24258,7 @@ function FeatureTabbedContentImage({
24908
24258
  },
24909
24259
  []
24910
24260
  );
24911
- const renderImage = React8.useCallback(
24261
+ const renderImage = React32.useCallback(
24912
24262
  (slide) => {
24913
24263
  if (slide.imageSlot) return slide.imageSlot;
24914
24264
  if (!slide.image) return null;
@@ -25144,7 +24494,7 @@ function FeatureUtilityCardsGrid({
25144
24494
  }
25145
24495
  );
25146
24496
  }, [learnMoreSlot, learnMoreAction, background]);
25147
- const renderUtilityImage = React8.useCallback(
24497
+ const renderUtilityImage = React32.useCallback(
25148
24498
  (utility) => {
25149
24499
  if (utility.imageSlot) return utility.imageSlot;
25150
24500
  if (utility.image) {
@@ -25322,7 +24672,7 @@ function FeatureBentoUtilities({
25322
24672
  patternOpacity,
25323
24673
  patternClassName
25324
24674
  }) {
25325
- const renderCard = React8.useCallback(
24675
+ const renderCard = React32.useCallback(
25326
24676
  (card, index) => {
25327
24677
  const hasImage = card.imageSrc || card.imageSlot;
25328
24678
  const cardClasses = cn(
@@ -25378,7 +24728,7 @@ function FeatureBentoUtilities({
25378
24728
  },
25379
24729
  [optixFlowConfig]
25380
24730
  );
25381
- const renderColumn = React8.useCallback(
24731
+ const renderColumn = React32.useCallback(
25382
24732
  (cards, slot) => {
25383
24733
  if (slot) return slot;
25384
24734
  if (!cards || cards.length === 0) return null;
@@ -26614,7 +25964,7 @@ function FeatureBentoImageGrid({
26614
25964
  patternOpacity,
26615
25965
  patternClassName
26616
25966
  }) {
26617
- const renderItemIcon = React8.useCallback(
25967
+ const renderItemIcon = React32.useCallback(
26618
25968
  (item) => {
26619
25969
  if (item.icon) return item.icon;
26620
25970
  if (item.iconName) return /* @__PURE__ */ jsx(DynamicIcon, { name: item.iconName, size: 24 });
@@ -26622,7 +25972,7 @@ function FeatureBentoImageGrid({
26622
25972
  },
26623
25973
  []
26624
25974
  );
26625
- const renderItemImage = React8.useCallback(
25975
+ const renderItemImage = React32.useCallback(
26626
25976
  (item, imageClassName) => {
26627
25977
  if (item.imageSlot) return item.imageSlot;
26628
25978
  if (item.imageSrc) {
@@ -26641,7 +25991,7 @@ function FeatureBentoImageGrid({
26641
25991
  },
26642
25992
  [optixFlowConfig]
26643
25993
  );
26644
- const renderLargeCard = React8.useCallback(
25994
+ const renderLargeCard = React32.useCallback(
26645
25995
  (item) => {
26646
25996
  const iconContent = renderItemIcon(item);
26647
25997
  const hasIconBadgeContent = iconContent || item.iconBadge;
@@ -26720,7 +26070,7 @@ function FeatureBentoImageGrid({
26720
26070
  },
26721
26071
  [largeCardClassName, renderItemImage, renderItemIcon]
26722
26072
  );
26723
- const renderSmallCard = React8.useCallback(
26073
+ const renderSmallCard = React32.useCallback(
26724
26074
  (item, index) => {
26725
26075
  const iconContent = renderItemIcon(item);
26726
26076
  const hasIconBadgeContent = iconContent || item.iconBadge;
@@ -27370,7 +26720,7 @@ function FeatureAccordionImage({
27370
26720
  patternOpacity,
27371
26721
  patternClassName
27372
26722
  }) {
27373
- const [activeItem, setActiveItem] = React8.useState(defaultValue || "item-0");
26723
+ const [activeItem, setActiveItem] = React32.useState(defaultValue || "item-0");
27374
26724
  const activeIndex = parseInt(activeItem.replace("item-", ""), 10) || 0;
27375
26725
  const accordionItemsContent = useMemo(() => {
27376
26726
  if (itemsSlot) return itemsSlot;
@@ -27543,7 +26893,7 @@ function FeatureCapabilitiesGrid({
27543
26893
  patternOpacity,
27544
26894
  patternClassName
27545
26895
  }) {
27546
- const renderItemIcon = React8.useCallback(
26896
+ const renderItemIcon = React32.useCallback(
27547
26897
  (item) => {
27548
26898
  if (item.icon) return item.icon;
27549
26899
  if (item.iconName) return /* @__PURE__ */ jsx(DynamicIcon, { name: item.iconName, size: 20 });
@@ -27695,7 +27045,7 @@ function FeatureCapabilitiesGrid({
27695
27045
  }
27696
27046
  );
27697
27047
  }
27698
- var TeamMemberBackgroundImageCard = React8.forwardRef(
27048
+ var TeamMemberBackgroundImageCard = React32.forwardRef(
27699
27049
  ({ className, imageUrl, imageAlt, children, optixFlowConfig, background, ...props }, ref) => {
27700
27050
  return /* @__PURE__ */ jsxs(
27701
27051
  "div",
@@ -27743,7 +27093,7 @@ function TeamMediaShowcase({
27743
27093
  actionClassName,
27744
27094
  optixFlowConfig
27745
27095
  }) {
27746
- const renderItems = React8.useMemo(() => {
27096
+ const renderItems = React32.useMemo(() => {
27747
27097
  if (itemsSlot) return itemsSlot;
27748
27098
  return items.map((member, idx) => {
27749
27099
  const imageAlt = member.imageAlt || (member.name && typeof member.name === "string" && member.name.trim() !== "" ? member.name : `member-${idx}`);
@@ -27841,7 +27191,7 @@ function TeamSimpleGrid({
27841
27191
  memberNameClassName,
27842
27192
  memberRoleClassName
27843
27193
  }) {
27844
- const renderMembers = React8.useMemo(() => {
27194
+ const renderMembers = React32.useMemo(() => {
27845
27195
  if (membersSlot) return membersSlot;
27846
27196
  if (!members || members.length === 0) return null;
27847
27197
  return members.map((member) => /* @__PURE__ */ jsxs(
@@ -28003,7 +27353,7 @@ function FooterBrandLinksContact({
28003
27353
  linkListClassName,
28004
27354
  linkItemClassName
28005
27355
  ]);
28006
- const contactItemsContent = React8.useMemo(() => {
27356
+ const contactItemsContent = React32.useMemo(() => {
28007
27357
  if (!contactItems || contactItems.length === 0) return null;
28008
27358
  return contactItems.map((item, idx) => /* @__PURE__ */ jsxs(
28009
27359
  "div",
@@ -28361,7 +27711,7 @@ function TeamSocialGrid({
28361
27711
  memberRoleClassName,
28362
27712
  socialLinksClassName
28363
27713
  }) {
28364
- const renderMembers = React8.useMemo(() => {
27714
+ const renderMembers = React32.useMemo(() => {
28365
27715
  if (membersSlot) return membersSlot;
28366
27716
  if (!members || members.length === 0) return null;
28367
27717
  return members.map((member) => /* @__PURE__ */ jsxs(
@@ -28497,7 +27847,7 @@ function TeamGradientCards({
28497
27847
  memberRoleClassName,
28498
27848
  socialLinksClassName
28499
27849
  }) {
28500
- const renderMembers = React8.useMemo(() => {
27850
+ const renderMembers = React32.useMemo(() => {
28501
27851
  if (membersSlot) return membersSlot;
28502
27852
  if (!members || members.length === 0) return null;
28503
27853
  return members.map((member) => /* @__PURE__ */ jsx(
@@ -28653,7 +28003,7 @@ function TeamBioBadges({
28653
28003
  memberBioClassName,
28654
28004
  socialLinksClassName
28655
28005
  }) {
28656
- const renderMembers = React8.useMemo(() => {
28006
+ const renderMembers = React32.useMemo(() => {
28657
28007
  if (membersSlot) return membersSlot;
28658
28008
  if (!members || members.length === 0) return null;
28659
28009
  return members.map((member) => /* @__PURE__ */ jsxs(
@@ -28830,7 +28180,7 @@ function TeamExpertiseCards({
28830
28180
  ctaDescriptionClassName,
28831
28181
  ctaButtonClassName
28832
28182
  }) {
28833
- const renderMembers = React8.useMemo(() => {
28183
+ const renderMembers = React32.useMemo(() => {
28834
28184
  if (membersSlot) return membersSlot;
28835
28185
  if (!members || members.length === 0) return null;
28836
28186
  return members.map((member) => /* @__PURE__ */ jsx(
@@ -28907,7 +28257,7 @@ function TeamExpertiseCards({
28907
28257
  member.id
28908
28258
  ));
28909
28259
  }, [membersSlot, members, background, memberCardClassName, avatarClassName, memberNameClassName, memberRoleClassName, departmentBadgeClassName, memberDescriptionClassName, expertiseClassName]);
28910
- const renderCta = React8.useMemo(() => {
28260
+ const renderCta = React32.useMemo(() => {
28911
28261
  if (ctaSlot) return ctaSlot;
28912
28262
  return /* @__PURE__ */ jsxs(
28913
28263
  "div",
@@ -29023,7 +28373,7 @@ function TeamCompactGrid({
29023
28373
  ctaDescriptionClassName,
29024
28374
  ctaButtonClassName
29025
28375
  }) {
29026
- const renderMembers = React8.useMemo(() => {
28376
+ const renderMembers = React32.useMemo(() => {
29027
28377
  if (membersSlot) return membersSlot;
29028
28378
  if (!members || members.length === 0) return null;
29029
28379
  return members.map((member) => /* @__PURE__ */ jsxs(
@@ -29078,7 +28428,7 @@ function TeamCompactGrid({
29078
28428
  member.id
29079
28429
  ));
29080
28430
  }, [membersSlot, members, background, memberCardClassName, avatarClassName, memberNameClassName, memberRoleClassName, departmentBadgeClassName]);
29081
- const renderCta = React8.useMemo(() => {
28431
+ const renderCta = React32.useMemo(() => {
29082
28432
  if (ctaSlot) return ctaSlot;
29083
28433
  return /* @__PURE__ */ jsxs(
29084
28434
  "div",
@@ -29182,7 +28532,7 @@ function TeamInvestorShowcase({
29182
28532
  investorCompanyClassName,
29183
28533
  optixFlowConfig
29184
28534
  }) {
29185
- const renderInvestors = React8.useMemo(() => {
28535
+ const renderInvestors = React32.useMemo(() => {
29186
28536
  if (investorsSlot) return investorsSlot;
29187
28537
  if (!investors || investors.length === 0) return null;
29188
28538
  return investors.map((investor) => /* @__PURE__ */ jsxs("div", { className: investorCardClassName, children: [
@@ -29256,7 +28606,7 @@ function TeamCarouselExperience({
29256
28606
  memberRoleClassName,
29257
28607
  optixFlowConfig
29258
28608
  }) {
29259
- const renderMembers = React8.useMemo(() => {
28609
+ const renderMembers = React32.useMemo(() => {
29260
28610
  if (membersSlot) return membersSlot;
29261
28611
  if (!members || members.length === 0) return null;
29262
28612
  return members.map((member, idx) => /* @__PURE__ */ jsx(CarouselItem, { className: "max-w-72", children: /* @__PURE__ */ jsxs(
@@ -29406,20 +28756,20 @@ function TeamFilterableSearch({
29406
28756
  emptyStateClassName,
29407
28757
  emptyStateMessage
29408
28758
  }) {
29409
- const [searchQuery, setSearchQuery] = React8.useState("");
29410
- const [selectedDepartment, setSelectedDepartment] = React8.useState("All");
29411
- const departments = React8.useMemo(() => {
28759
+ const [searchQuery, setSearchQuery] = React32.useState("");
28760
+ const [selectedDepartment, setSelectedDepartment] = React32.useState("All");
28761
+ const departments = React32.useMemo(() => {
29412
28762
  const depts = new Set(members.map((m) => m.department));
29413
28763
  return ["All", ...Array.from(depts)];
29414
28764
  }, [members]);
29415
- const filteredMembers = React8.useMemo(() => {
28765
+ const filteredMembers = React32.useMemo(() => {
29416
28766
  return members.filter((member) => {
29417
28767
  const matchesSearch = searchQuery === "" || member.name.toLowerCase().includes(searchQuery.toLowerCase()) || member.role.toLowerCase().includes(searchQuery.toLowerCase()) || member.description.toLowerCase().includes(searchQuery.toLowerCase());
29418
28768
  const matchesDepartment = selectedDepartment === "All" || member.department === selectedDepartment;
29419
28769
  return matchesSearch && matchesDepartment;
29420
28770
  });
29421
28771
  }, [members, searchQuery, selectedDepartment]);
29422
- const renderFilters = React8.useMemo(() => {
28772
+ const renderFilters = React32.useMemo(() => {
29423
28773
  if (filtersSlot) return filtersSlot;
29424
28774
  return /* @__PURE__ */ jsxs(
29425
28775
  "div",
@@ -29474,7 +28824,7 @@ function TeamFilterableSearch({
29474
28824
  selectedDepartment,
29475
28825
  filterButtonClassName
29476
28826
  ]);
29477
- const renderMembers = React8.useMemo(() => {
28827
+ const renderMembers = React32.useMemo(() => {
29478
28828
  if (membersSlot) return membersSlot;
29479
28829
  return filteredMembers.map((member) => /* @__PURE__ */ jsx(
29480
28830
  "div",
@@ -29661,7 +29011,7 @@ function TeamCompactCta({
29661
29011
  memberRoleClassName,
29662
29012
  ctaClassName
29663
29013
  }) {
29664
- const renderMembers = React8.useMemo(() => {
29014
+ const renderMembers = React32.useMemo(() => {
29665
29015
  if (membersSlot) return membersSlot;
29666
29016
  if (!members || members.length === 0) return null;
29667
29017
  return members.map((member) => /* @__PURE__ */ jsxs(
@@ -29689,7 +29039,7 @@ function TeamCompactCta({
29689
29039
  member.id
29690
29040
  ));
29691
29041
  }, [membersSlot, members, memberCardClassName, avatarClassName, memberNameClassName, memberRoleClassName, background]);
29692
- const renderCta = React8.useMemo(() => {
29042
+ const renderCta = React32.useMemo(() => {
29693
29043
  if (ctaSlot) return ctaSlot;
29694
29044
  return /* @__PURE__ */ jsx(
29695
29045
  Pressable,
@@ -29780,7 +29130,7 @@ function TeamHoverHighlight({
29780
29130
  socialLinksClassName,
29781
29131
  optixFlowConfig
29782
29132
  }) {
29783
- const renderMembers = React8.useMemo(() => {
29133
+ const renderMembers = React32.useMemo(() => {
29784
29134
  if (membersSlot) return membersSlot;
29785
29135
  if (!members || members.length === 0) return null;
29786
29136
  return members.map((member) => /* @__PURE__ */ jsxs(
@@ -29929,7 +29279,7 @@ function TeamSocialCards({
29929
29279
  socialLinksClassName,
29930
29280
  optixFlowConfig
29931
29281
  }) {
29932
- const renderMembers = React8.useMemo(() => {
29282
+ const renderMembers = React32.useMemo(() => {
29933
29283
  if (membersSlot) return membersSlot;
29934
29284
  if (!members || members.length === 0) return null;
29935
29285
  return members.map((member) => /* @__PURE__ */ jsx(
@@ -30099,7 +29449,7 @@ function TeamGridAnimated({
30099
29449
  "hsl(var(--muted))",
30100
29450
  "hsl(var(--warning)/0.2)"
30101
29451
  ];
30102
- const renderMembers = React8.useMemo(() => {
29452
+ const renderMembers = React32.useMemo(() => {
30103
29453
  if (membersSlot) return membersSlot;
30104
29454
  if (!members || members.length === 0) return null;
30105
29455
  return members.map((member, index) => /* @__PURE__ */ jsxs(
@@ -30199,7 +29549,7 @@ function TeamGridAnimated({
30199
29549
  memberDesignationClassName,
30200
29550
  socialLinksClassName
30201
29551
  ]);
30202
- const renderSocialLinksMain = React8.useMemo(() => {
29552
+ const renderSocialLinksMain = React32.useMemo(() => {
30203
29553
  if (socialLinksMainSlot) return socialLinksMainSlot;
30204
29554
  if (!socialLinksMain || socialLinksMain.length === 0) return null;
30205
29555
  return /* @__PURE__ */ jsxs("div", { className: "flex w-full items-center justify-center gap-4 py-4 md:justify-center", children: [
@@ -30316,7 +29666,7 @@ function TeamDepartmentSections({
30316
29666
  memberRoleClassName,
30317
29667
  optixFlowConfig
30318
29668
  }) {
30319
- const renderDepartments = React8.useMemo(() => {
29669
+ const renderDepartments = React32.useMemo(() => {
30320
29670
  if (departmentsSlot) return departmentsSlot;
30321
29671
  if (!departments || departments.length === 0) return null;
30322
29672
  return departments.map((department, deptIndex) => /* @__PURE__ */ jsxs(
@@ -30420,7 +29770,7 @@ function TeamAlternatingBios({
30420
29770
  socialLinksClassName,
30421
29771
  optixFlowConfig
30422
29772
  }) {
30423
- const renderMembers = React8.useMemo(() => {
29773
+ const renderMembers = React32.useMemo(() => {
30424
29774
  if (membersSlot) return membersSlot;
30425
29775
  if (!members || members.length === 0) return null;
30426
29776
  return members.map((member, index) => /* @__PURE__ */ jsxs(
@@ -30602,7 +29952,7 @@ function TeamAvatarSocial({
30602
29952
  memberRoleClassName,
30603
29953
  socialLinksClassName
30604
29954
  }) {
30605
- const renderMembers = React8.useMemo(() => {
29955
+ const renderMembers = React32.useMemo(() => {
30606
29956
  if (membersSlot) return membersSlot;
30607
29957
  if (!members || members.length === 0) return null;
30608
29958
  return members.map((member) => /* @__PURE__ */ jsxs(
@@ -30745,7 +30095,7 @@ function TeamHoverOverlay({
30745
30095
  socialLinksClassName,
30746
30096
  optixFlowConfig
30747
30097
  }) {
30748
- const renderMembers = React8.useMemo(() => {
30098
+ const renderMembers = React32.useMemo(() => {
30749
30099
  if (membersSlot) return membersSlot;
30750
30100
  if (!members || members.length === 0) return null;
30751
30101
  return members.map((member) => /* @__PURE__ */ jsx(
@@ -30921,14 +30271,14 @@ function TeamRoleFilter({
30921
30271
  socialLinksClassName,
30922
30272
  optixFlowConfig
30923
30273
  }) {
30924
- const [selectedRole, setSelectedRole] = React8.useState("All");
30925
- const filteredMembers = React8.useMemo(() => {
30274
+ const [selectedRole, setSelectedRole] = React32.useState("All");
30275
+ const filteredMembers = React32.useMemo(() => {
30926
30276
  if (!members) return [];
30927
30277
  return members.filter(
30928
30278
  (member) => selectedRole === "All" ? true : member.role === selectedRole
30929
30279
  );
30930
30280
  }, [members, selectedRole]);
30931
- const renderRoles = React8.useMemo(() => {
30281
+ const renderRoles = React32.useMemo(() => {
30932
30282
  if (rolesSlot) return rolesSlot;
30933
30283
  if (!roles) return null;
30934
30284
  return /* @__PURE__ */ jsx(
@@ -30952,7 +30302,7 @@ function TeamRoleFilter({
30952
30302
  }
30953
30303
  );
30954
30304
  }, [rolesSlot, filtersClassName, roles, selectedRole, filterButtonClassName]);
30955
- const renderMembers = React8.useMemo(() => {
30305
+ const renderMembers = React32.useMemo(() => {
30956
30306
  if (membersSlot) return membersSlot;
30957
30307
  return filteredMembers.map((member) => /* @__PURE__ */ jsx(
30958
30308
  Card,
@@ -31112,7 +30462,7 @@ function TeamContactCards({
31112
30462
  socialLinksClassName,
31113
30463
  optixFlowConfig
31114
30464
  }) {
31115
- const getStatusColor = React8.useCallback((status) => {
30465
+ const getStatusColor = React32.useCallback((status) => {
31116
30466
  switch (status) {
31117
30467
  case "active":
31118
30468
  return "bg-success";
@@ -31122,7 +30472,7 @@ function TeamContactCards({
31122
30472
  return getTextColor(background, "muted");
31123
30473
  }
31124
30474
  }, [background]);
31125
- const renderMembers = React8.useMemo(() => {
30475
+ const renderMembers = React32.useMemo(() => {
31126
30476
  if (membersSlot) return membersSlot;
31127
30477
  if (!members || members.length === 0) return null;
31128
30478
  return members.map((member) => /* @__PURE__ */ jsx(Card, { className: cn("p-0", memberCardClassName), children: /* @__PURE__ */ jsxs(CardContent, { className: "p-6!", children: [
@@ -31329,7 +30679,7 @@ function TeamLargeImages({
31329
30679
  socialLinksClassName,
31330
30680
  optixFlowConfig
31331
30681
  }) {
31332
- const renderMembers = React8.useMemo(() => {
30682
+ const renderMembers = React32.useMemo(() => {
31333
30683
  if (membersSlot) return membersSlot;
31334
30684
  if (!members || members.length === 0) return null;
31335
30685
  return members.map((member) => /* @__PURE__ */ jsxs(
@@ -31504,7 +30854,7 @@ function TeamSkillBadges({
31504
30854
  socialLinksClassName,
31505
30855
  optixFlowConfig
31506
30856
  }) {
31507
- const renderMembers = React8.useMemo(() => {
30857
+ const renderMembers = React32.useMemo(() => {
31508
30858
  if (membersSlot) return membersSlot;
31509
30859
  if (!members || members.length === 0) return null;
31510
30860
  return members.map((member) => /* @__PURE__ */ jsx(
@@ -31694,7 +31044,7 @@ function TeamTestimonialStats({
31694
31044
  socialLinksClassName,
31695
31045
  optixFlowConfig
31696
31046
  }) {
31697
- const renderMembers = React8.useMemo(() => {
31047
+ const renderMembers = React32.useMemo(() => {
31698
31048
  if (membersSlot) return membersSlot;
31699
31049
  if (!members || members.length === 0) return null;
31700
31050
  return members.map((member) => /* @__PURE__ */ jsx(
@@ -35854,7 +35204,7 @@ function BlogGridAuthorCardsComponent({
35854
35204
  pattern,
35855
35205
  patternOpacity
35856
35206
  }) {
35857
- const viewAllActionContent = React8.useMemo(() => {
35207
+ const viewAllActionContent = React32.useMemo(() => {
35858
35208
  if (viewAllSlot) return viewAllSlot;
35859
35209
  if (!viewAllAction) return null;
35860
35210
  const {
@@ -35879,7 +35229,7 @@ function BlogGridAuthorCardsComponent({
35879
35229
  }
35880
35230
  );
35881
35231
  }, [viewAllSlot, viewAllAction]);
35882
- const postsContent = React8.useMemo(() => {
35232
+ const postsContent = React32.useMemo(() => {
35883
35233
  if (postsSlot) return postsSlot;
35884
35234
  if (!posts || posts.length === 0) return null;
35885
35235
  return posts.map((post) => {
@@ -36000,7 +35350,7 @@ function BlogCardsTaglineCta({
36000
35350
  pattern,
36001
35351
  patternOpacity
36002
35352
  }) {
36003
- const ctaActionContent = React8.useMemo(() => {
35353
+ const ctaActionContent = React32.useMemo(() => {
36004
35354
  if (ctaSlot) return ctaSlot;
36005
35355
  if (!ctaAction) return null;
36006
35356
  const {
@@ -36028,7 +35378,7 @@ function BlogCardsTaglineCta({
36028
35378
  }
36029
35379
  );
36030
35380
  }, [ctaSlot, ctaAction, ctaClassName]);
36031
- const postsContent = React8.useMemo(() => {
35381
+ const postsContent = React32.useMemo(() => {
36032
35382
  if (postsSlot) return postsSlot;
36033
35383
  if (!posts || posts.length === 0) return null;
36034
35384
  return posts.map((post) => {
@@ -36174,7 +35524,7 @@ function BlogCardsReadTime({
36174
35524
  pattern,
36175
35525
  patternOpacity
36176
35526
  }) {
36177
- const renderedViewAllAction = React8.useMemo(() => {
35527
+ const renderedViewAllAction = React32.useMemo(() => {
36178
35528
  if (viewAllSlot) return viewAllSlot;
36179
35529
  if (!viewAllAction) return null;
36180
35530
  const {
@@ -36191,7 +35541,7 @@ function BlogCardsReadTime({
36191
35541
  iconAfter
36192
35542
  ] }) });
36193
35543
  }, [viewAllSlot, viewAllAction]);
36194
- const renderedPosts = React8.useMemo(() => {
35544
+ const renderedPosts = React32.useMemo(() => {
36195
35545
  if (postsSlot) return postsSlot;
36196
35546
  if (!posts || posts.length === 0) return null;
36197
35547
  return posts.map((post) => {
@@ -36328,7 +35678,7 @@ function BlogCategoryOverlay({
36328
35678
  pattern,
36329
35679
  patternOpacity
36330
35680
  }) {
36331
- const viewAllActionContent = React8.useMemo(() => {
35681
+ const viewAllActionContent = React32.useMemo(() => {
36332
35682
  if (viewAllSlot) return viewAllSlot;
36333
35683
  if (!viewAllAction) return null;
36334
35684
  const {
@@ -36356,7 +35706,7 @@ function BlogCategoryOverlay({
36356
35706
  }
36357
35707
  );
36358
35708
  }, [viewAllSlot, viewAllAction, viewAllClassName]);
36359
- const postsContent = React8.useMemo(() => {
35709
+ const postsContent = React32.useMemo(() => {
36360
35710
  if (postsSlot) return postsSlot;
36361
35711
  if (!posts || posts.length === 0) return null;
36362
35712
  return posts.map((post) => {
@@ -36504,7 +35854,7 @@ function BlogFeaturedPopular({
36504
35854
  }) {
36505
35855
  const featuredPost = posts?.[0];
36506
35856
  const popularPosts = posts?.slice(1);
36507
- const renderedFeaturedPost = React8.useMemo(() => {
35857
+ const renderedFeaturedPost = React32.useMemo(() => {
36508
35858
  if (featuredSlot) return featuredSlot;
36509
35859
  if (!featuredPost) return null;
36510
35860
  const postHref = featuredPost.href || featuredPost.url || featuredPost.link;
@@ -36556,7 +35906,7 @@ function BlogFeaturedPopular({
36556
35906
  featuredContentClassName,
36557
35907
  optixFlowConfig
36558
35908
  ]);
36559
- const renderedPopularPosts = React8.useMemo(() => {
35909
+ const renderedPopularPosts = React32.useMemo(() => {
36560
35910
  if (postsSlot) return postsSlot;
36561
35911
  if (!popularPosts || popularPosts.length === 0) return null;
36562
35912
  return popularPosts.map((post) => {
@@ -36673,7 +36023,7 @@ function BlogRelatedArticles({
36673
36023
  pattern,
36674
36024
  patternOpacity
36675
36025
  }) {
36676
- const renderedSeeAllAction = React8.useMemo(() => {
36026
+ const renderedSeeAllAction = React32.useMemo(() => {
36677
36027
  if (seeAllSlot) return seeAllSlot;
36678
36028
  if (!seeAllAction) return null;
36679
36029
  const {
@@ -36702,7 +36052,7 @@ function BlogRelatedArticles({
36702
36052
  }
36703
36053
  );
36704
36054
  }, [seeAllSlot, seeAllAction, seeAllClassName]);
36705
- const renderedArticles = React8.useMemo(() => {
36055
+ const renderedArticles = React32.useMemo(() => {
36706
36056
  if (articlesSlot) return articlesSlot;
36707
36057
  if (!articles || articles.length === 0) return null;
36708
36058
  return articles.map((item) => {
@@ -36995,7 +36345,7 @@ function BlogHorizontalCards({
36995
36345
  pattern,
36996
36346
  patternOpacity
36997
36347
  }) {
36998
- const ctaContent = React8.useMemo(() => {
36348
+ const ctaContent = React32.useMemo(() => {
36999
36349
  if (ctaSlot) return ctaSlot;
37000
36350
  if (!ctaAction) return null;
37001
36351
  const {
@@ -37020,7 +36370,7 @@ function BlogHorizontalCards({
37020
36370
  }
37021
36371
  );
37022
36372
  }, [ctaSlot, ctaAction]);
37023
- const postsContent = React8.useMemo(() => {
36373
+ const postsContent = React32.useMemo(() => {
37024
36374
  if (postsSlot) return postsSlot;
37025
36375
  if (!posts || posts.length === 0) return null;
37026
36376
  return posts.map((post) => {
@@ -37242,7 +36592,7 @@ function Label({
37242
36592
  );
37243
36593
  }
37244
36594
  var POSTS_PER_PAGE = 6;
37245
- var BlogCard = React8.memo(function BlogCard2({
36595
+ var BlogCard = React32.memo(function BlogCard2({
37246
36596
  post,
37247
36597
  optixFlowConfig,
37248
36598
  className
@@ -37281,7 +36631,7 @@ var BlogCard = React8.memo(function BlogCard2({
37281
36631
  ] })
37282
36632
  ] }) });
37283
36633
  });
37284
- var FilterForm = React8.memo(function FilterForm2({
36634
+ var FilterForm = React32.memo(function FilterForm2({
37285
36635
  categories,
37286
36636
  selectedCategories,
37287
36637
  onCategoryChange,
@@ -37314,7 +36664,7 @@ var FilterForm = React8.memo(function FilterForm2({
37314
36664
  }
37315
36665
  );
37316
36666
  });
37317
- var BreadcrumbBlog = React8.memo(function BreadcrumbBlog2({
36667
+ var BreadcrumbBlog = React32.memo(function BreadcrumbBlog2({
37318
36668
  breadcrumb
37319
36669
  }) {
37320
36670
  return /* @__PURE__ */ jsx(Breadcrumb, { children: /* @__PURE__ */ jsx(BreadcrumbList, { children: breadcrumb.map((item, i) => {
@@ -37396,12 +36746,12 @@ function BlogFilteredResultsComponent({
37396
36746
  }, [posts, selectedCategories]);
37397
36747
  const postsToDisplay = filteredPosts.length > 0 ? filteredPosts : posts || [];
37398
36748
  const hasMore = visibleCount < postsToDisplay.length;
37399
- const breadcrumbContent = React8.useMemo(() => {
36749
+ const breadcrumbContent = React32.useMemo(() => {
37400
36750
  if (breadcrumbSlot) return breadcrumbSlot;
37401
36751
  if (!breadcrumb || breadcrumb.length === 0) return null;
37402
36752
  return /* @__PURE__ */ jsx(BreadcrumbBlog, { breadcrumb });
37403
36753
  }, [breadcrumbSlot, breadcrumb]);
37404
- const primaryPostContent = React8.useMemo(() => {
36754
+ const primaryPostContent = React32.useMemo(() => {
37405
36755
  if (primaryPostSlot) return primaryPostSlot;
37406
36756
  if (!primaryPost) return null;
37407
36757
  return /* @__PURE__ */ jsx(
@@ -37413,7 +36763,7 @@ function BlogFilteredResultsComponent({
37413
36763
  }
37414
36764
  );
37415
36765
  }, [primaryPostSlot, primaryPost, optixFlowConfig, postCardClassName]);
37416
- const categoriesContent = React8.useMemo(() => {
36766
+ const categoriesContent = React32.useMemo(() => {
37417
36767
  if (categoriesSlot) return categoriesSlot;
37418
36768
  if (!categories || categories.length === 0) return null;
37419
36769
  return /* @__PURE__ */ jsx(
@@ -37432,7 +36782,7 @@ function BlogFilteredResultsComponent({
37432
36782
  handleCategoryChange,
37433
36783
  categoriesClassName
37434
36784
  ]);
37435
- const postsContent = React8.useMemo(() => {
36785
+ const postsContent = React32.useMemo(() => {
37436
36786
  if (postsSlot) return postsSlot;
37437
36787
  return postsToDisplay.slice(0, visibleCount).map((post) => {
37438
36788
  const postKey = post.id || String(post.title) || Math.random().toString();
@@ -37453,7 +36803,7 @@ function BlogFilteredResultsComponent({
37453
36803
  optixFlowConfig,
37454
36804
  postCardClassName
37455
36805
  ]);
37456
- const loadMoreContent = React8.useMemo(() => {
36806
+ const loadMoreContent = React32.useMemo(() => {
37457
36807
  if (loadMoreSlot) return loadMoreSlot;
37458
36808
  if (!loadMoreAction || !hasMore) return null;
37459
36809
  const {
@@ -37580,7 +36930,7 @@ function BlogMasonryFeaturedComponent({
37580
36930
  }) {
37581
36931
  const featuredPost = posts?.[0];
37582
36932
  const otherPosts = posts?.slice(1);
37583
- const featuredPostContent = React8.useMemo(() => {
36933
+ const featuredPostContent = React32.useMemo(() => {
37584
36934
  if (featuredSlot) return featuredSlot;
37585
36935
  if (!featuredPost) return null;
37586
36936
  const postHref = featuredPost.href || featuredPost.url || featuredPost.link;
@@ -37630,7 +36980,7 @@ function BlogMasonryFeaturedComponent({
37630
36980
  featuredImageClassName,
37631
36981
  optixFlowConfig
37632
36982
  ]);
37633
- const otherPostsContent = React8.useMemo(() => {
36983
+ const otherPostsContent = React32.useMemo(() => {
37634
36984
  if (postsSlot) return postsSlot;
37635
36985
  if (!otherPosts || otherPosts.length === 0) return null;
37636
36986
  return otherPosts.map((post) => {
@@ -37721,7 +37071,7 @@ function BlogHorizontalTimelineComponent({
37721
37071
  pattern,
37722
37072
  patternOpacity
37723
37073
  }) {
37724
- const renderPosts = React8.useMemo(() => {
37074
+ const renderPosts = React32.useMemo(() => {
37725
37075
  if (postsSlot) return postsSlot;
37726
37076
  if (!posts || posts.length === 0) return null;
37727
37077
  return posts.map((post, index) => {
@@ -37846,7 +37196,7 @@ function BlogGridNinePosts({
37846
37196
  pattern,
37847
37197
  patternOpacity
37848
37198
  }) {
37849
- const renderedCtaAction = React8.useMemo(() => {
37199
+ const renderedCtaAction = React32.useMemo(() => {
37850
37200
  if (ctaSlot) return ctaSlot;
37851
37201
  if (!ctaAction) return null;
37852
37202
  const {
@@ -37871,7 +37221,7 @@ function BlogGridNinePosts({
37871
37221
  }
37872
37222
  );
37873
37223
  }, [ctaSlot, ctaAction]);
37874
- const renderedPosts = React8.useMemo(() => {
37224
+ const renderedPosts = React32.useMemo(() => {
37875
37225
  if (postsSlot) return postsSlot;
37876
37226
  if (!posts || posts.length === 0) return null;
37877
37227
  return posts.map((post) => {
@@ -37969,9 +37319,9 @@ var AppleCarousel = ({
37969
37319
  className,
37970
37320
  containerClassName
37971
37321
  }) => {
37972
- const carouselRef = React8__default.useRef(null);
37973
- const [canScrollLeft, setCanScrollLeft] = React8__default.useState(false);
37974
- const [canScrollRight, setCanScrollRight] = React8__default.useState(true);
37322
+ const carouselRef = React32__default.useRef(null);
37323
+ const [canScrollLeft, setCanScrollLeft] = React32__default.useState(false);
37324
+ const [canScrollRight, setCanScrollRight] = React32__default.useState(true);
37975
37325
  const [currentIndex, setCurrentIndex] = useState(0);
37976
37326
  useEffect(() => {
37977
37327
  if (carouselRef.current) {
@@ -38211,7 +37561,7 @@ function BlogCarouselAppleComponent({
38211
37561
  containerClassName,
38212
37562
  cardClassName
38213
37563
  }) {
38214
- const carouselCards = React8.useMemo(() => {
37564
+ const carouselCards = React32.useMemo(() => {
38215
37565
  if (!posts || posts.length === 0) return [];
38216
37566
  return posts.map(
38217
37567
  (post, idx) => ({
@@ -38223,7 +37573,7 @@ function BlogCarouselAppleComponent({
38223
37573
  })
38224
37574
  );
38225
37575
  }, [posts]);
38226
- const cardElements = React8.useMemo(() => {
37576
+ const cardElements = React32.useMemo(() => {
38227
37577
  if (!posts || posts.length === 0) return [];
38228
37578
  return carouselCards.map((card, index) => {
38229
37579
  const post = posts[index];
@@ -38308,7 +37658,7 @@ function ArticleHeroProseComponent({
38308
37658
  description,
38309
37659
  authorImage
38310
37660
  } = post ?? {};
38311
- const authorContent = React8.useMemo(() => {
37661
+ const authorContent = React32.useMemo(() => {
38312
37662
  if (authorSlot) return authorSlot;
38313
37663
  if (!authorName) return null;
38314
37664
  return /* @__PURE__ */ jsxs(
@@ -38342,7 +37692,7 @@ function ArticleHeroProseComponent({
38342
37692
  dateFormat,
38343
37693
  authorClassName
38344
37694
  ]);
38345
- const heroMediaContent = React8.useMemo(() => {
37695
+ const heroMediaContent = React32.useMemo(() => {
38346
37696
  if (heroMediaSlot) return heroMediaSlot;
38347
37697
  if (!image) return null;
38348
37698
  return /* @__PURE__ */ jsx(
@@ -38448,7 +37798,7 @@ function ArticleSidebarStickyComponent({
38448
37798
  patternOpacity,
38449
37799
  sidebarContent
38450
37800
  }) {
38451
- const backLinkContent = React8.useMemo(() => {
37801
+ const backLinkContent = React32.useMemo(() => {
38452
37802
  if (backLinkSlot) return backLinkSlot;
38453
37803
  if (!backHref && !backText) return null;
38454
37804
  return /* @__PURE__ */ jsxs(
@@ -38466,7 +37816,7 @@ function ArticleSidebarStickyComponent({
38466
37816
  }
38467
37817
  );
38468
37818
  }, [backLinkSlot, backHref, backText, backIcon, backLinkClassName]);
38469
- const renderAuthor = React8.useCallback(
37819
+ const renderAuthor = React32.useCallback(
38470
37820
  (isMobile = false) => {
38471
37821
  if (authorSlot) return authorSlot;
38472
37822
  if (!authorName) return null;
@@ -38498,7 +37848,7 @@ function ArticleSidebarStickyComponent({
38498
37848
  authorClassName
38499
37849
  ]
38500
37850
  );
38501
- const heroMediaContent = React8.useMemo(() => {
37851
+ const heroMediaContent = React32.useMemo(() => {
38502
37852
  if (heroMediaSlot) return heroMediaSlot;
38503
37853
  if (!heroImageSrc) return null;
38504
37854
  return /* @__PURE__ */ jsx(
@@ -38609,10 +37959,10 @@ function ArticleTocSidebarComponent({
38609
37959
  patternOpacity,
38610
37960
  patternClassName
38611
37961
  }) {
38612
- const [activeSection, setActiveSection] = React8.useState(
37962
+ const [activeSection, setActiveSection] = React32.useState(
38613
37963
  sections?.[0]?.id || ""
38614
37964
  );
38615
- React8.useEffect(() => {
37965
+ React32.useEffect(() => {
38616
37966
  if (!enableTocTracking || !sections || sections.length === 0) return;
38617
37967
  const observer = new IntersectionObserver(
38618
37968
  (entries) => {
@@ -38630,12 +37980,12 @@ function ArticleTocSidebarComponent({
38630
37980
  });
38631
37981
  return () => observer.disconnect();
38632
37982
  }, [sections, enableTocTracking]);
38633
- const categoryContent = React8.useMemo(() => {
37983
+ const categoryContent = React32.useMemo(() => {
38634
37984
  if (categorySlot) return categorySlot;
38635
37985
  if (!category) return null;
38636
37986
  return /* @__PURE__ */ jsx(Badge, { children: category });
38637
37987
  }, [categorySlot, category]);
38638
- const authorContent = React8.useMemo(() => {
37988
+ const authorContent = React32.useMemo(() => {
38639
37989
  if (authorSlot) return authorSlot;
38640
37990
  if (!authorName) return null;
38641
37991
  return /* @__PURE__ */ jsxs("div", { className: cn("mt-6 flex items-center gap-4", authorClassName), children: [
@@ -38670,7 +38020,7 @@ function ArticleTocSidebarComponent({
38670
38020
  readTime,
38671
38021
  authorClassName
38672
38022
  ]);
38673
- const heroMediaContent = React8.useMemo(() => {
38023
+ const heroMediaContent = React32.useMemo(() => {
38674
38024
  if (heroMediaSlot) return heroMediaSlot;
38675
38025
  if (!heroImageSrc) return null;
38676
38026
  return /* @__PURE__ */ jsx(
@@ -38692,7 +38042,7 @@ function ArticleTocSidebarComponent({
38692
38042
  heroImageClassName,
38693
38043
  optixFlowConfig
38694
38044
  ]);
38695
- const tocContent = React8.useMemo(() => {
38045
+ const tocContent = React32.useMemo(() => {
38696
38046
  if (tocSlot) return tocSlot;
38697
38047
  if (!sections || sections.length === 0) return null;
38698
38048
  return /* @__PURE__ */ jsxs("div", { className: cn("rounded-lg border p-4", tocClassName), children: [
@@ -38700,7 +38050,7 @@ function ArticleTocSidebarComponent({
38700
38050
  /* @__PURE__ */ jsx("nav", { className: "space-y-2", children: sections.map((section) => {
38701
38051
  const isActive = activeSection === section.id;
38702
38052
  if (renderSectionLink) {
38703
- return /* @__PURE__ */ jsx(React8.Fragment, { children: renderSectionLink(section, isActive) }, section.id);
38053
+ return /* @__PURE__ */ jsx(React32.Fragment, { children: renderSectionLink(section, isActive) }, section.id);
38704
38054
  }
38705
38055
  return /* @__PURE__ */ jsx(
38706
38056
  Pressable,
@@ -38717,7 +38067,7 @@ function ArticleTocSidebarComponent({
38717
38067
  }) })
38718
38068
  ] });
38719
38069
  }, [tocSlot, sections, activeSection, renderSectionLink, tocClassName]);
38720
- const ctaContent = React8.useMemo(() => {
38070
+ const ctaContent = React32.useMemo(() => {
38721
38071
  if (ctaSlot) return ctaSlot;
38722
38072
  if (!ctaTitle && !ctaDescription && (!ctaActions || ctaActions.length === 0))
38723
38073
  return null;
@@ -38831,11 +38181,11 @@ function ArticleBreadcrumbSocialComponent({
38831
38181
  patternOpacity,
38832
38182
  patternClassName
38833
38183
  }) {
38834
- const [activeSection, setActiveSection] = React8.useState(
38184
+ const [activeSection, setActiveSection] = React32.useState(
38835
38185
  sections?.[0]?.id || ""
38836
38186
  );
38837
- const [showBackToTop, setShowBackToTop] = React8.useState(false);
38838
- React8.useEffect(() => {
38187
+ const [showBackToTop, setShowBackToTop] = React32.useState(false);
38188
+ React32.useEffect(() => {
38839
38189
  if (!enableTocTracking || !sections || sections.length === 0) return;
38840
38190
  const observer = new IntersectionObserver(
38841
38191
  (entries) => {
@@ -38853,7 +38203,7 @@ function ArticleBreadcrumbSocialComponent({
38853
38203
  });
38854
38204
  return () => observer.disconnect();
38855
38205
  }, [sections, enableTocTracking]);
38856
- React8.useEffect(() => {
38206
+ React32.useEffect(() => {
38857
38207
  if (!enableBackToTop) return;
38858
38208
  const handleScroll = () => {
38859
38209
  setShowBackToTop(window.scrollY > 400);
@@ -38861,15 +38211,15 @@ function ArticleBreadcrumbSocialComponent({
38861
38211
  window.addEventListener("scroll", handleScroll);
38862
38212
  return () => window.removeEventListener("scroll", handleScroll);
38863
38213
  }, [enableBackToTop]);
38864
- const scrollToTop = React8.useCallback(() => {
38214
+ const scrollToTop = React32.useCallback(() => {
38865
38215
  window.scrollTo({ top: 0, behavior: "smooth" });
38866
38216
  }, []);
38867
- const breadcrumbsContent = React8.useMemo(() => {
38217
+ const breadcrumbsContent = React32.useMemo(() => {
38868
38218
  if (breadcrumbsSlot) return breadcrumbsSlot;
38869
38219
  if (!breadcrumbs || breadcrumbs.length === 0) return null;
38870
38220
  return /* @__PURE__ */ jsx(Breadcrumb, { className: cn("mb-8", breadcrumbClassName), children: /* @__PURE__ */ jsxs(BreadcrumbList, { children: [
38871
38221
  /* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: "#", children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/home", size: 16 }) }) }) }),
38872
- breadcrumbs.map((crumb, index) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
38222
+ breadcrumbs.map((crumb, index) => /* @__PURE__ */ jsxs(React32.Fragment, { children: [
38873
38223
  /* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
38874
38224
  /* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: crumb.href, children: crumb.label }) }) })
38875
38225
  ] }, index)),
@@ -38879,7 +38229,7 @@ function ArticleBreadcrumbSocialComponent({
38879
38229
  ] })
38880
38230
  ] }) });
38881
38231
  }, [breadcrumbsSlot, breadcrumbs, currentPage, breadcrumbClassName]);
38882
- const authorContent = React8.useMemo(() => {
38232
+ const authorContent = React32.useMemo(() => {
38883
38233
  if (authorSlot) return authorSlot;
38884
38234
  if (!author) return null;
38885
38235
  return /* @__PURE__ */ jsxs(
@@ -38902,7 +38252,7 @@ function ArticleBreadcrumbSocialComponent({
38902
38252
  }
38903
38253
  );
38904
38254
  }, [authorSlot, author, publishDate, readTime, authorClassName]);
38905
- const heroMediaContent = React8.useMemo(() => {
38255
+ const heroMediaContent = React32.useMemo(() => {
38906
38256
  if (heroMediaSlot) return heroMediaSlot;
38907
38257
  if (!heroImageSrc) return null;
38908
38258
  return /* @__PURE__ */ jsx(
@@ -38924,7 +38274,7 @@ function ArticleBreadcrumbSocialComponent({
38924
38274
  heroImageClassName,
38925
38275
  optixFlowConfig
38926
38276
  ]);
38927
- const tocContent = React8.useMemo(() => {
38277
+ const tocContent = React32.useMemo(() => {
38928
38278
  if (tocSlot) return tocSlot;
38929
38279
  if (!sections || sections.length === 0) return null;
38930
38280
  return /* @__PURE__ */ jsxs("div", { className: cn("rounded-lg border p-4", tocClassName), children: [
@@ -38932,7 +38282,7 @@ function ArticleBreadcrumbSocialComponent({
38932
38282
  /* @__PURE__ */ jsx("nav", { className: "space-y-2", children: sections.map((section) => {
38933
38283
  const isActive = activeSection === section.id;
38934
38284
  if (renderSectionLink) {
38935
- return /* @__PURE__ */ jsx(React8.Fragment, { children: renderSectionLink(section, isActive) }, section.id);
38285
+ return /* @__PURE__ */ jsx(React32.Fragment, { children: renderSectionLink(section, isActive) }, section.id);
38936
38286
  }
38937
38287
  return /* @__PURE__ */ jsx(
38938
38288
  Pressable,
@@ -39039,11 +38389,11 @@ function ArticleCompactTocComponent({
39039
38389
  patternOpacity,
39040
38390
  patternClassName
39041
38391
  }) {
39042
- const [activeSection, setActiveSection] = React8.useState(
38392
+ const [activeSection, setActiveSection] = React32.useState(
39043
38393
  sections?.[0]?.id || ""
39044
38394
  );
39045
- const [isTocOpen, setIsTocOpen] = React8.useState(false);
39046
- React8.useEffect(() => {
38395
+ const [isTocOpen, setIsTocOpen] = React32.useState(false);
38396
+ React32.useEffect(() => {
39047
38397
  if (!enableTocTracking) return;
39048
38398
  const observer = new IntersectionObserver(
39049
38399
  (entries) => {
@@ -39061,12 +38411,12 @@ function ArticleCompactTocComponent({
39061
38411
  });
39062
38412
  return () => observer.disconnect();
39063
38413
  }, [sections, enableTocTracking]);
39064
- const breadcrumbsContent = React8.useMemo(() => {
38414
+ const breadcrumbsContent = React32.useMemo(() => {
39065
38415
  if (breadcrumbsSlot) return breadcrumbsSlot;
39066
38416
  if (!breadcrumbs && !currentPage) return null;
39067
38417
  return /* @__PURE__ */ jsx(Breadcrumb, { className: cn("mb-6 md:mb-20", breadcrumbClassName), children: /* @__PURE__ */ jsxs(BreadcrumbList, { children: [
39068
38418
  /* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: "#", children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/home", size: 16 }) }) }) }),
39069
- breadcrumbs?.map((crumb, index) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
38419
+ breadcrumbs?.map((crumb, index) => /* @__PURE__ */ jsxs(React32.Fragment, { children: [
39070
38420
  /* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
39071
38421
  /* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: crumb.href, children: crumb.label }) }) })
39072
38422
  ] }, index)),
@@ -39074,13 +38424,13 @@ function ArticleCompactTocComponent({
39074
38424
  /* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbPage, { children: currentPage }) })
39075
38425
  ] }) });
39076
38426
  }, [breadcrumbsSlot, breadcrumbs, currentPage, breadcrumbClassName]);
39077
- const renderTocLinks = React8.useCallback(
38427
+ const renderTocLinks = React32.useCallback(
39078
38428
  (onLinkClick) => {
39079
38429
  if (!sections) return null;
39080
38430
  return sections.map((section) => {
39081
38431
  const isActive = activeSection === section.id;
39082
38432
  if (renderSectionLink) {
39083
- return /* @__PURE__ */ jsx(React8.Fragment, { children: renderSectionLink(section, isActive) }, section.id);
38433
+ return /* @__PURE__ */ jsx(React32.Fragment, { children: renderSectionLink(section, isActive) }, section.id);
39084
38434
  }
39085
38435
  return /* @__PURE__ */ jsx(
39086
38436
  Pressable,
@@ -39099,7 +38449,7 @@ function ArticleCompactTocComponent({
39099
38449
  },
39100
38450
  [sections, activeSection, renderSectionLink]
39101
38451
  );
39102
- const tocContent = React8.useMemo(() => {
38452
+ const tocContent = React32.useMemo(() => {
39103
38453
  if (tocSlot) return tocSlot;
39104
38454
  if (!sections || sections.length === 0) return null;
39105
38455
  return /* @__PURE__ */ jsx("div", { className: "mb-8 lg:hidden", children: /* @__PURE__ */ jsxs(Popover, { open: isTocOpen, onOpenChange: setIsTocOpen, children: [
@@ -39133,14 +38483,14 @@ function ArticleCompactTocComponent({
39133
38483
  ] }) });
39134
38484
  }, [tocSlot, sections, isTocOpen, tocClassName, renderTocLinks]);
39135
38485
  const hasDesktopToc = !tocSlot && sections && sections.length > 0;
39136
- const desktopTocContent = React8.useMemo(() => {
38486
+ const desktopTocContent = React32.useMemo(() => {
39137
38487
  if (!hasDesktopToc) return null;
39138
38488
  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: [
39139
38489
  /* @__PURE__ */ jsx("span", { className: "mb-3 block text-sm font-semibold", children: "Table of Contents" }),
39140
38490
  renderTocLinks()
39141
38491
  ] }) });
39142
38492
  }, [hasDesktopToc, tocClassName, renderTocLinks]);
39143
- const heroMediaContent = React8.useMemo(() => {
38493
+ const heroMediaContent = React32.useMemo(() => {
39144
38494
  if (heroMediaSlot) return heroMediaSlot;
39145
38495
  if (!heroImageSrc) return null;
39146
38496
  return /* @__PURE__ */ jsx(
@@ -39262,10 +38612,10 @@ function ArticleChaptersAuthorComponent({
39262
38612
  pattern,
39263
38613
  patternOpacity
39264
38614
  }) {
39265
- const [activeChapter, setActiveChapter] = React8.useState(
38615
+ const [activeChapter, setActiveChapter] = React32.useState(
39266
38616
  chapters?.[0]?.id || ""
39267
38617
  );
39268
- React8.useEffect(() => {
38618
+ React32.useEffect(() => {
39269
38619
  if (!enableChapterTracking || !chapters || chapters.length === 0) return;
39270
38620
  const observer = new IntersectionObserver(
39271
38621
  (entries) => {
@@ -39283,12 +38633,12 @@ function ArticleChaptersAuthorComponent({
39283
38633
  });
39284
38634
  return () => observer.disconnect();
39285
38635
  }, [chapters, enableChapterTracking]);
39286
- const breadcrumbsContent = React8.useMemo(() => {
38636
+ const breadcrumbsContent = React32.useMemo(() => {
39287
38637
  if (breadcrumbsSlot) return breadcrumbsSlot;
39288
38638
  if (!breadcrumbs || breadcrumbs.length === 0) return null;
39289
38639
  return /* @__PURE__ */ jsx(Breadcrumb, { className: cn("mb-8 md:mb-20", breadcrumbClassName), children: /* @__PURE__ */ jsxs(BreadcrumbList, { children: [
39290
38640
  /* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: "#", children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/home", size: 16 }) }) }) }),
39291
- breadcrumbs.map((crumb, index) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
38641
+ breadcrumbs.map((crumb, index) => /* @__PURE__ */ jsxs(React32.Fragment, { children: [
39292
38642
  /* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
39293
38643
  /* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: crumb.href, children: crumb.label }) }) })
39294
38644
  ] }, index)),
@@ -39296,7 +38646,7 @@ function ArticleChaptersAuthorComponent({
39296
38646
  /* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbPage, { children: typeof currentPage === "string" ? currentPage : currentPage }) })
39297
38647
  ] }) });
39298
38648
  }, [breadcrumbsSlot, breadcrumbs, currentPage, breadcrumbClassName]);
39299
- const chaptersNavContent = React8.useMemo(() => {
38649
+ const chaptersNavContent = React32.useMemo(() => {
39300
38650
  if (chaptersSlot) return chaptersSlot;
39301
38651
  if (!chapters || chapters.length === 0) return null;
39302
38652
  return /* @__PURE__ */ jsxs("div", { className: cn("rounded-lg border p-4", chaptersClassName), children: [
@@ -39304,7 +38654,7 @@ function ArticleChaptersAuthorComponent({
39304
38654
  /* @__PURE__ */ jsx("nav", { className: "space-y-2", children: chapters.map((chapter) => {
39305
38655
  const isActive = activeChapter === chapter.id;
39306
38656
  if (renderChapterLink) {
39307
- return /* @__PURE__ */ jsx(React8.Fragment, { children: renderChapterLink(chapter, isActive) }, chapter.id);
38657
+ return /* @__PURE__ */ jsx(React32.Fragment, { children: renderChapterLink(chapter, isActive) }, chapter.id);
39308
38658
  }
39309
38659
  return /* @__PURE__ */ jsxs(
39310
38660
  Pressable,
@@ -39338,7 +38688,7 @@ function ArticleChaptersAuthorComponent({
39338
38688
  renderChapterLink,
39339
38689
  chaptersClassName
39340
38690
  ]);
39341
- const authorCardContent = React8.useMemo(() => {
38691
+ const authorCardContent = React32.useMemo(() => {
39342
38692
  if (authorSlot) return authorSlot;
39343
38693
  if (!author) return null;
39344
38694
  let socialLinksContent = null;
@@ -39387,7 +38737,7 @@ function ArticleChaptersAuthorComponent({
39387
38737
  socialLinksContent
39388
38738
  ] });
39389
38739
  }, [authorSlot, author, authorClassName]);
39390
- const heroMediaContent = React8.useMemo(() => {
38740
+ const heroMediaContent = React32.useMemo(() => {
39391
38741
  if (heroMediaSlot) return heroMediaSlot;
39392
38742
  if (!heroImageSrc) return null;
39393
38743
  return /* @__PURE__ */ jsx(
@@ -39409,7 +38759,7 @@ function ArticleChaptersAuthorComponent({
39409
38759
  heroImageClassName,
39410
38760
  optixFlowConfig
39411
38761
  ]);
39412
- const conclusionContent = React8.useMemo(() => {
38762
+ const conclusionContent = React32.useMemo(() => {
39413
38763
  if (conclusionSlot) return conclusionSlot;
39414
38764
  if (!conclusionTitle && !conclusionDescription && (!conclusionActions || conclusionActions.length === 0))
39415
38765
  return null;
@@ -39551,7 +38901,7 @@ function ArticleSplitAnimatedComponent({
39551
38901
  spacing = "lg"
39552
38902
  }) {
39553
38903
  const MotionWrapper = enableAnimations ? motion.div : "div";
39554
- const categoryContent = React8.useMemo(() => {
38904
+ const categoryContent = React32.useMemo(() => {
39555
38905
  if (categorySlot) return categorySlot;
39556
38906
  if (!category) return null;
39557
38907
  return /* @__PURE__ */ jsx(
@@ -39566,7 +38916,7 @@ function ArticleSplitAnimatedComponent({
39566
38916
  }
39567
38917
  );
39568
38918
  }, [categorySlot, category, categoryHref, categoryClassName]);
39569
- const heroMediaContent = React8.useMemo(() => {
38919
+ const heroMediaContent = React32.useMemo(() => {
39570
38920
  if (heroMediaSlot) return heroMediaSlot;
39571
38921
  if (!image) return null;
39572
38922
  return /* @__PURE__ */ jsx(
@@ -39579,7 +38929,7 @@ function ArticleSplitAnimatedComponent({
39579
38929
  }
39580
38930
  );
39581
38931
  }, [heroMediaSlot, image, imageAlt, title, optixFlowConfig]);
39582
- const authorContent = React8.useMemo(() => {
38932
+ const authorContent = React32.useMemo(() => {
39583
38933
  if (authorSlot) return authorSlot;
39584
38934
  if (!authorName) return null;
39585
38935
  return /* @__PURE__ */ jsxs("div", { className: cn("mt-8 flex items-center gap-4", authorClassName), children: [
@@ -39607,7 +38957,7 @@ function ArticleSplitAnimatedComponent({
39607
38957
  authorRole,
39608
38958
  authorClassName
39609
38959
  ]);
39610
- const ctaContent = React8.useMemo(() => {
38960
+ const ctaContent = React32.useMemo(() => {
39611
38961
  if (ctaSlot) return ctaSlot;
39612
38962
  if (!ctaActions || ctaActions.length === 0) return null;
39613
38963
  return /* @__PURE__ */ jsx("div", { className: cn("mt-8 flex flex-wrap gap-3", ctaClassName), children: ctaActions.map((action, index) => {
@@ -41273,7 +40623,7 @@ function FaqSidebarNavigation({
41273
40623
  accordionTriggerClassName,
41274
40624
  accordionContentClassName
41275
40625
  }) {
41276
- const [activeCategory, setActiveCategory] = React8.useState(
40626
+ const [activeCategory, setActiveCategory] = React32.useState(
41277
40627
  categories && categories.length > 1 ? "all" : categories?.[0]?.id || ""
41278
40628
  );
41279
40629
  const filteredCategories = useMemo(() => {
@@ -42331,7 +41681,7 @@ function FaqSplitHero({
42331
41681
  }
42332
41682
  );
42333
41683
  }
42334
- var Controls = React8.memo(
41684
+ var Controls = React32.memo(
42335
41685
  ({
42336
41686
  handleNext,
42337
41687
  handlePrevious,
@@ -42362,7 +41712,7 @@ var Controls = React8.memo(
42362
41712
  ] });
42363
41713
  }
42364
41714
  );
42365
- var FeatureCard = React8.memo(
41715
+ var FeatureCard = React32.memo(
42366
41716
  ({ feature, isActive, onClick }) => {
42367
41717
  const variants2 = useMemo(
42368
41718
  () => ({
@@ -42471,7 +41821,7 @@ var FeatureCard = React8.memo(
42471
41821
  ) });
42472
41822
  }
42473
41823
  );
42474
- var FeaturesDesktop = React8.memo(
41824
+ var FeaturesDesktop = React32.memo(
42475
41825
  ({
42476
41826
  features,
42477
41827
  handleNext,
@@ -42505,7 +41855,7 @@ var FeaturesDesktop = React8.memo(
42505
41855
  ] });
42506
41856
  }
42507
41857
  );
42508
- var FeaturesMobile = React8.memo(
41858
+ var FeaturesMobile = React32.memo(
42509
41859
  ({
42510
41860
  features,
42511
41861
  handleNext,
@@ -42596,8 +41946,8 @@ function FeatureAnimatedCarousel({
42596
41946
  spacing = "py-12 md:py-32",
42597
41947
  containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8"
42598
41948
  }) {
42599
- const [activeIndex, setActiveIndex] = React8.useState(0);
42600
- const [direction, setDirection] = React8.useState(1);
41949
+ const [activeIndex, setActiveIndex] = React32.useState(0);
41950
+ const [direction, setDirection] = React32.useState(1);
42601
41951
  const handleNext = useCallback(() => {
42602
41952
  if (features && activeIndex < features.length - 1) {
42603
41953
  setDirection(1);
@@ -42826,7 +42176,7 @@ function FooterNewsletterContact({
42826
42176
  formSlot,
42827
42177
  newsletterFormClassName
42828
42178
  }) {
42829
- const linkSectionsContent = React8.useMemo(() => {
42179
+ const linkSectionsContent = React32.useMemo(() => {
42830
42180
  if (!footerLinks || footerLinks.length === 0) return null;
42831
42181
  return footerLinks.map((section, idx) => /* @__PURE__ */ jsxs("div", { children: [
42832
42182
  /* @__PURE__ */ jsx("h2", { className: "mb-6 text-sm font-medium uppercase leading-tight opacity-70", children: section.title }),
@@ -42840,7 +42190,7 @@ function FooterNewsletterContact({
42840
42190
  ) }, itemIdx)) })
42841
42191
  ] }, idx));
42842
42192
  }, [footerLinks]);
42843
- const contactDetailsContent = React8.useMemo(() => {
42193
+ const contactDetailsContent = React32.useMemo(() => {
42844
42194
  if (!contactDetails || contactDetails.length === 0) return null;
42845
42195
  return contactDetails.map((item, idx) => /* @__PURE__ */ jsxs("li", { className: "flex items-start gap-3", children: [
42846
42196
  /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center shrink-0 mt-1", children: /* @__PURE__ */ jsx(DynamicIcon, { name: item.icon, size: 16 }) }),
@@ -42854,7 +42204,7 @@ function FooterNewsletterContact({
42854
42204
  ) })
42855
42205
  ] }, idx));
42856
42206
  }, [contactDetails]);
42857
- const socialLinksContent = React8.useMemo(() => {
42207
+ const socialLinksContent = React32.useMemo(() => {
42858
42208
  if (!socialLinks || socialLinks.length === 0) return null;
42859
42209
  return socialLinks.map((social, idx) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
42860
42210
  SocialLinkIcon,
@@ -42868,7 +42218,7 @@ function FooterNewsletterContact({
42868
42218
  }
42869
42219
  ) }, idx));
42870
42220
  }, [socialLinks]);
42871
- const renderForm = React8.useMemo(() => {
42221
+ const renderForm = React32.useMemo(() => {
42872
42222
  if (formSlot) return formSlot;
42873
42223
  if (!formEngineSetup) return null;
42874
42224
  const defaultButtonAction = {
@@ -43013,7 +42363,7 @@ function FooterSplitImageAccordion({
43013
42363
  buttonAction,
43014
42364
  formSlot
43015
42365
  }) {
43016
- const renderForm = React8.useMemo(() => {
42366
+ const renderForm = React32.useMemo(() => {
43017
42367
  if (formSlot) return formSlot;
43018
42368
  if (!formEngineSetup) return null;
43019
42369
  const defaultButtonAction = {
@@ -43274,7 +42624,7 @@ function FooterAccordionSocial({
43274
42624
  patternClassName,
43275
42625
  formEngineSetup
43276
42626
  }) {
43277
- const renderForm = React8.useMemo(() => {
42627
+ const renderForm = React32.useMemo(() => {
43278
42628
  if (!formEngineSetup) return null;
43279
42629
  const action = {
43280
42630
  label: "",
@@ -43418,7 +42768,7 @@ function FooterInfoCardsAccordion({
43418
42768
  patternOpacity,
43419
42769
  optixFlowConfig
43420
42770
  }) {
43421
- const [email, setEmail] = React8.useState("");
42771
+ const [email, setEmail] = React32.useState("");
43422
42772
  (/* @__PURE__ */ new Date()).getFullYear();
43423
42773
  const handleSubmit = (e) => {
43424
42774
  e.preventDefault();
@@ -43723,13 +43073,13 @@ function CaseStudiesImageGrid({
43723
43073
  patternOpacity,
43724
43074
  optixFlowConfig
43725
43075
  }) {
43726
- const getGridClass = React8.useCallback((index) => {
43076
+ const getGridClass = React32.useCallback((index) => {
43727
43077
  if (index === 0 || index === 4) {
43728
43078
  return "row-span-2 aspect-square lg:aspect-auto";
43729
43079
  }
43730
43080
  return "aspect-3/2 md:aspect-2/1";
43731
43081
  }, []);
43732
- const renderedItems = React8.useMemo(() => {
43082
+ const renderedItems = React32.useMemo(() => {
43733
43083
  if (itemsSlot) return itemsSlot;
43734
43084
  if (!items || items.length === 0) return null;
43735
43085
  return items.map((item, index) => /* @__PURE__ */ jsxs(
@@ -43815,7 +43165,7 @@ function CaseStudiesTestimonialStats({
43815
43165
  patternOpacity,
43816
43166
  optixFlowConfig
43817
43167
  }) {
43818
- const renderedTestimonials = React8.useMemo(() => {
43168
+ const renderedTestimonials = React32.useMemo(() => {
43819
43169
  if (testimonialsSlot) return testimonialsSlot;
43820
43170
  if (!testimonials || testimonials.length === 0) return null;
43821
43171
  return testimonials.map((testimonial, index) => /* @__PURE__ */ jsxs("div", { className: testimonialItemClassName, children: [
@@ -44682,7 +44032,7 @@ function TestimonialsCarouselImage({
44682
44032
  }) {
44683
44033
  const [currentIndex, setCurrentIndex] = useState(0);
44684
44034
  const totalTestimonials = testimonials?.length ?? 0;
44685
- const autoPlayTimerRef = React8.useRef(
44035
+ const autoPlayTimerRef = React32.useRef(
44686
44036
  null
44687
44037
  );
44688
44038
  const resetAutoPlay = useCallback(() => {
@@ -45668,7 +45018,7 @@ function TestimonialsSliderMinimal({
45668
45018
  }) {
45669
45019
  const [currentIndex, setCurrentIndex] = useState(0);
45670
45020
  const totalTestimonials = testimonials?.length ?? 0;
45671
- const autoPlayTimerRef = React8.useRef(
45021
+ const autoPlayTimerRef = React32.useRef(
45672
45022
  null
45673
45023
  );
45674
45024
  const resetAutoPlay = useCallback(() => {
@@ -46879,7 +46229,7 @@ function TestimonialsAnimatedSplit({
46879
46229
  }) {
46880
46230
  const [currentIndex, setCurrentIndex] = useState(0);
46881
46231
  const totalTestimonials = testimonials?.length ?? 0;
46882
- const autoPlayTimerRef = React8.useRef(
46232
+ const autoPlayTimerRef = React32.useRef(
46883
46233
  null
46884
46234
  );
46885
46235
  const resetAutoPlay = useCallback(() => {
@@ -48111,7 +47461,7 @@ function CaseStudiesFeaturedBorder({
48111
47461
  patternOpacity,
48112
47462
  optixFlowConfig
48113
47463
  }) {
48114
- const renderedFeatured = React8.useMemo(() => {
47464
+ const renderedFeatured = React32.useMemo(() => {
48115
47465
  if (featuredSlot) return featuredSlot;
48116
47466
  if (!featuredCaseStudy) return null;
48117
47467
  return /* @__PURE__ */ jsxs(
@@ -48185,7 +47535,7 @@ function CaseStudiesFeaturedBorder({
48185
47535
  featuredImageClassName,
48186
47536
  optixFlowConfig
48187
47537
  ]);
48188
- const renderedCaseStudies = React8.useMemo(() => {
47538
+ const renderedCaseStudies = React32.useMemo(() => {
48189
47539
  if (caseStudiesSlot) return caseStudiesSlot;
48190
47540
  if (!caseStudies || caseStudies.length === 0) return null;
48191
47541
  return caseStudies.map((item, idx) => /* @__PURE__ */ jsxs(
@@ -48294,7 +47644,7 @@ function CaseStudiesStatsCard({
48294
47644
  patternOpacity,
48295
47645
  optixFlowConfig
48296
47646
  }) {
48297
- const renderedStats = React8.useMemo(() => {
47647
+ const renderedStats = React32.useMemo(() => {
48298
47648
  if (statsSlot) return statsSlot;
48299
47649
  if (!stats || stats.length === 0) return null;
48300
47650
  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: [
@@ -48302,7 +47652,7 @@ function CaseStudiesStatsCard({
48302
47652
  /* @__PURE__ */ jsx("div", { className: "text-sm font-medium text-muted-foreground", children: item.text })
48303
47653
  ] }, `stats-${i}`)) });
48304
47654
  }, [statsSlot, stats, statsClassName]);
48305
- const renderedAuthor = React8.useMemo(() => {
47655
+ const renderedAuthor = React32.useMemo(() => {
48306
47656
  if (authorSlot) return authorSlot;
48307
47657
  if (!author) return null;
48308
47658
  return /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-2.5", authorClassName), children: [
@@ -48316,7 +47666,7 @@ function CaseStudiesStatsCard({
48316
47666
  ] })
48317
47667
  ] });
48318
47668
  }, [authorSlot, author, authorClassName]);
48319
- const renderedActions = React8.useMemo(() => {
47669
+ const renderedActions = React32.useMemo(() => {
48320
47670
  if (actionsSlot) return actionsSlot;
48321
47671
  if (!actions || actions.length === 0) return null;
48322
47672
  return /* @__PURE__ */ jsx("div", { className: cn("shrink-0", actionsClassName), children: actions.map((action, index) => {
@@ -55727,7 +55077,7 @@ function HeroSplitImageNewsletter({
55727
55077
  onError,
55728
55078
  uploadTokens
55729
55079
  });
55730
- const renderForm = React8.useMemo(() => {
55080
+ const renderForm = React32.useMemo(() => {
55731
55081
  if (formSlot) return formSlot;
55732
55082
  if (!formFields || formFields.length === 0) return null;
55733
55083
  const defaultButtonAction = {
@@ -55806,7 +55156,7 @@ function HeroSplitImageNewsletter({
55806
55156
  resetUpload,
55807
55157
  resetSubmissionState
55808
55158
  ]);
55809
- const renderImage = React8.useMemo(() => {
55159
+ const renderImage = React32.useMemo(() => {
55810
55160
  if (imageSlot) return imageSlot;
55811
55161
  if (!image) return null;
55812
55162
  return /* @__PURE__ */ jsx("div", { className: "relative lg:w-1/2", children: /* @__PURE__ */ jsx(
@@ -57239,7 +56589,7 @@ function HeroSaasDashboardPreview({
57239
56589
  onError,
57240
56590
  uploadTokens
57241
56591
  });
57242
- const renderBadge = React8.useMemo(() => {
56592
+ const renderBadge = React32.useMemo(() => {
57243
56593
  if (badgeSlot) return badgeSlot;
57244
56594
  return /* @__PURE__ */ jsxs(
57245
56595
  "div",
@@ -57254,7 +56604,7 @@ function HeroSaasDashboardPreview({
57254
56604
  }
57255
56605
  );
57256
56606
  }, [badgeSlot, badgeIcon, badgeText]);
57257
- const renderForm = React8.useMemo(() => {
56607
+ const renderForm = React32.useMemo(() => {
57258
56608
  if (formSlot) return formSlot;
57259
56609
  const defaultButtonAction = {
57260
56610
  label: "Start Free Trial",
@@ -57329,7 +56679,7 @@ function HeroSaasDashboardPreview({
57329
56679
  resetUpload,
57330
56680
  resetSubmissionState
57331
56681
  ]);
57332
- const renderBrowserPreview = React8.useMemo(() => {
56682
+ const renderBrowserPreview = React32.useMemo(() => {
57333
56683
  if (browserPreviewSlot) return browserPreviewSlot;
57334
56684
  if (!browserPreview) return null;
57335
56685
  return /* @__PURE__ */ jsxs("div", { className: cn("relative mt-12 md:mt-20", previewClassName), children: [
@@ -59580,7 +58930,7 @@ function HeroEcommerceProductShowcase({
59580
58930
  "flex flex-col md:flex-row items-center gap-4 md:gap-6 pt-8 md:pt-12",
59581
58931
  statsClassName
59582
58932
  ),
59583
- children: stats.map((stat, index) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
58933
+ children: stats.map((stat, index) => /* @__PURE__ */ jsxs(React32.Fragment, { children: [
59584
58934
  index > 0 && /* @__PURE__ */ jsx("div", { className: "h-12 w-px bg-border hidden md:flex" }),
59585
58935
  /* @__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: [
59586
58936
  /* @__PURE__ */ jsxs(
@@ -60024,7 +59374,7 @@ function HeroNewsletterMinimal({
60024
59374
  disclaimerClassName,
60025
59375
  statsClassName
60026
59376
  }) {
60027
- const renderStats = React8.useMemo(() => {
59377
+ const renderStats = React32.useMemo(() => {
60028
59378
  if (statsSlot) return statsSlot;
60029
59379
  if (!stats || stats.length === 0) return null;
60030
59380
  return stats.map((stat, index) => /* @__PURE__ */ jsx("div", { className: cn("flex items-center", stat.className), children: /* @__PURE__ */ jsxs("div", { className: "text-center", children: [
@@ -60050,7 +59400,7 @@ function HeroNewsletterMinimal({
60050
59400
  /* @__PURE__ */ jsx("div", { className: cn("text-sm"), children: stat.label })
60051
59401
  ] }) }, index));
60052
59402
  }, [statsSlot, stats]);
60053
- const renderForm = React8.useMemo(() => {
59403
+ const renderForm = React32.useMemo(() => {
60054
59404
  if (formSlot) return formSlot;
60055
59405
  if (!formEngineSetup) return null;
60056
59406
  const defaultButtonAction = {
@@ -60217,7 +59567,7 @@ function HeroComingSoonCountdown({
60217
59567
  formClassName,
60218
59568
  socialLinksClassName
60219
59569
  }) {
60220
- const [timeLeft, setTimeLeft] = React8.useState(null);
59570
+ const [timeLeft, setTimeLeft] = React32.useState(null);
60221
59571
  const {
60222
59572
  uploadTokens,
60223
59573
  uploadProgress,
@@ -60237,7 +59587,7 @@ function HeroComingSoonCountdown({
60237
59587
  onError,
60238
59588
  uploadTokens
60239
59589
  });
60240
- const calculateTimeLeft = React8.useCallback(() => {
59590
+ const calculateTimeLeft = React32.useCallback(() => {
60241
59591
  if (!countdownDate) return null;
60242
59592
  const now = Date.now();
60243
59593
  const target = countdownDate.getTime();
@@ -60250,7 +59600,7 @@ function HeroComingSoonCountdown({
60250
59600
  seconds: Math.floor(diff % (1e3 * 60) / 1e3)
60251
59601
  };
60252
59602
  }, [countdownDate]);
60253
- React8.useEffect(() => {
59603
+ React32.useEffect(() => {
60254
59604
  setTimeLeft(calculateTimeLeft());
60255
59605
  if (!countdownDate) return;
60256
59606
  const timer = setInterval(() => {
@@ -60261,7 +59611,7 @@ function HeroComingSoonCountdown({
60261
59611
  return () => clearInterval(timer);
60262
59612
  }, [countdownDate, calculateTimeLeft]);
60263
59613
  const showCountdown = countdownSlot || timeLeft;
60264
- const renderForm = React8.useMemo(() => {
59614
+ const renderForm = React32.useMemo(() => {
60265
59615
  if (formSlot) return formSlot;
60266
59616
  const defaultButtonAction = {
60267
59617
  label: "Notify Me",
@@ -60337,7 +59687,7 @@ function HeroComingSoonCountdown({
60337
59687
  resetUpload,
60338
59688
  resetSubmissionState
60339
59689
  ]);
60340
- const renderSocialLinks = React8.useMemo(() => {
59690
+ const renderSocialLinks = React32.useMemo(() => {
60341
59691
  if (socialLinksSlot) return socialLinksSlot;
60342
59692
  if (!socialLinks || socialLinks.length === 0) return null;
60343
59693
  return socialLinks.map((link, index) => /* @__PURE__ */ jsx(
@@ -60471,7 +59821,7 @@ function HeroEventRegistration({
60471
59821
  "flex flex-col md:flex-row items-center gap-4 md:gap-6 pt-8 md:pt-12 w-full md:w-fit",
60472
59822
  statsClassName
60473
59823
  ),
60474
- children: stats.map((stat, index) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
59824
+ children: stats.map((stat, index) => /* @__PURE__ */ jsxs(React32.Fragment, { children: [
60475
59825
  index > 0 && /* @__PURE__ */ jsx("div", { className: "h-12 w-px bg-border hidden md:flex" }),
60476
59826
  /* @__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: [
60477
59827
  /* @__PURE__ */ jsxs(
@@ -60874,7 +60224,7 @@ function ComparisonTableTwoColumn({
60874
60224
  patternOpacity,
60875
60225
  optixFlowConfig
60876
60226
  }) {
60877
- const tableContent = React8.useMemo(() => {
60227
+ const tableContent = React32.useMemo(() => {
60878
60228
  if (tableSlot) return tableSlot;
60879
60229
  if (!rows || rows.length === 0) return null;
60880
60230
  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(
@@ -60904,7 +60254,7 @@ function ComparisonTableTwoColumn({
60904
60254
  optixFlowConfig
60905
60255
  }
60906
60256
  ) : optionBLabel && (typeof optionBLabel === "string" ? /* @__PURE__ */ jsx("span", { className: "text-lg font-semibold", children: optionBLabel }) : optionBLabel) }),
60907
- rows.map((row, idx) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
60257
+ rows.map((row, idx) => /* @__PURE__ */ jsxs(React32.Fragment, { children: [
60908
60258
  /* @__PURE__ */ jsx("div", { className: "flex items-center border-b p-3 text-base font-medium md:p-4 md:text-lg", children: row.label }),
60909
60259
  /* @__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: [
60910
60260
  row.hasIcon && /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/circle-check-big", size: 20, className: "text-success" }),
@@ -60933,14 +60283,14 @@ function ComparisonTableTwoColumn({
60933
60283
  optionBLabel,
60934
60284
  optixFlowConfig
60935
60285
  ]);
60936
- const headingContent = React8.useMemo(() => {
60286
+ const headingContent = React32.useMemo(() => {
60937
60287
  if (!heading) return null;
60938
60288
  if (typeof heading === "string") {
60939
60289
  return /* @__PURE__ */ jsx("h1", { className: cn("mb-8 text-3xl font-bold md:mb-12 md:text-5xl", headingClassName), children: heading });
60940
60290
  }
60941
60291
  return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
60942
60292
  }, [heading, headingClassName]);
60943
- const descriptionContent = React8.useMemo(() => {
60293
+ const descriptionContent = React32.useMemo(() => {
60944
60294
  if (!description) return null;
60945
60295
  if (typeof description === "string") {
60946
60296
  return /* @__PURE__ */ jsx("p", { className: cn("mb-8 text-muted-foreground md:text-lg", descriptionClassName), children: description });
@@ -60987,7 +60337,7 @@ function ComparisonFeatureCards({
60987
60337
  patternOpacity,
60988
60338
  optixFlowConfig
60989
60339
  }) {
60990
- const renderCard = React8.useCallback(
60340
+ const renderCard = React32.useCallback(
60991
60341
  (product, isHighlighted) => /* @__PURE__ */ jsxs(
60992
60342
  "div",
60993
60343
  {
@@ -61043,7 +60393,7 @@ function ComparisonFeatureCards({
61043
60393
  ),
61044
60394
  [cardClassName, optixFlowConfig]
61045
60395
  );
61046
- const cardsContent = React8.useMemo(() => {
60396
+ const cardsContent = React32.useMemo(() => {
61047
60397
  if (cardsSlot) return cardsSlot;
61048
60398
  if (!productA || !productB) return null;
61049
60399
  return /* @__PURE__ */ jsxs(Fragment$1, { children: [
@@ -61051,28 +60401,28 @@ function ComparisonFeatureCards({
61051
60401
  renderCard(productB, productB.highlighted ?? false)
61052
60402
  ] });
61053
60403
  }, [cardsSlot, productA, productB, renderCard]);
61054
- const headingContent = React8.useMemo(() => {
60404
+ const headingContent = React32.useMemo(() => {
61055
60405
  if (!heading) return null;
61056
60406
  if (typeof heading === "string") {
61057
60407
  return /* @__PURE__ */ jsx("h1", { className: cn("mb-6 text-4xl font-semibold md:text-7xl", headingClassName), children: heading });
61058
60408
  }
61059
60409
  return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
61060
60410
  }, [heading, headingClassName]);
61061
- const descriptionContent = React8.useMemo(() => {
60411
+ const descriptionContent = React32.useMemo(() => {
61062
60412
  if (!description) return null;
61063
60413
  if (typeof description === "string") {
61064
60414
  return /* @__PURE__ */ jsx("p", { className: cn("mx-auto max-w-4xl text-muted-foreground md:text-xl", descriptionClassName), children: description });
61065
60415
  }
61066
60416
  return /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description });
61067
60417
  }, [description, descriptionClassName]);
61068
- const suitabilityContent = React8.useMemo(() => {
60418
+ const suitabilityContent = React32.useMemo(() => {
61069
60419
  if (!suitabilityTitle && !suitabilityDescription) return null;
61070
60420
  return /* @__PURE__ */ jsxs("div", { className: suitabilityClassName, children: [
61071
60421
  suitabilityTitle && (typeof suitabilityTitle === "string" ? /* @__PURE__ */ jsx("h2", { className: "mb-4 text-3xl font-semibold", children: suitabilityTitle }) : suitabilityTitle),
61072
60422
  suitabilityDescription && (typeof suitabilityDescription === "string" ? /* @__PURE__ */ jsx("p", { className: "leading-6 text-muted-foreground md:text-lg", children: suitabilityDescription }) : suitabilityDescription)
61073
60423
  ] });
61074
60424
  }, [suitabilityTitle, suitabilityDescription, suitabilityClassName]);
61075
- const differencesContent = React8.useMemo(() => {
60425
+ const differencesContent = React32.useMemo(() => {
61076
60426
  if (!differencesTitle && !differencesDescription) return null;
61077
60427
  return /* @__PURE__ */ jsxs("div", { className: cn("mt-16", differencesClassName), children: [
61078
60428
  differencesTitle && (typeof differencesTitle === "string" ? /* @__PURE__ */ jsx("h2", { className: "mb-4 text-3xl font-semibold", children: differencesTitle }) : differencesTitle),
@@ -61120,7 +60470,7 @@ function ComparisonGridBadges({
61120
60470
  pattern,
61121
60471
  patternOpacity
61122
60472
  }) {
61123
- const featuresContent = React8.useMemo(() => {
60473
+ const featuresContent = React32.useMemo(() => {
61124
60474
  if (featuresSlot) return featuresSlot;
61125
60475
  if (!features || features.length === 0) return null;
61126
60476
  return features.map((feature, idx) => /* @__PURE__ */ jsxs(
@@ -61167,14 +60517,14 @@ function ComparisonGridBadges({
61167
60517
  idx
61168
60518
  ));
61169
60519
  }, [featuresSlot, features, featureCardClassName, badgeClassName, optionALabel, optionBLabel]);
61170
- const headingContent = React8.useMemo(() => {
60520
+ const headingContent = React32.useMemo(() => {
61171
60521
  if (!heading) return null;
61172
60522
  if (typeof heading === "string") {
61173
60523
  return /* @__PURE__ */ jsx("h2", { className: cn("mb-4 text-3xl font-bold md:text-5xl", headingClassName), children: heading });
61174
60524
  }
61175
60525
  return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
61176
60526
  }, [heading, headingClassName]);
61177
- const descriptionContent = React8.useMemo(() => {
60527
+ const descriptionContent = React32.useMemo(() => {
61178
60528
  if (!description) return null;
61179
60529
  if (typeof description === "string") {
61180
60530
  return /* @__PURE__ */ jsx("p", { className: cn("mx-auto max-w-2xl text-muted-foreground md:text-lg", descriptionClassName), children: description });
@@ -61222,7 +60572,7 @@ function ComparisonMetricsRows({
61222
60572
  pattern,
61223
60573
  patternOpacity
61224
60574
  }) {
61225
- const metricsContent = React8.useMemo(() => {
60575
+ const metricsContent = React32.useMemo(() => {
61226
60576
  if (metricsSlot) return metricsSlot;
61227
60577
  if (!metrics || metrics.length === 0) return null;
61228
60578
  return /* @__PURE__ */ jsx(
@@ -61262,7 +60612,7 @@ function ComparisonMetricsRows({
61262
60612
  }
61263
60613
  );
61264
60614
  }, [metricsSlot, metrics, metricsClassName, metricRowClassName]);
61265
- const actionsContent = React8.useMemo(() => {
60615
+ const actionsContent = React32.useMemo(() => {
61266
60616
  if (actionsSlot) return actionsSlot;
61267
60617
  if (!actions || actions.length === 0) return null;
61268
60618
  return /* @__PURE__ */ jsx("div", { className: cn("flex justify-end", actionsClassName), children: actions.map((action, idx) => /* @__PURE__ */ jsxs(
@@ -61283,7 +60633,7 @@ function ComparisonMetricsRows({
61283
60633
  idx
61284
60634
  )) });
61285
60635
  }, [actionsSlot, actions, actionsClassName]);
61286
- const headingContent = React8.useMemo(() => {
60636
+ const headingContent = React32.useMemo(() => {
61287
60637
  if (!heading) return null;
61288
60638
  if (typeof heading === "string") {
61289
60639
  return /* @__PURE__ */ jsx(
@@ -61299,7 +60649,7 @@ function ComparisonMetricsRows({
61299
60649
  }
61300
60650
  return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
61301
60651
  }, [heading, headingClassName]);
61302
- const descriptionContent = React8.useMemo(() => {
60652
+ const descriptionContent = React32.useMemo(() => {
61303
60653
  if (!description) return null;
61304
60654
  if (typeof description === "string") {
61305
60655
  return /* @__PURE__ */ jsx("p", { className: cn("text-muted-foreground md:text-lg", descriptionClassName), children: description });
@@ -61362,7 +60712,7 @@ function ComparisonImageCards({
61362
60712
  patternOpacity,
61363
60713
  optixFlowConfig
61364
60714
  }) {
61365
- const renderCard = React8.useCallback(
60715
+ const renderCard = React32.useCallback(
61366
60716
  (option) => /* @__PURE__ */ jsx("div", { className: cn("relative h-full", cardClassName), children: /* @__PURE__ */ jsxs("div", { className: cn(
61367
60717
  "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]",
61368
60718
  getNestedCardBg(background, "accent"),
@@ -61386,7 +60736,7 @@ function ComparisonImageCards({
61386
60736
  ] }) }),
61387
60737
  [cardClassName, optixFlowConfig]
61388
60738
  );
61389
- const cardsContent = React8.useMemo(() => {
60739
+ const cardsContent = React32.useMemo(() => {
61390
60740
  if (cardsSlot) return cardsSlot;
61391
60741
  if (!optionA || !optionB) return null;
61392
60742
  return /* @__PURE__ */ jsxs(Fragment$1, { children: [
@@ -61404,14 +60754,14 @@ function ComparisonImageCards({
61404
60754
  )
61405
60755
  ] });
61406
60756
  }, [cardsSlot, optionA, optionB, dividerText, dividerClassName, renderCard]);
61407
- const headingContent = React8.useMemo(() => {
60757
+ const headingContent = React32.useMemo(() => {
61408
60758
  if (!heading) return null;
61409
60759
  if (typeof heading === "string") {
61410
60760
  return /* @__PURE__ */ jsx("h2", { className: cn("text-3xl font-medium sm:text-4xl md:text-5xl lg:text-6xl", headingClassName), children: heading });
61411
60761
  }
61412
60762
  return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
61413
60763
  }, [heading, headingClassName]);
61414
- const descriptionContent = React8.useMemo(() => {
60764
+ const descriptionContent = React32.useMemo(() => {
61415
60765
  if (!description) return null;
61416
60766
  if (typeof description === "string") {
61417
60767
  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 });
@@ -61541,7 +60891,7 @@ function ComparisonTableTabs({
61541
60891
  patternOpacity
61542
60892
  }) {
61543
60893
  const [selectedTab, setSelectedTab] = useState(models?.[0]?.name || "");
61544
- const renderStatusIcon = React8.useCallback((status) => {
60894
+ const renderStatusIcon = React32.useCallback((status) => {
61545
60895
  if (status === "positive") {
61546
60896
  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" }) });
61547
60897
  }
@@ -61550,7 +60900,7 @@ function ComparisonTableTabs({
61550
60900
  }
61551
60901
  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" }) });
61552
60902
  }, []);
61553
- const tableContent = React8.useMemo(() => {
60903
+ const tableContent = React32.useMemo(() => {
61554
60904
  if (tableSlot) return tableSlot;
61555
60905
  if (!models || models.length === 0 || !features || features.length === 0) return null;
61556
60906
  return /* @__PURE__ */ jsxs(Fragment$1, { children: [
@@ -61609,14 +60959,14 @@ function ComparisonTableTabs({
61609
60959
  ] }) })
61610
60960
  ] });
61611
60961
  }, [tableSlot, models, features, tabsClassName, tableClassName, tableHeaderClassName, tableCellClassName, selectedTab, renderStatusIcon]);
61612
- const headingContent = React8.useMemo(() => {
60962
+ const headingContent = React32.useMemo(() => {
61613
60963
  if (!heading) return null;
61614
60964
  if (typeof heading === "string") {
61615
60965
  return /* @__PURE__ */ jsx("h2", { className: cn("text-3xl font-bold md:text-4xl lg:text-5xl", headingClassName), children: heading });
61616
60966
  }
61617
60967
  return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
61618
60968
  }, [heading, headingClassName]);
61619
- const descriptionContent = React8.useMemo(() => {
60969
+ const descriptionContent = React32.useMemo(() => {
61620
60970
  if (!description) return null;
61621
60971
  if (typeof description === "string") {
61622
60972
  return /* @__PURE__ */ jsx("p", { className: cn("mt-4 text-muted-foreground md:text-lg", descriptionClassName), children: description });
@@ -61707,7 +61057,7 @@ function ComparisonTableTooltips({
61707
61057
  pattern,
61708
61058
  patternOpacity
61709
61059
  }) {
61710
- const renderCellContent = React8.useCallback(
61060
+ const renderCellContent = React32.useCallback(
61711
61061
  (cell, isHighlighted) => {
61712
61062
  if (typeof cell === "string") {
61713
61063
  return cell;
@@ -61734,7 +61084,7 @@ function ComparisonTableTooltips({
61734
61084
  },
61735
61085
  []
61736
61086
  );
61737
- const tableContent = React8.useMemo(() => {
61087
+ const tableContent = React32.useMemo(() => {
61738
61088
  if (tableSlot) return tableSlot;
61739
61089
  if (!rows || rows.length === 0) return null;
61740
61090
  return /* @__PURE__ */ jsxs(Table, { className: cn("rounded border text-left shadow-lg", tableClassName), children: [
@@ -61760,14 +61110,14 @@ function ComparisonTableTooltips({
61760
61110
  ] }, idx)) })
61761
61111
  ] });
61762
61112
  }, [tableSlot, rows, tableClassName, tableHeaderClassName, tableCellClassName, optionALabel, optionBLabel, renderCellContent]);
61763
- const headingContent = React8.useMemo(() => {
61113
+ const headingContent = React32.useMemo(() => {
61764
61114
  if (!heading) return null;
61765
61115
  if (typeof heading === "string") {
61766
61116
  return /* @__PURE__ */ jsx("h2", { className: cn("mb-4 text-center text-4xl font-semibold", headingClassName), children: heading });
61767
61117
  }
61768
61118
  return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
61769
61119
  }, [heading, headingClassName]);
61770
- const descriptionContent = React8.useMemo(() => {
61120
+ const descriptionContent = React32.useMemo(() => {
61771
61121
  if (!description) return null;
61772
61122
  if (typeof description === "string") {
61773
61123
  return /* @__PURE__ */ jsx("p", { className: cn("mb-8 text-center text-muted-foreground", descriptionClassName), children: description });
@@ -61809,7 +61159,7 @@ function ComparisonFeatureGrid({
61809
61159
  pattern,
61810
61160
  patternOpacity
61811
61161
  }) {
61812
- const renderStatusIcon = React8.useCallback((status) => {
61162
+ const renderStatusIcon = React32.useCallback((status) => {
61813
61163
  if (status === true) {
61814
61164
  return /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/check", size: 20, className: "text-success" });
61815
61165
  }
@@ -61818,7 +61168,7 @@ function ComparisonFeatureGrid({
61818
61168
  }
61819
61169
  return /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/x", size: 20, className: "text-destructive" });
61820
61170
  }, []);
61821
- const gridContent = React8.useMemo(() => {
61171
+ const gridContent = React32.useMemo(() => {
61822
61172
  if (gridSlot) return gridSlot;
61823
61173
  if (!features || features.length === 0) return null;
61824
61174
  return /* @__PURE__ */ jsxs(
@@ -61884,14 +61234,14 @@ function ComparisonFeatureGrid({
61884
61234
  optionBLabel,
61885
61235
  renderStatusIcon
61886
61236
  ]);
61887
- const headingContent = React8.useMemo(() => {
61237
+ const headingContent = React32.useMemo(() => {
61888
61238
  if (!heading) return null;
61889
61239
  if (typeof heading === "string") {
61890
61240
  return /* @__PURE__ */ jsx("h2", { className: cn("mb-4 text-center text-4xl font-semibold", headingClassName), children: heading });
61891
61241
  }
61892
61242
  return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
61893
61243
  }, [heading, headingClassName]);
61894
- const descriptionContent = React8.useMemo(() => {
61244
+ const descriptionContent = React32.useMemo(() => {
61895
61245
  if (!description) return null;
61896
61246
  if (typeof description === "string") {
61897
61247
  return /* @__PURE__ */ jsx("p", { className: cn("mb-8 text-center text-muted-foreground", descriptionClassName), children: description });
@@ -61935,7 +61285,7 @@ function ComparisonAiModels({
61935
61285
  optixFlowConfig
61936
61286
  }) {
61937
61287
  const [hoveredModel, setHoveredModel] = useState(null);
61938
- const renderStatusIcon = React8.useCallback((status) => {
61288
+ const renderStatusIcon = React32.useCallback((status) => {
61939
61289
  if (status === "best") {
61940
61290
  return /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/circle-check", size: 16, className: "text-success" });
61941
61291
  }
@@ -61944,7 +61294,7 @@ function ComparisonAiModels({
61944
61294
  }
61945
61295
  return /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/minus", size: 16, className: "text-muted-foreground" });
61946
61296
  }, []);
61947
- const getCellClassName = React8.useCallback(
61297
+ const getCellClassName = React32.useCallback(
61948
61298
  (status, modelKey) => {
61949
61299
  const baseClass = "cursor-pointer py-4 text-center font-medium transition-all duration-300";
61950
61300
  let statusClass = "";
@@ -61965,7 +61315,7 @@ function ComparisonAiModels({
61965
61315
  },
61966
61316
  [hoveredModel]
61967
61317
  );
61968
- const getSummaryCardClassName = React8.useCallback(
61318
+ const getSummaryCardClassName = React32.useCallback(
61969
61319
  (modelKey) => {
61970
61320
  const baseClass = "rounded border border-border/30 bg-background/50 p-3 transition-all duration-300";
61971
61321
  if (hoveredModel === modelKey) {
@@ -61980,7 +61330,7 @@ function ComparisonAiModels({
61980
61330
  },
61981
61331
  [hoveredModel]
61982
61332
  );
61983
- const tableContent = React8.useMemo(() => {
61333
+ const tableContent = React32.useMemo(() => {
61984
61334
  if (tableSlot) return tableSlot;
61985
61335
  if (!models || !comparisonData || comparisonData.length === 0) return null;
61986
61336
  return /* @__PURE__ */ jsx(
@@ -62058,7 +61408,7 @@ function ComparisonAiModels({
62058
61408
  getCellClassName,
62059
61409
  renderStatusIcon
62060
61410
  ]);
62061
- const analysisContent = React8.useMemo(() => {
61411
+ const analysisContent = React32.useMemo(() => {
62062
61412
  if (analysisSlot) return analysisSlot;
62063
61413
  if (!models) return null;
62064
61414
  return /* @__PURE__ */ jsx("div", { className: cn(
@@ -62099,14 +61449,14 @@ function ComparisonAiModels({
62099
61449
  ] })
62100
61450
  ] }) });
62101
61451
  }, [analysisSlot, models, analysisClassName, getSummaryCardClassName]);
62102
- const headingContent = React8.useMemo(() => {
61452
+ const headingContent = React32.useMemo(() => {
62103
61453
  if (!heading) return null;
62104
61454
  if (typeof heading === "string") {
62105
61455
  return /* @__PURE__ */ jsx("h2", { className: cn("text-3xl font-bold md:text-4xl lg:text-5xl", headingClassName), children: heading });
62106
61456
  }
62107
61457
  return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
62108
61458
  }, [heading, headingClassName]);
62109
- const descriptionContent = React8.useMemo(() => {
61459
+ const descriptionContent = React32.useMemo(() => {
62110
61460
  if (!description) return null;
62111
61461
  if (typeof description === "string") {
62112
61462
  return /* @__PURE__ */ jsx("p", { className: cn("mt-4 text-muted-foreground md:text-lg", descriptionClassName), children: description });
@@ -62156,7 +61506,7 @@ function ComparisonLegacyModern({
62156
61506
  pattern,
62157
61507
  patternOpacity
62158
61508
  }) {
62159
- const columnsContent = React8.useMemo(() => {
61509
+ const columnsContent = React32.useMemo(() => {
62160
61510
  if (columnsSlot) return columnsSlot;
62161
61511
  if (!legacyFeatures || legacyFeatures.length === 0 || !modernFeatures || modernFeatures.length === 0)
62162
61512
  return null;
@@ -62168,7 +61518,7 @@ function ComparisonLegacyModern({
62168
61518
  legacyColumnClassName
62169
61519
  ), children: [
62170
61520
  legacyTitle && (typeof legacyTitle === "string" ? /* @__PURE__ */ jsx("h3", { className: "text-2xl font-medium", children: legacyTitle }) : legacyTitle),
62171
- /* @__PURE__ */ jsx("ul", { className: "mt-9 space-y-3", children: legacyFeatures.map((feature, idx) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
61521
+ /* @__PURE__ */ jsx("ul", { className: "mt-9 space-y-3", children: legacyFeatures.map((feature, idx) => /* @__PURE__ */ jsxs(React32.Fragment, { children: [
62172
61522
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
62173
61523
  /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/x", size: 16, className: "my-1.5 shrink-0 text-muted-foreground" }),
62174
61524
  /* @__PURE__ */ jsx("li", { className: "text-sm", children: feature.text })
@@ -62185,7 +61535,7 @@ function ComparisonLegacyModern({
62185
61535
  ),
62186
61536
  children: [
62187
61537
  modernTitle && (typeof modernTitle === "string" ? /* @__PURE__ */ jsx("h3", { className: "text-2xl font-medium", children: modernTitle }) : modernTitle),
62188
- /* @__PURE__ */ jsx("ul", { className: "mt-9 space-y-3", children: modernFeatures.map((feature, idx) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
61538
+ /* @__PURE__ */ jsx("ul", { className: "mt-9 space-y-3", children: modernFeatures.map((feature, idx) => /* @__PURE__ */ jsxs(React32.Fragment, { children: [
62189
61539
  /* @__PURE__ */ jsxs("li", { className: "flex items-center gap-2 text-sm", children: [
62190
61540
  /* @__PURE__ */ jsx("span", { className: "text-lg", children: feature.emoji }),
62191
61541
  feature.text
@@ -62197,7 +61547,7 @@ function ComparisonLegacyModern({
62197
61547
  )
62198
61548
  ] });
62199
61549
  }, [columnsSlot, legacyFeatures, modernFeatures, legacyTitle, modernTitle, legacyColumnClassName, modernColumnClassName]);
62200
- const headingContent = React8.useMemo(() => {
61550
+ const headingContent = React32.useMemo(() => {
62201
61551
  if (!heading && !headingHighlight) return null;
62202
61552
  return /* @__PURE__ */ jsxs("h2", { className: cn("text-4xl font-medium md:text-5xl lg:text-7xl", headingClassName), children: [
62203
61553
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxs("span", { className: "text-muted-foreground", children: [
@@ -62210,7 +61560,7 @@ function ComparisonLegacyModern({
62210
61560
  ] }) : headingHighlight)
62211
61561
  ] });
62212
61562
  }, [heading, headingHighlight, headingClassName, headingHighlightClassName]);
62213
- const descriptionContent = React8.useMemo(() => {
61563
+ const descriptionContent = React32.useMemo(() => {
62214
61564
  if (!description) return null;
62215
61565
  if (typeof description === "string") {
62216
61566
  return /* @__PURE__ */ jsx("p", { className: cn("text-lg", descriptionClassName), children: description });
@@ -62383,7 +61733,7 @@ var NavbarMobileMenu = ({
62383
61733
  closeIconClassName,
62384
61734
  title = "Mobile Navigation"
62385
61735
  }) => {
62386
- React8.useEffect(() => {
61736
+ React32.useEffect(() => {
62387
61737
  if (open) {
62388
61738
  const originalOverflow = document.body.style.overflow;
62389
61739
  document.body.style.overflow = "hidden";
@@ -62612,7 +61962,7 @@ var NavbarDropdownMenu = ({
62612
61962
  patternOpacity,
62613
61963
  optixFlowConfig
62614
61964
  }) => {
62615
- const [open, setOpen] = React8.useState(false);
61965
+ const [open, setOpen] = React32.useState(false);
62616
61966
  const renderAuthActions = useMemo(() => {
62617
61967
  if (authActionsSlot) return authActionsSlot;
62618
61968
  if (!authActions || authActions.length === 0) return null;
@@ -62838,7 +62188,7 @@ var NavbarCenteredMenu = ({
62838
62188
  patternOpacity,
62839
62189
  optixFlowConfig
62840
62190
  }) => {
62841
- const [open, setOpen] = React8.useState(false);
62191
+ const [open, setOpen] = React32.useState(false);
62842
62192
  const renderAuthActions = useMemo(() => {
62843
62193
  if (authActionsSlot) return authActionsSlot;
62844
62194
  if (!authActions || authActions.length === 0) return null;
@@ -62978,7 +62328,7 @@ var DesktopMenuItem = ({
62978
62328
  index,
62979
62329
  optixFlowConfig
62980
62330
  }) => {
62981
- const imagesRef = React8.useRef([]);
62331
+ const imagesRef = React32.useRef([]);
62982
62332
  const layout = link.layout || "simple-grid";
62983
62333
  const handleMouseEnter = (event) => {
62984
62334
  const index2 = Number(event.currentTarget.getAttribute("data-index"));
@@ -64213,7 +63563,7 @@ var NavbarFeatureGrid = ({
64213
63563
  patternOpacity,
64214
63564
  optixFlowConfig
64215
63565
  }) => {
64216
- const [open, setOpen] = React8.useState(false);
63566
+ const [open, setOpen] = React32.useState(false);
64217
63567
  const renderAuthActions = useMemo(() => {
64218
63568
  if (authActionsSlot) return authActionsSlot;
64219
63569
  if (!authActions || authActions.length === 0) return null;
@@ -67423,7 +66773,7 @@ var DesktopMenuItem7 = ({
67423
66773
  if (item.groups && item.groups.length > 0) {
67424
66774
  return /* @__PURE__ */ jsxs(NavigationMenuItem, { value: `${index}`, children: [
67425
66775
  /* @__PURE__ */ jsx(NavigationMenuTrigger, { children: item.label }),
67426
- /* @__PURE__ */ jsx(NavigationMenuContent, { className: "p-0", children: /* @__PURE__ */ jsx("div", { className: "flex", children: item.groups.map((group, groupIndex) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
66776
+ /* @__PURE__ */ jsx(NavigationMenuContent, { className: "p-0", children: /* @__PURE__ */ jsx("div", { className: "flex", children: item.groups.map((group, groupIndex) => /* @__PURE__ */ jsxs(React32.Fragment, { children: [
67427
66777
  groupIndex > 0 && /* @__PURE__ */ jsx(
67428
66778
  Separator,
67429
66779
  {
@@ -68175,7 +67525,7 @@ var NavbarSimpleLinks = ({
68175
67525
  const renderNavItems = useMemo(() => {
68176
67526
  if (navItemsSlot) return navItemsSlot;
68177
67527
  if (!navItems || navItems.length === 0) return null;
68178
- return navItems.map((item) => /* @__PURE__ */ jsx(React8.Fragment, { children: /* @__PURE__ */ jsx(NavigationMenuItem, { children: /* @__PURE__ */ jsx(
67528
+ return navItems.map((item) => /* @__PURE__ */ jsx(React32.Fragment, { children: /* @__PURE__ */ jsx(NavigationMenuItem, { children: /* @__PURE__ */ jsx(
68179
67529
  NavigationMenuLink,
68180
67530
  {
68181
67531
  "data-nav-item": item.name,
@@ -73204,7 +72554,7 @@ function PricingFullComparison({
73204
72554
  resolvedPlanIds[index]
73205
72555
  ))
73206
72556
  ] }) }),
73207
- /* @__PURE__ */ jsx("tbody", { children: categories.map((category) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
72557
+ /* @__PURE__ */ jsx("tbody", { children: categories.map((category) => /* @__PURE__ */ jsxs(React32.Fragment, { children: [
73208
72558
  /* @__PURE__ */ jsx("tr", { className: cn(getNestedCardBg(background), getNestedCardTextColor(background), categoryRowClassName), children: /* @__PURE__ */ jsx(
73209
72559
  "td",
73210
72560
  {
@@ -77805,9 +77155,9 @@ function ProcessStickySteps({
77805
77155
  );
77806
77156
  }
77807
77157
  var usePrevious = (value) => {
77808
- const [prev, setPrev] = React8.useState(void 0);
77809
- const ref = React8.useRef(value);
77810
- React8.useEffect(() => {
77158
+ const [prev, setPrev] = React32.useState(void 0);
77159
+ const ref = React32.useRef(value);
77160
+ React32.useEffect(() => {
77811
77161
  setPrev(ref.current);
77812
77162
  ref.current = value;
77813
77163
  }, [value]);
@@ -77820,12 +77170,12 @@ var ProcessCard = ({
77820
77170
  itemClassName,
77821
77171
  background
77822
77172
  }) => {
77823
- const ref = React8.useRef(null);
77173
+ const ref = React32.useRef(null);
77824
77174
  const itemInView = useInView(ref, {
77825
77175
  amount: 0,
77826
77176
  margin: "0px 0px -60% 0px"
77827
77177
  });
77828
- React8.useEffect(() => {
77178
+ React32.useEffect(() => {
77829
77179
  if (itemInView) {
77830
77180
  setActive(index);
77831
77181
  }
@@ -77875,7 +77225,7 @@ function ProcessScrollImage({
77875
77225
  ctaText,
77876
77226
  ctaUrl
77877
77227
  }) {
77878
- const [active, setActive] = React8.useState(0);
77228
+ const [active, setActive] = React32.useState(0);
77879
77229
  const previousActive = usePrevious(active);
77880
77230
  const resolvedHeading = title ?? heading;
77881
77231
  const resolvedActions = actions ?? (ctaText && ctaUrl ? [
@@ -78058,7 +77408,7 @@ var ProcessCard2 = ({
78058
77408
  itemClassName,
78059
77409
  hoverImageClassName
78060
77410
  }) => {
78061
- const [isHovered, setIsHovered] = React8.useState(false);
77411
+ const [isHovered, setIsHovered] = React32.useState(false);
78062
77412
  const titleText = typeof step.title === "string" ? step.title : `Step ${index + 1}`;
78063
77413
  return /* @__PURE__ */ jsxs(
78064
77414
  "li",
@@ -78416,7 +77766,7 @@ function ProcessExpandableTimeline({
78416
77766
  spacing = "xl",
78417
77767
  containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8"
78418
77768
  }) {
78419
- const [expandedIndex, setExpandedIndex] = React8.useState(null);
77769
+ const [expandedIndex, setExpandedIndex] = React32.useState(null);
78420
77770
  const toggleExpand = (index) => {
78421
77771
  setExpandedIndex(expandedIndex === index ? null : index);
78422
77772
  };
@@ -83206,7 +82556,7 @@ function ListAchievementsShowcase({
83206
82556
  if (!items || items.length === 0) return null;
83207
82557
  return /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col", itemsClassName), children: [
83208
82558
  /* @__PURE__ */ jsx(Separator, {}),
83209
- items.map((item, index) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
82559
+ items.map((item, index) => /* @__PURE__ */ jsxs(React32.Fragment, { children: [
83210
82560
  /* @__PURE__ */ jsxs(
83211
82561
  "div",
83212
82562
  {
@@ -83326,7 +82676,7 @@ function ListCareerTimeline({
83326
82676
  const renderExperiences = useMemo(() => {
83327
82677
  if (experiencesSlot) return experiencesSlot;
83328
82678
  if (!experiences || experiences.length === 0) return null;
83329
- return /* @__PURE__ */ jsx("div", { className: experiencesClassName, children: experiences.map((experience, idx) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
82679
+ return /* @__PURE__ */ jsx("div", { className: experiencesClassName, children: experiences.map((experience, idx) => /* @__PURE__ */ jsxs(React32.Fragment, { children: [
83330
82680
  /* @__PURE__ */ jsx(Separator, {}),
83331
82681
  /* @__PURE__ */ jsxs(
83332
82682
  "div",
@@ -83347,7 +82697,7 @@ function ListCareerTimeline({
83347
82697
  const renderAwards = useMemo(() => {
83348
82698
  if (awardsSlot) return awardsSlot;
83349
82699
  if (!awards || awards.length === 0) return null;
83350
- return /* @__PURE__ */ jsx("div", { className: awardsClassName, children: awards.map((award, idx) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
82700
+ return /* @__PURE__ */ jsx("div", { className: awardsClassName, children: awards.map((award, idx) => /* @__PURE__ */ jsxs(React32.Fragment, { children: [
83351
82701
  /* @__PURE__ */ jsx(Separator, {}),
83352
82702
  /* @__PURE__ */ jsxs(
83353
82703
  "div",
@@ -83482,7 +82832,7 @@ function ListMetricsDashboard({
83482
82832
  activeCategory: controlledActiveCategory,
83483
82833
  onActiveCategoryChange
83484
82834
  }) {
83485
- const [internalActiveTab, setInternalActiveTab] = React8.useState("all");
82835
+ const [internalActiveTab, setInternalActiveTab] = React32.useState("all");
83486
82836
  const activeTab = controlledActiveCategory ?? internalActiveTab;
83487
82837
  const handleTabChange = (value) => {
83488
82838
  if (onActiveCategoryChange) {
@@ -83966,7 +83316,7 @@ function ListSearchableGrid({
83966
83316
  searchTerm: controlledSearchTerm,
83967
83317
  onSearchTermChange
83968
83318
  }) {
83969
- const [internalSearchTerm, setInternalSearchTerm] = React8.useState("");
83319
+ const [internalSearchTerm, setInternalSearchTerm] = React32.useState("");
83970
83320
  const searchTerm = controlledSearchTerm ?? internalSearchTerm;
83971
83321
  const handleSearchChange = (value) => {
83972
83322
  if (onSearchTermChange) {
@@ -83975,7 +83325,7 @@ function ListSearchableGrid({
83975
83325
  setInternalSearchTerm(value);
83976
83326
  }
83977
83327
  };
83978
- const filteredItems = React8.useMemo(() => {
83328
+ const filteredItems = React32.useMemo(() => {
83979
83329
  if (!searchTerm) {
83980
83330
  return items ?? [];
83981
83331
  }
@@ -84175,7 +83525,7 @@ function OfferModalNewsletterDiscount({
84175
83525
  buttonAction
84176
83526
  }) {
84177
83527
  const dialogProps = open !== void 0 ? { open, onOpenChange } : { defaultOpen };
84178
- const renderCloseButton = React8.useMemo(() => {
83528
+ const renderCloseButton = React32.useMemo(() => {
84179
83529
  if (closeButtonSlot) return closeButtonSlot;
84180
83530
  if (!closeButtonText) return null;
84181
83531
  return /* @__PURE__ */ jsx("div", { className: "absolute end-1.5 top-1.5", children: /* @__PURE__ */ jsx(DialogClose, { asChild: true, children: /* @__PURE__ */ jsx(
@@ -84192,7 +83542,7 @@ function OfferModalNewsletterDiscount({
84192
83542
  }
84193
83543
  ) }) });
84194
83544
  }, [closeButtonSlot, closeButtonText, closeClassName]);
84195
- const renderHeader = React8.useMemo(() => {
83545
+ const renderHeader = React32.useMemo(() => {
84196
83546
  if (headerSlot) return headerSlot;
84197
83547
  if (!title) return null;
84198
83548
  return /* @__PURE__ */ jsx(DialogHeader, { className: headerClassName, children: /* @__PURE__ */ jsx(
@@ -84206,7 +83556,7 @@ function OfferModalNewsletterDiscount({
84206
83556
  }
84207
83557
  ) });
84208
83558
  }, [headerSlot, title, headerClassName, titleClassName]);
84209
- const renderForm = React8.useMemo(() => {
83559
+ const renderForm = React32.useMemo(() => {
84210
83560
  if (formSlot) return formSlot;
84211
83561
  if (!formEngineSetup) return null;
84212
83562
  const defaultButtonAction = {
@@ -84304,7 +83654,7 @@ function OfferModalMembershipImage({
84304
83654
  buttonAction
84305
83655
  }) {
84306
83656
  const dialogProps = open !== void 0 ? { open, onOpenChange } : { defaultOpen };
84307
- const renderImage = React8.useMemo(() => {
83657
+ const renderImage = React32.useMemo(() => {
84308
83658
  if (imageSlot) return imageSlot;
84309
83659
  if (!image) return null;
84310
83660
  return /* @__PURE__ */ jsx(
@@ -84335,7 +83685,7 @@ function OfferModalMembershipImage({
84335
83685
  imageClassName,
84336
83686
  optixFlowConfig
84337
83687
  ]);
84338
- const renderCloseButton = React8.useMemo(() => {
83688
+ const renderCloseButton = React32.useMemo(() => {
84339
83689
  if (closeButtonSlot) return closeButtonSlot;
84340
83690
  return /* @__PURE__ */ jsx("div", { className: "absolute -end-px -top-px z-10", children: /* @__PURE__ */ jsx(DialogClose, { asChild: true, children: /* @__PURE__ */ jsx(
84341
83691
  Pressable,
@@ -84351,7 +83701,7 @@ function OfferModalMembershipImage({
84351
83701
  }
84352
83702
  ) }) });
84353
83703
  }, [closeButtonSlot, closeClassName]);
84354
- const renderForm = React8.useMemo(() => {
83704
+ const renderForm = React32.useMemo(() => {
84355
83705
  if (formSlot) return formSlot;
84356
83706
  if (!formEngineSetup) return null;
84357
83707
  const defaultButtonAction = {
@@ -84384,7 +83734,7 @@ function OfferModalMembershipImage({
84384
83734
  }
84385
83735
  );
84386
83736
  }, [formSlot, formEngineSetup, buttonAction, formClassName]);
84387
- const renderFooter = React8.useMemo(() => {
83737
+ const renderFooter = React32.useMemo(() => {
84388
83738
  if (footerSlot) return footerSlot;
84389
83739
  if (!description) return null;
84390
83740
  return /* @__PURE__ */ jsx(DialogFooter, { className: footerClassName, children: /* @__PURE__ */ jsx(
@@ -84590,7 +83940,7 @@ function OfferModalSheetNewsletter({
84590
83940
  buttonAction
84591
83941
  }) {
84592
83942
  const sheetProps = open !== void 0 ? { open, onOpenChange } : { defaultOpen };
84593
- const renderLogo = React8.useMemo(() => {
83943
+ const renderLogo = React32.useMemo(() => {
84594
83944
  if (logoSlot) return logoSlot;
84595
83945
  if (!logo) return null;
84596
83946
  const logoSrc = typeof logo.src === "string" ? logo.src : logo.src.light;
@@ -84604,7 +83954,7 @@ function OfferModalSheetNewsletter({
84604
83954
  }
84605
83955
  );
84606
83956
  }, [logoSlot, logo, logoClassName, optixFlowConfig]);
84607
- const renderHeader = React8.useMemo(() => {
83957
+ const renderHeader = React32.useMemo(() => {
84608
83958
  if (headerSlot) return headerSlot;
84609
83959
  return /* @__PURE__ */ jsxs(SheetHeader, { className: cn("gap-8 p-0", headerClassName), children: [
84610
83960
  renderLogo,
@@ -84637,7 +83987,7 @@ function OfferModalSheetNewsletter({
84637
83987
  description,
84638
83988
  descriptionClassName
84639
83989
  ]);
84640
- const renderForm = React8.useMemo(() => {
83990
+ const renderForm = React32.useMemo(() => {
84641
83991
  if (formSlot) return formSlot;
84642
83992
  if (!formEngineSetup) return null;
84643
83993
  const defaultButtonAction = {
@@ -84670,7 +84020,7 @@ function OfferModalSheetNewsletter({
84670
84020
  }
84671
84021
  );
84672
84022
  }, [formSlot, formEngineSetup, buttonAction, formClassName]);
84673
- const renderLegal = React8.useMemo(() => {
84023
+ const renderLegal = React32.useMemo(() => {
84674
84024
  if (legalSlot) return legalSlot;
84675
84025
  if (!termsUrl || !termsText || !privacyUrl || !privacyText) return null;
84676
84026
  return /* @__PURE__ */ jsxs("p", { className: cn("text-muted-foreground text-xs", legalClassName), children: [
@@ -84684,7 +84034,7 @@ function OfferModalSheetNewsletter({
84684
84034
  "."
84685
84035
  ] });
84686
84036
  }, [legalSlot, termsUrl, termsText, privacyUrl, privacyText, legalClassName]);
84687
- const renderImage = React8.useMemo(() => {
84037
+ const renderImage = React32.useMemo(() => {
84688
84038
  if (imageSlot) return imageSlot;
84689
84039
  if (!image) return null;
84690
84040
  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(
@@ -85271,10 +84621,10 @@ function ProjectDetailSidebarNavigation(props) {
85271
84621
  heroImageClassName,
85272
84622
  metadataClassName
85273
84623
  } = props;
85274
- const [activeSection, setActiveSection] = React8.useState(
84624
+ const [activeSection, setActiveSection] = React32.useState(
85275
84625
  sections?.[0]?.id || ""
85276
84626
  );
85277
- React8.useEffect(() => {
84627
+ React32.useEffect(() => {
85278
84628
  const handleScroll = () => {
85279
84629
  const sectionElements = sections?.map(
85280
84630
  (section) => document.getElementById(section.id)
@@ -88134,7 +87484,7 @@ function ProjectDetailTabbedCaseStudy(props) {
88134
87484
  testimonialClassName,
88135
87485
  toolsClassName
88136
87486
  } = props;
88137
- const [activeTab, setActiveTab] = React8.useState(tabs?.[0]?.id || "");
87487
+ const [activeTab, setActiveTab] = React32.useState(tabs?.[0]?.id || "");
88138
87488
  const renderedBackAction = useMemo(() => {
88139
87489
  if (backActionSlot) return backActionSlot;
88140
87490
  if (!backAction) return null;
@@ -88522,7 +87872,7 @@ function RevealImage({
88522
87872
  index,
88523
87873
  optixFlowConfig
88524
87874
  }) {
88525
- const ref = React8.useRef(null);
87875
+ const ref = React32.useRef(null);
88526
87876
  const { scrollYProgress } = useScroll({
88527
87877
  target: ref,
88528
87878
  offset: ["start end", "end start"]
@@ -88717,7 +88067,7 @@ function ParallaxSection({
88717
88067
  index,
88718
88068
  optixFlowConfig
88719
88069
  }) {
88720
- const ref = React8.useRef(null);
88070
+ const ref = React32.useRef(null);
88721
88071
  const { scrollYProgress } = useScroll({
88722
88072
  target: ref,
88723
88073
  offset: ["start end", "end start"]
@@ -88790,7 +88140,7 @@ function ProjectDetailParallaxScroll(props) {
88790
88140
  heroImageClassName,
88791
88141
  sectionsClassName
88792
88142
  } = props;
88793
- const heroRef = React8.useRef(null);
88143
+ const heroRef = React32.useRef(null);
88794
88144
  const { scrollYProgress } = useScroll({
88795
88145
  target: heroRef,
88796
88146
  offset: ["start start", "end start"]
@@ -89328,7 +88678,7 @@ function IndustriesExpandableShowcase({
89328
88678
  patternClassName,
89329
88679
  optixFlowConfig
89330
88680
  }) {
89331
- const [activeContractor, setActiveContractor] = React8.useState(
88681
+ const [activeContractor, setActiveContractor] = React32.useState(
89332
88682
  contractors?.[0]?.id || ""
89333
88683
  );
89334
88684
  const handleContractorHover = (contractorId) => {
@@ -89996,7 +89346,7 @@ function ResourceDetailDocumentSidebar({
89996
89346
  }) {
89997
89347
  const renderedBreadcrumbs = useMemo(() => {
89998
89348
  if (breadcrumbsSlot) return breadcrumbsSlot;
89999
- return /* @__PURE__ */ jsx(Breadcrumb, { className: breadcrumbsClassName, children: /* @__PURE__ */ jsx(BreadcrumbList, { children: breadcrumbs?.map((crumb, index) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
89349
+ return /* @__PURE__ */ jsx(Breadcrumb, { className: breadcrumbsClassName, children: /* @__PURE__ */ jsx(BreadcrumbList, { children: breadcrumbs?.map((crumb, index) => /* @__PURE__ */ jsxs(React32.Fragment, { children: [
90000
89350
  /* @__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 }) }),
90001
89351
  index < (breadcrumbs?.length || 0) - 1 && /* @__PURE__ */ jsx(BreadcrumbSeparator, {})
90002
89352
  ] }, index)) }) });
@@ -93404,8 +92754,8 @@ function ServicesListTableHover({
93404
92754
  patternOpacity,
93405
92755
  optixFlowConfig
93406
92756
  }) {
93407
- const [hoveredIndex, setHoveredIndex] = React8.useState(null);
93408
- const [mousePosition, setMousePosition] = React8.useState({ x: 0, y: 0 });
92757
+ const [hoveredIndex, setHoveredIndex] = React32.useState(null);
92758
+ const [mousePosition, setMousePosition] = React32.useState({ x: 0, y: 0 });
93409
92759
  const handleMouseMove = (e) => {
93410
92760
  setMousePosition({ x: e.clientX, y: e.clientY });
93411
92761
  };
@@ -93655,7 +93005,7 @@ function ServicesListStickyImage({
93655
93005
  patternOpacity,
93656
93006
  optixFlowConfig
93657
93007
  }) {
93658
- const [activeIndex, setActiveIndex] = React8.useState(0);
93008
+ const [activeIndex, setActiveIndex] = React32.useState(0);
93659
93009
  const renderServices = () => {
93660
93010
  if (servicesSlot) return servicesSlot;
93661
93011
  if (!services || services.length === 0) return null;
@@ -93907,8 +93257,8 @@ function ServicesListVideoShowcase({
93907
93257
  patternOpacity,
93908
93258
  optixFlowConfig
93909
93259
  }) {
93910
- const [playingIndex, setPlayingIndex] = React8.useState(null);
93911
- const videoRefs = React8.useRef([]);
93260
+ const [playingIndex, setPlayingIndex] = React32.useState(null);
93261
+ const videoRefs = React32.useRef([]);
93912
93262
  const handleMouseEnter = (index) => {
93913
93263
  setPlayingIndex(index);
93914
93264
  videoRefs.current[index]?.play();
@@ -97195,7 +96545,7 @@ function StatsCircularProgress({
97195
96545
  statInfoClassName
97196
96546
  }) {
97197
96547
  const effectiveDefaultCategory = defaultCategory || (categories && categories.length > 0 ? categories[0].id : "");
97198
- const [category, setCategory] = React8.useState(effectiveDefaultCategory);
96548
+ const [category, setCategory] = React32.useState(effectiveDefaultCategory);
97199
96549
  const badgeContent = useMemo(() => {
97200
96550
  if (badgeSlot) return badgeSlot;
97201
96551
  if (!badge) return null;
@@ -97488,8 +96838,8 @@ function StatsCardGroup({
97488
96838
  );
97489
96839
  }
97490
96840
  function useAnimatedCounter(endValue, duration = 2e3, isVisible) {
97491
- const [count, setCount] = React8.useState(0);
97492
- React8.useEffect(() => {
96841
+ const [count, setCount] = React32.useState(0);
96842
+ React32.useEffect(() => {
97493
96843
  if (!isVisible) return;
97494
96844
  let startTime = null;
97495
96845
  let animationFrame;
@@ -97577,9 +96927,9 @@ function StatsAnimatedCounter({
97577
96927
  statLabelClassName,
97578
96928
  statIconClassName
97579
96929
  }) {
97580
- const [isVisible, setIsVisible] = React8.useState(false);
97581
- const sectionRef = React8.useRef(null);
97582
- React8.useEffect(() => {
96930
+ const [isVisible, setIsVisible] = React32.useState(false);
96931
+ const sectionRef = React32.useRef(null);
96932
+ React32.useEffect(() => {
97583
96933
  const observer = new IntersectionObserver(
97584
96934
  ([entry]) => {
97585
96935
  if (entry.isIntersecting) {
@@ -97667,8 +97017,8 @@ function StatsAnimatedCounter({
97667
97017
  );
97668
97018
  }
97669
97019
  function useNumberTicker(endValue, duration = 2500, isVisible, decimals = 0) {
97670
- const [displayValue, setDisplayValue] = React8.useState("0");
97671
- React8.useEffect(() => {
97020
+ const [displayValue, setDisplayValue] = React32.useState("0");
97021
+ React32.useEffect(() => {
97672
97022
  if (!isVisible) return;
97673
97023
  let startTime = null;
97674
97024
  let animationFrame;
@@ -97783,9 +97133,9 @@ function StatsNumberTicker({
97783
97133
  statLabelClassName,
97784
97134
  statDescriptionClassName
97785
97135
  }) {
97786
- const [isVisible, setIsVisible] = React8.useState(false);
97787
- const sectionRef = React8.useRef(null);
97788
- React8.useEffect(() => {
97136
+ const [isVisible, setIsVisible] = React32.useState(false);
97137
+ const sectionRef = React32.useRef(null);
97138
+ React32.useEffect(() => {
97789
97139
  const observer = new IntersectionObserver(
97790
97140
  ([entry]) => {
97791
97141
  if (entry.isIntersecting) {
@@ -98044,9 +97394,9 @@ function StatsBarComparison({
98044
97394
  barValueClassName,
98045
97395
  barTrackClassName
98046
97396
  }) {
98047
- const [isVisible, setIsVisible] = React8.useState(!animate);
98048
- const sectionRef = React8.useRef(null);
98049
- React8.useEffect(() => {
97397
+ const [isVisible, setIsVisible] = React32.useState(!animate);
97398
+ const sectionRef = React32.useRef(null);
97399
+ React32.useEffect(() => {
98050
97400
  if (!animate) return;
98051
97401
  const observer = new IntersectionObserver(
98052
97402
  ([entry]) => {
@@ -98224,7 +97574,7 @@ function TimelineVerticalIconDashed({
98224
97574
  "mx-auto flex flex-col items-center justify-center text-center sm:max-w-xl",
98225
97575
  stepsClassName
98226
97576
  ),
98227
- children: steps.map((step, index) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
97577
+ children: steps.map((step, index) => /* @__PURE__ */ jsxs(React32.Fragment, { children: [
98228
97578
  /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col items-center", stepClassName), children: [
98229
97579
  /* @__PURE__ */ jsx(
98230
97580
  "span",
@@ -98491,7 +97841,7 @@ function TimelineTwoColumnFeatured({
98491
97841
  style,
98492
97842
  optixFlowConfig
98493
97843
  }) {
98494
- const renderActions = React8.useMemo(() => {
97844
+ const renderActions = React32.useMemo(() => {
98495
97845
  if (actionsSlot) {
98496
97846
  return actionsSlot;
98497
97847
  }
@@ -98619,7 +97969,7 @@ function TimelineTwoColumnFeatured({
98619
97969
  }
98620
97970
  );
98621
97971
  }
98622
- var DiagonalPattern = React8.memo(({
97972
+ var DiagonalPattern = React32.memo(({
98623
97973
  className,
98624
97974
  patternOpacity = 0.15
98625
97975
  }) => {
@@ -98658,7 +98008,7 @@ function TimelineAlternatingDiagonal({
98658
98008
  style,
98659
98009
  optixFlowConfig
98660
98010
  }) {
98661
- const renderedBadge = React8.useMemo(() => {
98011
+ const renderedBadge = React32.useMemo(() => {
98662
98012
  if (badgeSlot) {
98663
98013
  return badgeSlot;
98664
98014
  }
@@ -99036,7 +98386,7 @@ function TimelineProductivityList({
99036
98386
  }
99037
98387
  );
99038
98388
  }
99039
- 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: [
98389
+ 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: [
99040
98390
  /* @__PURE__ */ jsx("div", { className: "flex flex-col items-center", children: /* @__PURE__ */ jsx(
99041
98391
  motion.div,
99042
98392
  {
@@ -99063,7 +98413,7 @@ var ProcessBar = React8.memo(({ currentStep, steps }) => /* @__PURE__ */ jsx("di
99063
98413
  )
99064
98414
  ] })
99065
98415
  ] }, index)) }) }));
99066
- var StepperContent = React8.memo(({ step, optixFlowConfig, imageClassName, descriptionClassName, background }) => {
98416
+ var StepperContent = React32.memo(({ step, optixFlowConfig, imageClassName, descriptionClassName, background }) => {
99067
98417
  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: [
99068
98418
  /* @__PURE__ */ jsx(
99069
98419
  motion.div,
@@ -99096,7 +98446,7 @@ var StepperContent = React8.memo(({ step, optixFlowConfig, imageClassName, descr
99096
98446
  )
99097
98447
  ] });
99098
98448
  });
99099
- var NavButtons = React8.memo(({ handlePrev, handleNext }) => /* @__PURE__ */ jsxs("div", { className: "flex w-full justify-end gap-3 tracking-tight", children: [
98449
+ var NavButtons = React32.memo(({ handlePrev, handleNext }) => /* @__PURE__ */ jsxs("div", { className: "flex w-full justify-end gap-3 tracking-tight", children: [
99100
98450
  /* @__PURE__ */ jsxs(
99101
98451
  Pressable,
99102
98452
  {
@@ -99147,10 +98497,10 @@ function TimelineStepperAnimated({
99147
98497
  }) {
99148
98498
  const safeInitialStep = (steps?.length ?? 0) > 0 ? Math.max(0, Math.min(initialStep ?? 0, (steps?.length ?? 1) - 1)) : 0;
99149
98499
  const [currentStep, setCurrentStep] = useState(safeInitialStep);
99150
- const handleNext = React8.useCallback(() => {
98500
+ const handleNext = React32.useCallback(() => {
99151
98501
  setCurrentStep((prev) => Math.min(prev + 1, (steps?.length ?? 1) - 1));
99152
98502
  }, [steps?.length]);
99153
- const handlePrev = React8.useCallback(() => {
98503
+ const handlePrev = React32.useCallback(() => {
99154
98504
  setCurrentStep((prev) => Math.max(prev - 1, 0));
99155
98505
  }, []);
99156
98506
  const safeCurrentStep = (steps?.length ?? 0) > 0 ? Math.max(0, Math.min(currentStep, (steps?.length ?? 1) - 1)) : 0;
@@ -99859,7 +99209,7 @@ function TimelineTabbedPhases({
99859
99209
  style,
99860
99210
  optixFlowConfig
99861
99211
  }) {
99862
- const renderDownloadButton = React8.useMemo(() => {
99212
+ const renderDownloadButton = React32.useMemo(() => {
99863
99213
  if (downloadSlot) {
99864
99214
  return downloadSlot;
99865
99215
  }
@@ -100079,7 +99429,7 @@ function TimelineProductLaunch({
100079
99429
  id,
100080
99430
  style
100081
99431
  }) {
100082
- const renderCta = React8.useMemo(() => {
99432
+ const renderCta = React32.useMemo(() => {
100083
99433
  if (ctaSlot) {
100084
99434
  return ctaSlot;
100085
99435
  }
@@ -100537,9 +99887,9 @@ function LinkTreeBlock({
100537
99887
  }) {
100538
99888
  const resolvedBackground = background;
100539
99889
  const resolvedPattern = pattern ?? backgroundPattern;
100540
- const [lightboxOpen, setLightboxOpen] = React8.useState(false);
100541
- const [lightboxIndex, setLightboxIndex] = React8.useState(0);
100542
- const lightboxItems = React8.useMemo(() => {
99890
+ const [lightboxOpen, setLightboxOpen] = React32.useState(false);
99891
+ const [lightboxIndex, setLightboxIndex] = React32.useState(0);
99892
+ const lightboxItems = React32.useMemo(() => {
100543
99893
  if (!mediaGallery || mediaGallery.length === 0) return [];
100544
99894
  return mediaGallery.slice(0, mediaGalleryLimit).map((item, index) => ({
100545
99895
  id: item.id ?? `media-${index}`,
@@ -100551,11 +99901,11 @@ function LinkTreeBlock({
100551
99901
  share: true
100552
99902
  }));
100553
99903
  }, [mediaGallery, mediaGalleryLimit]);
100554
- const handleMediaClick = React8.useCallback((index) => {
99904
+ const handleMediaClick = React32.useCallback((index) => {
100555
99905
  setLightboxIndex(index);
100556
99906
  setLightboxOpen(true);
100557
99907
  }, []);
100558
- const handleLightboxClose = React8.useCallback(() => {
99908
+ const handleLightboxClose = React32.useCallback(() => {
100559
99909
  setLightboxOpen(false);
100560
99910
  }, []);
100561
99911
  const resolveImage = (value, fallbackAlt) => {
@@ -100567,7 +99917,7 @@ function LinkTreeBlock({
100567
99917
  };
100568
99918
  const nameForAlt = typeof brandName === "string" ? brandName : "Brand avatar";
100569
99919
  const resolvedAvatar = resolveImage(brandAvatar || brandLogo, nameForAlt);
100570
- const renderBrandHeader = React8.useMemo(() => {
99920
+ const renderBrandHeader = React32.useMemo(() => {
100571
99921
  if (brandSlot) return brandSlot;
100572
99922
  return /* @__PURE__ */ jsxs(
100573
99923
  "div",
@@ -100654,7 +100004,7 @@ function LinkTreeBlock({
100654
100004
  brandTagline,
100655
100005
  taglineClassName
100656
100006
  ]);
100657
- const renderLinks = React8.useMemo(() => {
100007
+ const renderLinks = React32.useMemo(() => {
100658
100008
  if (linksSlot) return linksSlot;
100659
100009
  if (!links || links.length === 0) return null;
100660
100010
  return /* @__PURE__ */ jsx("div", { className: cn("space-y-3", linksClassName), children: links.map((link, index) => {
@@ -100770,7 +100120,7 @@ function LinkTreeBlock({
100770
100120
  linkBadgeClassName,
100771
100121
  linkChevronClassName
100772
100122
  ]);
100773
- const renderMediaGallery = React8.useMemo(() => {
100123
+ const renderMediaGallery = React32.useMemo(() => {
100774
100124
  if (mediaGallerySlot) return mediaGallerySlot;
100775
100125
  if (!mediaGallery || mediaGallery.length === 0) return null;
100776
100126
  const items = mediaGallery.slice(0, mediaGalleryLimit);
@@ -100883,7 +100233,7 @@ function LinkTreeBlock({
100883
100233
  mediaGalleryOverlayClassName,
100884
100234
  mediaGalleryPlayIconClassName
100885
100235
  ]);
100886
- const renderSocialLinks = React8.useMemo(() => {
100236
+ const renderSocialLinks = React32.useMemo(() => {
100887
100237
  if (socialLinksSlot) return socialLinksSlot;
100888
100238
  if (!socialLinks || socialLinks.length === 0) return null;
100889
100239
  return /* @__PURE__ */ jsx(
@@ -100916,7 +100266,7 @@ function LinkTreeBlock({
100916
100266
  socialIconClassName,
100917
100267
  socialLinkClassName
100918
100268
  ]);
100919
- const renderFooter = React8.useMemo(() => {
100269
+ const renderFooter = React32.useMemo(() => {
100920
100270
  if (footerSlot) return footerSlot;
100921
100271
  if (!footerAction) return null;
100922
100272
  const resolvedFooterAction = footerAction;