@opensite/ui 2.7.6 → 2.7.8

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 (1386) hide show
  1. package/README.md +11 -2
  2. package/dist/about-company-profile.d.cts +3 -3
  3. package/dist/about-company-profile.d.ts +3 -3
  4. package/dist/about-culture-tabs.cjs +174 -174
  5. package/dist/about-culture-tabs.d.cts +4 -4
  6. package/dist/about-culture-tabs.d.ts +4 -4
  7. package/dist/about-culture-tabs.js +174 -174
  8. package/dist/about-developer-profile.cjs +178 -178
  9. package/dist/about-developer-profile.d.cts +3 -3
  10. package/dist/about-developer-profile.d.ts +3 -3
  11. package/dist/about-developer-profile.js +178 -178
  12. package/dist/about-developer-story.cjs +142 -142
  13. package/dist/about-developer-story.d.cts +3 -3
  14. package/dist/about-developer-story.d.ts +3 -3
  15. package/dist/about-developer-story.js +142 -142
  16. package/dist/about-expandable-values.d.cts +4 -4
  17. package/dist/about-expandable-values.d.ts +4 -4
  18. package/dist/about-interactive-tabs.d.cts +3 -3
  19. package/dist/about-interactive-tabs.d.ts +3 -3
  20. package/dist/about-location-info-hero.d.cts +3 -3
  21. package/dist/about-location-info-hero.d.ts +3 -3
  22. package/dist/about-minimal-story.d.cts +3 -3
  23. package/dist/about-minimal-story.d.ts +3 -3
  24. package/dist/about-mission-dual-image.cjs +142 -142
  25. package/dist/about-mission-dual-image.d.cts +3 -3
  26. package/dist/about-mission-dual-image.d.ts +3 -3
  27. package/dist/about-mission-dual-image.js +142 -142
  28. package/dist/about-mission-features.cjs +143 -143
  29. package/dist/about-mission-features.d.cts +3 -3
  30. package/dist/about-mission-features.d.ts +3 -3
  31. package/dist/about-mission-features.js +143 -143
  32. package/dist/about-mission-principles.d.cts +4 -4
  33. package/dist/about-mission-principles.d.ts +4 -4
  34. package/dist/about-network-spotlight.cjs +147 -144
  35. package/dist/about-network-spotlight.d.cts +3 -3
  36. package/dist/about-network-spotlight.d.ts +3 -3
  37. package/dist/about-network-spotlight.js +147 -144
  38. package/dist/about-split-hero.d.cts +3 -3
  39. package/dist/about-split-hero.d.ts +3 -3
  40. package/dist/about-startup-team.d.cts +3 -3
  41. package/dist/about-startup-team.d.ts +3 -3
  42. package/dist/about-stats-showcase.d.cts +3 -3
  43. package/dist/about-stats-showcase.d.ts +3 -3
  44. package/dist/about-stats-sidebar.d.cts +3 -3
  45. package/dist/about-stats-sidebar.d.ts +3 -3
  46. package/dist/about-story-expertise.cjs +142 -142
  47. package/dist/about-story-expertise.d.cts +3 -3
  48. package/dist/about-story-expertise.d.ts +3 -3
  49. package/dist/about-story-expertise.js +142 -142
  50. package/dist/about-story-gallery.d.cts +3 -3
  51. package/dist/about-story-gallery.d.ts +3 -3
  52. package/dist/about-story-hero.d.cts +3 -3
  53. package/dist/about-story-hero.d.ts +3 -3
  54. package/dist/about-streamline-team.cjs +142 -142
  55. package/dist/about-streamline-team.d.cts +3 -3
  56. package/dist/about-streamline-team.d.ts +3 -3
  57. package/dist/about-streamline-team.js +142 -142
  58. package/dist/about-vision-gallery.d.cts +3 -3
  59. package/dist/about-vision-gallery.d.ts +3 -3
  60. package/dist/alternating-blocks.d.cts +4 -4
  61. package/dist/alternating-blocks.d.ts +4 -4
  62. package/dist/animated-dialog.d.cts +3 -3
  63. package/dist/animated-dialog.d.ts +3 -3
  64. package/dist/article-breadcrumb-social.d.cts +3 -3
  65. package/dist/article-breadcrumb-social.d.ts +3 -3
  66. package/dist/article-chapters-author.d.cts +3 -3
  67. package/dist/article-chapters-author.d.ts +3 -3
  68. package/dist/article-compact-toc.d.cts +3 -3
  69. package/dist/article-compact-toc.d.ts +3 -3
  70. package/dist/article-hero-prose.d.cts +3 -3
  71. package/dist/article-hero-prose.d.ts +3 -3
  72. package/dist/article-sidebar-sticky.d.cts +3 -3
  73. package/dist/article-sidebar-sticky.d.ts +3 -3
  74. package/dist/article-split-animated.d.cts +3 -3
  75. package/dist/article-split-animated.d.ts +3 -3
  76. package/dist/article-toc-sidebar.d.cts +3 -3
  77. package/dist/article-toc-sidebar.d.ts +3 -3
  78. package/dist/auto-scroll-carousel.d.cts +3 -3
  79. package/dist/auto-scroll-carousel.d.ts +3 -3
  80. package/dist/badge.d.cts +1 -1
  81. package/dist/badge.d.ts +1 -1
  82. package/dist/banner-announcement-dismissible.d.cts +3 -3
  83. package/dist/banner-announcement-dismissible.d.ts +3 -3
  84. package/dist/banner-countdown-sale.d.cts +3 -3
  85. package/dist/banner-countdown-sale.d.ts +3 -3
  86. package/dist/banner-delivery-countdown.d.cts +3 -3
  87. package/dist/banner-delivery-countdown.d.ts +3 -3
  88. package/dist/banner-event-promo.d.cts +3 -3
  89. package/dist/banner-event-promo.d.ts +3 -3
  90. package/dist/banner-floating-offer.d.cts +3 -3
  91. package/dist/banner-floating-offer.d.ts +3 -3
  92. package/dist/banner-gdpr-rights.d.cts +3 -3
  93. package/dist/banner-gdpr-rights.d.ts +3 -3
  94. package/dist/banner-privacy-notice.d.cts +3 -3
  95. package/dist/banner-privacy-notice.d.ts +3 -3
  96. package/dist/banner-promo-cta.d.cts +3 -3
  97. package/dist/banner-promo-cta.d.ts +3 -3
  98. package/dist/banner-social-follow.d.cts +3 -3
  99. package/dist/banner-social-follow.d.ts +3 -3
  100. package/dist/banner-survey-incentive.d.cts +3 -3
  101. package/dist/banner-survey-incentive.d.ts +3 -3
  102. package/dist/{blocks-CsMdf2Jh.d.ts → blocks-DmMuCMEh.d.ts} +6 -2
  103. package/dist/{blocks-gR13ES5A.d.cts → blocks-U7wOoE0O.d.cts} +6 -2
  104. package/dist/blog-cards-read-time.d.cts +3 -3
  105. package/dist/blog-cards-read-time.d.ts +3 -3
  106. package/dist/blog-cards-tagline-cta.d.cts +3 -3
  107. package/dist/blog-cards-tagline-cta.d.ts +3 -3
  108. package/dist/blog-carousel-apple.d.cts +3 -3
  109. package/dist/blog-carousel-apple.d.ts +3 -3
  110. package/dist/blog-category-overlay.d.cts +3 -3
  111. package/dist/blog-category-overlay.d.ts +3 -3
  112. package/dist/blog-featured-popular.d.cts +3 -3
  113. package/dist/blog-featured-popular.d.ts +3 -3
  114. package/dist/blog-filtered-results.d.cts +3 -3
  115. package/dist/blog-filtered-results.d.ts +3 -3
  116. package/dist/blog-grid-author-cards.d.cts +3 -3
  117. package/dist/blog-grid-author-cards.d.ts +3 -3
  118. package/dist/blog-grid-nine-posts.d.cts +3 -3
  119. package/dist/blog-grid-nine-posts.d.ts +3 -3
  120. package/dist/blog-horizontal-cards.d.cts +3 -3
  121. package/dist/blog-horizontal-cards.d.ts +3 -3
  122. package/dist/blog-horizontal-timeline.d.cts +3 -3
  123. package/dist/blog-horizontal-timeline.d.ts +3 -3
  124. package/dist/blog-masonry-featured.d.cts +3 -3
  125. package/dist/blog-masonry-featured.d.ts +3 -3
  126. package/dist/blog-related-articles.d.cts +3 -3
  127. package/dist/blog-related-articles.d.ts +3 -3
  128. package/dist/blog-tech-insights.cjs +6 -6
  129. package/dist/blog-tech-insights.d.cts +3 -3
  130. package/dist/blog-tech-insights.d.ts +3 -3
  131. package/dist/blog-tech-insights.js +6 -6
  132. package/dist/blur-vignette-grid.d.cts +3 -3
  133. package/dist/blur-vignette-grid.d.ts +3 -3
  134. package/dist/{button-variants-lRElsmTc.d.cts → button-variants-8mtEHxev.d.cts} +1 -1
  135. package/dist/{button-variants-lRElsmTc.d.ts → button-variants-8mtEHxev.d.ts} +1 -1
  136. package/dist/button.d.cts +1 -1
  137. package/dist/button.d.ts +1 -1
  138. package/dist/carousel-animated-sections.d.cts +3 -3
  139. package/dist/carousel-animated-sections.d.ts +3 -3
  140. package/dist/carousel-auto-progress-slides.d.cts +3 -3
  141. package/dist/carousel-auto-progress-slides.d.ts +3 -3
  142. package/dist/carousel-autoplay-progress.d.cts +3 -3
  143. package/dist/carousel-autoplay-progress.d.ts +3 -3
  144. package/dist/carousel-badge-cards.d.cts +3 -3
  145. package/dist/carousel-badge-cards.d.ts +3 -3
  146. package/dist/carousel-demo-link.d.cts +3 -3
  147. package/dist/carousel-demo-link.d.ts +3 -3
  148. package/dist/carousel-feature-badge.d.cts +3 -3
  149. package/dist/carousel-feature-badge.d.ts +3 -3
  150. package/dist/carousel-fullscreen-scroll-fx.d.cts +3 -3
  151. package/dist/carousel-fullscreen-scroll-fx.d.ts +3 -3
  152. package/dist/carousel-gallery-thumbnails.d.cts +3 -3
  153. package/dist/carousel-gallery-thumbnails.d.ts +3 -3
  154. package/dist/carousel-gradient-overlay.d.cts +3 -3
  155. package/dist/carousel-gradient-overlay.d.ts +3 -3
  156. package/dist/carousel-gradient-text.d.cts +3 -3
  157. package/dist/carousel-gradient-text.d.ts +3 -3
  158. package/dist/carousel-horizontal-cards.d.cts +3 -3
  159. package/dist/carousel-horizontal-cards.d.ts +3 -3
  160. package/dist/carousel-icon-sidebar.d.cts +3 -3
  161. package/dist/carousel-icon-sidebar.d.ts +3 -3
  162. package/dist/carousel-icon-tabs.d.cts +3 -3
  163. package/dist/carousel-icon-tabs.d.ts +3 -3
  164. package/dist/carousel-image-hero.d.cts +3 -3
  165. package/dist/carousel-image-hero.d.ts +3 -3
  166. package/dist/carousel-multi-step-showcase.d.cts +3 -3
  167. package/dist/carousel-multi-step-showcase.d.ts +3 -3
  168. package/dist/carousel-portfolio-hero.d.cts +3 -3
  169. package/dist/carousel-portfolio-hero.d.ts +3 -3
  170. package/dist/carousel-product-feature-showcase.d.cts +3 -3
  171. package/dist/carousel-product-feature-showcase.d.ts +3 -3
  172. package/dist/carousel-progress-slider.d.cts +3 -3
  173. package/dist/carousel-progress-slider.d.ts +3 -3
  174. package/dist/carousel-scale-focus.d.cts +3 -3
  175. package/dist/carousel-scale-focus.d.ts +3 -3
  176. package/dist/carousel-scrolling-feature-showcase.d.cts +3 -3
  177. package/dist/carousel-scrolling-feature-showcase.d.ts +3 -3
  178. package/dist/carousel-sidebar-resources.d.cts +3 -3
  179. package/dist/carousel-sidebar-resources.d.ts +3 -3
  180. package/dist/carousel-tabs-content.d.cts +3 -3
  181. package/dist/carousel-tabs-content.d.ts +3 -3
  182. package/dist/case-studies-featured-border.d.cts +3 -3
  183. package/dist/case-studies-featured-border.d.ts +3 -3
  184. package/dist/case-studies-image-grid.d.cts +3 -3
  185. package/dist/case-studies-image-grid.d.ts +3 -3
  186. package/dist/case-studies-stats-card.d.cts +3 -3
  187. package/dist/case-studies-stats-card.d.ts +3 -3
  188. package/dist/case-studies-testimonial-stats.d.cts +3 -3
  189. package/dist/case-studies-testimonial-stats.d.ts +3 -3
  190. package/dist/case-study-prose-sidebar.d.cts +3 -3
  191. package/dist/case-study-prose-sidebar.d.ts +3 -3
  192. package/dist/case-study-stats-metrics.d.cts +3 -3
  193. package/dist/case-study-stats-metrics.d.ts +3 -3
  194. package/dist/case-study-toc-social-sidebar.d.cts +3 -3
  195. package/dist/case-study-toc-social-sidebar.d.ts +3 -3
  196. package/dist/{community-initiatives-CtLnPq2v.d.ts → community-initiatives-64wrtPed.d.ts} +2 -6
  197. package/dist/{community-initiatives-2FsyKLdT.d.cts → community-initiatives-DM27LAzE.d.cts} +2 -6
  198. package/dist/community-initiatives.cjs +142 -142
  199. package/dist/community-initiatives.d.cts +4 -4
  200. package/dist/community-initiatives.d.ts +4 -4
  201. package/dist/community-initiatives.js +142 -142
  202. package/dist/comparison-ai-models.d.cts +3 -3
  203. package/dist/comparison-ai-models.d.ts +3 -3
  204. package/dist/comparison-feature-cards.d.cts +3 -3
  205. package/dist/comparison-feature-cards.d.ts +3 -3
  206. package/dist/comparison-feature-grid.d.cts +4 -4
  207. package/dist/comparison-feature-grid.d.ts +4 -4
  208. package/dist/comparison-grid-badges.d.cts +4 -4
  209. package/dist/comparison-grid-badges.d.ts +4 -4
  210. package/dist/comparison-image-cards.d.cts +3 -3
  211. package/dist/comparison-image-cards.d.ts +3 -3
  212. package/dist/comparison-legacy-modern.d.cts +4 -4
  213. package/dist/comparison-legacy-modern.d.ts +4 -4
  214. package/dist/comparison-metrics-rows.d.cts +3 -3
  215. package/dist/comparison-metrics-rows.d.ts +3 -3
  216. package/dist/comparison-table-tabs.d.cts +4 -4
  217. package/dist/comparison-table-tabs.d.ts +4 -4
  218. package/dist/comparison-table-tooltips.d.cts +4 -4
  219. package/dist/comparison-table-tooltips.d.ts +4 -4
  220. package/dist/comparison-table-two-column.d.cts +3 -3
  221. package/dist/comparison-table-two-column.d.ts +3 -3
  222. package/dist/components.cjs +1359 -785
  223. package/dist/components.d.cts +6 -4
  224. package/dist/components.d.ts +6 -4
  225. package/dist/components.js +1264 -691
  226. package/dist/contact-callback.d.cts +4 -4
  227. package/dist/contact-callback.d.ts +4 -4
  228. package/dist/contact-card.d.cts +5 -5
  229. package/dist/contact-card.d.ts +5 -5
  230. package/dist/contact-careers.cjs +4 -4
  231. package/dist/contact-careers.d.cts +4 -4
  232. package/dist/contact-careers.d.ts +4 -4
  233. package/dist/contact-careers.js +4 -4
  234. package/dist/contact-catering.d.cts +4 -4
  235. package/dist/contact-catering.d.ts +4 -4
  236. package/dist/contact-consultation.d.cts +4 -4
  237. package/dist/contact-consultation.d.ts +4 -4
  238. package/dist/{contact-dark-BN6426-J.d.ts → contact-dark-CECEnR7C.d.ts} +1 -1
  239. package/dist/{contact-dark-DA4diOuH.d.cts → contact-dark-DlV3Sdwd.d.cts} +1 -1
  240. package/dist/contact-dark.d.cts +5 -5
  241. package/dist/contact-dark.d.ts +5 -5
  242. package/dist/contact-demo.d.cts +4 -4
  243. package/dist/contact-demo.d.ts +4 -4
  244. package/dist/contact-emergency.d.cts +4 -4
  245. package/dist/contact-emergency.d.ts +4 -4
  246. package/dist/contact-event.d.cts +4 -4
  247. package/dist/contact-event.d.ts +4 -4
  248. package/dist/contact-faq.cjs +4 -4
  249. package/dist/contact-faq.d.cts +4 -4
  250. package/dist/contact-faq.d.ts +4 -4
  251. package/dist/contact-faq.js +4 -4
  252. package/dist/contact-feedback.d.cts +4 -4
  253. package/dist/contact-feedback.d.ts +4 -4
  254. package/dist/contact-fitness.d.cts +4 -4
  255. package/dist/contact-fitness.d.ts +4 -4
  256. package/dist/contact-floating-banner.d.cts +3 -3
  257. package/dist/contact-floating-banner.d.ts +3 -3
  258. package/dist/contact-guest.d.cts +4 -4
  259. package/dist/contact-guest.d.ts +4 -4
  260. package/dist/contact-help-center.d.cts +4 -4
  261. package/dist/contact-help-center.d.ts +4 -4
  262. package/dist/contact-image.d.cts +3 -3
  263. package/dist/contact-image.d.ts +3 -3
  264. package/dist/contact-insurance.d.cts +4 -4
  265. package/dist/contact-insurance.d.ts +4 -4
  266. package/dist/contact-interview.d.cts +4 -4
  267. package/dist/contact-interview.d.ts +4 -4
  268. package/dist/contact-locations.d.cts +4 -4
  269. package/dist/contact-locations.d.ts +4 -4
  270. package/dist/contact-maintenance.d.cts +4 -4
  271. package/dist/contact-maintenance.d.ts +4 -4
  272. package/dist/contact-map.cjs +1078 -40
  273. package/dist/contact-map.d.cts +15 -5
  274. package/dist/contact-map.d.ts +15 -5
  275. package/dist/contact-map.js +1062 -39
  276. package/dist/contact-minimal.d.cts +4 -4
  277. package/dist/contact-minimal.d.ts +4 -4
  278. package/dist/contact-moving.d.cts +4 -4
  279. package/dist/contact-moving.d.ts +4 -4
  280. package/dist/contact-multistep.d.cts +4 -4
  281. package/dist/contact-multistep.d.ts +4 -4
  282. package/dist/contact-partnership.d.cts +4 -4
  283. package/dist/contact-partnership.d.ts +4 -4
  284. package/dist/contact-photography.d.cts +3 -3
  285. package/dist/contact-photography.d.ts +3 -3
  286. package/dist/contact-press.d.cts +4 -4
  287. package/dist/contact-press.d.ts +4 -4
  288. package/dist/contact-quote.d.cts +4 -4
  289. package/dist/contact-quote.d.ts +4 -4
  290. package/dist/contact-referral.d.cts +4 -4
  291. package/dist/contact-referral.d.ts +4 -4
  292. package/dist/contact-report.d.cts +4 -4
  293. package/dist/contact-report.d.ts +4 -4
  294. package/dist/contact-reservation.d.cts +4 -4
  295. package/dist/contact-reservation.d.ts +4 -4
  296. package/dist/contact-retreat.d.cts +4 -4
  297. package/dist/contact-retreat.d.ts +4 -4
  298. package/dist/contact-rsvp.d.cts +4 -4
  299. package/dist/contact-rsvp.d.ts +4 -4
  300. package/dist/contact-sales.d.cts +4 -4
  301. package/dist/contact-sales.d.ts +4 -4
  302. package/dist/contact-schedule.d.cts +4 -4
  303. package/dist/contact-schedule.d.ts +4 -4
  304. package/dist/contact-sponsorship.d.cts +4 -4
  305. package/dist/contact-sponsorship.d.ts +4 -4
  306. package/dist/contact-support.d.cts +4 -4
  307. package/dist/contact-support.d.ts +4 -4
  308. package/dist/contact-tenant.d.cts +4 -4
  309. package/dist/contact-tenant.d.ts +4 -4
  310. package/dist/contact-vendor.d.cts +4 -4
  311. package/dist/contact-vendor.d.ts +4 -4
  312. package/dist/contact-volunteer.d.cts +4 -4
  313. package/dist/contact-volunteer.d.ts +4 -4
  314. package/dist/contact-warranty.d.cts +4 -4
  315. package/dist/contact-warranty.d.ts +4 -4
  316. package/dist/contact-wedding.d.cts +4 -4
  317. package/dist/contact-wedding.d.ts +4 -4
  318. package/dist/container.d.cts +4 -4
  319. package/dist/container.d.ts +4 -4
  320. package/dist/cta-accent-background.d.cts +3 -3
  321. package/dist/cta-accent-background.d.ts +3 -3
  322. package/dist/cta-app-download-newsletter.d.cts +3 -3
  323. package/dist/cta-app-download-newsletter.d.ts +3 -3
  324. package/dist/cta-background-icon-badge.d.cts +3 -3
  325. package/dist/cta-background-icon-badge.d.ts +3 -3
  326. package/dist/cta-case-study-testimonial.d.cts +3 -3
  327. package/dist/cta-case-study-testimonial.d.ts +3 -3
  328. package/dist/cta-documentation-links.d.cts +3 -3
  329. package/dist/cta-documentation-links.d.ts +3 -3
  330. package/dist/cta-enterprise-dark-features.d.cts +3 -3
  331. package/dist/cta-enterprise-dark-features.d.ts +3 -3
  332. package/dist/cta-enterprise-split.d.cts +3 -3
  333. package/dist/cta-enterprise-split.d.ts +3 -3
  334. package/dist/cta-feature-cards-grid.d.cts +3 -3
  335. package/dist/cta-feature-cards-grid.d.ts +3 -3
  336. package/dist/cta-feature-checklist.cjs +142 -142
  337. package/dist/cta-feature-checklist.d.cts +3 -3
  338. package/dist/cta-feature-checklist.d.ts +3 -3
  339. package/dist/cta-feature-checklist.js +142 -142
  340. package/dist/cta-feature-list.d.cts +3 -3
  341. package/dist/cta-feature-list.d.ts +3 -3
  342. package/dist/cta-fullwidth-background.d.cts +3 -3
  343. package/dist/cta-fullwidth-background.d.ts +3 -3
  344. package/dist/cta-gradient-logos-floating.d.cts +3 -3
  345. package/dist/cta-gradient-logos-floating.d.ts +3 -3
  346. package/dist/cta-gradient-stats-hero.d.cts +3 -3
  347. package/dist/cta-gradient-stats-hero.d.ts +3 -3
  348. package/dist/cta-hero-feature-cards.d.cts +3 -3
  349. package/dist/cta-hero-feature-cards.d.ts +3 -3
  350. package/dist/cta-image-overlay-arrow.d.cts +3 -3
  351. package/dist/cta-image-overlay-arrow.d.ts +3 -3
  352. package/dist/cta-image-overlay-centered.d.cts +3 -3
  353. package/dist/cta-image-overlay-centered.d.ts +3 -3
  354. package/dist/cta-minimal-separator.d.cts +3 -3
  355. package/dist/cta-minimal-separator.d.ts +3 -3
  356. package/dist/cta-newsletter-features.d.cts +3 -3
  357. package/dist/cta-newsletter-features.d.ts +3 -3
  358. package/dist/cta-pattern-background.d.cts +3 -3
  359. package/dist/cta-pattern-background.d.ts +3 -3
  360. package/dist/cta-platform-demo.d.cts +3 -3
  361. package/dist/cta-platform-demo.d.ts +3 -3
  362. package/dist/cta-simple-centered.d.cts +3 -3
  363. package/dist/cta-simple-centered.d.ts +3 -3
  364. package/dist/cta-split-gradient-image.d.cts +3 -3
  365. package/dist/cta-split-gradient-image.d.ts +3 -3
  366. package/dist/cta-split-image-logos.d.cts +3 -3
  367. package/dist/cta-split-image-logos.d.ts +3 -3
  368. package/dist/cta-split-image.d.cts +3 -3
  369. package/dist/cta-split-image.d.ts +3 -3
  370. package/dist/cta-stacked-cards.d.cts +3 -3
  371. package/dist/cta-stacked-cards.d.ts +3 -3
  372. package/dist/cta-video-background-hero.d.cts +3 -3
  373. package/dist/cta-video-background-hero.d.ts +3 -3
  374. package/dist/cta-workflow-tabs.d.cts +3 -3
  375. package/dist/cta-workflow-tabs.d.ts +3 -3
  376. package/dist/expandable-case-study-cards.d.cts +3 -3
  377. package/dist/expandable-case-study-cards.d.ts +3 -3
  378. package/dist/faq-badge-support.cjs +5 -5
  379. package/dist/faq-badge-support.d.cts +3 -3
  380. package/dist/faq-badge-support.d.ts +3 -3
  381. package/dist/faq-badge-support.js +5 -5
  382. package/dist/faq-bordered-badge.cjs +15 -66
  383. package/dist/faq-bordered-badge.d.cts +4 -4
  384. package/dist/faq-bordered-badge.d.ts +4 -4
  385. package/dist/faq-bordered-badge.js +15 -66
  386. package/dist/faq-card-categories.cjs +143 -162
  387. package/dist/faq-card-categories.d.cts +4 -4
  388. package/dist/faq-card-categories.d.ts +4 -4
  389. package/dist/faq-card-categories.js +142 -158
  390. package/dist/faq-categorized-sections.cjs +10 -46
  391. package/dist/faq-categorized-sections.d.cts +4 -4
  392. package/dist/faq-categorized-sections.d.ts +4 -4
  393. package/dist/faq-categorized-sections.js +10 -46
  394. package/dist/faq-centered-accordion.cjs +4 -4
  395. package/dist/faq-centered-accordion.d.cts +3 -3
  396. package/dist/faq-centered-accordion.d.ts +3 -3
  397. package/dist/faq-centered-accordion.js +4 -4
  398. package/dist/faq-gradient-categories.cjs +99 -75
  399. package/dist/faq-gradient-categories.d.cts +6 -6
  400. package/dist/faq-gradient-categories.d.ts +6 -6
  401. package/dist/faq-gradient-categories.js +98 -71
  402. package/dist/faq-icon-benefits.cjs +125 -76
  403. package/dist/faq-icon-benefits.d.cts +4 -4
  404. package/dist/faq-icon-benefits.d.ts +4 -4
  405. package/dist/faq-icon-benefits.js +107 -73
  406. package/dist/faq-muted-cards.cjs +122 -92
  407. package/dist/faq-muted-cards.d.cts +20 -4
  408. package/dist/faq-muted-cards.d.ts +20 -4
  409. package/dist/faq-muted-cards.js +121 -88
  410. package/dist/faq-numbered-grid.cjs +142 -142
  411. package/dist/faq-numbered-grid.d.cts +3 -3
  412. package/dist/faq-numbered-grid.d.ts +3 -3
  413. package/dist/faq-numbered-grid.js +142 -142
  414. package/dist/faq-numbered-list.cjs +47 -106
  415. package/dist/faq-numbered-list.d.cts +4 -4
  416. package/dist/faq-numbered-list.d.ts +4 -4
  417. package/dist/faq-numbered-list.js +47 -106
  418. package/dist/faq-profile-sidebar.cjs +150 -124
  419. package/dist/faq-profile-sidebar.d.cts +4 -4
  420. package/dist/faq-profile-sidebar.d.ts +4 -4
  421. package/dist/faq-profile-sidebar.js +150 -124
  422. package/dist/faq-rounded-cards.cjs +107 -37
  423. package/dist/faq-rounded-cards.d.cts +4 -4
  424. package/dist/faq-rounded-cards.d.ts +4 -4
  425. package/dist/faq-rounded-cards.js +106 -33
  426. package/dist/faq-sidebar-navigation.cjs +65 -51
  427. package/dist/faq-sidebar-navigation.d.cts +3 -3
  428. package/dist/faq-sidebar-navigation.d.ts +3 -3
  429. package/dist/faq-sidebar-navigation.js +65 -51
  430. package/dist/faq-simple-accordion.cjs +12 -5
  431. package/dist/faq-simple-accordion.d.cts +3 -3
  432. package/dist/faq-simple-accordion.d.ts +3 -3
  433. package/dist/faq-simple-accordion.js +12 -5
  434. package/dist/faq-split-help.cjs +77 -20
  435. package/dist/faq-split-help.d.cts +3 -3
  436. package/dist/faq-split-help.d.ts +3 -3
  437. package/dist/faq-split-help.js +77 -20
  438. package/dist/faq-split-hero.cjs +228 -75
  439. package/dist/faq-split-hero.d.cts +16 -22
  440. package/dist/faq-split-hero.d.ts +16 -22
  441. package/dist/faq-split-hero.js +224 -74
  442. package/dist/faq-static-list.cjs +124 -21
  443. package/dist/faq-static-list.d.cts +16 -4
  444. package/dist/faq-static-list.d.ts +16 -4
  445. package/dist/faq-static-list.js +106 -18
  446. package/dist/feature-accordion-image.cjs +4 -4
  447. package/dist/feature-accordion-image.d.cts +3 -3
  448. package/dist/feature-accordion-image.d.ts +3 -3
  449. package/dist/feature-accordion-image.js +4 -4
  450. package/dist/feature-animated-carousel.cjs +142 -142
  451. package/dist/feature-animated-carousel.d.cts +3 -3
  452. package/dist/feature-animated-carousel.d.ts +3 -3
  453. package/dist/feature-animated-carousel.js +142 -142
  454. package/dist/feature-badge-grid-six.d.cts +3 -3
  455. package/dist/feature-badge-grid-six.d.ts +3 -3
  456. package/dist/feature-bento-image-grid.d.cts +3 -3
  457. package/dist/feature-bento-image-grid.d.ts +3 -3
  458. package/dist/feature-bento-utilities.cjs +142 -142
  459. package/dist/feature-bento-utilities.d.cts +3 -3
  460. package/dist/feature-bento-utilities.d.ts +3 -3
  461. package/dist/feature-bento-utilities.js +142 -142
  462. package/dist/feature-capabilities-grid.cjs +142 -142
  463. package/dist/feature-capabilities-grid.d.cts +4 -4
  464. package/dist/feature-capabilities-grid.d.ts +4 -4
  465. package/dist/feature-capabilities-grid.js +142 -142
  466. package/dist/feature-card-grid-linked.d.cts +3 -3
  467. package/dist/feature-card-grid-linked.d.ts +3 -3
  468. package/dist/feature-carousel-progress.d.cts +4 -4
  469. package/dist/feature-carousel-progress.d.ts +4 -4
  470. package/dist/feature-category-image-cards.cjs +142 -142
  471. package/dist/feature-category-image-cards.d.cts +3 -3
  472. package/dist/feature-category-image-cards.d.ts +3 -3
  473. package/dist/feature-category-image-cards.js +142 -142
  474. package/dist/feature-checklist-image.d.cts +3 -3
  475. package/dist/feature-checklist-image.d.ts +3 -3
  476. package/dist/feature-checklist-three-column.d.cts +3 -3
  477. package/dist/feature-checklist-three-column.d.ts +3 -3
  478. package/dist/feature-icon-grid-accent.d.cts +3 -3
  479. package/dist/feature-icon-grid-accent.d.ts +3 -3
  480. package/dist/feature-icon-grid-bordered.cjs +142 -142
  481. package/dist/feature-icon-grid-bordered.d.cts +4 -4
  482. package/dist/feature-icon-grid-bordered.d.ts +4 -4
  483. package/dist/feature-icon-grid-bordered.js +142 -142
  484. package/dist/feature-icon-grid-muted.cjs +142 -142
  485. package/dist/feature-icon-grid-muted.d.cts +4 -4
  486. package/dist/feature-icon-grid-muted.d.ts +4 -4
  487. package/dist/feature-icon-grid-muted.js +142 -142
  488. package/dist/feature-icon-tabs-content.d.cts +3 -3
  489. package/dist/feature-icon-tabs-content.d.ts +3 -3
  490. package/dist/feature-image-cards-three-column.d.cts +3 -3
  491. package/dist/feature-image-cards-three-column.d.ts +3 -3
  492. package/dist/feature-image-overlay-badge.d.cts +3 -3
  493. package/dist/feature-image-overlay-badge.d.ts +3 -3
  494. package/dist/feature-integration-cards.d.cts +3 -3
  495. package/dist/feature-integration-cards.d.ts +3 -3
  496. package/dist/feature-numbered-cards.cjs +142 -142
  497. package/dist/feature-numbered-cards.d.cts +3 -3
  498. package/dist/feature-numbered-cards.d.ts +3 -3
  499. package/dist/feature-numbered-cards.js +142 -142
  500. package/dist/feature-pattern-grid-links.d.cts +4 -4
  501. package/dist/feature-pattern-grid-links.d.ts +4 -4
  502. package/dist/feature-showcase.d.cts +4 -4
  503. package/dist/feature-showcase.d.ts +4 -4
  504. package/dist/feature-split-image-reverse.d.cts +3 -3
  505. package/dist/feature-split-image-reverse.d.ts +3 -3
  506. package/dist/feature-split-image.d.cts +3 -3
  507. package/dist/feature-split-image.d.ts +3 -3
  508. package/dist/feature-stats-highlight.d.cts +3 -3
  509. package/dist/feature-stats-highlight.d.ts +3 -3
  510. package/dist/feature-tabbed-content-image.d.cts +3 -3
  511. package/dist/feature-tabbed-content-image.d.ts +3 -3
  512. package/dist/feature-three-column-values.cjs +142 -142
  513. package/dist/feature-three-column-values.d.cts +4 -4
  514. package/dist/feature-three-column-values.d.ts +4 -4
  515. package/dist/feature-three-column-values.js +142 -142
  516. package/dist/feature-utility-cards-grid.d.cts +3 -3
  517. package/dist/feature-utility-cards-grid.d.ts +3 -3
  518. package/dist/footer-accordion-social.d.cts +3 -3
  519. package/dist/footer-accordion-social.d.ts +3 -3
  520. package/dist/footer-animated-social.d.cts +4 -4
  521. package/dist/footer-animated-social.d.ts +4 -4
  522. package/dist/footer-background-card.d.cts +3 -3
  523. package/dist/footer-background-card.d.ts +3 -3
  524. package/dist/footer-brand-description.d.cts +3 -3
  525. package/dist/footer-brand-description.d.ts +3 -3
  526. package/dist/footer-brand-links-contact.d.cts +3 -3
  527. package/dist/footer-brand-links-contact.d.ts +3 -3
  528. package/dist/footer-comprehensive-links.d.cts +4 -4
  529. package/dist/footer-comprehensive-links.d.ts +4 -4
  530. package/dist/footer-contact-card.d.cts +3 -3
  531. package/dist/footer-contact-card.d.ts +3 -3
  532. package/dist/footer-cta-banner.d.cts +3 -3
  533. package/dist/footer-cta-banner.d.ts +3 -3
  534. package/dist/footer-cta-social.d.cts +4 -4
  535. package/dist/footer-cta-social.d.ts +4 -4
  536. package/dist/footer-info-cards-accordion.d.cts +3 -3
  537. package/dist/footer-info-cards-accordion.d.ts +3 -3
  538. package/dist/footer-links-grid.d.cts +4 -4
  539. package/dist/footer-links-grid.d.ts +4 -4
  540. package/dist/footer-nav-social.d.cts +3 -3
  541. package/dist/footer-nav-social.d.ts +3 -3
  542. package/dist/footer-newsletter-contact.d.cts +3 -3
  543. package/dist/footer-newsletter-contact.d.ts +3 -3
  544. package/dist/footer-newsletter-grid.d.cts +4 -4
  545. package/dist/footer-newsletter-grid.d.ts +4 -4
  546. package/dist/footer-newsletter-minimal.d.cts +3 -3
  547. package/dist/footer-newsletter-minimal.d.ts +3 -3
  548. package/dist/footer-simple-centered.d.cts +3 -3
  549. package/dist/footer-simple-centered.d.ts +3 -3
  550. package/dist/footer-social-apps.d.cts +4 -4
  551. package/dist/footer-social-apps.d.ts +4 -4
  552. package/dist/footer-social-newsletter.d.cts +3 -3
  553. package/dist/footer-social-newsletter.d.ts +3 -3
  554. package/dist/footer-split-image-accordion.d.cts +3 -3
  555. package/dist/footer-split-image-accordion.d.ts +3 -3
  556. package/dist/geo-map.cjs +1026 -0
  557. package/dist/geo-map.d.cts +90 -0
  558. package/dist/geo-map.d.ts +90 -0
  559. package/dist/geo-map.js +1004 -0
  560. package/dist/hero-ad-campaign-expert.cjs +144 -144
  561. package/dist/hero-ad-campaign-expert.d.cts +3 -3
  562. package/dist/hero-ad-campaign-expert.d.ts +3 -3
  563. package/dist/hero-ad-campaign-expert.js +144 -144
  564. package/dist/hero-adaptable-product-grid.cjs +142 -142
  565. package/dist/hero-adaptable-product-grid.d.cts +3 -3
  566. package/dist/hero-adaptable-product-grid.d.ts +3 -3
  567. package/dist/hero-adaptable-product-grid.js +142 -142
  568. package/dist/hero-agency-animated-images.cjs +142 -142
  569. package/dist/hero-agency-animated-images.d.cts +3 -3
  570. package/dist/hero-agency-animated-images.d.ts +3 -3
  571. package/dist/hero-agency-animated-images.js +142 -142
  572. package/dist/hero-ai-powered-carousel.d.cts +3 -3
  573. package/dist/hero-ai-powered-carousel.d.ts +3 -3
  574. package/dist/hero-announcement-badge.cjs +142 -142
  575. package/dist/hero-announcement-badge.d.cts +3 -3
  576. package/dist/hero-announcement-badge.d.ts +3 -3
  577. package/dist/hero-announcement-badge.js +142 -142
  578. package/dist/hero-architecture-fullscreen.d.cts +3 -3
  579. package/dist/hero-architecture-fullscreen.d.ts +3 -3
  580. package/dist/hero-badge-image-split.cjs +142 -142
  581. package/dist/hero-badge-image-split.d.cts +3 -3
  582. package/dist/hero-badge-image-split.d.ts +3 -3
  583. package/dist/hero-badge-image-split.js +142 -142
  584. package/dist/hero-badge-shadow-overlay.d.cts +3 -3
  585. package/dist/hero-badge-shadow-overlay.d.ts +3 -3
  586. package/dist/hero-billing-platform-logos.d.cts +3 -3
  587. package/dist/hero-billing-platform-logos.d.ts +3 -3
  588. package/dist/hero-business-carousel-dots.cjs +142 -142
  589. package/dist/hero-business-carousel-dots.d.cts +3 -3
  590. package/dist/hero-business-carousel-dots.d.ts +3 -3
  591. package/dist/hero-business-carousel-dots.js +142 -142
  592. package/dist/hero-business-operations-mosaic.cjs +142 -142
  593. package/dist/hero-business-operations-mosaic.d.cts +3 -3
  594. package/dist/hero-business-operations-mosaic.d.ts +3 -3
  595. package/dist/hero-business-operations-mosaic.js +142 -142
  596. package/dist/hero-centered-gradient-cta.d.cts +3 -3
  597. package/dist/hero-centered-gradient-cta.d.ts +3 -3
  598. package/dist/hero-centered-image-grid.d.cts +3 -3
  599. package/dist/hero-centered-image-grid.d.ts +3 -3
  600. package/dist/hero-centered-screenshot.d.cts +3 -3
  601. package/dist/hero-centered-screenshot.d.ts +3 -3
  602. package/dist/hero-coming-soon-countdown.d.cts +3 -3
  603. package/dist/hero-coming-soon-countdown.d.ts +3 -3
  604. package/dist/hero-community-survey-cta.d.cts +3 -3
  605. package/dist/hero-community-survey-cta.d.ts +3 -3
  606. package/dist/hero-conversation-intelligence.cjs +142 -142
  607. package/dist/hero-conversation-intelligence.d.cts +3 -3
  608. package/dist/hero-conversation-intelligence.d.ts +3 -3
  609. package/dist/hero-conversation-intelligence.js +142 -142
  610. package/dist/hero-conversion-video-play.d.cts +3 -3
  611. package/dist/hero-conversion-video-play.d.ts +3 -3
  612. package/dist/hero-creative-studio-stacked.cjs +142 -142
  613. package/dist/hero-creative-studio-stacked.d.cts +4 -4
  614. package/dist/hero-creative-studio-stacked.d.ts +4 -4
  615. package/dist/hero-creative-studio-stacked.js +142 -142
  616. package/dist/hero-crm-streamlined.cjs +142 -142
  617. package/dist/hero-crm-streamlined.d.cts +3 -3
  618. package/dist/hero-crm-streamlined.d.ts +3 -3
  619. package/dist/hero-crm-streamlined.js +142 -142
  620. package/dist/hero-customer-support-layered.cjs +142 -142
  621. package/dist/hero-customer-support-layered.d.cts +3 -3
  622. package/dist/hero-customer-support-layered.d.ts +3 -3
  623. package/dist/hero-customer-support-layered.js +142 -142
  624. package/dist/hero-dashed-border-features.d.cts +3 -3
  625. package/dist/hero-dashed-border-features.d.ts +3 -3
  626. package/dist/hero-design-carousel-portfolio.d.cts +3 -3
  627. package/dist/hero-design-carousel-portfolio.d.ts +3 -3
  628. package/dist/hero-design-showcase-logos.cjs +142 -142
  629. package/dist/hero-design-showcase-logos.d.cts +3 -3
  630. package/dist/hero-design-showcase-logos.d.ts +3 -3
  631. package/dist/hero-design-showcase-logos.js +142 -142
  632. package/dist/hero-design-system-3d.cjs +142 -142
  633. package/dist/hero-design-system-3d.d.cts +3 -3
  634. package/dist/hero-design-system-3d.d.ts +3 -3
  635. package/dist/hero-design-system-3d.js +142 -142
  636. package/dist/hero-developer-tools-code.cjs +142 -142
  637. package/dist/hero-developer-tools-code.d.cts +3 -3
  638. package/dist/hero-developer-tools-code.d.ts +3 -3
  639. package/dist/hero-developer-tools-code.js +142 -142
  640. package/dist/hero-digital-agency-fullscreen.cjs +142 -142
  641. package/dist/hero-digital-agency-fullscreen.d.cts +3 -3
  642. package/dist/hero-digital-agency-fullscreen.d.ts +3 -3
  643. package/dist/hero-digital-agency-fullscreen.js +142 -142
  644. package/dist/hero-ecommerce-product-showcase.cjs +174 -174
  645. package/dist/hero-ecommerce-product-showcase.d.cts +3 -3
  646. package/dist/hero-ecommerce-product-showcase.d.ts +3 -3
  647. package/dist/hero-ecommerce-product-showcase.js +174 -174
  648. package/dist/hero-enterprise-security.d.cts +3 -3
  649. package/dist/hero-enterprise-security.d.ts +3 -3
  650. package/dist/hero-event-registration.cjs +142 -142
  651. package/dist/hero-event-registration.d.cts +3 -3
  652. package/dist/hero-event-registration.d.ts +3 -3
  653. package/dist/hero-event-registration.js +142 -142
  654. package/dist/hero-feature-cards-grid.d.cts +3 -3
  655. package/dist/hero-feature-cards-grid.d.ts +3 -3
  656. package/dist/hero-floating-images.d.cts +3 -3
  657. package/dist/hero-floating-images.d.ts +3 -3
  658. package/dist/hero-fullscreen-background-image.cjs +142 -142
  659. package/dist/hero-fullscreen-background-image.d.cts +3 -3
  660. package/dist/hero-fullscreen-background-image.d.ts +3 -3
  661. package/dist/hero-fullscreen-background-image.js +142 -142
  662. package/dist/hero-fullscreen-logo-cta.d.cts +3 -3
  663. package/dist/hero-fullscreen-logo-cta.d.ts +3 -3
  664. package/dist/hero-gradient-avatars-rating.cjs +142 -142
  665. package/dist/hero-gradient-avatars-rating.d.cts +3 -3
  666. package/dist/hero-gradient-avatars-rating.d.ts +3 -3
  667. package/dist/hero-gradient-avatars-rating.js +142 -142
  668. package/dist/hero-gradient-client-focused.cjs +142 -142
  669. package/dist/hero-gradient-client-focused.d.cts +3 -3
  670. package/dist/hero-gradient-client-focused.d.ts +3 -3
  671. package/dist/hero-gradient-client-focused.js +142 -142
  672. package/dist/hero-grid-pattern-efficiency.d.cts +3 -3
  673. package/dist/hero-grid-pattern-efficiency.d.ts +3 -3
  674. package/dist/hero-grid-pattern-solutions.d.cts +3 -3
  675. package/dist/hero-grid-pattern-solutions.d.ts +3 -3
  676. package/dist/hero-hiring-animated-text.cjs +142 -142
  677. package/dist/hero-hiring-animated-text.d.cts +3 -3
  678. package/dist/hero-hiring-animated-text.d.ts +3 -3
  679. package/dist/hero-hiring-animated-text.js +142 -142
  680. package/dist/hero-image-left-content.cjs +142 -142
  681. package/dist/hero-image-left-content.d.cts +3 -3
  682. package/dist/hero-image-left-content.d.ts +3 -3
  683. package/dist/hero-image-left-content.js +142 -142
  684. package/dist/hero-image-slider.d.cts +3 -3
  685. package/dist/hero-image-slider.d.ts +3 -3
  686. package/dist/hero-innovation-image-grid.cjs +142 -142
  687. package/dist/hero-innovation-image-grid.d.cts +3 -3
  688. package/dist/hero-innovation-image-grid.d.ts +3 -3
  689. package/dist/hero-innovation-image-grid.js +142 -142
  690. package/dist/hero-logo-centered-screenshot.d.cts +3 -3
  691. package/dist/hero-logo-centered-screenshot.d.ts +3 -3
  692. package/dist/hero-marketplace-scattered-images.d.cts +3 -3
  693. package/dist/hero-marketplace-scattered-images.d.ts +3 -3
  694. package/dist/hero-mental-health-team.cjs +142 -142
  695. package/dist/hero-mental-health-team.d.cts +3 -3
  696. package/dist/hero-mental-health-team.d.ts +3 -3
  697. package/dist/hero-mental-health-team.js +142 -142
  698. package/dist/hero-mentorship-video-split.d.cts +3 -3
  699. package/dist/hero-mentorship-video-split.d.ts +3 -3
  700. package/dist/hero-minimal-centered-dark.cjs +174 -174
  701. package/dist/hero-minimal-centered-dark.d.cts +3 -3
  702. package/dist/hero-minimal-centered-dark.d.ts +3 -3
  703. package/dist/hero-minimal-centered-dark.js +174 -174
  704. package/dist/hero-mobile-app-download.d.cts +3 -3
  705. package/dist/hero-mobile-app-download.d.ts +3 -3
  706. package/dist/hero-newsletter-minimal.d.cts +3 -3
  707. package/dist/hero-newsletter-minimal.d.ts +3 -3
  708. package/dist/hero-overlay-cta-grid.d.cts +4 -4
  709. package/dist/hero-overlay-cta-grid.d.ts +4 -4
  710. package/dist/hero-pattern-badge-logos.d.cts +3 -3
  711. package/dist/hero-pattern-badge-logos.d.ts +3 -3
  712. package/dist/hero-pattern-logo-tech-stack.d.cts +3 -3
  713. package/dist/hero-pattern-logo-tech-stack.d.ts +3 -3
  714. package/dist/hero-platform-features-grid.d.cts +3 -3
  715. package/dist/hero-platform-features-grid.d.ts +3 -3
  716. package/dist/hero-portfolio-creative.d.cts +3 -3
  717. package/dist/hero-portfolio-creative.d.ts +3 -3
  718. package/dist/hero-premium-split-avatars.d.cts +3 -3
  719. package/dist/hero-premium-split-avatars.d.ts +3 -3
  720. package/dist/hero-presentation-platform-video.cjs +142 -142
  721. package/dist/hero-presentation-platform-video.d.cts +3 -3
  722. package/dist/hero-presentation-platform-video.d.ts +3 -3
  723. package/dist/hero-presentation-platform-video.js +142 -142
  724. package/dist/hero-pricing-comparison.d.cts +3 -3
  725. package/dist/hero-pricing-comparison.d.ts +3 -3
  726. package/dist/hero-product-showcase-floating.cjs +174 -174
  727. package/dist/hero-product-showcase-floating.d.cts +3 -3
  728. package/dist/hero-product-showcase-floating.d.ts +3 -3
  729. package/dist/hero-product-showcase-floating.js +174 -174
  730. package/dist/hero-productivity-launcher-video.d.cts +3 -3
  731. package/dist/hero-productivity-launcher-video.d.ts +3 -3
  732. package/dist/hero-saas-dashboard-preview.d.cts +3 -3
  733. package/dist/hero-saas-dashboard-preview.d.ts +3 -3
  734. package/dist/hero-shared-inbox-layered.cjs +142 -142
  735. package/dist/hero-shared-inbox-layered.d.cts +3 -3
  736. package/dist/hero-shared-inbox-layered.d.ts +3 -3
  737. package/dist/hero-shared-inbox-layered.js +142 -142
  738. package/dist/hero-simple-centered-image.d.cts +3 -3
  739. package/dist/hero-simple-centered-image.d.ts +3 -3
  740. package/dist/hero-software-growth-video-dialog.cjs +142 -142
  741. package/dist/hero-software-growth-video-dialog.d.cts +3 -3
  742. package/dist/hero-software-growth-video-dialog.d.ts +3 -3
  743. package/dist/hero-software-growth-video-dialog.js +142 -142
  744. package/dist/hero-spiral-pattern-cards.cjs +174 -174
  745. package/dist/hero-spiral-pattern-cards.d.cts +3 -3
  746. package/dist/hero-spiral-pattern-cards.d.ts +3 -3
  747. package/dist/hero-spiral-pattern-cards.js +174 -174
  748. package/dist/hero-split-geometric-shapes.cjs +142 -142
  749. package/dist/hero-split-geometric-shapes.d.cts +3 -3
  750. package/dist/hero-split-geometric-shapes.d.ts +3 -3
  751. package/dist/hero-split-geometric-shapes.js +142 -142
  752. package/dist/hero-split-icon-cards.d.cts +4 -4
  753. package/dist/hero-split-icon-cards.d.ts +4 -4
  754. package/dist/hero-split-image-newsletter.d.cts +3 -3
  755. package/dist/hero-split-image-newsletter.d.ts +3 -3
  756. package/dist/hero-split-spiral-shapes.d.cts +3 -3
  757. package/dist/hero-split-spiral-shapes.d.ts +3 -3
  758. package/dist/hero-startup-launch-cta.cjs +174 -174
  759. package/dist/hero-startup-launch-cta.d.cts +3 -3
  760. package/dist/hero-startup-launch-cta.d.ts +3 -3
  761. package/dist/hero-startup-launch-cta.js +174 -174
  762. package/dist/hero-stats-social-proof.cjs +174 -174
  763. package/dist/hero-stats-social-proof.d.cts +3 -3
  764. package/dist/hero-stats-social-proof.d.ts +3 -3
  765. package/dist/hero-stats-social-proof.js +174 -174
  766. package/dist/hero-task-timer-animated.cjs +142 -142
  767. package/dist/hero-task-timer-animated.d.cts +3 -3
  768. package/dist/hero-task-timer-animated.d.ts +3 -3
  769. package/dist/hero-task-timer-animated.js +142 -142
  770. package/dist/hero-tech-carousel.d.cts +3 -3
  771. package/dist/hero-tech-carousel.d.ts +3 -3
  772. package/dist/hero-testimonial-image-grid.cjs +142 -142
  773. package/dist/hero-testimonial-image-grid.d.cts +3 -3
  774. package/dist/hero-testimonial-image-grid.d.ts +3 -3
  775. package/dist/hero-testimonial-image-grid.js +142 -142
  776. package/dist/hero-therapy-testimonial-grid.cjs +142 -142
  777. package/dist/hero-therapy-testimonial-grid.d.cts +3 -3
  778. package/dist/hero-therapy-testimonial-grid.d.ts +3 -3
  779. package/dist/hero-therapy-testimonial-grid.js +142 -142
  780. package/dist/hero-ui-library-showcase.cjs +142 -142
  781. package/dist/hero-ui-library-showcase.d.cts +3 -3
  782. package/dist/hero-ui-library-showcase.d.ts +3 -3
  783. package/dist/hero-ui-library-showcase.js +142 -142
  784. package/dist/hero-video-background-dark.cjs +174 -174
  785. package/dist/hero-video-background-dark.d.cts +3 -3
  786. package/dist/hero-video-background-dark.d.ts +3 -3
  787. package/dist/hero-video-background-dark.js +174 -174
  788. package/dist/{hero-video-dialog-gradient-CW2ELwTs.d.ts → hero-video-dialog-gradient-C7o05nWW.d.ts} +2 -2
  789. package/dist/{hero-video-dialog-gradient-BOmAMhjq.d.cts → hero-video-dialog-gradient-DykMOpK9.d.cts} +2 -2
  790. package/dist/hero-video-dialog-gradient.cjs +142 -142
  791. package/dist/hero-video-dialog-gradient.d.cts +5 -5
  792. package/dist/hero-video-dialog-gradient.d.ts +5 -5
  793. package/dist/hero-video-dialog-gradient.js +142 -142
  794. package/dist/hero-video-overlay-stars.cjs +142 -142
  795. package/dist/hero-video-overlay-stars.d.cts +3 -3
  796. package/dist/hero-video-overlay-stars.d.ts +3 -3
  797. package/dist/hero-video-overlay-stars.js +142 -142
  798. package/dist/hero-welcome-asymmetric-images.cjs +142 -142
  799. package/dist/hero-welcome-asymmetric-images.d.cts +3 -3
  800. package/dist/hero-welcome-asymmetric-images.d.ts +3 -3
  801. package/dist/hero-welcome-asymmetric-images.js +142 -142
  802. package/dist/hooks.cjs +11 -0
  803. package/dist/hooks.d.cts +6 -0
  804. package/dist/hooks.d.ts +6 -0
  805. package/dist/hooks.js +12 -1
  806. package/dist/image-slider.d.cts +2 -2
  807. package/dist/image-slider.d.ts +2 -2
  808. package/dist/index.cjs +1365 -780
  809. package/dist/index.d.cts +6 -3
  810. package/dist/index.d.ts +6 -3
  811. package/dist/index.js +1269 -686
  812. package/dist/industries-badge-list-bordered.d.cts +3 -3
  813. package/dist/industries-badge-list-bordered.d.ts +3 -3
  814. package/dist/industries-expandable-showcase.d.cts +3 -3
  815. package/dist/industries-expandable-showcase.d.ts +3 -3
  816. package/dist/industries-hover-reveal-grid.d.cts +3 -3
  817. package/dist/industries-hover-reveal-grid.d.ts +3 -3
  818. package/dist/industries-timeline-table.d.cts +3 -3
  819. package/dist/industries-timeline-table.d.ts +3 -3
  820. package/dist/interior-carousel.d.cts +3 -3
  821. package/dist/interior-carousel.d.ts +3 -3
  822. package/dist/link-page-bento-layout.d.cts +3 -3
  823. package/dist/link-page-bento-layout.d.ts +3 -3
  824. package/dist/link-page-grid-cards.d.cts +3 -3
  825. package/dist/link-page-grid-cards.d.ts +3 -3
  826. package/dist/link-page-minimal-profile.d.cts +3 -3
  827. package/dist/link-page-minimal-profile.d.ts +3 -3
  828. package/dist/link-page-newsletter-social.d.cts +3 -3
  829. package/dist/link-page-newsletter-social.d.ts +3 -3
  830. package/dist/link-tree-block.d.cts +3 -3
  831. package/dist/link-tree-block.d.ts +3 -3
  832. package/dist/list-achievements-showcase.d.cts +3 -3
  833. package/dist/list-achievements-showcase.d.ts +3 -3
  834. package/dist/list-career-timeline.d.cts +4 -4
  835. package/dist/list-career-timeline.d.ts +4 -4
  836. package/dist/list-feature-comparison.d.cts +3 -3
  837. package/dist/list-feature-comparison.d.ts +3 -3
  838. package/dist/list-metrics-dashboard.d.cts +3 -3
  839. package/dist/list-metrics-dashboard.d.ts +3 -3
  840. package/dist/list-searchable-grid.d.cts +4 -4
  841. package/dist/list-searchable-grid.d.ts +4 -4
  842. package/dist/list-service-category-table.d.cts +4 -4
  843. package/dist/list-service-category-table.d.ts +4 -4
  844. package/dist/logos-carousel-heading.d.cts +3 -3
  845. package/dist/logos-carousel-heading.d.ts +3 -3
  846. package/dist/logos-centered-simple.d.cts +3 -3
  847. package/dist/logos-centered-simple.d.ts +3 -3
  848. package/dist/logos-certifications-grid.d.cts +3 -3
  849. package/dist/logos-certifications-grid.d.ts +3 -3
  850. package/dist/logos-double-carousel-pattern.d.cts +3 -3
  851. package/dist/logos-double-carousel-pattern.d.ts +3 -3
  852. package/dist/logos-inline-tagline.d.cts +3 -3
  853. package/dist/logos-inline-tagline.d.ts +3 -3
  854. package/dist/logos-marquee-muted.d.cts +3 -3
  855. package/dist/logos-marquee-muted.d.ts +3 -3
  856. package/dist/logos-minimal-carousel.d.cts +3 -3
  857. package/dist/logos-minimal-carousel.d.ts +3 -3
  858. package/dist/logos-numbered-carousel.d.cts +3 -3
  859. package/dist/logos-numbered-carousel.d.ts +3 -3
  860. package/dist/logos-partner-grid-sidebar.d.cts +3 -3
  861. package/dist/logos-partner-grid-sidebar.d.ts +3 -3
  862. package/dist/logos-partner-network.d.cts +3 -3
  863. package/dist/logos-partner-network.d.ts +3 -3
  864. package/dist/logos-two-row-grid.d.cts +3 -3
  865. package/dist/logos-two-row-grid.d.ts +3 -3
  866. package/dist/masonry-motion-grid.d.cts +3 -3
  867. package/dist/masonry-motion-grid.d.ts +3 -3
  868. package/dist/media-hover-ctas.d.cts +4 -4
  869. package/dist/media-hover-ctas.d.ts +4 -4
  870. package/dist/navbar-animated-preview.cjs +4 -4
  871. package/dist/navbar-animated-preview.d.cts +3 -3
  872. package/dist/navbar-animated-preview.d.ts +3 -3
  873. package/dist/navbar-animated-preview.js +4 -4
  874. package/dist/navbar-centered-menu.cjs +4 -4
  875. package/dist/navbar-centered-menu.d.cts +3 -3
  876. package/dist/navbar-centered-menu.d.ts +3 -3
  877. package/dist/navbar-centered-menu.js +4 -4
  878. package/dist/navbar-dark-icons.cjs +4 -4
  879. package/dist/navbar-dark-icons.d.cts +3 -3
  880. package/dist/navbar-dark-icons.d.ts +3 -3
  881. package/dist/navbar-dark-icons.js +4 -4
  882. package/dist/navbar-dropdown-menu.cjs +4 -4
  883. package/dist/navbar-dropdown-menu.d.cts +3 -3
  884. package/dist/navbar-dropdown-menu.d.ts +3 -3
  885. package/dist/navbar-dropdown-menu.js +4 -4
  886. package/dist/navbar-education-platform.cjs +4 -4
  887. package/dist/navbar-education-platform.d.cts +3 -3
  888. package/dist/navbar-education-platform.d.ts +3 -3
  889. package/dist/navbar-education-platform.js +4 -4
  890. package/dist/navbar-enterprise-mega.cjs +4 -4
  891. package/dist/navbar-enterprise-mega.d.cts +3 -3
  892. package/dist/navbar-enterprise-mega.d.ts +3 -3
  893. package/dist/navbar-enterprise-mega.js +4 -4
  894. package/dist/navbar-feature-grid.cjs +4 -4
  895. package/dist/navbar-feature-grid.d.cts +3 -3
  896. package/dist/navbar-feature-grid.d.ts +3 -3
  897. package/dist/navbar-feature-grid.js +4 -4
  898. package/dist/navbar-floating-pill.d.cts +3 -3
  899. package/dist/navbar-floating-pill.d.ts +3 -3
  900. package/dist/navbar-fullscreen-menu.d.cts +3 -3
  901. package/dist/navbar-fullscreen-menu.d.ts +3 -3
  902. package/dist/navbar-icon-links.d.cts +3 -3
  903. package/dist/navbar-icon-links.d.ts +3 -3
  904. package/dist/navbar-image-preview.cjs +4 -4
  905. package/dist/navbar-image-preview.d.cts +3 -3
  906. package/dist/navbar-image-preview.d.ts +3 -3
  907. package/dist/navbar-image-preview.js +4 -4
  908. package/dist/navbar-mega-menu.cjs +4 -4
  909. package/dist/navbar-mega-menu.d.cts +3 -3
  910. package/dist/navbar-mega-menu.d.ts +3 -3
  911. package/dist/navbar-mega-menu.js +4 -4
  912. package/dist/navbar-multi-column-groups.cjs +4 -4
  913. package/dist/navbar-multi-column-groups.d.cts +3 -3
  914. package/dist/navbar-multi-column-groups.d.ts +3 -3
  915. package/dist/navbar-multi-column-groups.js +4 -4
  916. package/dist/navbar-platform-resources.cjs +4 -4
  917. package/dist/navbar-platform-resources.d.cts +3 -3
  918. package/dist/navbar-platform-resources.d.ts +3 -3
  919. package/dist/navbar-platform-resources.js +4 -4
  920. package/dist/navbar-search-focused.d.cts +3 -3
  921. package/dist/navbar-search-focused.d.ts +3 -3
  922. package/dist/navbar-sidebar-mobile.cjs +4 -4
  923. package/dist/navbar-sidebar-mobile.d.cts +3 -3
  924. package/dist/navbar-sidebar-mobile.d.ts +3 -3
  925. package/dist/navbar-sidebar-mobile.js +4 -4
  926. package/dist/navbar-simple-links.d.cts +3 -3
  927. package/dist/navbar-simple-links.d.ts +3 -3
  928. package/dist/navbar-split-cta.d.cts +3 -3
  929. package/dist/navbar-split-cta.d.ts +3 -3
  930. package/dist/navbar-sticky-compact.cjs +4 -4
  931. package/dist/navbar-sticky-compact.d.cts +3 -3
  932. package/dist/navbar-sticky-compact.d.ts +3 -3
  933. package/dist/navbar-sticky-compact.js +4 -4
  934. package/dist/navbar-tabbed-sections.cjs +4 -4
  935. package/dist/navbar-tabbed-sections.d.cts +3 -3
  936. package/dist/navbar-tabbed-sections.d.ts +3 -3
  937. package/dist/navbar-tabbed-sections.js +4 -4
  938. package/dist/navbar-transparent-overlay.d.cts +3 -3
  939. package/dist/navbar-transparent-overlay.d.ts +3 -3
  940. package/dist/offer-modal-membership-image.d.cts +3 -3
  941. package/dist/offer-modal-membership-image.d.ts +3 -3
  942. package/dist/offer-modal-newsletter-discount.d.cts +3 -3
  943. package/dist/offer-modal-newsletter-discount.d.ts +3 -3
  944. package/dist/offer-modal-sheet-newsletter.d.cts +3 -3
  945. package/dist/offer-modal-sheet-newsletter.d.ts +3 -3
  946. package/dist/page-hero-banner.d.cts +3 -3
  947. package/dist/page-hero-banner.d.ts +3 -3
  948. package/dist/pressable.d.cts +2 -2
  949. package/dist/pressable.d.ts +2 -2
  950. package/dist/pricing-addons-cards.d.cts +3 -3
  951. package/dist/pricing-addons-cards.d.ts +3 -3
  952. package/dist/pricing-addons-featured.d.cts +3 -3
  953. package/dist/pricing-addons-featured.d.ts +3 -3
  954. package/dist/pricing-collapsible-plans.d.cts +3 -3
  955. package/dist/pricing-collapsible-plans.d.ts +3 -3
  956. package/dist/pricing-columns-toggle.d.cts +3 -3
  957. package/dist/pricing-columns-toggle.d.ts +3 -3
  958. package/dist/pricing-comparison-headers.d.cts +3 -3
  959. package/dist/pricing-comparison-headers.d.ts +3 -3
  960. package/dist/pricing-comparison-table.d.cts +3 -3
  961. package/dist/pricing-comparison-table.d.ts +3 -3
  962. package/dist/pricing-discount-card.d.cts +3 -3
  963. package/dist/pricing-discount-card.d.ts +3 -3
  964. package/dist/pricing-enterprise-contact.d.cts +3 -3
  965. package/dist/pricing-enterprise-contact.d.ts +3 -3
  966. package/dist/pricing-feature-matrix.d.cts +3 -3
  967. package/dist/pricing-feature-matrix.d.ts +3 -3
  968. package/dist/pricing-four-tier-toggle.d.cts +3 -3
  969. package/dist/pricing-four-tier-toggle.d.ts +3 -3
  970. package/dist/pricing-full-comparison.d.cts +3 -3
  971. package/dist/pricing-full-comparison.d.ts +3 -3
  972. package/dist/pricing-gradient-cards.d.cts +3 -3
  973. package/dist/pricing-gradient-cards.d.ts +3 -3
  974. package/dist/pricing-icon-headers.d.cts +3 -3
  975. package/dist/pricing-icon-headers.d.ts +3 -3
  976. package/dist/pricing-minimal-cards.d.cts +3 -3
  977. package/dist/pricing-minimal-cards.d.ts +3 -3
  978. package/dist/pricing-packages-radio.d.cts +3 -3
  979. package/dist/pricing-packages-radio.d.ts +3 -3
  980. package/dist/pricing-popular-highlight.d.cts +3 -3
  981. package/dist/pricing-popular-highlight.d.ts +3 -3
  982. package/dist/pricing-radio-toggle.d.cts +3 -3
  983. package/dist/pricing-radio-toggle.d.ts +3 -3
  984. package/dist/pricing-responsive-table.d.cts +3 -3
  985. package/dist/pricing-responsive-table.d.ts +3 -3
  986. package/dist/pricing-services-cards.d.cts +3 -3
  987. package/dist/pricing-services-cards.d.ts +3 -3
  988. package/dist/pricing-simple-card.d.cts +3 -3
  989. package/dist/pricing-simple-card.d.ts +3 -3
  990. package/dist/pricing-single-card.d.cts +3 -3
  991. package/dist/pricing-single-card.d.ts +3 -3
  992. package/dist/pricing-split-layout.d.cts +3 -3
  993. package/dist/pricing-split-layout.d.ts +3 -3
  994. package/dist/pricing-spotlight-card.d.cts +3 -3
  995. package/dist/pricing-spotlight-card.d.ts +3 -3
  996. package/dist/pricing-switch-cards.d.cts +3 -3
  997. package/dist/pricing-switch-cards.d.ts +3 -3
  998. package/dist/pricing-tabs-toggle.d.cts +3 -3
  999. package/dist/pricing-tabs-toggle.d.ts +3 -3
  1000. package/dist/pricing-tier-grid.d.cts +3 -3
  1001. package/dist/pricing-tier-grid.d.ts +3 -3
  1002. package/dist/pricing-toggle-cards.d.cts +3 -3
  1003. package/dist/pricing-toggle-cards.d.ts +3 -3
  1004. package/dist/pricing-toggle-period.d.cts +3 -3
  1005. package/dist/pricing-toggle-period.d.ts +3 -3
  1006. package/dist/pricing-two-column-basic.d.cts +3 -3
  1007. package/dist/pricing-two-column-basic.d.ts +3 -3
  1008. package/dist/process-expandable-timeline.d.cts +3 -3
  1009. package/dist/process-expandable-timeline.d.ts +3 -3
  1010. package/dist/process-hover-cards.d.cts +3 -3
  1011. package/dist/process-hover-cards.d.ts +3 -3
  1012. package/dist/process-icon-timeline.d.cts +3 -3
  1013. package/dist/process-icon-timeline.d.ts +3 -3
  1014. package/dist/process-mission-principles.d.cts +3 -3
  1015. package/dist/process-mission-principles.d.ts +3 -3
  1016. package/dist/process-numbered-services.d.cts +3 -3
  1017. package/dist/process-numbered-services.d.ts +3 -3
  1018. package/dist/process-roadmap-timeline.d.cts +3 -3
  1019. package/dist/process-roadmap-timeline.d.ts +3 -3
  1020. package/dist/process-scroll-image.d.cts +3 -3
  1021. package/dist/process-scroll-image.d.ts +3 -3
  1022. package/dist/process-steps-grid.d.cts +3 -3
  1023. package/dist/process-steps-grid.d.ts +3 -3
  1024. package/dist/process-sticky-steps.d.cts +3 -3
  1025. package/dist/process-sticky-steps.d.ts +3 -3
  1026. package/dist/project-alternating-motion.d.cts +3 -3
  1027. package/dist/project-alternating-motion.d.ts +3 -3
  1028. package/dist/project-background-reveal.d.cts +3 -3
  1029. package/dist/project-background-reveal.d.ts +3 -3
  1030. package/dist/project-card-overlay.d.cts +3 -3
  1031. package/dist/project-card-overlay.d.ts +3 -3
  1032. package/dist/project-carousel-cinematic.d.cts +3 -3
  1033. package/dist/project-carousel-cinematic.d.ts +3 -3
  1034. package/dist/project-carousel-detail-cards.d.cts +3 -3
  1035. package/dist/project-carousel-detail-cards.d.ts +3 -3
  1036. package/dist/project-carousel-minimal.d.cts +3 -3
  1037. package/dist/project-carousel-minimal.d.ts +3 -3
  1038. package/dist/project-detail-architecture-carousel.d.cts +3 -3
  1039. package/dist/project-detail-architecture-carousel.d.ts +3 -3
  1040. package/dist/project-detail-card-header.d.cts +3 -3
  1041. package/dist/project-detail-card-header.d.ts +3 -3
  1042. package/dist/project-detail-case-study-prose.d.cts +3 -3
  1043. package/dist/project-detail-case-study-prose.d.ts +3 -3
  1044. package/dist/project-detail-compact-metadata.d.cts +3 -3
  1045. package/dist/project-detail-compact-metadata.d.ts +3 -3
  1046. package/dist/project-detail-exhibition-sidebar.d.cts +3 -3
  1047. package/dist/project-detail-exhibition-sidebar.d.ts +3 -3
  1048. package/dist/project-detail-fashion-editorial.d.cts +3 -3
  1049. package/dist/project-detail-fashion-editorial.d.ts +3 -3
  1050. package/dist/project-detail-fullscreen-hero.d.cts +3 -3
  1051. package/dist/project-detail-fullscreen-hero.d.ts +3 -3
  1052. package/dist/project-detail-grid-gallery.d.cts +3 -3
  1053. package/dist/project-detail-grid-gallery.d.ts +3 -3
  1054. package/dist/project-detail-hero-metadata.d.cts +3 -3
  1055. package/dist/project-detail-hero-metadata.d.ts +3 -3
  1056. package/dist/project-detail-hover-gallery.d.cts +3 -3
  1057. package/dist/project-detail-hover-gallery.d.ts +3 -3
  1058. package/dist/project-detail-large-hero-featured.d.cts +3 -3
  1059. package/dist/project-detail-large-hero-featured.d.ts +3 -3
  1060. package/dist/project-detail-list-related.d.cts +3 -3
  1061. package/dist/project-detail-list-related.d.ts +3 -3
  1062. package/dist/project-detail-mask-reveal.d.cts +3 -3
  1063. package/dist/project-detail-mask-reveal.d.ts +3 -3
  1064. package/dist/project-detail-minimal-centered.d.cts +3 -3
  1065. package/dist/project-detail-minimal-centered.d.ts +3 -3
  1066. package/dist/project-detail-numbered-sections.d.cts +3 -3
  1067. package/dist/project-detail-numbered-sections.d.ts +3 -3
  1068. package/dist/project-detail-parallax-scroll.d.cts +3 -3
  1069. package/dist/project-detail-parallax-scroll.d.ts +3 -3
  1070. package/dist/project-detail-photography-breadcrumb.d.cts +3 -3
  1071. package/dist/project-detail-photography-breadcrumb.d.ts +3 -3
  1072. package/dist/project-detail-sculpture-showcase.d.cts +3 -3
  1073. package/dist/project-detail-sculpture-showcase.d.ts +3 -3
  1074. package/dist/project-detail-sidebar-navigation.d.cts +3 -3
  1075. package/dist/project-detail-sidebar-navigation.d.ts +3 -3
  1076. package/dist/project-detail-sidebar-sticky.d.cts +3 -3
  1077. package/dist/project-detail-sidebar-sticky.d.ts +3 -3
  1078. package/dist/project-detail-split-materials.d.cts +3 -3
  1079. package/dist/project-detail-split-materials.d.ts +3 -3
  1080. package/dist/project-detail-tabbed-case-study.d.cts +3 -3
  1081. package/dist/project-detail-tabbed-case-study.d.ts +3 -3
  1082. package/dist/project-experience-quote.d.cts +3 -3
  1083. package/dist/project-experience-quote.d.ts +3 -3
  1084. package/dist/project-featured-carousel.d.cts +3 -3
  1085. package/dist/project-featured-carousel.d.ts +3 -3
  1086. package/dist/project-filterable-gallery.d.cts +3 -3
  1087. package/dist/project-filterable-gallery.d.ts +3 -3
  1088. package/dist/project-filterable-three-column.d.cts +3 -3
  1089. package/dist/project-filterable-three-column.d.ts +3 -3
  1090. package/dist/project-grid-gallery.d.cts +3 -3
  1091. package/dist/project-grid-gallery.d.ts +3 -3
  1092. package/dist/project-grid-motion.d.cts +3 -3
  1093. package/dist/project-grid-motion.d.ts +3 -3
  1094. package/dist/project-horizontal-cards.d.cts +3 -3
  1095. package/dist/project-horizontal-cards.d.ts +3 -3
  1096. package/dist/project-hover-reveal-grid.d.cts +3 -3
  1097. package/dist/project-hover-reveal-grid.d.ts +3 -3
  1098. package/dist/project-interactive-hover-reveal.d.cts +3 -3
  1099. package/dist/project-interactive-hover-reveal.d.ts +3 -3
  1100. package/dist/project-masonry-columns.d.cts +3 -3
  1101. package/dist/project-masonry-columns.d.ts +3 -3
  1102. package/dist/project-nature-mosaic.d.cts +3 -3
  1103. package/dist/project-nature-mosaic.d.ts +3 -3
  1104. package/dist/project-scroll-reveal.d.cts +3 -3
  1105. package/dist/project-scroll-reveal.d.ts +3 -3
  1106. package/dist/project-showcase-alternating.d.cts +3 -3
  1107. package/dist/project-showcase-alternating.d.ts +3 -3
  1108. package/dist/project-sticky-scroll.d.cts +3 -3
  1109. package/dist/project-sticky-scroll.d.ts +3 -3
  1110. package/dist/project-studio-hover-preview.d.cts +3 -3
  1111. package/dist/project-studio-hover-preview.d.ts +3 -3
  1112. package/dist/project-table-list.d.cts +3 -3
  1113. package/dist/project-table-list.d.ts +3 -3
  1114. package/dist/project-video-carousel.d.cts +3 -3
  1115. package/dist/project-video-carousel.d.ts +3 -3
  1116. package/dist/project-video-hover-bento.d.cts +3 -3
  1117. package/dist/project-video-hover-bento.d.ts +3 -3
  1118. package/dist/project-video-hover-grid.d.cts +3 -3
  1119. package/dist/project-video-hover-grid.d.ts +3 -3
  1120. package/dist/project-video-hover-rounded.d.cts +3 -3
  1121. package/dist/project-video-hover-rounded.d.ts +3 -3
  1122. package/dist/project-video-hover-stack.d.cts +3 -3
  1123. package/dist/project-video-hover-stack.d.ts +3 -3
  1124. package/dist/project-video-hover-two-by-two.d.cts +3 -3
  1125. package/dist/project-video-hover-two-by-two.d.ts +3 -3
  1126. package/dist/project-work-showcase.d.cts +3 -3
  1127. package/dist/project-work-showcase.d.ts +3 -3
  1128. package/dist/project-zigzag-layout.d.cts +3 -3
  1129. package/dist/project-zigzag-layout.d.ts +3 -3
  1130. package/dist/registry.cjs +3770 -2889
  1131. package/dist/registry.js +2613 -1732
  1132. package/dist/resource-detail-article-hero.d.cts +3 -3
  1133. package/dist/resource-detail-article-hero.d.ts +3 -3
  1134. package/dist/resource-detail-document-sidebar.d.cts +3 -3
  1135. package/dist/resource-detail-document-sidebar.d.ts +3 -3
  1136. package/dist/resource-detail-whitepaper-sidebar.d.cts +3 -3
  1137. package/dist/resource-detail-whitepaper-sidebar.d.ts +3 -3
  1138. package/dist/resource-list-course-cards.d.cts +3 -3
  1139. package/dist/resource-list-course-cards.d.ts +3 -3
  1140. package/dist/resource-list-featured-articles.d.cts +3 -3
  1141. package/dist/resource-list-featured-articles.d.ts +3 -3
  1142. package/dist/resource-list-featured-grid.d.cts +3 -3
  1143. package/dist/resource-list-featured-grid.d.ts +3 -3
  1144. package/dist/resource-list-hero-filter.d.cts +2 -2
  1145. package/dist/resource-list-hero-filter.d.ts +2 -2
  1146. package/dist/resource-list-news-updates.d.cts +3 -3
  1147. package/dist/resource-list-news-updates.d.ts +3 -3
  1148. package/dist/section.d.cts +4 -4
  1149. package/dist/section.d.ts +4 -4
  1150. package/dist/service-detail-centered-expertise.d.cts +3 -3
  1151. package/dist/service-detail-centered-expertise.d.ts +3 -3
  1152. package/dist/service-detail-compact-cards.d.cts +3 -3
  1153. package/dist/service-detail-compact-cards.d.ts +3 -3
  1154. package/dist/service-detail-image-hero.d.cts +3 -3
  1155. package/dist/service-detail-image-hero.d.ts +3 -3
  1156. package/dist/service-detail-prose-minimal.d.cts +3 -3
  1157. package/dist/service-detail-prose-minimal.d.ts +3 -3
  1158. package/dist/service-detail-sidebar-related.d.cts +3 -3
  1159. package/dist/service-detail-sidebar-related.d.ts +3 -3
  1160. package/dist/service-detail-sidebar-stats.d.cts +3 -3
  1161. package/dist/service-detail-sidebar-stats.d.ts +3 -3
  1162. package/dist/service-detail-stats-hero.d.cts +3 -3
  1163. package/dist/service-detail-stats-hero.d.ts +3 -3
  1164. package/dist/service-hover-carousel.d.cts +3 -3
  1165. package/dist/service-hover-carousel.d.ts +3 -3
  1166. package/dist/services-list-accordion-benefits.cjs +4 -4
  1167. package/dist/services-list-accordion-benefits.d.cts +3 -3
  1168. package/dist/services-list-accordion-benefits.d.ts +3 -3
  1169. package/dist/services-list-accordion-benefits.js +4 -4
  1170. package/dist/services-list-accordion.cjs +4 -4
  1171. package/dist/services-list-accordion.d.cts +4 -4
  1172. package/dist/services-list-accordion.d.ts +4 -4
  1173. package/dist/services-list-accordion.js +4 -4
  1174. package/dist/services-list-cards-hover.d.cts +4 -4
  1175. package/dist/services-list-cards-hover.d.ts +4 -4
  1176. package/dist/services-list-category-accordion.cjs +4 -4
  1177. package/dist/services-list-category-accordion.d.cts +4 -4
  1178. package/dist/services-list-category-accordion.d.ts +4 -4
  1179. package/dist/services-list-category-accordion.js +4 -4
  1180. package/dist/services-list-centered-icons.d.cts +4 -4
  1181. package/dist/services-list-centered-icons.d.ts +4 -4
  1182. package/dist/services-list-culture-tabs.d.cts +3 -3
  1183. package/dist/services-list-culture-tabs.d.ts +3 -3
  1184. package/dist/services-list-expandable-cards.d.cts +3 -3
  1185. package/dist/services-list-expandable-cards.d.ts +3 -3
  1186. package/dist/services-list-feature-spotlight.d.cts +4 -4
  1187. package/dist/services-list-feature-spotlight.d.ts +4 -4
  1188. package/dist/services-list-featured-highlight.d.cts +4 -4
  1189. package/dist/services-list-featured-highlight.d.ts +4 -4
  1190. package/dist/services-list-hero-cards.d.cts +3 -3
  1191. package/dist/services-list-hero-cards.d.ts +3 -3
  1192. package/dist/services-list-icon-grid.d.cts +4 -4
  1193. package/dist/services-list-icon-grid.d.ts +4 -4
  1194. package/dist/services-list-image-cards.d.cts +3 -3
  1195. package/dist/services-list-image-cards.d.ts +3 -3
  1196. package/dist/services-list-image-overlay-grid.d.cts +3 -3
  1197. package/dist/services-list-image-overlay-grid.d.ts +3 -3
  1198. package/dist/services-list-masonry.d.cts +4 -4
  1199. package/dist/services-list-masonry.d.ts +4 -4
  1200. package/dist/services-list-methodology-steps.d.cts +3 -3
  1201. package/dist/services-list-methodology-steps.d.ts +3 -3
  1202. package/dist/services-list-minimal-grid.d.cts +4 -4
  1203. package/dist/services-list-minimal-grid.d.ts +4 -4
  1204. package/dist/services-list-muted-cards.d.cts +4 -4
  1205. package/dist/services-list-muted-cards.d.ts +4 -4
  1206. package/dist/services-list-numbered-steps.d.cts +3 -3
  1207. package/dist/services-list-numbered-steps.d.ts +3 -3
  1208. package/dist/services-list-pricing-grid.d.cts +4 -4
  1209. package/dist/services-list-pricing-grid.d.ts +4 -4
  1210. package/dist/services-list-progress-sidebar.d.cts +3 -3
  1211. package/dist/services-list-progress-sidebar.d.ts +3 -3
  1212. package/dist/services-list-split-checklist.d.cts +3 -3
  1213. package/dist/services-list-split-checklist.d.ts +3 -3
  1214. package/dist/services-list-sticky-image.d.cts +3 -3
  1215. package/dist/services-list-sticky-image.d.ts +3 -3
  1216. package/dist/services-list-table-hover.d.cts +3 -3
  1217. package/dist/services-list-table-hover.d.ts +3 -3
  1218. package/dist/services-list-tabs-features.d.cts +3 -3
  1219. package/dist/services-list-tabs-features.d.ts +3 -3
  1220. package/dist/services-list-timeline.d.cts +3 -3
  1221. package/dist/services-list-timeline.d.ts +3 -3
  1222. package/dist/services-list-two-column-grid.d.cts +3 -3
  1223. package/dist/services-list-two-column-grid.d.ts +3 -3
  1224. package/dist/services-list-vertical-tags.d.cts +4 -4
  1225. package/dist/services-list-vertical-tags.d.ts +4 -4
  1226. package/dist/services-list-video-showcase.d.cts +3 -3
  1227. package/dist/services-list-video-showcase.d.ts +3 -3
  1228. package/dist/social-link-icon.d.cts +2 -2
  1229. package/dist/social-link-icon.d.ts +2 -2
  1230. package/dist/stats-animated-counter.d.cts +3 -3
  1231. package/dist/stats-animated-counter.d.ts +3 -3
  1232. package/dist/stats-bar-comparison.d.cts +3 -3
  1233. package/dist/stats-bar-comparison.d.ts +3 -3
  1234. package/dist/stats-card-group.d.cts +3 -3
  1235. package/dist/stats-card-group.d.ts +3 -3
  1236. package/dist/stats-circular-progress.d.cts +3 -3
  1237. package/dist/stats-circular-progress.d.ts +3 -3
  1238. package/dist/stats-growth-timeline.d.cts +3 -3
  1239. package/dist/stats-growth-timeline.d.ts +3 -3
  1240. package/dist/stats-icon-cards.d.cts +3 -3
  1241. package/dist/stats-icon-cards.d.ts +3 -3
  1242. package/dist/stats-impact-grid.cjs +5 -3
  1243. package/dist/stats-impact-grid.d.cts +3 -3
  1244. package/dist/stats-impact-grid.d.ts +3 -3
  1245. package/dist/stats-impact-grid.js +5 -3
  1246. package/dist/stats-milestone-sidebar.d.cts +3 -3
  1247. package/dist/stats-milestone-sidebar.d.ts +3 -3
  1248. package/dist/stats-number-ticker.d.cts +3 -3
  1249. package/dist/stats-number-ticker.d.ts +3 -3
  1250. package/dist/stats-primary-secondary.d.cts +3 -3
  1251. package/dist/stats-primary-secondary.d.ts +3 -3
  1252. package/dist/stats-simple-grid.d.cts +3 -3
  1253. package/dist/stats-simple-grid.d.ts +3 -3
  1254. package/dist/stats-timeline-tabs.d.cts +3 -3
  1255. package/dist/stats-timeline-tabs.d.ts +3 -3
  1256. package/dist/team-alternating-bios.d.cts +3 -3
  1257. package/dist/team-alternating-bios.d.ts +3 -3
  1258. package/dist/team-avatar-social.d.cts +3 -3
  1259. package/dist/team-avatar-social.d.ts +3 -3
  1260. package/dist/team-bio-badges.d.cts +3 -3
  1261. package/dist/team-bio-badges.d.ts +3 -3
  1262. package/dist/team-carousel-experience.d.cts +3 -3
  1263. package/dist/team-carousel-experience.d.ts +3 -3
  1264. package/dist/team-compact-cta.d.cts +3 -3
  1265. package/dist/team-compact-cta.d.ts +3 -3
  1266. package/dist/team-compact-grid.d.cts +3 -3
  1267. package/dist/team-compact-grid.d.ts +3 -3
  1268. package/dist/team-contact-cards.d.cts +3 -3
  1269. package/dist/team-contact-cards.d.ts +3 -3
  1270. package/dist/team-department-sections.d.cts +3 -3
  1271. package/dist/team-department-sections.d.ts +3 -3
  1272. package/dist/team-expertise-cards.d.cts +3 -3
  1273. package/dist/team-expertise-cards.d.ts +3 -3
  1274. package/dist/team-filterable-search.d.cts +3 -3
  1275. package/dist/team-filterable-search.d.ts +3 -3
  1276. package/dist/team-gradient-cards.d.cts +3 -3
  1277. package/dist/team-gradient-cards.d.ts +3 -3
  1278. package/dist/team-grid-animated.d.cts +3 -3
  1279. package/dist/team-grid-animated.d.ts +3 -3
  1280. package/dist/team-hover-highlight.d.cts +3 -3
  1281. package/dist/team-hover-highlight.d.ts +3 -3
  1282. package/dist/team-hover-overlay.d.cts +3 -3
  1283. package/dist/team-hover-overlay.d.ts +3 -3
  1284. package/dist/team-investor-showcase.d.cts +3 -3
  1285. package/dist/team-investor-showcase.d.ts +3 -3
  1286. package/dist/team-large-images.d.cts +3 -3
  1287. package/dist/team-large-images.d.ts +3 -3
  1288. package/dist/team-media-showcase.d.cts +3 -3
  1289. package/dist/team-media-showcase.d.ts +3 -3
  1290. package/dist/team-role-filter.d.cts +3 -3
  1291. package/dist/team-role-filter.d.ts +3 -3
  1292. package/dist/team-simple-grid.d.cts +3 -3
  1293. package/dist/team-simple-grid.d.ts +3 -3
  1294. package/dist/team-skill-badges.d.cts +3 -3
  1295. package/dist/team-skill-badges.d.ts +3 -3
  1296. package/dist/team-social-cards.d.cts +3 -3
  1297. package/dist/team-social-cards.d.ts +3 -3
  1298. package/dist/team-social-grid.d.cts +3 -3
  1299. package/dist/team-social-grid.d.ts +3 -3
  1300. package/dist/team-testimonial-stats.d.cts +3 -3
  1301. package/dist/team-testimonial-stats.d.ts +3 -3
  1302. package/dist/testimonial-carousel-cards.d.cts +3 -3
  1303. package/dist/testimonial-carousel-cards.d.ts +3 -3
  1304. package/dist/testimonials-animated-split.d.cts +3 -3
  1305. package/dist/testimonials-animated-split.d.ts +3 -3
  1306. package/dist/testimonials-bento-grid.d.cts +3 -3
  1307. package/dist/testimonials-bento-grid.d.ts +3 -3
  1308. package/dist/testimonials-carousel-image.d.cts +3 -3
  1309. package/dist/testimonials-carousel-image.d.ts +3 -3
  1310. package/dist/testimonials-centered-avatars.d.cts +3 -3
  1311. package/dist/testimonials-centered-avatars.d.ts +3 -3
  1312. package/dist/testimonials-company-logo.d.cts +3 -3
  1313. package/dist/testimonials-company-logo.d.ts +3 -3
  1314. package/dist/testimonials-grid-add-review.d.cts +4 -4
  1315. package/dist/testimonials-grid-add-review.d.ts +4 -4
  1316. package/dist/testimonials-images-helpful.d.cts +3 -3
  1317. package/dist/testimonials-images-helpful.d.ts +3 -3
  1318. package/dist/testimonials-large-quote.d.cts +3 -3
  1319. package/dist/testimonials-large-quote.d.ts +3 -3
  1320. package/dist/testimonials-list-verified.d.cts +4 -4
  1321. package/dist/testimonials-list-verified.d.ts +4 -4
  1322. package/dist/testimonials-logo-cards.d.cts +3 -3
  1323. package/dist/testimonials-logo-cards.d.ts +3 -3
  1324. package/dist/testimonials-marquee.d.cts +3 -3
  1325. package/dist/testimonials-marquee.d.ts +3 -3
  1326. package/dist/testimonials-masonry-grid.d.cts +3 -3
  1327. package/dist/testimonials-masonry-grid.d.ts +3 -3
  1328. package/dist/testimonials-mini-dividers.d.cts +3 -3
  1329. package/dist/testimonials-mini-dividers.d.ts +3 -3
  1330. package/dist/testimonials-minimal-numbered.d.cts +3 -3
  1331. package/dist/testimonials-minimal-numbered.d.ts +3 -3
  1332. package/dist/testimonials-parallax-number.d.cts +3 -3
  1333. package/dist/testimonials-parallax-number.d.ts +3 -3
  1334. package/dist/testimonials-quote-carousel.d.cts +3 -3
  1335. package/dist/testimonials-quote-carousel.d.ts +3 -3
  1336. package/dist/testimonials-scrolling-columns.d.cts +3 -3
  1337. package/dist/testimonials-scrolling-columns.d.ts +3 -3
  1338. package/dist/testimonials-simple-grid.d.cts +3 -3
  1339. package/dist/testimonials-simple-grid.d.ts +3 -3
  1340. package/dist/testimonials-slider-minimal.d.cts +3 -3
  1341. package/dist/testimonials-slider-minimal.d.ts +3 -3
  1342. package/dist/testimonials-split-image.d.cts +3 -3
  1343. package/dist/testimonials-split-image.d.ts +3 -3
  1344. package/dist/testimonials-stats-header.d.cts +3 -3
  1345. package/dist/testimonials-stats-header.d.ts +3 -3
  1346. package/dist/testimonials-twitter-cards.d.cts +4 -4
  1347. package/dist/testimonials-twitter-cards.d.ts +4 -4
  1348. package/dist/testimonials-wall-compact.d.cts +3 -3
  1349. package/dist/testimonials-wall-compact.d.ts +3 -3
  1350. package/dist/timeline-ai-workflow-cards.d.cts +3 -3
  1351. package/dist/timeline-ai-workflow-cards.d.ts +3 -3
  1352. package/dist/timeline-alternating-diagonal.d.cts +3 -3
  1353. package/dist/timeline-alternating-diagonal.d.ts +3 -3
  1354. package/dist/timeline-changelog-badges.d.cts +3 -3
  1355. package/dist/timeline-changelog-badges.d.ts +3 -3
  1356. package/dist/timeline-history-prose.d.cts +3 -3
  1357. package/dist/timeline-history-prose.d.ts +3 -3
  1358. package/dist/timeline-horizontal-icons.d.cts +3 -3
  1359. package/dist/timeline-horizontal-icons.d.ts +3 -3
  1360. package/dist/timeline-horizontal-phases.d.cts +3 -3
  1361. package/dist/timeline-horizontal-phases.d.ts +3 -3
  1362. package/dist/timeline-product-launch.d.cts +3 -3
  1363. package/dist/timeline-product-launch.d.ts +3 -3
  1364. package/dist/timeline-productivity-list.d.cts +3 -3
  1365. package/dist/timeline-productivity-list.d.ts +3 -3
  1366. package/dist/timeline-scroll-highlight.d.cts +3 -3
  1367. package/dist/timeline-scroll-highlight.d.ts +3 -3
  1368. package/dist/timeline-scroll-sticky-image.d.cts +3 -3
  1369. package/dist/timeline-scroll-sticky-image.d.ts +3 -3
  1370. package/dist/timeline-stepper-animated.d.cts +3 -3
  1371. package/dist/timeline-stepper-animated.d.ts +3 -3
  1372. package/dist/timeline-tabbed-phases.d.cts +3 -3
  1373. package/dist/timeline-tabbed-phases.d.ts +3 -3
  1374. package/dist/timeline-two-column-featured.d.cts +3 -3
  1375. package/dist/timeline-two-column-featured.d.ts +3 -3
  1376. package/dist/timeline-vertical-icon-dashed.d.cts +3 -3
  1377. package/dist/timeline-vertical-icon-dashed.d.ts +3 -3
  1378. package/dist/types.d.cts +3 -3
  1379. package/dist/types.d.ts +3 -3
  1380. package/dist/use-responsive-layout.cjs +17 -0
  1381. package/dist/use-responsive-layout.d.cts +24 -0
  1382. package/dist/use-responsive-layout.d.ts +24 -0
  1383. package/dist/use-responsive-layout.js +15 -0
  1384. package/dist/utils.d.cts +4 -4
  1385. package/dist/utils.d.ts +4 -4
  1386. package/package.json +9 -4
@@ -1,16 +1,17 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var React4 = require('react');
4
+ var React5 = require('react');
5
5
  var clsx = require('clsx');
6
6
  var tailwindMerge = require('tailwind-merge');
7
7
  var jsxRuntime = require('react/jsx-runtime');
8
+ var maps = require('@page-speed/maps');
9
+ var classVarianceAuthority = require('class-variance-authority');
8
10
  var framerMotion = require('framer-motion');
9
11
  var useOnClickOutside = require('@opensite/hooks/useOnClickOutside');
10
12
  var react = require('motion/react');
11
13
  var img = require('@page-speed/img');
12
14
  var reactSlot = require('@radix-ui/react-slot');
13
- var classVarianceAuthority = require('class-variance-authority');
14
15
  var PopoverPrimitive = require('@radix-ui/react-popover');
15
16
  var icon = require('@page-speed/icon');
16
17
  var usePlatformFromUrl = require('@opensite/hooks/usePlatformFromUrl');
@@ -35,7 +36,7 @@ function _interopNamespace(e) {
35
36
  return Object.freeze(n);
36
37
  }
37
38
 
38
- var React4__namespace = /*#__PURE__*/_interopNamespace(React4);
39
+ var React5__namespace = /*#__PURE__*/_interopNamespace(React5);
39
40
  var PopoverPrimitive__namespace = /*#__PURE__*/_interopNamespace(PopoverPrimitive);
40
41
  var TabsPrimitive__namespace = /*#__PURE__*/_interopNamespace(TabsPrimitive);
41
42
 
@@ -82,7 +83,7 @@ var maxWidthStyles = {
82
83
  "4xl": "max-w-[1536px]",
83
84
  full: "max-w-full"
84
85
  };
85
- var Container = React4__namespace.default.forwardRef(
86
+ var Container = React5__namespace.default.forwardRef(
86
87
  ({ children, maxWidth = "xl", className, as = "div", ...props }, ref) => {
87
88
  const Component = as;
88
89
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -388,7 +389,7 @@ var spacingStyles = {
388
389
  };
389
390
  var predefinedSpacings = ["none", "sm", "md", "lg", "xl", "hero"];
390
391
  var isPredefinedSpacing = (spacing) => predefinedSpacings.includes(spacing);
391
- var Section = React4__namespace.default.forwardRef(
392
+ var Section = React5__namespace.default.forwardRef(
392
393
  ({
393
394
  id,
394
395
  title,
@@ -449,129 +450,1119 @@ var Section = React4__namespace.default.forwardRef(
449
450
  }
450
451
  );
451
452
  Section.displayName = "Section";
452
- var sizeStyles = {
453
- sm: "max-w-md",
454
- md: "max-w-2xl",
455
- lg: "max-w-4xl",
456
- xl: "max-w-5xl",
457
- full: "max-w-7xl",
458
- compact: "max-w-[700px]"
459
- };
460
- var dialogTransition = {
461
- duration: 0.35,
462
- ease: [0.16, 1, 0.3, 1]
463
- };
464
- function AnimatedDialog({
465
- open,
466
- onOpenChange,
467
- title,
468
- eyebrow,
469
- description,
470
- children,
471
- header,
472
- footer,
473
- size = "lg",
474
- className,
475
- contentClassName,
476
- featuredMediaHeader
477
- }) {
478
- const titleId = React4.useId();
479
- const descriptionId = React4.useId();
480
- const containerRef = React4.useRef(null);
481
- useOnClickOutside.useOnClickOutside(containerRef, () => {
482
- if (open) {
483
- onOpenChange(false);
453
+ function normalizePhoneNumber(input) {
454
+ const trimmed = input.trim();
455
+ if (trimmed.toLowerCase().startsWith("tel:")) {
456
+ return trimmed;
457
+ }
458
+ const match = trimmed.match(/^[\s\+\-\(\)]*(\d[\d\s\-\(\)\.]*\d)[\s\-]*(x|ext\.?|extension)?[\s\-]*(\d+)?$/i);
459
+ if (match) {
460
+ const mainNumber = match[1].replace(/[\s\-\(\)\.]/g, "");
461
+ const extension = match[3];
462
+ const normalized = mainNumber.length >= 10 && !trimmed.startsWith("+") ? `+${mainNumber}` : mainNumber;
463
+ const withExtension = extension ? `${normalized};ext=${extension}` : normalized;
464
+ return `tel:${withExtension}`;
465
+ }
466
+ const cleaned = trimmed.replace(/[\s\-\(\)\.]/g, "");
467
+ return `tel:${cleaned}`;
468
+ }
469
+ function normalizeEmail(input) {
470
+ const trimmed = input.trim();
471
+ if (trimmed.toLowerCase().startsWith("mailto:")) {
472
+ return trimmed;
473
+ }
474
+ return `mailto:${trimmed}`;
475
+ }
476
+ function isEmail(input) {
477
+ const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
478
+ return emailRegex.test(input.trim());
479
+ }
480
+ function isPhoneNumber(input) {
481
+ const trimmed = input.trim();
482
+ if (trimmed.toLowerCase().startsWith("tel:")) {
483
+ return true;
484
+ }
485
+ const phoneRegex = /^[\s\+\-\(\)]*\d[\d\s\-\(\)\.]*\d[\s\-]*(x|ext\.?|extension)?[\s\-]*\d*$/i;
486
+ return phoneRegex.test(trimmed);
487
+ }
488
+ function isInternalUrl(href) {
489
+ if (typeof window === "undefined") {
490
+ return href.startsWith("/") && !href.startsWith("//");
491
+ }
492
+ const trimmed = href.trim();
493
+ if (trimmed.startsWith("/") && !trimmed.startsWith("//")) {
494
+ return true;
495
+ }
496
+ try {
497
+ const url = new URL(trimmed, window.location.href);
498
+ const currentOrigin = window.location.origin;
499
+ const normalizeOrigin = (origin) => origin.replace(/^(https?:\/\/)(www\.)?/, "$1");
500
+ return normalizeOrigin(url.origin) === normalizeOrigin(currentOrigin);
501
+ } catch {
502
+ return false;
503
+ }
504
+ }
505
+ function toRelativePath(href) {
506
+ if (typeof window === "undefined") {
507
+ return href;
508
+ }
509
+ const trimmed = href.trim();
510
+ if (trimmed.startsWith("/") && !trimmed.startsWith("//")) {
511
+ return trimmed;
512
+ }
513
+ try {
514
+ const url = new URL(trimmed, window.location.href);
515
+ const currentOrigin = window.location.origin;
516
+ const normalizeOrigin = (origin) => origin.replace(/^(https?:\/\/)(www\.)?/, "$1");
517
+ if (normalizeOrigin(url.origin) === normalizeOrigin(currentOrigin)) {
518
+ return url.pathname + url.search + url.hash;
484
519
  }
485
- });
486
- React4.useEffect(() => {
487
- if (!open) {
488
- return;
520
+ } catch {
521
+ }
522
+ return trimmed;
523
+ }
524
+ function useNavigation({
525
+ href,
526
+ onClick
527
+ } = {}) {
528
+ const linkType = React5__namespace.useMemo(() => {
529
+ if (!href || href.trim() === "") {
530
+ return onClick ? "none" : "none";
489
531
  }
490
- const onKeyDown = (event) => {
491
- if (event.key === "Escape") {
492
- onOpenChange(false);
532
+ const trimmed = href.trim();
533
+ if (trimmed.toLowerCase().startsWith("mailto:") || isEmail(trimmed)) {
534
+ return "mailto";
535
+ }
536
+ if (trimmed.toLowerCase().startsWith("tel:") || isPhoneNumber(trimmed)) {
537
+ return "tel";
538
+ }
539
+ if (isInternalUrl(trimmed)) {
540
+ return "internal";
541
+ }
542
+ try {
543
+ new URL(trimmed, typeof window !== "undefined" ? window.location.href : "http://localhost");
544
+ return "external";
545
+ } catch {
546
+ return "internal";
547
+ }
548
+ }, [href, onClick]);
549
+ const normalizedHref = React5__namespace.useMemo(() => {
550
+ if (!href || href.trim() === "") {
551
+ return void 0;
552
+ }
553
+ const trimmed = href.trim();
554
+ switch (linkType) {
555
+ case "tel":
556
+ return normalizePhoneNumber(trimmed);
557
+ case "mailto":
558
+ return normalizeEmail(trimmed);
559
+ case "internal":
560
+ return toRelativePath(trimmed);
561
+ case "external":
562
+ return trimmed;
563
+ default:
564
+ return trimmed;
565
+ }
566
+ }, [href, linkType]);
567
+ const target = React5__namespace.useMemo(() => {
568
+ switch (linkType) {
569
+ case "external":
570
+ return "_blank";
571
+ case "internal":
572
+ return "_self";
573
+ case "mailto":
574
+ case "tel":
575
+ return void 0;
576
+ default:
577
+ return void 0;
578
+ }
579
+ }, [linkType]);
580
+ const rel = React5__namespace.useMemo(() => {
581
+ if (linkType === "external") {
582
+ return "noopener noreferrer";
583
+ }
584
+ return void 0;
585
+ }, [linkType]);
586
+ const isExternal = linkType === "external";
587
+ const isInternal = linkType === "internal";
588
+ const shouldUseRouter = isInternal && typeof normalizedHref === "string" && normalizedHref.startsWith("/");
589
+ const handleClick = React5__namespace.useCallback(
590
+ (event) => {
591
+ if (onClick) {
592
+ try {
593
+ onClick(event);
594
+ } catch (error) {
595
+ console.error("Error in user onClick handler:", error);
596
+ }
493
597
  }
494
- };
495
- const previousOverflow = document.body.style.overflow;
496
- document.body.style.overflow = "hidden";
497
- window.addEventListener("keydown", onKeyDown);
498
- return () => {
499
- document.body.style.overflow = previousOverflow;
500
- window.removeEventListener("keydown", onKeyDown);
501
- };
502
- }, [open, onOpenChange]);
503
- return /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { children: open ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "fixed inset-0 z-50 h-screen overflow-y-auto", children: [
504
- /* @__PURE__ */ jsxRuntime.jsx(
505
- framerMotion.motion.div,
506
- {
507
- initial: { opacity: 0 },
508
- animate: { opacity: 1, transition: dialogTransition },
509
- exit: { opacity: 0, transition: dialogTransition },
510
- className: "fixed inset-0 h-full w-full bg-foreground/80 backdrop-blur-lg"
598
+ if (event.defaultPrevented) {
599
+ return;
511
600
  }
512
- ),
513
- /* @__PURE__ */ jsxRuntime.jsxs(
514
- framerMotion.motion.div,
515
- {
516
- initial: { opacity: 0, y: 24, scale: 0.98 },
517
- animate: {
518
- opacity: 1,
519
- y: 0,
520
- scale: 1,
521
- transition: dialogTransition
522
- },
523
- exit: {
524
- opacity: 0,
525
- y: 12,
526
- scale: 0.98,
527
- transition: dialogTransition
528
- },
529
- ref: containerRef,
530
- role: "dialog",
531
- "aria-modal": "true",
532
- "aria-labelledby": title ? titleId : void 0,
533
- "aria-describedby": description ? descriptionId : void 0,
534
- className: cn(
535
- "relative z-60 mx-auto my-12 flex w-[92vw] max-h-[85vh] flex-col overflow-hidden rounded-3xl bg-background shadow-2xl ring-1 ring-border/10",
536
- size === "compact" ? "p-0 md:my-20" : "p-6 md:my-20 md:p-12",
537
- sizeStyles[size],
538
- className
539
- ),
540
- children: [
541
- featuredMediaHeader ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative overflow-hidden", children: [
542
- featuredMediaHeader,
543
- /* @__PURE__ */ jsxRuntime.jsx(
544
- "button",
545
- {
546
- type: "button",
547
- "aria-label": "Close dialog",
548
- className: "absolute right-4 top-4 z-10 flex h-10 w-10 shrink-0 items-center justify-center rounded-full bg-foreground/90 text-background backdrop-blur-sm transition hover:bg-foreground md:h-11 md:w-11",
549
- onClick: () => onOpenChange(false),
550
- children: /* @__PURE__ */ jsxRuntime.jsx(
551
- "svg",
552
- {
553
- xmlns: "http://www.w3.org/2000/svg",
554
- width: "24",
555
- height: "24",
556
- viewBox: "0 0 24 24",
557
- children: /* @__PURE__ */ jsxRuntime.jsx(
558
- "path",
559
- {
560
- fill: "none",
561
- stroke: "currentColor",
562
- strokeLinecap: "round",
563
- strokeLinejoin: "round",
564
- strokeWidth: "2",
565
- d: "M18 6L6 18M6 6l12 12"
566
- }
567
- )
568
- }
569
- )
570
- }
571
- )
572
- ] }) : null,
573
- /* @__PURE__ */ jsxRuntime.jsxs(
574
- "div",
601
+ if (shouldUseRouter && normalizedHref && event.button === 0 && // left-click only
602
+ !event.metaKey && !event.altKey && !event.ctrlKey && !event.shiftKey) {
603
+ if (typeof window !== "undefined") {
604
+ const handler = window.__opensiteNavigationHandler;
605
+ if (typeof handler === "function") {
606
+ try {
607
+ const handled = handler(normalizedHref, event.nativeEvent || event);
608
+ if (handled !== false) {
609
+ event.preventDefault();
610
+ }
611
+ } catch (error) {
612
+ console.error("Error in navigation handler:", error);
613
+ }
614
+ }
615
+ }
616
+ }
617
+ },
618
+ [onClick, shouldUseRouter, normalizedHref]
619
+ );
620
+ return {
621
+ linkType,
622
+ normalizedHref,
623
+ target,
624
+ rel,
625
+ isExternal,
626
+ isInternal,
627
+ shouldUseRouter,
628
+ handleClick
629
+ };
630
+ }
631
+ var baseStyles = [
632
+ // Layout
633
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap shrink-0",
634
+ // Typography - using CSS variables with sensible defaults
635
+ "font-[var(--button-font-family,inherit)]",
636
+ "font-[var(--button-font-weight,500)]",
637
+ "tracking-[var(--button-letter-spacing,0)]",
638
+ "leading-[var(--button-line-height,1.25)]",
639
+ "[text-transform:var(--button-text-transform,none)]",
640
+ "text-sm",
641
+ // Border radius
642
+ "rounded-[var(--button-radius,var(--radius,0.375rem))]",
643
+ // Smooth transition - using [transition:...] to set full shorthand property (not just transition-property)
644
+ "[transition:var(--button-transition,all_250ms_cubic-bezier(0.4,0,0.2,1))]",
645
+ // Box shadow (master level) - using [box-shadow:...] for complex multi-value shadows
646
+ "[box-shadow:var(--button-shadow,none)]",
647
+ "hover:[box-shadow:var(--button-shadow-hover,var(--button-shadow,none))]",
648
+ // Disabled state
649
+ "disabled:pointer-events-none disabled:opacity-50",
650
+ // SVG handling
651
+ "[&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0",
652
+ // Focus styles
653
+ "outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
654
+ // Invalid state
655
+ "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive"
656
+ ].join(" ");
657
+ var buttonVariants = classVarianceAuthority.cva(baseStyles, {
658
+ variants: {
659
+ variant: {
660
+ // Default (Primary) variant - full customization
661
+ default: [
662
+ "bg-[var(--button-default-bg,hsl(var(--primary)))]",
663
+ "text-[var(--button-default-fg,hsl(var(--primary-foreground)))]",
664
+ "border-[length:var(--button-default-border-width,0px)]",
665
+ "border-[color:var(--button-default-border,transparent)]",
666
+ "[box-shadow:var(--button-default-shadow,var(--button-shadow,none))]",
667
+ "hover:bg-[var(--button-default-hover-bg,hsl(var(--primary)/0.9))]",
668
+ "hover:text-[var(--button-default-hover-fg,var(--button-default-fg,hsl(var(--primary-foreground))))]",
669
+ "hover:border-[color:var(--button-default-hover-border,var(--button-default-border,transparent))]",
670
+ "hover:[box-shadow:var(--button-default-shadow-hover,var(--button-shadow-hover,var(--button-default-shadow,var(--button-shadow,none))))]"
671
+ ].join(" "),
672
+ // Destructive variant - full customization
673
+ destructive: [
674
+ "bg-[var(--button-destructive-bg,hsl(var(--destructive)))]",
675
+ "text-[var(--button-destructive-fg,white)]",
676
+ "border-[length:var(--button-destructive-border-width,0px)]",
677
+ "border-[color:var(--button-destructive-border,transparent)]",
678
+ "[box-shadow:var(--button-destructive-shadow,var(--button-shadow,none))]",
679
+ "hover:bg-[var(--button-destructive-hover-bg,hsl(var(--destructive)/0.9))]",
680
+ "hover:text-[var(--button-destructive-hover-fg,var(--button-destructive-fg,white))]",
681
+ "hover:border-[color:var(--button-destructive-hover-border,var(--button-destructive-border,transparent))]",
682
+ "hover:[box-shadow:var(--button-destructive-shadow-hover,var(--button-shadow-hover,var(--button-destructive-shadow,var(--button-shadow,none))))]",
683
+ "focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40",
684
+ "dark:bg-destructive/60"
685
+ ].join(" "),
686
+ // Outline variant - full customization with proper border handling
687
+ outline: [
688
+ "bg-[var(--button-outline-bg,hsl(var(--background)))]",
689
+ "text-[var(--button-outline-fg,inherit)]",
690
+ "border-[length:var(--button-outline-border-width,1px)]",
691
+ "border-[color:var(--button-outline-border,hsl(var(--border)))]",
692
+ "[box-shadow:var(--button-outline-shadow,var(--button-shadow,0_1px_2px_0_rgb(0_0_0/0.05)))]",
693
+ "hover:bg-[var(--button-outline-hover-bg,hsl(var(--accent)))]",
694
+ "hover:text-[var(--button-outline-hover-fg,hsl(var(--accent-foreground)))]",
695
+ "hover:border-[color:var(--button-outline-hover-border,var(--button-outline-border,hsl(var(--border))))]",
696
+ "hover:[box-shadow:var(--button-outline-shadow-hover,var(--button-shadow-hover,var(--button-outline-shadow,var(--button-shadow,none))))]",
697
+ "dark:bg-input/30 dark:border-input dark:hover:bg-input/50"
698
+ ].join(" "),
699
+ // Secondary variant - full customization
700
+ secondary: [
701
+ "bg-[var(--button-secondary-bg,hsl(var(--secondary)))]",
702
+ "text-[var(--button-secondary-fg,hsl(var(--secondary-foreground)))]",
703
+ "border-[length:var(--button-secondary-border-width,0px)]",
704
+ "border-[color:var(--button-secondary-border,transparent)]",
705
+ "[box-shadow:var(--button-secondary-shadow,var(--button-shadow,none))]",
706
+ "hover:bg-[var(--button-secondary-hover-bg,hsl(var(--secondary)/0.8))]",
707
+ "hover:text-[var(--button-secondary-hover-fg,var(--button-secondary-fg,hsl(var(--secondary-foreground))))]",
708
+ "hover:border-[color:var(--button-secondary-hover-border,var(--button-secondary-border,transparent))]",
709
+ "hover:[box-shadow:var(--button-secondary-shadow-hover,var(--button-shadow-hover,var(--button-secondary-shadow,var(--button-shadow,none))))]"
710
+ ].join(" "),
711
+ // Ghost variant - full customization
712
+ ghost: [
713
+ "bg-[var(--button-ghost-bg,transparent)]",
714
+ "text-[var(--button-ghost-fg,inherit)]",
715
+ "border-[length:var(--button-ghost-border-width,0px)]",
716
+ "border-[color:var(--button-ghost-border,transparent)]",
717
+ "[box-shadow:var(--button-ghost-shadow,var(--button-shadow,none))]",
718
+ "hover:bg-[var(--button-ghost-hover-bg,hsl(var(--accent)))]",
719
+ "hover:text-[var(--button-ghost-hover-fg,hsl(var(--accent-foreground)))]",
720
+ "hover:border-[color:var(--button-ghost-hover-border,var(--button-ghost-border,transparent))]",
721
+ "hover:[box-shadow:var(--button-ghost-shadow-hover,var(--button-shadow-hover,var(--button-ghost-shadow,var(--button-shadow,none))))]",
722
+ "dark:hover:bg-accent/50"
723
+ ].join(" "),
724
+ // Link variant - full customization
725
+ link: [
726
+ "bg-[var(--button-link-bg,transparent)]",
727
+ "text-[var(--button-link-fg,hsl(var(--primary)))]",
728
+ "border-[length:var(--button-link-border-width,0px)]",
729
+ "border-[color:var(--button-link-border,transparent)]",
730
+ "[box-shadow:var(--button-link-shadow,none)]",
731
+ "hover:bg-[var(--button-link-hover-bg,transparent)]",
732
+ "hover:text-[var(--button-link-hover-fg,var(--button-link-fg,hsl(var(--primary))))]",
733
+ "hover:[box-shadow:var(--button-link-shadow-hover,none)]",
734
+ "underline-offset-4 hover:underline"
735
+ ].join(" ")
736
+ },
737
+ size: {
738
+ default: [
739
+ "h-[var(--button-height-md,2.25rem)]",
740
+ "px-[var(--button-padding-x-md,1rem)]",
741
+ "py-[var(--button-padding-y-md,0.5rem)]",
742
+ "has-[>svg]:px-[calc(var(--button-padding-x-md,1rem)*0.75)]"
743
+ ].join(" "),
744
+ sm: [
745
+ "h-[var(--button-height-sm,2rem)]",
746
+ "px-[var(--button-padding-x-sm,0.75rem)]",
747
+ "py-[var(--button-padding-y-sm,0.25rem)]",
748
+ "gap-1.5",
749
+ "has-[>svg]:px-[calc(var(--button-padding-x-sm,0.75rem)*0.83)]"
750
+ ].join(" "),
751
+ md: [
752
+ "h-[var(--button-height-md,2.25rem)]",
753
+ "px-[var(--button-padding-x-md,1rem)]",
754
+ "py-[var(--button-padding-y-md,0.5rem)]",
755
+ "has-[>svg]:px-[calc(var(--button-padding-x-md,1rem)*0.75)]"
756
+ ].join(" "),
757
+ lg: [
758
+ "h-[var(--button-height-lg,2.5rem)]",
759
+ "px-[var(--button-padding-x-lg,1.5rem)]",
760
+ "py-[var(--button-padding-y-lg,0.5rem)]",
761
+ "has-[>svg]:px-[calc(var(--button-padding-x-lg,1.5rem)*0.67)]"
762
+ ].join(" "),
763
+ icon: "size-[var(--button-height-md,2.25rem)]",
764
+ "icon-sm": "size-[var(--button-height-sm,2rem)]",
765
+ "icon-lg": "size-[var(--button-height-lg,2.5rem)]"
766
+ }
767
+ },
768
+ defaultVariants: {
769
+ variant: "default",
770
+ size: "default"
771
+ }
772
+ });
773
+ var Pressable = React5__namespace.forwardRef(
774
+ ({
775
+ children,
776
+ className,
777
+ href,
778
+ onClick,
779
+ variant,
780
+ size,
781
+ asButton = false,
782
+ fallbackComponentType = "span",
783
+ componentType,
784
+ "aria-label": ariaLabel,
785
+ "aria-describedby": ariaDescribedby,
786
+ id,
787
+ ...props
788
+ }, ref) => {
789
+ const navigation = useNavigation({ href, onClick });
790
+ const {
791
+ normalizedHref,
792
+ target,
793
+ rel,
794
+ linkType,
795
+ isInternal,
796
+ handleClick
797
+ } = navigation;
798
+ const shouldRenderLink = normalizedHref && linkType !== "none";
799
+ const shouldRenderButton = !shouldRenderLink && onClick;
800
+ const effectiveComponentType = componentType || (shouldRenderLink ? "a" : shouldRenderButton ? "button" : fallbackComponentType);
801
+ const finalComponentType = isInternal && shouldRenderLink ? "a" : effectiveComponentType;
802
+ const shouldApplyButtonStyles = asButton || variant || size;
803
+ const combinedClassName = cn(
804
+ shouldApplyButtonStyles && buttonVariants({ variant, size }),
805
+ className
806
+ );
807
+ const dataProps = Object.fromEntries(
808
+ Object.entries(props).filter(([key]) => key.startsWith("data-"))
809
+ );
810
+ const buttonDataAttributes = shouldApplyButtonStyles ? {
811
+ "data-slot": "button",
812
+ "data-variant": variant ?? "default",
813
+ "data-size": size ?? "default"
814
+ } : {};
815
+ const commonProps = {
816
+ className: combinedClassName,
817
+ onClick: handleClick,
818
+ "aria-label": ariaLabel,
819
+ "aria-describedby": ariaDescribedby,
820
+ id,
821
+ ...dataProps,
822
+ ...buttonDataAttributes
823
+ };
824
+ if (finalComponentType === "a" && shouldRenderLink) {
825
+ return /* @__PURE__ */ jsxRuntime.jsx(
826
+ "a",
827
+ {
828
+ ref,
829
+ href: normalizedHref,
830
+ target,
831
+ rel,
832
+ ...commonProps,
833
+ ...props,
834
+ children
835
+ }
836
+ );
837
+ }
838
+ if (finalComponentType === "button") {
839
+ return /* @__PURE__ */ jsxRuntime.jsx(
840
+ "button",
841
+ {
842
+ ref,
843
+ type: props.type || "button",
844
+ ...commonProps,
845
+ ...props,
846
+ children
847
+ }
848
+ );
849
+ }
850
+ if (finalComponentType === "div") {
851
+ return /* @__PURE__ */ jsxRuntime.jsx(
852
+ "div",
853
+ {
854
+ ref,
855
+ ...commonProps,
856
+ children
857
+ }
858
+ );
859
+ }
860
+ return /* @__PURE__ */ jsxRuntime.jsx(
861
+ "span",
862
+ {
863
+ ref,
864
+ ...commonProps,
865
+ children
866
+ }
867
+ );
868
+ }
869
+ );
870
+ Pressable.displayName = "Pressable";
871
+ var PANEL_POSITION_CLASS = {
872
+ "top-left": "left-4 top-4",
873
+ "top-right": "right-4 top-4",
874
+ "bottom-left": "bottom-4 left-4",
875
+ "bottom-right": "bottom-4 right-4"
876
+ };
877
+ var DEFAULT_VIEW_STATE = {
878
+ latitude: 39.5,
879
+ longitude: -98.35,
880
+ zoom: 3
881
+ };
882
+ var VIDEO_FILE_EXTENSION_REGEX = /\.(mp4|webm|ogg|mov|m4v|m3u8)(\?.*)?$/i;
883
+ function resolveMediaType(item) {
884
+ if (item.type) {
885
+ return item.type;
886
+ }
887
+ return VIDEO_FILE_EXTENSION_REGEX.test(item.src) ? "video" : "image";
888
+ }
889
+ function normalizeId(value, fallback) {
890
+ if (value === null || value === void 0 || value === "") {
891
+ return fallback;
892
+ }
893
+ return String(value);
894
+ }
895
+ function buildClusterCenter(markers) {
896
+ if (!markers.length) {
897
+ return null;
898
+ }
899
+ const total = markers.reduce(
900
+ (accumulator, marker) => ({
901
+ latitude: accumulator.latitude + marker.latitude,
902
+ longitude: accumulator.longitude + marker.longitude
903
+ }),
904
+ { latitude: 0, longitude: 0 }
905
+ );
906
+ return {
907
+ latitude: total.latitude / markers.length,
908
+ longitude: total.longitude / markers.length
909
+ };
910
+ }
911
+ function resolveActionKey(action, index) {
912
+ if (typeof action.label === "string" && action.label.trim().length > 0) {
913
+ return `label:${action.label}:${index}`;
914
+ }
915
+ if (action.href) {
916
+ return `href:${action.href}:${index}`;
917
+ }
918
+ return `action:${index}`;
919
+ }
920
+ function MarkerActions({ actions }) {
921
+ if (!actions || actions.length === 0) {
922
+ return null;
923
+ }
924
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-4 flex flex-wrap gap-2", children: actions.map((action, index) => {
925
+ const {
926
+ label,
927
+ icon,
928
+ iconAfter,
929
+ children,
930
+ href,
931
+ onClick,
932
+ className: actionClassName,
933
+ variant,
934
+ size,
935
+ asButton,
936
+ ...rest
937
+ } = action;
938
+ return /* @__PURE__ */ jsxRuntime.jsx(
939
+ Pressable,
940
+ {
941
+ href,
942
+ onClick,
943
+ variant: variant ?? (index === 0 ? "default" : "outline"),
944
+ size: size ?? "sm",
945
+ asButton: asButton ?? true,
946
+ className: cn("inline-flex items-center gap-2", actionClassName),
947
+ ...rest,
948
+ children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
949
+ icon,
950
+ label,
951
+ iconAfter
952
+ ] })
953
+ },
954
+ resolveActionKey(action, index)
955
+ );
956
+ }) });
957
+ }
958
+ function MarkerMediaCarousel({ mediaItems }) {
959
+ const [activeIndex, setActiveIndex] = React5__namespace.useState(0);
960
+ const totalItems = mediaItems.length;
961
+ React5__namespace.useEffect(() => {
962
+ setActiveIndex(0);
963
+ }, [mediaItems]);
964
+ const activeMediaItem = mediaItems[activeIndex];
965
+ const mediaType = resolveMediaType(activeMediaItem);
966
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative border-b border-border/60 bg-muted/40", children: [
967
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative h-44 w-full overflow-hidden", children: mediaType === "video" ? /* @__PURE__ */ jsxRuntime.jsx(
968
+ "video",
969
+ {
970
+ className: "h-full w-full object-cover",
971
+ controls: true,
972
+ preload: "metadata",
973
+ poster: activeMediaItem.poster,
974
+ children: /* @__PURE__ */ jsxRuntime.jsx("source", { src: activeMediaItem.src })
975
+ }
976
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
977
+ "img",
978
+ {
979
+ src: activeMediaItem.src,
980
+ alt: activeMediaItem.alt ?? "Map marker media",
981
+ className: "h-full w-full object-cover",
982
+ loading: "lazy"
983
+ }
984
+ ) }),
985
+ totalItems > 1 ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
986
+ /* @__PURE__ */ jsxRuntime.jsx(
987
+ "button",
988
+ {
989
+ type: "button",
990
+ "aria-label": "Show previous media",
991
+ className: "absolute left-2 top-1/2 inline-flex h-8 w-8 -translate-y-1/2 items-center justify-center rounded-full bg-background/90 text-foreground shadow-sm transition hover:bg-background",
992
+ onClick: () => {
993
+ setActiveIndex((current) => (current - 1 + totalItems) % totalItems);
994
+ },
995
+ children: "<"
996
+ }
997
+ ),
998
+ /* @__PURE__ */ jsxRuntime.jsx(
999
+ "button",
1000
+ {
1001
+ type: "button",
1002
+ "aria-label": "Show next media",
1003
+ className: "absolute right-2 top-1/2 inline-flex h-8 w-8 -translate-y-1/2 items-center justify-center rounded-full bg-background/90 text-foreground shadow-sm transition hover:bg-background",
1004
+ onClick: () => {
1005
+ setActiveIndex((current) => (current + 1) % totalItems);
1006
+ },
1007
+ children: ">"
1008
+ }
1009
+ ),
1010
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute bottom-2 left-1/2 flex -translate-x-1/2 items-center gap-1.5", children: mediaItems.map((item, index) => /* @__PURE__ */ jsxRuntime.jsx(
1011
+ "button",
1012
+ {
1013
+ type: "button",
1014
+ "aria-label": `Show media item ${index + 1}`,
1015
+ className: cn(
1016
+ "h-2 rounded-full transition-all",
1017
+ index === activeIndex ? "w-6 bg-white" : "w-2 bg-white/70 hover:bg-white/90"
1018
+ ),
1019
+ onClick: () => setActiveIndex(index)
1020
+ },
1021
+ normalizeId(item.id, `media-dot-${index}`)
1022
+ )) })
1023
+ ] }) : null
1024
+ ] });
1025
+ }
1026
+ function getMarkerTitle(marker, markerIndex) {
1027
+ if (marker.title !== void 0 && marker.title !== null) {
1028
+ return marker.title;
1029
+ }
1030
+ if (marker.label !== void 0 && marker.label !== null) {
1031
+ return marker.label;
1032
+ }
1033
+ return `Location ${markerIndex + 1}`;
1034
+ }
1035
+ function GeoMap({
1036
+ className,
1037
+ mapWrapperClassName,
1038
+ mapClassName,
1039
+ panelClassName,
1040
+ panelPosition = "top-left",
1041
+ stadiaApiKey = "",
1042
+ mapStyle = "osm-bright",
1043
+ styleUrl,
1044
+ mapLibreCssHref,
1045
+ markers = [],
1046
+ clusters = [],
1047
+ viewState,
1048
+ defaultViewState,
1049
+ onViewStateChange,
1050
+ onMapClick,
1051
+ onMarkerDrag,
1052
+ showNavigationControl = true,
1053
+ showGeolocateControl = false,
1054
+ navigationControlPosition = "top-right",
1055
+ geolocateControlPosition = "top-left",
1056
+ flyToOptions,
1057
+ markerFocusZoom = 14,
1058
+ clusterFocusZoom = 5,
1059
+ selectedMarkerId,
1060
+ initialSelectedMarkerId,
1061
+ onSelectionChange,
1062
+ clearSelectionOnMapClick = true,
1063
+ mapChildren
1064
+ }) {
1065
+ const normalizedStandaloneMarkers = React5__namespace.useMemo(
1066
+ () => markers.map((marker, index) => ({
1067
+ ...marker,
1068
+ id: normalizeId(marker.id, `marker-${index}`)
1069
+ })),
1070
+ [markers]
1071
+ );
1072
+ const normalizedClusters = React5__namespace.useMemo(() => {
1073
+ const results = [];
1074
+ clusters.forEach((cluster, clusterIndex) => {
1075
+ const clusterId = normalizeId(cluster.id, `cluster-${clusterIndex}`);
1076
+ const normalizedClusterMarkers = cluster.markers.map(
1077
+ (marker, markerIndex) => ({
1078
+ ...marker,
1079
+ id: normalizeId(marker.id, `${clusterId}-marker-${markerIndex}`),
1080
+ clusterId
1081
+ })
1082
+ );
1083
+ const clusterCenter = cluster.latitude !== void 0 && cluster.longitude !== void 0 ? { latitude: cluster.latitude, longitude: cluster.longitude } : buildClusterCenter(normalizedClusterMarkers);
1084
+ if (!clusterCenter) {
1085
+ return;
1086
+ }
1087
+ results.push({
1088
+ ...cluster,
1089
+ id: clusterId,
1090
+ latitude: clusterCenter.latitude,
1091
+ longitude: clusterCenter.longitude,
1092
+ markers: normalizedClusterMarkers
1093
+ });
1094
+ });
1095
+ return results;
1096
+ }, [clusters]);
1097
+ const markerLookup = React5__namespace.useMemo(() => {
1098
+ const lookup = /* @__PURE__ */ new Map();
1099
+ normalizedStandaloneMarkers.forEach((marker) => {
1100
+ lookup.set(marker.id, marker);
1101
+ });
1102
+ normalizedClusters.forEach((cluster) => {
1103
+ cluster.markers.forEach((marker) => {
1104
+ lookup.set(marker.id, marker);
1105
+ });
1106
+ });
1107
+ return lookup;
1108
+ }, [normalizedClusters, normalizedStandaloneMarkers]);
1109
+ const clusterLookup = React5__namespace.useMemo(() => {
1110
+ const lookup = /* @__PURE__ */ new Map();
1111
+ normalizedClusters.forEach((cluster) => {
1112
+ lookup.set(cluster.id, cluster);
1113
+ });
1114
+ return lookup;
1115
+ }, [normalizedClusters]);
1116
+ const firstCoordinate = React5__namespace.useMemo(() => {
1117
+ if (normalizedStandaloneMarkers.length > 0) {
1118
+ const firstStandaloneMarker = normalizedStandaloneMarkers[0];
1119
+ return {
1120
+ latitude: firstStandaloneMarker.latitude,
1121
+ longitude: firstStandaloneMarker.longitude
1122
+ };
1123
+ }
1124
+ if (normalizedClusters.length > 0) {
1125
+ const firstCluster = normalizedClusters[0];
1126
+ return {
1127
+ latitude: firstCluster.latitude,
1128
+ longitude: firstCluster.longitude
1129
+ };
1130
+ }
1131
+ return {
1132
+ latitude: DEFAULT_VIEW_STATE.latitude,
1133
+ longitude: DEFAULT_VIEW_STATE.longitude
1134
+ };
1135
+ }, [normalizedClusters, normalizedStandaloneMarkers]);
1136
+ const [uncontrolledViewState, setUncontrolledViewState] = React5__namespace.useState({
1137
+ latitude: defaultViewState?.latitude ?? firstCoordinate.latitude,
1138
+ longitude: defaultViewState?.longitude ?? firstCoordinate.longitude,
1139
+ zoom: defaultViewState?.zoom ?? DEFAULT_VIEW_STATE.zoom
1140
+ });
1141
+ const isControlledViewState = viewState !== void 0;
1142
+ const resolvedViewState = isControlledViewState ? viewState : uncontrolledViewState;
1143
+ const applyViewState = React5__namespace.useCallback(
1144
+ (nextState) => {
1145
+ if (!isControlledViewState) {
1146
+ setUncontrolledViewState((current) => ({ ...current, ...nextState }));
1147
+ }
1148
+ onViewStateChange?.(nextState);
1149
+ },
1150
+ [isControlledViewState, onViewStateChange]
1151
+ );
1152
+ const [selection, setSelection] = React5__namespace.useState(() => {
1153
+ if (initialSelectedMarkerId !== void 0 && initialSelectedMarkerId !== null) {
1154
+ return {
1155
+ type: "marker",
1156
+ markerId: String(initialSelectedMarkerId)
1157
+ };
1158
+ }
1159
+ return { type: "none" };
1160
+ });
1161
+ React5__namespace.useEffect(() => {
1162
+ if (selectedMarkerId === void 0 || selectedMarkerId === null) {
1163
+ return;
1164
+ }
1165
+ setSelection({
1166
+ type: "marker",
1167
+ markerId: String(selectedMarkerId)
1168
+ });
1169
+ }, [selectedMarkerId]);
1170
+ const selectedMarker = selection.markerId ? markerLookup.get(selection.markerId) : void 0;
1171
+ const selectedCluster = selection.clusterId ? clusterLookup.get(selection.clusterId) : void 0;
1172
+ React5__namespace.useEffect(() => {
1173
+ if (selection.type === "marker" && selection.markerId && !selectedMarker) {
1174
+ setSelection({ type: "none" });
1175
+ onSelectionChange?.({ type: "none" });
1176
+ }
1177
+ }, [onSelectionChange, selectedMarker, selection]);
1178
+ const emitSelectionChange = React5__namespace.useCallback(
1179
+ (nextSelection) => {
1180
+ if (nextSelection.type === "none") {
1181
+ onSelectionChange?.({ type: "none" });
1182
+ return;
1183
+ }
1184
+ if (nextSelection.type === "marker") {
1185
+ const parentCluster = nextSelection.marker.clusterId ? clusterLookup.get(nextSelection.marker.clusterId) : void 0;
1186
+ onSelectionChange?.({
1187
+ type: "marker",
1188
+ marker: nextSelection.marker,
1189
+ cluster: parentCluster
1190
+ });
1191
+ return;
1192
+ }
1193
+ onSelectionChange?.({
1194
+ type: "cluster",
1195
+ cluster: nextSelection.cluster
1196
+ });
1197
+ },
1198
+ [clusterLookup, onSelectionChange]
1199
+ );
1200
+ const selectMarker = React5__namespace.useCallback(
1201
+ (marker) => {
1202
+ setSelection({
1203
+ type: "marker",
1204
+ markerId: marker.id,
1205
+ clusterId: marker.clusterId
1206
+ });
1207
+ applyViewState({
1208
+ latitude: marker.latitude,
1209
+ longitude: marker.longitude,
1210
+ zoom: markerFocusZoom
1211
+ });
1212
+ emitSelectionChange({ type: "marker", marker });
1213
+ },
1214
+ [applyViewState, emitSelectionChange, markerFocusZoom]
1215
+ );
1216
+ const selectCluster = React5__namespace.useCallback(
1217
+ (cluster) => {
1218
+ setSelection({
1219
+ type: "cluster",
1220
+ clusterId: cluster.id
1221
+ });
1222
+ applyViewState({
1223
+ latitude: cluster.latitude,
1224
+ longitude: cluster.longitude,
1225
+ zoom: clusterFocusZoom
1226
+ });
1227
+ emitSelectionChange({ type: "cluster", cluster });
1228
+ },
1229
+ [applyViewState, clusterFocusZoom, emitSelectionChange]
1230
+ );
1231
+ const clearSelection = React5__namespace.useCallback(() => {
1232
+ setSelection({ type: "none" });
1233
+ emitSelectionChange({ type: "none" });
1234
+ }, [emitSelectionChange]);
1235
+ const mapMarkers = React5__namespace.useMemo(() => {
1236
+ const resolvedMarkers = [];
1237
+ normalizedClusters.forEach((cluster) => {
1238
+ const isSelected = selection.type === "cluster" && selection.clusterId === cluster.id;
1239
+ resolvedMarkers.push({
1240
+ id: `cluster-pin:${cluster.id}`,
1241
+ latitude: cluster.latitude,
1242
+ longitude: cluster.longitude,
1243
+ element: () => {
1244
+ const customMarkerElement = cluster.markerElement;
1245
+ const markerBody = typeof customMarkerElement === "function" ? customMarkerElement({
1246
+ isSelected,
1247
+ count: cluster.markers.length
1248
+ }) : customMarkerElement;
1249
+ return /* @__PURE__ */ jsxRuntime.jsx(
1250
+ "button",
1251
+ {
1252
+ type: "button",
1253
+ className: "group cursor-pointer",
1254
+ onClick: (event) => {
1255
+ event.preventDefault();
1256
+ event.stopPropagation();
1257
+ selectCluster(cluster);
1258
+ },
1259
+ "aria-label": `View ${cluster.markers.length} clustered locations`,
1260
+ children: markerBody ?? /* @__PURE__ */ jsxRuntime.jsx(
1261
+ "span",
1262
+ {
1263
+ className: cn(
1264
+ "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",
1265
+ isSelected && "ring-4 ring-primary/30",
1266
+ cluster.pinClassName
1267
+ ),
1268
+ style: {
1269
+ backgroundColor: cluster.pinColor ?? "var(--foreground)"
1270
+ },
1271
+ children: cluster.markers.length
1272
+ }
1273
+ )
1274
+ }
1275
+ );
1276
+ }
1277
+ });
1278
+ });
1279
+ normalizedStandaloneMarkers.forEach((marker) => {
1280
+ const isSelected = selection.type === "marker" && selection.markerId === marker.id;
1281
+ const customMarkerElement = marker.markerElement;
1282
+ resolvedMarkers.push({
1283
+ id: marker.id,
1284
+ latitude: marker.latitude,
1285
+ longitude: marker.longitude,
1286
+ draggable: marker.draggable,
1287
+ element: () => {
1288
+ const markerBody = typeof customMarkerElement === "function" ? customMarkerElement({ isSelected }) : customMarkerElement;
1289
+ return /* @__PURE__ */ jsxRuntime.jsx(
1290
+ "button",
1291
+ {
1292
+ type: "button",
1293
+ className: "group cursor-pointer",
1294
+ onClick: (event) => {
1295
+ event.preventDefault();
1296
+ event.stopPropagation();
1297
+ selectMarker(marker);
1298
+ },
1299
+ "aria-label": typeof marker.title === "string" ? `View ${marker.title}` : "View location details",
1300
+ children: markerBody ?? /* @__PURE__ */ jsxRuntime.jsx(
1301
+ "span",
1302
+ {
1303
+ className: cn(
1304
+ "inline-flex h-4 w-4 rounded-full border-2 border-white shadow-md transition-transform duration-200 group-hover:scale-110",
1305
+ isSelected && "h-5 w-5 ring-4 ring-primary/30",
1306
+ marker.pinClassName
1307
+ ),
1308
+ style: {
1309
+ backgroundColor: marker.pinColor ?? "#f43f5e"
1310
+ }
1311
+ }
1312
+ )
1313
+ }
1314
+ );
1315
+ }
1316
+ });
1317
+ });
1318
+ return resolvedMarkers;
1319
+ }, [normalizedClusters, normalizedStandaloneMarkers, selectCluster, selectMarker, selection]);
1320
+ const renderMarkerPanel = () => {
1321
+ if (selectedMarker) {
1322
+ const markerMediaItems = selectedMarker.mediaItems ?? [];
1323
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1324
+ "div",
1325
+ {
1326
+ className: cn(
1327
+ "w-[min(24rem,calc(100vw-2rem))] overflow-hidden rounded-xl border border-border bg-background shadow-2xl",
1328
+ panelClassName
1329
+ ),
1330
+ children: [
1331
+ markerMediaItems.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(MarkerMediaCarousel, { mediaItems: markerMediaItems }) : null,
1332
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2 p-4", children: [
1333
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start justify-between gap-3", children: [
1334
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 space-y-1", children: [
1335
+ selectedMarker.eyebrow ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: selectedMarker.eyebrow }) : null,
1336
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-base font-semibold leading-tight text-foreground", children: selectedMarker.title ?? selectedMarker.label ?? "Location" })
1337
+ ] }),
1338
+ /* @__PURE__ */ jsxRuntime.jsx(
1339
+ "button",
1340
+ {
1341
+ type: "button",
1342
+ "aria-label": "Close marker details",
1343
+ className: "inline-flex h-7 w-7 items-center justify-center rounded-md border border-border/70 text-muted-foreground transition hover:bg-muted hover:text-foreground",
1344
+ onClick: clearSelection,
1345
+ children: "x"
1346
+ }
1347
+ )
1348
+ ] }),
1349
+ selectedMarker.summary ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm leading-relaxed text-muted-foreground", children: selectedMarker.summary }) : null,
1350
+ selectedMarker.locationLine ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm font-medium text-foreground", children: selectedMarker.locationLine }) : null,
1351
+ selectedMarker.hoursLine ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm text-muted-foreground", children: selectedMarker.hoursLine }) : null,
1352
+ selectedMarker.markerContentComponent ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm", children: selectedMarker.markerContentComponent }) : null,
1353
+ /* @__PURE__ */ jsxRuntime.jsx(MarkerActions, { actions: selectedMarker.actions })
1354
+ ] })
1355
+ ]
1356
+ }
1357
+ );
1358
+ }
1359
+ if (selectedCluster) {
1360
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1361
+ "div",
1362
+ {
1363
+ className: cn(
1364
+ "w-[min(24rem,calc(100vw-2rem))] overflow-hidden rounded-xl border border-border bg-background p-4 shadow-2xl",
1365
+ panelClassName
1366
+ ),
1367
+ children: [
1368
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-3 flex items-start justify-between gap-3", children: [
1369
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0", children: [
1370
+ selectedCluster.label ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: selectedCluster.label }) : null,
1371
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-base font-semibold leading-tight text-foreground", children: selectedCluster.title ?? "Clustered Locations" }),
1372
+ /* @__PURE__ */ jsxRuntime.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.` })
1373
+ ] }),
1374
+ /* @__PURE__ */ jsxRuntime.jsx(
1375
+ "button",
1376
+ {
1377
+ type: "button",
1378
+ "aria-label": "Close cluster details",
1379
+ className: "inline-flex h-7 w-7 items-center justify-center rounded-md border border-border/70 text-muted-foreground transition hover:bg-muted hover:text-foreground",
1380
+ onClick: clearSelection,
1381
+ children: "x"
1382
+ }
1383
+ )
1384
+ ] }),
1385
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-h-56 space-y-2 overflow-y-auto pr-1", children: selectedCluster.markers.map((marker, markerIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
1386
+ "button",
1387
+ {
1388
+ type: "button",
1389
+ className: "w-full rounded-lg border border-border/60 p-3 text-left transition hover:border-border hover:bg-muted/50",
1390
+ onClick: () => selectMarker(marker),
1391
+ children: [
1392
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "line-clamp-1 text-sm font-semibold text-foreground", children: getMarkerTitle(marker, markerIndex) }),
1393
+ marker.summary ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-1 line-clamp-2 text-xs text-muted-foreground", children: marker.summary }) : null
1394
+ ]
1395
+ },
1396
+ marker.id
1397
+ )) })
1398
+ ]
1399
+ }
1400
+ );
1401
+ }
1402
+ return null;
1403
+ };
1404
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1405
+ "div",
1406
+ {
1407
+ className: cn(
1408
+ "relative overflow-hidden rounded-2xl border border-border bg-background",
1409
+ className
1410
+ ),
1411
+ children: [
1412
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("h-[520px] w-full", mapWrapperClassName), children: /* @__PURE__ */ jsxRuntime.jsx(
1413
+ maps.MapLibre,
1414
+ {
1415
+ stadiaApiKey,
1416
+ mapStyle,
1417
+ styleUrl,
1418
+ mapLibreCssHref,
1419
+ viewState: resolvedViewState,
1420
+ onViewStateChange: applyViewState,
1421
+ markers: mapMarkers,
1422
+ onClick: (coord) => {
1423
+ onMapClick?.(coord);
1424
+ if (clearSelectionOnMapClick) {
1425
+ clearSelection();
1426
+ }
1427
+ },
1428
+ onMarkerDrag,
1429
+ showNavigationControl,
1430
+ showGeolocateControl,
1431
+ navigationControlPosition,
1432
+ geolocateControlPosition,
1433
+ flyToOptions,
1434
+ className: cn("h-full w-full", mapClassName),
1435
+ children: mapChildren
1436
+ }
1437
+ ) }),
1438
+ selection.type !== "none" ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("pointer-events-none absolute z-20", PANEL_POSITION_CLASS[panelPosition]), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pointer-events-auto", children: renderMarkerPanel() }) }) : null
1439
+ ]
1440
+ }
1441
+ );
1442
+ }
1443
+ var sizeStyles = {
1444
+ sm: "max-w-md",
1445
+ md: "max-w-2xl",
1446
+ lg: "max-w-4xl",
1447
+ xl: "max-w-5xl",
1448
+ full: "max-w-7xl",
1449
+ compact: "max-w-[700px]"
1450
+ };
1451
+ var dialogTransition = {
1452
+ duration: 0.35,
1453
+ ease: [0.16, 1, 0.3, 1]
1454
+ };
1455
+ function AnimatedDialog({
1456
+ open,
1457
+ onOpenChange,
1458
+ title,
1459
+ eyebrow,
1460
+ description,
1461
+ children,
1462
+ header,
1463
+ footer,
1464
+ size = "lg",
1465
+ className,
1466
+ contentClassName,
1467
+ featuredMediaHeader
1468
+ }) {
1469
+ const titleId = React5.useId();
1470
+ const descriptionId = React5.useId();
1471
+ const containerRef = React5.useRef(null);
1472
+ useOnClickOutside.useOnClickOutside(containerRef, () => {
1473
+ if (open) {
1474
+ onOpenChange(false);
1475
+ }
1476
+ });
1477
+ React5.useEffect(() => {
1478
+ if (!open) {
1479
+ return;
1480
+ }
1481
+ const onKeyDown = (event) => {
1482
+ if (event.key === "Escape") {
1483
+ onOpenChange(false);
1484
+ }
1485
+ };
1486
+ const previousOverflow = document.body.style.overflow;
1487
+ document.body.style.overflow = "hidden";
1488
+ window.addEventListener("keydown", onKeyDown);
1489
+ return () => {
1490
+ document.body.style.overflow = previousOverflow;
1491
+ window.removeEventListener("keydown", onKeyDown);
1492
+ };
1493
+ }, [open, onOpenChange]);
1494
+ return /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { children: open ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "fixed inset-0 z-50 h-screen overflow-y-auto", children: [
1495
+ /* @__PURE__ */ jsxRuntime.jsx(
1496
+ framerMotion.motion.div,
1497
+ {
1498
+ initial: { opacity: 0 },
1499
+ animate: { opacity: 1, transition: dialogTransition },
1500
+ exit: { opacity: 0, transition: dialogTransition },
1501
+ className: "fixed inset-0 h-full w-full bg-foreground/80 backdrop-blur-lg"
1502
+ }
1503
+ ),
1504
+ /* @__PURE__ */ jsxRuntime.jsxs(
1505
+ framerMotion.motion.div,
1506
+ {
1507
+ initial: { opacity: 0, y: 24, scale: 0.98 },
1508
+ animate: {
1509
+ opacity: 1,
1510
+ y: 0,
1511
+ scale: 1,
1512
+ transition: dialogTransition
1513
+ },
1514
+ exit: {
1515
+ opacity: 0,
1516
+ y: 12,
1517
+ scale: 0.98,
1518
+ transition: dialogTransition
1519
+ },
1520
+ ref: containerRef,
1521
+ role: "dialog",
1522
+ "aria-modal": "true",
1523
+ "aria-labelledby": title ? titleId : void 0,
1524
+ "aria-describedby": description ? descriptionId : void 0,
1525
+ className: cn(
1526
+ "relative z-60 mx-auto my-12 flex w-[92vw] max-h-[85vh] flex-col overflow-hidden rounded-3xl bg-background shadow-2xl ring-1 ring-border/10",
1527
+ size === "compact" ? "p-0 md:my-20" : "p-6 md:my-20 md:p-12",
1528
+ sizeStyles[size],
1529
+ className
1530
+ ),
1531
+ children: [
1532
+ featuredMediaHeader ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative overflow-hidden", children: [
1533
+ featuredMediaHeader,
1534
+ /* @__PURE__ */ jsxRuntime.jsx(
1535
+ "button",
1536
+ {
1537
+ type: "button",
1538
+ "aria-label": "Close dialog",
1539
+ className: "absolute right-4 top-4 z-10 flex h-10 w-10 shrink-0 items-center justify-center rounded-full bg-foreground/90 text-background backdrop-blur-sm transition hover:bg-foreground md:h-11 md:w-11",
1540
+ onClick: () => onOpenChange(false),
1541
+ children: /* @__PURE__ */ jsxRuntime.jsx(
1542
+ "svg",
1543
+ {
1544
+ xmlns: "http://www.w3.org/2000/svg",
1545
+ width: "24",
1546
+ height: "24",
1547
+ viewBox: "0 0 24 24",
1548
+ children: /* @__PURE__ */ jsxRuntime.jsx(
1549
+ "path",
1550
+ {
1551
+ fill: "none",
1552
+ stroke: "currentColor",
1553
+ strokeLinecap: "round",
1554
+ strokeLinejoin: "round",
1555
+ strokeWidth: "2",
1556
+ d: "M18 6L6 18M6 6l12 12"
1557
+ }
1558
+ )
1559
+ }
1560
+ )
1561
+ }
1562
+ )
1563
+ ] }) : null,
1564
+ /* @__PURE__ */ jsxRuntime.jsxs(
1565
+ "div",
575
1566
  {
576
1567
  className: cn(
577
1568
  "flex items-start justify-between gap-8",
@@ -806,10 +1797,10 @@ var ImageSlider = ({
806
1797
  optixFlowConfig
807
1798
  }) => {
808
1799
  const hasImages = images.length > 0;
809
- const [currentIndex, setCurrentIndex] = React4__namespace.useState(
1800
+ const [currentIndex, setCurrentIndex] = React5__namespace.useState(
810
1801
  () => normalizeIndex(startIndex, images.length)
811
1802
  );
812
- const handleNext = React4__namespace.useCallback(() => {
1803
+ const handleNext = React5__namespace.useCallback(() => {
813
1804
  if (!hasImages) return;
814
1805
  setCurrentIndex((prevIndex) => {
815
1806
  const nextIndex = prevIndex + 1 >= images.length ? 0 : prevIndex + 1;
@@ -817,7 +1808,7 @@ var ImageSlider = ({
817
1808
  return nextIndex;
818
1809
  });
819
1810
  }, [hasImages, images.length, onSlideChange]);
820
- const handlePrevious = React4__namespace.useCallback(() => {
1811
+ const handlePrevious = React5__namespace.useCallback(() => {
821
1812
  if (!hasImages) return;
822
1813
  setCurrentIndex((prevIndex) => {
823
1814
  const nextIndex = prevIndex - 1 < 0 ? images.length - 1 : prevIndex - 1;
@@ -825,11 +1816,11 @@ var ImageSlider = ({
825
1816
  return nextIndex;
826
1817
  });
827
1818
  }, [hasImages, images.length, onSlideChange]);
828
- React4__namespace.useEffect(() => {
1819
+ React5__namespace.useEffect(() => {
829
1820
  if (!hasImages) return;
830
1821
  setCurrentIndex(normalizeIndex(startIndex, images.length));
831
1822
  }, [startIndex, images.length, hasImages]);
832
- React4__namespace.useEffect(() => {
1823
+ React5__namespace.useEffect(() => {
833
1824
  if (!enableKeyboard || !hasImages) return;
834
1825
  const handleKeyDown = (event) => {
835
1826
  if (event.key === "ArrowRight") {
@@ -843,7 +1834,7 @@ var ImageSlider = ({
843
1834
  window.removeEventListener("keydown", handleKeyDown);
844
1835
  };
845
1836
  }, [enableKeyboard, handleNext, handlePrevious, hasImages]);
846
- React4__namespace.useEffect(() => {
1837
+ React5__namespace.useEffect(() => {
847
1838
  if (!autoplay || images.length < 2) return;
848
1839
  const interval = window.setInterval(handleNext, autoplayIntervalMs);
849
1840
  return () => window.clearInterval(interval);
@@ -910,154 +1901,12 @@ var ImageSlider = ({
910
1901
  contentClassName
911
1902
  ),
912
1903
  children
913
- }
914
- ) : null
915
- ]
916
- }
917
- );
918
- };
919
- var baseStyles = [
920
- // Layout
921
- "inline-flex items-center justify-center gap-2 whitespace-nowrap shrink-0",
922
- // Typography - using CSS variables with sensible defaults
923
- "font-[var(--button-font-family,inherit)]",
924
- "font-[var(--button-font-weight,500)]",
925
- "tracking-[var(--button-letter-spacing,0)]",
926
- "leading-[var(--button-line-height,1.25)]",
927
- "[text-transform:var(--button-text-transform,none)]",
928
- "text-sm",
929
- // Border radius
930
- "rounded-[var(--button-radius,var(--radius,0.375rem))]",
931
- // Smooth transition - using [transition:...] to set full shorthand property (not just transition-property)
932
- "[transition:var(--button-transition,all_250ms_cubic-bezier(0.4,0,0.2,1))]",
933
- // Box shadow (master level) - using [box-shadow:...] for complex multi-value shadows
934
- "[box-shadow:var(--button-shadow,none)]",
935
- "hover:[box-shadow:var(--button-shadow-hover,var(--button-shadow,none))]",
936
- // Disabled state
937
- "disabled:pointer-events-none disabled:opacity-50",
938
- // SVG handling
939
- "[&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0",
940
- // Focus styles
941
- "outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
942
- // Invalid state
943
- "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive"
944
- ].join(" ");
945
- var buttonVariants = classVarianceAuthority.cva(baseStyles, {
946
- variants: {
947
- variant: {
948
- // Default (Primary) variant - full customization
949
- default: [
950
- "bg-[var(--button-default-bg,hsl(var(--primary)))]",
951
- "text-[var(--button-default-fg,hsl(var(--primary-foreground)))]",
952
- "border-[length:var(--button-default-border-width,0px)]",
953
- "border-[color:var(--button-default-border,transparent)]",
954
- "[box-shadow:var(--button-default-shadow,var(--button-shadow,none))]",
955
- "hover:bg-[var(--button-default-hover-bg,hsl(var(--primary)/0.9))]",
956
- "hover:text-[var(--button-default-hover-fg,var(--button-default-fg,hsl(var(--primary-foreground))))]",
957
- "hover:border-[color:var(--button-default-hover-border,var(--button-default-border,transparent))]",
958
- "hover:[box-shadow:var(--button-default-shadow-hover,var(--button-shadow-hover,var(--button-default-shadow,var(--button-shadow,none))))]"
959
- ].join(" "),
960
- // Destructive variant - full customization
961
- destructive: [
962
- "bg-[var(--button-destructive-bg,hsl(var(--destructive)))]",
963
- "text-[var(--button-destructive-fg,white)]",
964
- "border-[length:var(--button-destructive-border-width,0px)]",
965
- "border-[color:var(--button-destructive-border,transparent)]",
966
- "[box-shadow:var(--button-destructive-shadow,var(--button-shadow,none))]",
967
- "hover:bg-[var(--button-destructive-hover-bg,hsl(var(--destructive)/0.9))]",
968
- "hover:text-[var(--button-destructive-hover-fg,var(--button-destructive-fg,white))]",
969
- "hover:border-[color:var(--button-destructive-hover-border,var(--button-destructive-border,transparent))]",
970
- "hover:[box-shadow:var(--button-destructive-shadow-hover,var(--button-shadow-hover,var(--button-destructive-shadow,var(--button-shadow,none))))]",
971
- "focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40",
972
- "dark:bg-destructive/60"
973
- ].join(" "),
974
- // Outline variant - full customization with proper border handling
975
- outline: [
976
- "bg-[var(--button-outline-bg,hsl(var(--background)))]",
977
- "text-[var(--button-outline-fg,inherit)]",
978
- "border-[length:var(--button-outline-border-width,1px)]",
979
- "border-[color:var(--button-outline-border,hsl(var(--border)))]",
980
- "[box-shadow:var(--button-outline-shadow,var(--button-shadow,0_1px_2px_0_rgb(0_0_0/0.05)))]",
981
- "hover:bg-[var(--button-outline-hover-bg,hsl(var(--accent)))]",
982
- "hover:text-[var(--button-outline-hover-fg,hsl(var(--accent-foreground)))]",
983
- "hover:border-[color:var(--button-outline-hover-border,var(--button-outline-border,hsl(var(--border))))]",
984
- "hover:[box-shadow:var(--button-outline-shadow-hover,var(--button-shadow-hover,var(--button-outline-shadow,var(--button-shadow,none))))]",
985
- "dark:bg-input/30 dark:border-input dark:hover:bg-input/50"
986
- ].join(" "),
987
- // Secondary variant - full customization
988
- secondary: [
989
- "bg-[var(--button-secondary-bg,hsl(var(--secondary)))]",
990
- "text-[var(--button-secondary-fg,hsl(var(--secondary-foreground)))]",
991
- "border-[length:var(--button-secondary-border-width,0px)]",
992
- "border-[color:var(--button-secondary-border,transparent)]",
993
- "[box-shadow:var(--button-secondary-shadow,var(--button-shadow,none))]",
994
- "hover:bg-[var(--button-secondary-hover-bg,hsl(var(--secondary)/0.8))]",
995
- "hover:text-[var(--button-secondary-hover-fg,var(--button-secondary-fg,hsl(var(--secondary-foreground))))]",
996
- "hover:border-[color:var(--button-secondary-hover-border,var(--button-secondary-border,transparent))]",
997
- "hover:[box-shadow:var(--button-secondary-shadow-hover,var(--button-shadow-hover,var(--button-secondary-shadow,var(--button-shadow,none))))]"
998
- ].join(" "),
999
- // Ghost variant - full customization
1000
- ghost: [
1001
- "bg-[var(--button-ghost-bg,transparent)]",
1002
- "text-[var(--button-ghost-fg,inherit)]",
1003
- "border-[length:var(--button-ghost-border-width,0px)]",
1004
- "border-[color:var(--button-ghost-border,transparent)]",
1005
- "[box-shadow:var(--button-ghost-shadow,var(--button-shadow,none))]",
1006
- "hover:bg-[var(--button-ghost-hover-bg,hsl(var(--accent)))]",
1007
- "hover:text-[var(--button-ghost-hover-fg,hsl(var(--accent-foreground)))]",
1008
- "hover:border-[color:var(--button-ghost-hover-border,var(--button-ghost-border,transparent))]",
1009
- "hover:[box-shadow:var(--button-ghost-shadow-hover,var(--button-shadow-hover,var(--button-ghost-shadow,var(--button-shadow,none))))]",
1010
- "dark:hover:bg-accent/50"
1011
- ].join(" "),
1012
- // Link variant - full customization
1013
- link: [
1014
- "bg-[var(--button-link-bg,transparent)]",
1015
- "text-[var(--button-link-fg,hsl(var(--primary)))]",
1016
- "border-[length:var(--button-link-border-width,0px)]",
1017
- "border-[color:var(--button-link-border,transparent)]",
1018
- "[box-shadow:var(--button-link-shadow,none)]",
1019
- "hover:bg-[var(--button-link-hover-bg,transparent)]",
1020
- "hover:text-[var(--button-link-hover-fg,var(--button-link-fg,hsl(var(--primary))))]",
1021
- "hover:[box-shadow:var(--button-link-shadow-hover,none)]",
1022
- "underline-offset-4 hover:underline"
1023
- ].join(" ")
1024
- },
1025
- size: {
1026
- default: [
1027
- "h-[var(--button-height-md,2.25rem)]",
1028
- "px-[var(--button-padding-x-md,1rem)]",
1029
- "py-[var(--button-padding-y-md,0.5rem)]",
1030
- "has-[>svg]:px-[calc(var(--button-padding-x-md,1rem)*0.75)]"
1031
- ].join(" "),
1032
- sm: [
1033
- "h-[var(--button-height-sm,2rem)]",
1034
- "px-[var(--button-padding-x-sm,0.75rem)]",
1035
- "py-[var(--button-padding-y-sm,0.25rem)]",
1036
- "gap-1.5",
1037
- "has-[>svg]:px-[calc(var(--button-padding-x-sm,0.75rem)*0.83)]"
1038
- ].join(" "),
1039
- md: [
1040
- "h-[var(--button-height-md,2.25rem)]",
1041
- "px-[var(--button-padding-x-md,1rem)]",
1042
- "py-[var(--button-padding-y-md,0.5rem)]",
1043
- "has-[>svg]:px-[calc(var(--button-padding-x-md,1rem)*0.75)]"
1044
- ].join(" "),
1045
- lg: [
1046
- "h-[var(--button-height-lg,2.5rem)]",
1047
- "px-[var(--button-padding-x-lg,1.5rem)]",
1048
- "py-[var(--button-padding-y-lg,0.5rem)]",
1049
- "has-[>svg]:px-[calc(var(--button-padding-x-lg,1.5rem)*0.67)]"
1050
- ].join(" "),
1051
- icon: "size-[var(--button-height-md,2.25rem)]",
1052
- "icon-sm": "size-[var(--button-height-sm,2rem)]",
1053
- "icon-lg": "size-[var(--button-height-lg,2.5rem)]"
1054
- }
1055
- },
1056
- defaultVariants: {
1057
- variant: "default",
1058
- size: "default"
1059
- }
1060
- });
1904
+ }
1905
+ ) : null
1906
+ ]
1907
+ }
1908
+ );
1909
+ };
1061
1910
  function Button({
1062
1911
  className,
1063
1912
  variant = "default",
@@ -1081,410 +1930,134 @@ function Card({ className, ...props }) {
1081
1930
  return /* @__PURE__ */ jsxRuntime.jsx(
1082
1931
  "div",
1083
1932
  {
1084
- "data-slot": "card",
1085
- className: cn(
1086
- "bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",
1087
- className
1088
- ),
1089
- ...props
1090
- }
1091
- );
1092
- }
1093
- function CardHeader({ className, ...props }) {
1094
- return /* @__PURE__ */ jsxRuntime.jsx(
1095
- "div",
1096
- {
1097
- "data-slot": "card-header",
1098
- className: cn(
1099
- "@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",
1100
- className
1101
- ),
1102
- ...props
1103
- }
1104
- );
1105
- }
1106
- function CardTitle({ className, ...props }) {
1107
- return /* @__PURE__ */ jsxRuntime.jsx(
1108
- "div",
1109
- {
1110
- "data-slot": "card-title",
1111
- className: cn("leading-none font-semibold", className),
1112
- ...props
1113
- }
1114
- );
1115
- }
1116
- function CardDescription({ className, ...props }) {
1117
- return /* @__PURE__ */ jsxRuntime.jsx(
1118
- "div",
1119
- {
1120
- "data-slot": "card-description",
1121
- className: cn("text-muted-foreground text-sm", className),
1122
- ...props
1123
- }
1124
- );
1125
- }
1126
- function CardContent({ className, ...props }) {
1127
- return /* @__PURE__ */ jsxRuntime.jsx(
1128
- "div",
1129
- {
1130
- "data-slot": "card-content",
1131
- className: cn("px-6", className),
1132
- ...props
1133
- }
1134
- );
1135
- }
1136
- function CardFooter({ className, ...props }) {
1137
- return /* @__PURE__ */ jsxRuntime.jsx(
1138
- "div",
1139
- {
1140
- "data-slot": "card-footer",
1141
- className: cn("flex items-center px-6 [.border-t]:pt-6", className),
1142
- ...props
1143
- }
1144
- );
1145
- }
1146
- var badgeVariants = classVarianceAuthority.cva(
1147
- "inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",
1148
- {
1149
- variants: {
1150
- variant: {
1151
- default: "border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",
1152
- secondary: "border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",
1153
- destructive: "border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
1154
- outline: "text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"
1155
- }
1156
- },
1157
- defaultVariants: {
1158
- variant: "default"
1159
- }
1160
- }
1161
- );
1162
- function Badge({
1163
- className,
1164
- variant,
1165
- asChild = false,
1166
- ...props
1167
- }) {
1168
- const Comp = asChild ? reactSlot.Slot : "span";
1169
- return /* @__PURE__ */ jsxRuntime.jsx(
1170
- Comp,
1171
- {
1172
- "data-slot": "badge",
1173
- className: cn(badgeVariants({ variant }), className),
1174
- ...props
1175
- }
1176
- );
1177
- }
1178
- function Popover({
1179
- ...props
1180
- }) {
1181
- return /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Root, { "data-slot": "popover", ...props });
1182
- }
1183
- function PopoverTrigger({
1184
- ...props
1185
- }) {
1186
- return /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Trigger, { "data-slot": "popover-trigger", ...props });
1187
- }
1188
- function PopoverContent({
1189
- className,
1190
- align = "center",
1191
- sideOffset = 4,
1192
- ...props
1193
- }) {
1194
- return /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
1195
- PopoverPrimitive__namespace.Content,
1196
- {
1197
- "data-slot": "popover-content",
1198
- align,
1199
- sideOffset,
1200
- className: cn(
1201
- "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",
1202
- className
1203
- ),
1204
- ...props
1205
- }
1206
- ) });
1207
- }
1208
- var DEFAULT_ICON_API_KEY = "au382bi7fsh96w9h9xlrnat2jglx";
1209
- function DynamicIcon({ apiKey, ...props }) {
1210
- return /* @__PURE__ */ jsxRuntime.jsx(icon.Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
1211
- }
1212
- function normalizePhoneNumber(input) {
1213
- const trimmed = input.trim();
1214
- if (trimmed.toLowerCase().startsWith("tel:")) {
1215
- return trimmed;
1216
- }
1217
- const match = trimmed.match(/^[\s\+\-\(\)]*(\d[\d\s\-\(\)\.]*\d)[\s\-]*(x|ext\.?|extension)?[\s\-]*(\d+)?$/i);
1218
- if (match) {
1219
- const mainNumber = match[1].replace(/[\s\-\(\)\.]/g, "");
1220
- const extension = match[3];
1221
- const normalized = mainNumber.length >= 10 && !trimmed.startsWith("+") ? `+${mainNumber}` : mainNumber;
1222
- const withExtension = extension ? `${normalized};ext=${extension}` : normalized;
1223
- return `tel:${withExtension}`;
1224
- }
1225
- const cleaned = trimmed.replace(/[\s\-\(\)\.]/g, "");
1226
- return `tel:${cleaned}`;
1227
- }
1228
- function normalizeEmail(input) {
1229
- const trimmed = input.trim();
1230
- if (trimmed.toLowerCase().startsWith("mailto:")) {
1231
- return trimmed;
1232
- }
1233
- return `mailto:${trimmed}`;
1234
- }
1235
- function isEmail(input) {
1236
- const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
1237
- return emailRegex.test(input.trim());
1238
- }
1239
- function isPhoneNumber(input) {
1240
- const trimmed = input.trim();
1241
- if (trimmed.toLowerCase().startsWith("tel:")) {
1242
- return true;
1243
- }
1244
- const phoneRegex = /^[\s\+\-\(\)]*\d[\d\s\-\(\)\.]*\d[\s\-]*(x|ext\.?|extension)?[\s\-]*\d*$/i;
1245
- return phoneRegex.test(trimmed);
1246
- }
1247
- function isInternalUrl(href) {
1248
- if (typeof window === "undefined") {
1249
- return href.startsWith("/") && !href.startsWith("//");
1250
- }
1251
- const trimmed = href.trim();
1252
- if (trimmed.startsWith("/") && !trimmed.startsWith("//")) {
1253
- return true;
1254
- }
1255
- try {
1256
- const url = new URL(trimmed, window.location.href);
1257
- const currentOrigin = window.location.origin;
1258
- const normalizeOrigin = (origin) => origin.replace(/^(https?:\/\/)(www\.)?/, "$1");
1259
- return normalizeOrigin(url.origin) === normalizeOrigin(currentOrigin);
1260
- } catch {
1261
- return false;
1262
- }
1263
- }
1264
- function toRelativePath(href) {
1265
- if (typeof window === "undefined") {
1266
- return href;
1267
- }
1268
- const trimmed = href.trim();
1269
- if (trimmed.startsWith("/") && !trimmed.startsWith("//")) {
1270
- return trimmed;
1271
- }
1272
- try {
1273
- const url = new URL(trimmed, window.location.href);
1274
- const currentOrigin = window.location.origin;
1275
- const normalizeOrigin = (origin) => origin.replace(/^(https?:\/\/)(www\.)?/, "$1");
1276
- if (normalizeOrigin(url.origin) === normalizeOrigin(currentOrigin)) {
1277
- return url.pathname + url.search + url.hash;
1278
- }
1279
- } catch {
1280
- }
1281
- return trimmed;
1282
- }
1283
- function useNavigation({
1284
- href,
1285
- onClick
1286
- } = {}) {
1287
- const linkType = React4__namespace.useMemo(() => {
1288
- if (!href || href.trim() === "") {
1289
- return onClick ? "none" : "none";
1290
- }
1291
- const trimmed = href.trim();
1292
- if (trimmed.toLowerCase().startsWith("mailto:") || isEmail(trimmed)) {
1293
- return "mailto";
1294
- }
1295
- if (trimmed.toLowerCase().startsWith("tel:") || isPhoneNumber(trimmed)) {
1296
- return "tel";
1297
- }
1298
- if (isInternalUrl(trimmed)) {
1299
- return "internal";
1300
- }
1301
- try {
1302
- new URL(trimmed, typeof window !== "undefined" ? window.location.href : "http://localhost");
1303
- return "external";
1304
- } catch {
1305
- return "internal";
1306
- }
1307
- }, [href, onClick]);
1308
- const normalizedHref = React4__namespace.useMemo(() => {
1309
- if (!href || href.trim() === "") {
1310
- return void 0;
1311
- }
1312
- const trimmed = href.trim();
1313
- switch (linkType) {
1314
- case "tel":
1315
- return normalizePhoneNumber(trimmed);
1316
- case "mailto":
1317
- return normalizeEmail(trimmed);
1318
- case "internal":
1319
- return toRelativePath(trimmed);
1320
- case "external":
1321
- return trimmed;
1322
- default:
1323
- return trimmed;
1324
- }
1325
- }, [href, linkType]);
1326
- const target = React4__namespace.useMemo(() => {
1327
- switch (linkType) {
1328
- case "external":
1329
- return "_blank";
1330
- case "internal":
1331
- return "_self";
1332
- case "mailto":
1333
- case "tel":
1334
- return void 0;
1335
- default:
1336
- return void 0;
1933
+ "data-slot": "card",
1934
+ className: cn(
1935
+ "bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",
1936
+ className
1937
+ ),
1938
+ ...props
1337
1939
  }
1338
- }, [linkType]);
1339
- const rel = React4__namespace.useMemo(() => {
1340
- if (linkType === "external") {
1341
- return "noopener noreferrer";
1940
+ );
1941
+ }
1942
+ function CardHeader({ className, ...props }) {
1943
+ return /* @__PURE__ */ jsxRuntime.jsx(
1944
+ "div",
1945
+ {
1946
+ "data-slot": "card-header",
1947
+ className: cn(
1948
+ "@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",
1949
+ className
1950
+ ),
1951
+ ...props
1342
1952
  }
1343
- return void 0;
1344
- }, [linkType]);
1345
- const isExternal = linkType === "external";
1346
- const isInternal = linkType === "internal";
1347
- const shouldUseRouter = isInternal && typeof normalizedHref === "string" && normalizedHref.startsWith("/");
1348
- const handleClick = React4__namespace.useCallback(
1349
- (event) => {
1350
- if (onClick) {
1351
- try {
1352
- onClick(event);
1353
- } catch (error) {
1354
- console.error("Error in user onClick handler:", error);
1355
- }
1356
- }
1357
- if (event.defaultPrevented) {
1358
- return;
1359
- }
1360
- if (shouldUseRouter && normalizedHref && event.button === 0 && // left-click only
1361
- !event.metaKey && !event.altKey && !event.ctrlKey && !event.shiftKey) {
1362
- if (typeof window !== "undefined") {
1363
- const handler = window.__opensiteNavigationHandler;
1364
- if (typeof handler === "function") {
1365
- try {
1366
- const handled = handler(normalizedHref, event.nativeEvent || event);
1367
- if (handled !== false) {
1368
- event.preventDefault();
1369
- }
1370
- } catch (error) {
1371
- console.error("Error in navigation handler:", error);
1372
- }
1373
- }
1374
- }
1375
- }
1376
- },
1377
- [onClick, shouldUseRouter, normalizedHref]
1378
1953
  );
1379
- return {
1380
- linkType,
1381
- normalizedHref,
1382
- target,
1383
- rel,
1384
- isExternal,
1385
- isInternal,
1386
- shouldUseRouter,
1387
- handleClick
1388
- };
1389
1954
  }
1390
- var Pressable = React4__namespace.forwardRef(
1391
- ({
1392
- children,
1393
- className,
1394
- href,
1395
- onClick,
1396
- variant,
1397
- size,
1398
- asButton = false,
1399
- fallbackComponentType = "span",
1400
- componentType,
1401
- "aria-label": ariaLabel,
1402
- "aria-describedby": ariaDescribedby,
1403
- id,
1404
- ...props
1405
- }, ref) => {
1406
- const navigation = useNavigation({ href, onClick });
1407
- const {
1408
- normalizedHref,
1409
- target,
1410
- rel,
1411
- linkType,
1412
- isInternal,
1413
- handleClick
1414
- } = navigation;
1415
- const shouldRenderLink = normalizedHref && linkType !== "none";
1416
- const shouldRenderButton = !shouldRenderLink && onClick;
1417
- const effectiveComponentType = componentType || (shouldRenderLink ? "a" : shouldRenderButton ? "button" : fallbackComponentType);
1418
- const finalComponentType = isInternal && shouldRenderLink ? "a" : effectiveComponentType;
1419
- const shouldApplyButtonStyles = asButton || variant || size;
1420
- const combinedClassName = cn(
1421
- shouldApplyButtonStyles && buttonVariants({ variant, size }),
1422
- className
1423
- );
1424
- const dataProps = Object.fromEntries(
1425
- Object.entries(props).filter(([key]) => key.startsWith("data-"))
1426
- );
1427
- const buttonDataAttributes = shouldApplyButtonStyles ? {
1428
- "data-slot": "button",
1429
- "data-variant": variant ?? "default",
1430
- "data-size": size ?? "default"
1431
- } : {};
1432
- const commonProps = {
1433
- className: combinedClassName,
1434
- onClick: handleClick,
1435
- "aria-label": ariaLabel,
1436
- "aria-describedby": ariaDescribedby,
1437
- id,
1438
- ...dataProps,
1439
- ...buttonDataAttributes
1440
- };
1441
- if (finalComponentType === "a" && shouldRenderLink) {
1442
- return /* @__PURE__ */ jsxRuntime.jsx(
1443
- "a",
1444
- {
1445
- ref,
1446
- href: normalizedHref,
1447
- target,
1448
- rel,
1449
- ...commonProps,
1450
- ...props,
1451
- children
1452
- }
1453
- );
1955
+ function CardTitle({ className, ...props }) {
1956
+ return /* @__PURE__ */ jsxRuntime.jsx(
1957
+ "div",
1958
+ {
1959
+ "data-slot": "card-title",
1960
+ className: cn("leading-none font-semibold", className),
1961
+ ...props
1454
1962
  }
1455
- if (finalComponentType === "button") {
1456
- return /* @__PURE__ */ jsxRuntime.jsx(
1457
- "button",
1458
- {
1459
- ref,
1460
- type: props.type || "button",
1461
- ...commonProps,
1462
- ...props,
1463
- children
1464
- }
1465
- );
1963
+ );
1964
+ }
1965
+ function CardDescription({ className, ...props }) {
1966
+ return /* @__PURE__ */ jsxRuntime.jsx(
1967
+ "div",
1968
+ {
1969
+ "data-slot": "card-description",
1970
+ className: cn("text-muted-foreground text-sm", className),
1971
+ ...props
1466
1972
  }
1467
- if (finalComponentType === "div") {
1468
- return /* @__PURE__ */ jsxRuntime.jsx(
1469
- "div",
1470
- {
1471
- ref,
1472
- ...commonProps,
1473
- children
1474
- }
1475
- );
1973
+ );
1974
+ }
1975
+ function CardContent({ className, ...props }) {
1976
+ return /* @__PURE__ */ jsxRuntime.jsx(
1977
+ "div",
1978
+ {
1979
+ "data-slot": "card-content",
1980
+ className: cn("px-6", className),
1981
+ ...props
1476
1982
  }
1477
- return /* @__PURE__ */ jsxRuntime.jsx(
1478
- "span",
1479
- {
1480
- ref,
1481
- ...commonProps,
1482
- children
1983
+ );
1984
+ }
1985
+ function CardFooter({ className, ...props }) {
1986
+ return /* @__PURE__ */ jsxRuntime.jsx(
1987
+ "div",
1988
+ {
1989
+ "data-slot": "card-footer",
1990
+ className: cn("flex items-center px-6 [.border-t]:pt-6", className),
1991
+ ...props
1992
+ }
1993
+ );
1994
+ }
1995
+ var badgeVariants = classVarianceAuthority.cva(
1996
+ "inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",
1997
+ {
1998
+ variants: {
1999
+ variant: {
2000
+ default: "border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",
2001
+ secondary: "border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",
2002
+ destructive: "border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
2003
+ outline: "text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"
1483
2004
  }
1484
- );
2005
+ },
2006
+ defaultVariants: {
2007
+ variant: "default"
2008
+ }
1485
2009
  }
1486
2010
  );
1487
- Pressable.displayName = "Pressable";
2011
+ function Badge({
2012
+ className,
2013
+ variant,
2014
+ asChild = false,
2015
+ ...props
2016
+ }) {
2017
+ const Comp = asChild ? reactSlot.Slot : "span";
2018
+ return /* @__PURE__ */ jsxRuntime.jsx(
2019
+ Comp,
2020
+ {
2021
+ "data-slot": "badge",
2022
+ className: cn(badgeVariants({ variant }), className),
2023
+ ...props
2024
+ }
2025
+ );
2026
+ }
2027
+ function Popover({
2028
+ ...props
2029
+ }) {
2030
+ return /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Root, { "data-slot": "popover", ...props });
2031
+ }
2032
+ function PopoverTrigger({
2033
+ ...props
2034
+ }) {
2035
+ return /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Trigger, { "data-slot": "popover-trigger", ...props });
2036
+ }
2037
+ function PopoverContent({
2038
+ className,
2039
+ align = "center",
2040
+ sideOffset = 4,
2041
+ ...props
2042
+ }) {
2043
+ return /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
2044
+ PopoverPrimitive__namespace.Content,
2045
+ {
2046
+ "data-slot": "popover-content",
2047
+ align,
2048
+ sideOffset,
2049
+ className: cn(
2050
+ "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",
2051
+ className
2052
+ ),
2053
+ ...props
2054
+ }
2055
+ ) });
2056
+ }
2057
+ var DEFAULT_ICON_API_KEY = "au382bi7fsh96w9h9xlrnat2jglx";
2058
+ function DynamicIcon({ apiKey, ...props }) {
2059
+ return /* @__PURE__ */ jsxRuntime.jsx(icon.Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
2060
+ }
1488
2061
  var BUTTON_SIZES = {
1489
2062
  sm: { buttonSize: "size-8", iconSize: 16 },
1490
2063
  md: { buttonSize: "size-10", iconSize: 20 },
@@ -1576,7 +2149,7 @@ var platformIconMap = {
1576
2149
  dribbble: "cib/dribbble",
1577
2150
  unknown: "icon-park-solid/circular-connection"
1578
2151
  };
1579
- var SocialLinkIcon = React4__namespace.forwardRef(
2152
+ var SocialLinkIcon = React5__namespace.forwardRef(
1580
2153
  ({
1581
2154
  platformName,
1582
2155
  label,
@@ -1589,13 +2162,13 @@ var SocialLinkIcon = React4__namespace.forwardRef(
1589
2162
  ...pressableProps
1590
2163
  }, ref) => {
1591
2164
  const platform = usePlatformFromUrl.usePlatformFromUrl(href);
1592
- const smartPlatformName = React4__namespace.useMemo(() => {
2165
+ const smartPlatformName = React5__namespace.useMemo(() => {
1593
2166
  return platform || platformName;
1594
2167
  }, [platform, platformName]);
1595
- const iconName = React4__namespace.useMemo(() => {
2168
+ const iconName = React5__namespace.useMemo(() => {
1596
2169
  return iconNameOverride || platformIconMap[smartPlatformName];
1597
2170
  }, [iconNameOverride, smartPlatformName]);
1598
- const accessibleLabel = React4__namespace.useMemo(() => {
2171
+ const accessibleLabel = React5__namespace.useMemo(() => {
1599
2172
  return label || platformName;
1600
2173
  }, [label, platformName]);
1601
2174
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -1672,12 +2245,12 @@ function TextInner({ as, className, children, ...props }, ref) {
1672
2245
  const Component = as || "span";
1673
2246
  return /* @__PURE__ */ jsxRuntime.jsx(Component, { ref, className: cn(className), ...props, children });
1674
2247
  }
1675
- var Text = React4__namespace.forwardRef(TextInner);
2248
+ var Text = React5__namespace.forwardRef(TextInner);
1676
2249
  Text.displayName = "Text";
1677
2250
  function isContentTextItem(item) {
1678
- return item !== null && typeof item === "object" && !React4__namespace.isValidElement(item) && "_type" in item && item._type === "text";
2251
+ return item !== null && typeof item === "object" && !React5__namespace.isValidElement(item) && "_type" in item && item._type === "text";
1679
2252
  }
1680
- var ContentGroup = React4__namespace.forwardRef(
2253
+ var ContentGroup = React5__namespace.forwardRef(
1681
2254
  ({ items, className, children, ...props }, ref) => {
1682
2255
  const hasContent = items && items.length > 0;
1683
2256
  if (!hasContent) {
@@ -1690,10 +2263,10 @@ var ContentGroup = React4__namespace.forwardRef(
1690
2263
  return /* @__PURE__ */ jsxRuntime.jsx(Text, { ...textProps }, idx);
1691
2264
  }
1692
2265
  const reactNode = item;
1693
- if (React4__namespace.isValidElement(reactNode)) {
1694
- return React4__namespace.cloneElement(reactNode, { key: reactNode.key ?? idx });
2266
+ if (React5__namespace.isValidElement(reactNode)) {
2267
+ return React5__namespace.cloneElement(reactNode, { key: reactNode.key ?? idx });
1695
2268
  }
1696
- return /* @__PURE__ */ jsxRuntime.jsx(React4__namespace.Fragment, { children: reactNode }, idx);
2269
+ return /* @__PURE__ */ jsxRuntime.jsx(React5__namespace.Fragment, { children: reactNode }, idx);
1697
2270
  }),
1698
2271
  children
1699
2272
  ] });
@@ -1717,7 +2290,7 @@ function AlternatingBlocks({
1717
2290
  pattern,
1718
2291
  patternOpacity
1719
2292
  }) {
1720
- const sectionsContent = React4.useMemo(() => {
2293
+ const sectionsContent = React5.useMemo(() => {
1721
2294
  if (sectionsSlot) return sectionsSlot;
1722
2295
  if (!sections || sections.length === 0) return null;
1723
2296
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("space-y-12", sectionsClassName), children: sections.map((section, index) => /* @__PURE__ */ jsxRuntime.jsxs(
@@ -1761,7 +2334,7 @@ function AlternatingBlocks({
1761
2334
  sectionContentClassName,
1762
2335
  sectionMediaClassName
1763
2336
  ]);
1764
- const headerItems = React4.useMemo(() => {
2337
+ const headerItems = React5.useMemo(() => {
1765
2338
  const items = [];
1766
2339
  if (subtitle) {
1767
2340
  items.push(
@@ -1830,7 +2403,7 @@ function AboutSplitHero({
1830
2403
  patternOpacity,
1831
2404
  directionConfig = { desktop: "mediaRight", mobile: "mediaTop" }
1832
2405
  }) {
1833
- const ctaContent = React4.useMemo(() => {
2406
+ const ctaContent = React5.useMemo(() => {
1834
2407
  if (ctaSlot) return ctaSlot;
1835
2408
  if (!ctaAction) return null;
1836
2409
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -1852,7 +2425,7 @@ function AboutSplitHero({
1852
2425
  }
1853
2426
  );
1854
2427
  }, [ctaSlot, ctaAction, ctaClassName]);
1855
- const bgColorClass = React4.useMemo(() => {
2428
+ const bgColorClass = React5.useMemo(() => {
1856
2429
  switch (background) {
1857
2430
  case "dark":
1858
2431
  return "bg-foreground text-background";
@@ -1980,7 +2553,7 @@ function AboutMissionPrinciples({
1980
2553
  pattern,
1981
2554
  patternOpacity
1982
2555
  }) {
1983
- const missionActionContent = React4.useMemo(() => {
2556
+ const missionActionContent = React5.useMemo(() => {
1984
2557
  if (missionActionSlot) return missionActionSlot;
1985
2558
  if (!missionAction) return null;
1986
2559
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("pt-2", missionActionClassName), children: /* @__PURE__ */ jsxRuntime.jsxs(
@@ -2005,7 +2578,7 @@ function AboutMissionPrinciples({
2005
2578
  }
2006
2579
  ) });
2007
2580
  }, [missionActionSlot, missionAction, missionActionClassName]);
2008
- const principlesContent = React4.useMemo(() => {
2581
+ const principlesContent = React5.useMemo(() => {
2009
2582
  if (principlesSlot) return principlesSlot;
2010
2583
  if (!principles || principles.length === 0) return null;
2011
2584
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -2043,7 +2616,7 @@ function AboutMissionPrinciples({
2043
2616
  }
2044
2617
  );
2045
2618
  }, [principlesSlot, principles, principlesClassName]);
2046
- const visionActionContent = React4.useMemo(() => {
2619
+ const visionActionContent = React5.useMemo(() => {
2047
2620
  if (visionActionSlot) return visionActionSlot;
2048
2621
  if (!visionAction) return null;
2049
2622
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -2218,11 +2791,11 @@ function AboutExpandableValues({
2218
2791
  pattern,
2219
2792
  patternOpacity
2220
2793
  }) {
2221
- const [expandedValue, setExpandedValue] = React4__namespace.useState(null);
2222
- const toggleExpand = React4.useCallback((id) => {
2794
+ const [expandedValue, setExpandedValue] = React5__namespace.useState(null);
2795
+ const toggleExpand = React5.useCallback((id) => {
2223
2796
  setExpandedValue((prev) => prev === id ? null : id);
2224
2797
  }, []);
2225
- React4.useMemo(() => {
2798
+ React5.useMemo(() => {
2226
2799
  if (actionsSlot) return actionsSlot;
2227
2800
  if (!actions || actions.length === 0) return null;
2228
2801
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: actionsClassName, children: actions.map((action, idx) => /* @__PURE__ */ jsxRuntime.jsx(
@@ -2238,7 +2811,7 @@ function AboutExpandableValues({
2238
2811
  idx
2239
2812
  )) });
2240
2813
  }, [actionsSlot, actions, actionsClassName]);
2241
- const valuesContent = React4.useMemo(() => {
2814
+ const valuesContent = React5.useMemo(() => {
2242
2815
  if (valuesSlot) return valuesSlot;
2243
2816
  if (!values || values.length === 0) return null;
2244
2817
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("grid grid-cols-1 gap-6 mt-8", valuesClassName), children: values.map((value) => /* @__PURE__ */ jsxRuntime.jsxs(
@@ -2454,17 +3027,17 @@ function CommunityInitiatives({
2454
3027
  pattern,
2455
3028
  patternOpacity
2456
3029
  }) {
2457
- const [activeCategory, setActiveCategory] = React4__namespace.useState(
3030
+ const [activeCategory, setActiveCategory] = React5__namespace.useState(
2458
3031
  categories?.[0]?.id || ""
2459
3032
  );
2460
3033
  const currentCategory = categories?.find((category) => category.id === activeCategory) || categories?.[0];
2461
- const handleCategoryChange = React4.useCallback(
3034
+ const handleCategoryChange = React5.useCallback(
2462
3035
  (e) => {
2463
3036
  setActiveCategory(e.target.value);
2464
3037
  },
2465
3038
  []
2466
3039
  );
2467
- const categoriesContent = React4.useMemo(() => {
3040
+ const categoriesContent = React5.useMemo(() => {
2468
3041
  if (categoriesSlot) return categoriesSlot;
2469
3042
  if (!categories || categories.length === 0) return null;
2470
3043
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -2718,10 +3291,10 @@ function AboutCultureTabs({
2718
3291
  patternOpacity
2719
3292
  }) {
2720
3293
  const resolvedAspects = aspects ?? [];
2721
- const [activeTab, setActiveTab] = React4__namespace.useState(
3294
+ const [activeTab, setActiveTab] = React5__namespace.useState(
2722
3295
  resolvedAspects[0]?.id || ""
2723
3296
  );
2724
- const headerItems = React4.useMemo(() => {
3297
+ const headerItems = React5.useMemo(() => {
2725
3298
  const items = [];
2726
3299
  if (badgeText) {
2727
3300
  if (typeof badgeText === "string") {
@@ -2768,7 +3341,7 @@ function AboutCultureTabs({
2768
3341
  description,
2769
3342
  descriptionClassName
2770
3343
  ]);
2771
- const ctaImagesContent = React4.useMemo(() => {
3344
+ const ctaImagesContent = React5.useMemo(() => {
2772
3345
  if (ctaImagesSlot) return ctaImagesSlot;
2773
3346
  if (!ctaImages || ctaImages.length === 0) return null;
2774
3347
  return ctaImages.map((src, i) => /* @__PURE__ */ jsxRuntime.jsx(
@@ -2934,7 +3507,7 @@ function MediaHoverCtas({
2934
3507
  optixFlowConfig
2935
3508
  }) {
2936
3509
  const resolvedItems = items ?? [];
2937
- const itemsContent = React4.useMemo(() => {
3510
+ const itemsContent = React5.useMemo(() => {
2938
3511
  if (itemsSlot) return itemsSlot;
2939
3512
  return resolvedItems.map((item, index) => {
2940
3513
  const CardComponent = item.cardHref ? "a" : "div";
@@ -3024,13 +3597,13 @@ function BannerAnnouncementDismissible({
3024
3597
  actionsClassName,
3025
3598
  dismissButtonClassName
3026
3599
  }) {
3027
- const [isVisible, setIsVisible] = React4.useState(true);
3600
+ const [isVisible, setIsVisible] = React5.useState(true);
3028
3601
  const dismissLabel = dismissAriaLabel ?? "Dismiss banner";
3029
- const handleDismiss = React4.useCallback(() => {
3602
+ const handleDismiss = React5.useCallback(() => {
3030
3603
  setIsVisible(false);
3031
3604
  onDismiss?.();
3032
3605
  }, [onDismiss]);
3033
- const actionsContent = React4.useMemo(() => {
3606
+ const actionsContent = React5.useMemo(() => {
3034
3607
  if (actionsSlot) return actionsSlot;
3035
3608
  if (!actions || actions.length === 0) return null;
3036
3609
  return actions.map((action, index) => {
@@ -3058,7 +3631,7 @@ function BannerAnnouncementDismissible({
3058
3631
  );
3059
3632
  });
3060
3633
  }, [actions, actionsSlot]);
3061
- const iconContent = React4.useMemo(() => {
3634
+ const iconContent = React5.useMemo(() => {
3062
3635
  if (icon) return icon;
3063
3636
  if (!iconName) return null;
3064
3637
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -3070,11 +3643,11 @@ function BannerAnnouncementDismissible({
3070
3643
  }
3071
3644
  );
3072
3645
  }, [icon, iconName, iconClassName]);
3073
- const dismissIconContent = React4.useMemo(() => {
3646
+ const dismissIconContent = React5.useMemo(() => {
3074
3647
  if (dismissIcon) return dismissIcon;
3075
3648
  return /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "mynaui/x", size: 16 });
3076
3649
  }, [dismissIcon]);
3077
- const messageContent = React4.useMemo(() => {
3650
+ const messageContent = React5.useMemo(() => {
3078
3651
  if (!message) return null;
3079
3652
  return typeof message === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("font-medium text-sm", messageClassName), children: message }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: messageClassName, children: message });
3080
3653
  }, [message, messageClassName]);
@@ -3120,12 +3693,12 @@ function BannerCountdownSale({
3120
3693
  separatorClassName
3121
3694
  }) {
3122
3695
  const targetTime = endTime;
3123
- const [timeLeft, setTimeLeft] = React4.useState({
3696
+ const [timeLeft, setTimeLeft] = React5.useState({
3124
3697
  hours: 0,
3125
3698
  minutes: 0,
3126
3699
  seconds: 0
3127
3700
  });
3128
- React4.useEffect(() => {
3701
+ React5.useEffect(() => {
3129
3702
  if (!targetTime) {
3130
3703
  return;
3131
3704
  }
@@ -3148,8 +3721,8 @@ function BannerCountdownSale({
3148
3721
  }, 1e3);
3149
3722
  return () => clearInterval(timer);
3150
3723
  }, [targetTime]);
3151
- const pad = React4.useCallback((n) => n.toString().padStart(2, "0"), []);
3152
- const timerContent = React4.useMemo(() => {
3724
+ const pad = React5.useCallback((n) => n.toString().padStart(2, "0"), []);
3725
+ const timerContent = React5.useMemo(() => {
3153
3726
  if (timerSlot) return timerSlot;
3154
3727
  if (renderTimer) return renderTimer(timeLeft);
3155
3728
  if (!targetTime) return null;
@@ -3161,11 +3734,11 @@ function BannerCountdownSale({
3161
3734
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("rounded bg-destructive px-2 py-0.5", timeUnitClassName), children: pad(timeLeft.seconds) })
3162
3735
  ] });
3163
3736
  }, [timerSlot, renderTimer, timeLeft, timerClassName, timeUnitClassName, separatorClassName, pad, targetTime]);
3164
- const messageContent = React4.useMemo(() => {
3737
+ const messageContent = React5.useMemo(() => {
3165
3738
  if (!message) return null;
3166
3739
  return typeof message === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("font-medium", messageClassName), children: message }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: messageClassName, children: message });
3167
3740
  }, [message, messageClassName]);
3168
- const descriptionContent = React4.useMemo(() => {
3741
+ const descriptionContent = React5.useMemo(() => {
3169
3742
  if (!description) return null;
3170
3743
  return typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("text-destructive-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description });
3171
3744
  }, [description, descriptionClassName]);
@@ -3194,12 +3767,12 @@ function BannerDeliveryCountdown({
3194
3767
  deliveryDateClassName
3195
3768
  }) {
3196
3769
  const targetTime = cutoffTime;
3197
- const [timeLeft, setTimeLeft] = React4.useState({
3770
+ const [timeLeft, setTimeLeft] = React5.useState({
3198
3771
  hours: 0,
3199
3772
  minutes: 0,
3200
3773
  seconds: 0
3201
3774
  });
3202
- React4.useEffect(() => {
3775
+ React5.useEffect(() => {
3203
3776
  if (!targetTime) {
3204
3777
  return;
3205
3778
  }
@@ -3222,13 +3795,13 @@ function BannerDeliveryCountdown({
3222
3795
  }, 1e3);
3223
3796
  return () => clearInterval(timer);
3224
3797
  }, [targetTime]);
3225
- const pad = React4.useCallback((n) => n.toString().padStart(2, "0"), []);
3226
- const iconContent = React4.useMemo(() => {
3798
+ const pad = React5.useCallback((n) => n.toString().padStart(2, "0"), []);
3799
+ const iconContent = React5.useMemo(() => {
3227
3800
  if (icon) return icon;
3228
3801
  if (!iconName) return null;
3229
3802
  return /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: iconName, size: 16, className: iconClassName });
3230
3803
  }, [icon, iconName, iconClassName]);
3231
- const timerContent = React4.useMemo(() => {
3804
+ const timerContent = React5.useMemo(() => {
3232
3805
  if (timerSlot) return timerSlot;
3233
3806
  if (renderTimer) return renderTimer(timeLeft);
3234
3807
  if (!targetTime) return null;
@@ -3240,18 +3813,18 @@ function BannerDeliveryCountdown({
3240
3813
  pad(timeLeft.seconds)
3241
3814
  ] });
3242
3815
  }, [timerSlot, renderTimer, timeLeft, timerClassName, pad, targetTime]);
3243
- const deliveryDateContent = React4.useMemo(() => {
3816
+ const deliveryDateContent = React5.useMemo(() => {
3244
3817
  if (!deliveryDate) return null;
3245
3818
  return typeof deliveryDate === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("font-semibold", deliveryDateClassName), children: deliveryDate }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: deliveryDateClassName, children: deliveryDate });
3246
3819
  }, [deliveryDate, deliveryDateClassName]);
3247
- const messageParts = React4.useMemo(() => {
3820
+ const messageParts = React5.useMemo(() => {
3248
3821
  return [prefixText, timerContent, middleText, deliveryDateContent].filter(
3249
3822
  (part) => part !== null && part !== void 0
3250
3823
  );
3251
3824
  }, [prefixText, timerContent, middleText, deliveryDateContent]);
3252
3825
  return /* @__PURE__ */ jsxRuntime.jsx(Section, { background, spacing: "none", className: cn("bg-accent text-accent-foreground", className), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("container py-2.5", containerClassName), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex flex-wrap items-center justify-center gap-3 text-sm", contentClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-center gap-2", messageClassName), children: [
3253
3826
  iconContent,
3254
- messageParts.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { children: messageParts.map((part, index) => /* @__PURE__ */ jsxRuntime.jsxs(React4__namespace.Fragment, { children: [
3827
+ messageParts.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { children: messageParts.map((part, index) => /* @__PURE__ */ jsxRuntime.jsxs(React5__namespace.Fragment, { children: [
3255
3828
  index > 0 ? " " : null,
3256
3829
  part
3257
3830
  ] }, index)) })
@@ -3273,7 +3846,7 @@ function BannerEventPromo({
3273
3846
  eventDetailsClassName,
3274
3847
  actionsClassName
3275
3848
  }) {
3276
- const actionsContent = React4.useMemo(() => {
3849
+ const actionsContent = React5.useMemo(() => {
3277
3850
  if (actionsSlot) return actionsSlot;
3278
3851
  if (!actions || actions.length === 0) return null;
3279
3852
  return actions.map((action, index) => {
@@ -3301,7 +3874,7 @@ function BannerEventPromo({
3301
3874
  );
3302
3875
  });
3303
3876
  }, [actions, actionsSlot]);
3304
- const separatorContent = React4.useMemo(() => {
3877
+ const separatorContent = React5.useMemo(() => {
3305
3878
  if (separator) return separator;
3306
3879
  return /* @__PURE__ */ jsxRuntime.jsx(
3307
3880
  "svg",
@@ -3313,11 +3886,11 @@ function BannerEventPromo({
3313
3886
  }
3314
3887
  );
3315
3888
  }, [separator, separatorClassName]);
3316
- const eventNameContent = React4.useMemo(() => {
3889
+ const eventNameContent = React5.useMemo(() => {
3317
3890
  if (!eventName) return null;
3318
3891
  return typeof eventName === "string" ? /* @__PURE__ */ jsxRuntime.jsx("strong", { className: cn("font-semibold", eventNameClassName), children: eventName }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: eventNameClassName, children: eventName });
3319
3892
  }, [eventName, eventNameClassName]);
3320
- const eventDetailsContent = React4.useMemo(() => {
3893
+ const eventDetailsContent = React5.useMemo(() => {
3321
3894
  if (!eventDetails) return null;
3322
3895
  return /* @__PURE__ */ jsxRuntime.jsx("span", { className: eventDetailsClassName, children: eventDetails });
3323
3896
  }, [eventDetails, eventDetailsClassName]);
@@ -3354,22 +3927,22 @@ function BannerFloatingOffer({
3354
3927
  }) {
3355
3928
  const isControlled = open !== void 0;
3356
3929
  const initialOpen = defaultOpen ?? true;
3357
- const [internalOpen, setInternalOpen] = React4.useState(initialOpen);
3930
+ const [internalOpen, setInternalOpen] = React5.useState(initialOpen);
3358
3931
  const isVisible = isControlled ? open : internalOpen;
3359
3932
  const dismissLabel = dismissAriaLabel ?? "Dismiss banner";
3360
3933
  const isDismissible = dismissible ?? false;
3361
- React4.useEffect(() => {
3934
+ React5.useEffect(() => {
3362
3935
  if (!isControlled && defaultOpen !== internalOpen) {
3363
3936
  setInternalOpen(initialOpen);
3364
3937
  }
3365
3938
  }, [defaultOpen, initialOpen, isControlled, internalOpen]);
3366
- const handleDismiss = React4.useCallback(() => {
3939
+ const handleDismiss = React5.useCallback(() => {
3367
3940
  if (!isControlled) {
3368
3941
  setInternalOpen(false);
3369
3942
  }
3370
3943
  onOpenChange?.(false);
3371
3944
  }, [isControlled, onOpenChange]);
3372
- const actionsContent = React4.useMemo(() => {
3945
+ const actionsContent = React5.useMemo(() => {
3373
3946
  if (actionsSlot) return actionsSlot;
3374
3947
  if (!actions || actions.length === 0) return null;
3375
3948
  return actions.map((action, index) => {
@@ -3397,7 +3970,7 @@ function BannerFloatingOffer({
3397
3970
  );
3398
3971
  });
3399
3972
  }, [actions, actionsSlot]);
3400
- const separatorContent = React4.useMemo(() => {
3973
+ const separatorContent = React5.useMemo(() => {
3401
3974
  if (separator) return separator;
3402
3975
  return /* @__PURE__ */ jsxRuntime.jsx(
3403
3976
  "svg",
@@ -3409,15 +3982,15 @@ function BannerFloatingOffer({
3409
3982
  }
3410
3983
  );
3411
3984
  }, [separator, separatorClassName]);
3412
- const dismissIconContent = React4.useMemo(() => {
3985
+ const dismissIconContent = React5.useMemo(() => {
3413
3986
  if (dismissIcon) return dismissIcon;
3414
3987
  return /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "mynaui/x", size: 16 });
3415
3988
  }, [dismissIcon]);
3416
- const offerTitleContent = React4.useMemo(() => {
3989
+ const offerTitleContent = React5.useMemo(() => {
3417
3990
  if (!offerTitle) return null;
3418
3991
  return typeof offerTitle === "string" ? /* @__PURE__ */ jsxRuntime.jsx("strong", { className: cn("font-semibold", offerTitleClassName), children: offerTitle }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: offerTitleClassName, children: offerTitle });
3419
3992
  }, [offerTitle, offerTitleClassName]);
3420
- const offerDescriptionContent = React4.useMemo(() => {
3993
+ const offerDescriptionContent = React5.useMemo(() => {
3421
3994
  if (!offerDescription) return null;
3422
3995
  return /* @__PURE__ */ jsxRuntime.jsx("span", { className: offerDescriptionClassName, children: offerDescription });
3423
3996
  }, [offerDescription, offerDescriptionClassName]);
@@ -3478,13 +4051,13 @@ function BannerGdprRights({
3478
4051
  actionsClassName,
3479
4052
  dismissButtonClassName
3480
4053
  }) {
3481
- const [isVisible, setIsVisible] = React4.useState(true);
4054
+ const [isVisible, setIsVisible] = React5.useState(true);
3482
4055
  const dismissLabel = dismissAriaLabel ?? "Dismiss banner";
3483
- const handleDismiss = React4.useCallback(() => {
4056
+ const handleDismiss = React5.useCallback(() => {
3484
4057
  setIsVisible(false);
3485
4058
  onDismiss?.();
3486
4059
  }, [onDismiss]);
3487
- const iconContent = React4.useMemo(() => {
4060
+ const iconContent = React5.useMemo(() => {
3488
4061
  if (icon) return icon;
3489
4062
  if (!iconName) return null;
3490
4063
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -3496,7 +4069,7 @@ function BannerGdprRights({
3496
4069
  }
3497
4070
  );
3498
4071
  }, [icon, iconName, iconClassName]);
3499
- const actionsContent = React4.useMemo(() => {
4072
+ const actionsContent = React5.useMemo(() => {
3500
4073
  if (actionsSlot) return actionsSlot;
3501
4074
  if (!actions || actions.length === 0) return null;
3502
4075
  return actions.map((action, index) => {
@@ -3523,15 +4096,15 @@ function BannerGdprRights({
3523
4096
  );
3524
4097
  });
3525
4098
  }, [actions, actionsSlot]);
3526
- const dismissIconContent = React4.useMemo(() => {
4099
+ const dismissIconContent = React5.useMemo(() => {
3527
4100
  if (dismissIcon) return dismissIcon;
3528
4101
  return /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "mynaui/x", size: 16 });
3529
4102
  }, [dismissIcon]);
3530
- const titleContent = React4.useMemo(() => {
4103
+ const titleContent = React5.useMemo(() => {
3531
4104
  if (!title) return null;
3532
4105
  return typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("font-semibold text-sm", titleClassName), children: title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: titleClassName, children: title });
3533
4106
  }, [title, titleClassName]);
3534
- const descriptionContent = React4.useMemo(() => {
4107
+ const descriptionContent = React5.useMemo(() => {
3535
4108
  if (!description && !actionsContent) return null;
3536
4109
  return /* @__PURE__ */ jsxRuntime.jsxs("p", { className: cn("text-sm text-muted-foreground mt-1", descriptionClassName), children: [
3537
4110
  description,
@@ -3585,13 +4158,13 @@ function BannerPrivacyNotice({
3585
4158
  actionsClassName,
3586
4159
  dismissButtonClassName
3587
4160
  }) {
3588
- const [isVisible, setIsVisible] = React4.useState(true);
4161
+ const [isVisible, setIsVisible] = React5.useState(true);
3589
4162
  const dismissLabel = dismissAriaLabel ?? "Dismiss banner";
3590
- const handleDismiss = React4.useCallback(() => {
4163
+ const handleDismiss = React5.useCallback(() => {
3591
4164
  setIsVisible(false);
3592
4165
  onDismiss?.();
3593
4166
  }, [onDismiss]);
3594
- const iconContent = React4.useMemo(() => {
4167
+ const iconContent = React5.useMemo(() => {
3595
4168
  if (icon) return icon;
3596
4169
  if (!iconName) return null;
3597
4170
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -3603,7 +4176,7 @@ function BannerPrivacyNotice({
3603
4176
  }
3604
4177
  );
3605
4178
  }, [icon, iconName, iconClassName]);
3606
- const actionsContent = React4.useMemo(() => {
4179
+ const actionsContent = React5.useMemo(() => {
3607
4180
  if (actionsSlot) return actionsSlot;
3608
4181
  if (!actions || actions.length === 0) return null;
3609
4182
  return actions.map((action, index) => {
@@ -3630,15 +4203,15 @@ function BannerPrivacyNotice({
3630
4203
  );
3631
4204
  });
3632
4205
  }, [actions, actionsSlot]);
3633
- const dismissIconContent = React4.useMemo(() => {
4206
+ const dismissIconContent = React5.useMemo(() => {
3634
4207
  if (dismissIcon) return dismissIcon;
3635
4208
  return /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "mynaui/x", size: 16 });
3636
4209
  }, [dismissIcon]);
3637
- const titleContent = React4.useMemo(() => {
4210
+ const titleContent = React5.useMemo(() => {
3638
4211
  if (!title) return null;
3639
4212
  return typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("font-semibold text-sm", titleClassName), children: title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: titleClassName, children: title });
3640
4213
  }, [title, titleClassName]);
3641
- const descriptionContent = React4.useMemo(() => {
4214
+ const descriptionContent = React5.useMemo(() => {
3642
4215
  if (!description) return null;
3643
4216
  return typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-sm text-muted-foreground mt-1", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-sm text-muted-foreground mt-1", descriptionClassName), children: description });
3644
4217
  }, [description, descriptionClassName]);
@@ -3685,7 +4258,7 @@ function BannerPromoCta({
3685
4258
  discountClassName,
3686
4259
  actionsClassName
3687
4260
  }) {
3688
- const actionsContent = React4.useMemo(() => {
4261
+ const actionsContent = React5.useMemo(() => {
3689
4262
  if (actionsSlot) return actionsSlot;
3690
4263
  if (!actions || actions.length === 0) return null;
3691
4264
  return actions.map((action, index) => {
@@ -3712,15 +4285,15 @@ function BannerPromoCta({
3712
4285
  );
3713
4286
  });
3714
4287
  }, [actions, actionsSlot]);
3715
- const separatorContent = React4.useMemo(() => {
4288
+ const separatorContent = React5.useMemo(() => {
3716
4289
  if (separator) return separator;
3717
4290
  return /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("hidden sm:inline", separatorClassName), children: "\xB7" });
3718
4291
  }, [separator, separatorClassName]);
3719
- const messageContent = React4.useMemo(() => {
4292
+ const messageContent = React5.useMemo(() => {
3720
4293
  if (!message) return null;
3721
4294
  return typeof message === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("font-semibold", messageClassName), children: message }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: messageClassName, children: message });
3722
4295
  }, [message, messageClassName]);
3723
- const discountContent = React4.useMemo(() => {
4296
+ const discountContent = React5.useMemo(() => {
3724
4297
  if (!discount) return null;
3725
4298
  return /* @__PURE__ */ jsxRuntime.jsx("span", { className: discountClassName, children: discount });
3726
4299
  }, [discount, discountClassName]);
@@ -3748,13 +4321,13 @@ function BannerSocialFollow({
3748
4321
  actionsClassName,
3749
4322
  dismissButtonClassName
3750
4323
  }) {
3751
- const [isVisible, setIsVisible] = React4.useState(true);
4324
+ const [isVisible, setIsVisible] = React5.useState(true);
3752
4325
  const dismissLabel = dismissAriaLabel ?? "Dismiss banner";
3753
- const handleDismiss = React4.useCallback(() => {
4326
+ const handleDismiss = React5.useCallback(() => {
3754
4327
  setIsVisible(false);
3755
4328
  onDismiss?.();
3756
4329
  }, [onDismiss]);
3757
- const iconContent = React4.useMemo(() => {
4330
+ const iconContent = React5.useMemo(() => {
3758
4331
  if (icon) return icon;
3759
4332
  if (!iconName) return null;
3760
4333
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -3766,7 +4339,7 @@ function BannerSocialFollow({
3766
4339
  }
3767
4340
  );
3768
4341
  }, [icon, iconName, iconClassName]);
3769
- const actionsContent = React4.useMemo(() => {
4342
+ const actionsContent = React5.useMemo(() => {
3770
4343
  if (actionsSlot) return actionsSlot;
3771
4344
  if (!actions || actions.length === 0) return null;
3772
4345
  return actions.map((action, index) => {
@@ -3794,11 +4367,11 @@ function BannerSocialFollow({
3794
4367
  );
3795
4368
  });
3796
4369
  }, [actions, actionsSlot]);
3797
- const dismissIconContent = React4.useMemo(() => {
4370
+ const dismissIconContent = React5.useMemo(() => {
3798
4371
  if (dismissIcon) return dismissIcon;
3799
4372
  return /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "mynaui/x", size: 16 });
3800
4373
  }, [dismissIcon]);
3801
- const messageContent = React4.useMemo(() => {
4374
+ const messageContent = React5.useMemo(() => {
3802
4375
  if (!message) return null;
3803
4376
  return typeof message === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("font-medium", messageClassName), children: message }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: messageClassName, children: message });
3804
4377
  }, [message, messageClassName]);
@@ -3846,13 +4419,13 @@ function BannerSurveyIncentive({
3846
4419
  actionsClassName,
3847
4420
  dismissButtonClassName
3848
4421
  }) {
3849
- const [isVisible, setIsVisible] = React4.useState(true);
4422
+ const [isVisible, setIsVisible] = React5.useState(true);
3850
4423
  const dismissLabel = dismissAriaLabel ?? "Dismiss banner";
3851
- const handleDismiss = React4.useCallback(() => {
4424
+ const handleDismiss = React5.useCallback(() => {
3852
4425
  setIsVisible(false);
3853
4426
  onDismiss?.();
3854
4427
  }, [onDismiss]);
3855
- const iconContent = React4.useMemo(() => {
4428
+ const iconContent = React5.useMemo(() => {
3856
4429
  if (icon) return icon;
3857
4430
  if (!iconName) return null;
3858
4431
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -3864,7 +4437,7 @@ function BannerSurveyIncentive({
3864
4437
  }
3865
4438
  );
3866
4439
  }, [icon, iconName, iconClassName]);
3867
- const actionsContent = React4.useMemo(() => {
4440
+ const actionsContent = React5.useMemo(() => {
3868
4441
  if (actionsSlot) return actionsSlot;
3869
4442
  if (!actions || actions.length === 0) return null;
3870
4443
  return actions.map((action, index) => {
@@ -3892,15 +4465,15 @@ function BannerSurveyIncentive({
3892
4465
  );
3893
4466
  });
3894
4467
  }, [actions, actionsSlot]);
3895
- const dismissIconContent = React4.useMemo(() => {
4468
+ const dismissIconContent = React5.useMemo(() => {
3896
4469
  if (dismissIcon) return dismissIcon;
3897
4470
  return /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "mynaui/x", size: 16 });
3898
4471
  }, [dismissIcon]);
3899
- const titleContent = React4.useMemo(() => {
4472
+ const titleContent = React5.useMemo(() => {
3900
4473
  if (!title) return null;
3901
4474
  return typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("font-medium", titleClassName), children: title }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: titleClassName, children: title });
3902
4475
  }, [title, titleClassName]);
3903
- const descriptionContent = React4.useMemo(() => {
4476
+ const descriptionContent = React5.useMemo(() => {
3904
4477
  if (!description) return null;
3905
4478
  return typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: descriptionClassName, children: description });
3906
4479
  }, [description, descriptionClassName]);
@@ -4010,7 +4583,7 @@ function FooterCopyright({
4010
4583
  copyright,
4011
4584
  className
4012
4585
  }) {
4013
- const currentYear = React4.useMemo(() => (/* @__PURE__ */ new Date()).getFullYear(), []);
4586
+ const currentYear = React5.useMemo(() => (/* @__PURE__ */ new Date()).getFullYear(), []);
4014
4587
  if (!copyright) {
4015
4588
  return null;
4016
4589
  }
@@ -4522,8 +5095,8 @@ var BrandAttribution = ({
4522
5095
  }
4523
5096
  const { prefix = "", anchorText, href, suffix = "" } = options[optionIndex];
4524
5097
  const ContainerEl = variant;
4525
- const [trackedHref, setTrackedHref] = React4__namespace.useState(href);
4526
- React4__namespace.useEffect(() => {
5098
+ const [trackedHref, setTrackedHref] = React5__namespace.useState(href);
5099
+ React5__namespace.useEffect(() => {
4527
5100
  setTrackedHref(buildTrackedHref(href));
4528
5101
  }, [href]);
4529
5102
  return /* @__PURE__ */ jsxRuntime.jsxs(ContainerEl, { className: containerClassName, children: [
@@ -4643,7 +5216,7 @@ function FooterSocialNewsletter({
4643
5216
  patternOpacity,
4644
5217
  optixFlowConfig
4645
5218
  }) {
4646
- const renderForm = React4__namespace.useMemo(() => {
5219
+ const renderForm = React5__namespace.useMemo(() => {
4647
5220
  if (!formEngineSetup) return null;
4648
5221
  const action = {
4649
5222
  variant: "default",
@@ -4796,14 +5369,14 @@ function FooterSocialApps({
4796
5369
  patternOpacity,
4797
5370
  optixFlowConfig
4798
5371
  }) {
4799
- const sectionsContent = React4.useMemo(() => {
5372
+ const sectionsContent = React5.useMemo(() => {
4800
5373
  if (!sections || sections.length === 0) return null;
4801
5374
  return sections.map((section, sectionIdx) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-8 md:mt-0", children: [
4802
5375
  /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-4 font-bold", children: section.title }),
4803
5376
  /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "space-y-4", children: section.links.map((link, linkIdx) => /* @__PURE__ */ jsxRuntime.jsx("li", { className: "font-medium ", children: /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: link.href, children: link.name }) }, linkIdx)) })
4804
5377
  ] }, sectionIdx));
4805
5378
  }, [sections]);
4806
- const socialLinksContent = React4.useMemo(() => {
5379
+ const socialLinksContent = React5.useMemo(() => {
4807
5380
  if (!socialLinks || socialLinks.length === 0) return null;
4808
5381
  return socialLinks.map((social, idx) => /* @__PURE__ */ jsxRuntime.jsx("li", { className: "font-medium", children: /* @__PURE__ */ jsxRuntime.jsx(
4809
5382
  SocialLinkIcon,
@@ -4818,7 +5391,7 @@ function FooterSocialApps({
4818
5391
  }
4819
5392
  ) }, idx));
4820
5393
  }, [socialLinks, background]);
4821
- const appLinksContent = React4.useMemo(() => {
5394
+ const appLinksContent = React5.useMemo(() => {
4822
5395
  if (!appLinks || appLinks.length === 0) return null;
4823
5396
  return appLinks.map((app, idx) => /* @__PURE__ */ jsxRuntime.jsx("li", { className: "font-medium", children: /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: app.href, "aria-label": app.label, children: /* @__PURE__ */ jsxRuntime.jsx(
4824
5397
  "span",
@@ -4907,7 +5480,7 @@ function FooterSimpleCentered({
4907
5480
  patternOpacity,
4908
5481
  optixFlowConfig
4909
5482
  }) {
4910
- const sitemapContent = React4.useMemo(() => {
5483
+ const sitemapContent = React5.useMemo(() => {
4911
5484
  if (!sitemap || sitemap.length === 0) return null;
4912
5485
  return sitemap.map((section) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(sitemapSectionClassName), children: [
4913
5486
  /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("mb-4 text-sm font-semibold", sitemapTitleClassName), children: section.title }),
@@ -4930,9 +5503,9 @@ function FooterSimpleCentered({
4930
5503
  sitemapLinksClassName,
4931
5504
  sitemapLinkClassName
4932
5505
  ]);
4933
- const bottomLinksContent = React4.useMemo(() => {
5506
+ const bottomLinksContent = React5.useMemo(() => {
4934
5507
  if (!bottomLinks || bottomLinks.length === 0) return null;
4935
- return bottomLinks.map((link, idx) => /* @__PURE__ */ jsxRuntime.jsx(React4__namespace.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsx(
5508
+ return bottomLinks.map((link, idx) => /* @__PURE__ */ jsxRuntime.jsx(React5__namespace.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsx(
4936
5509
  Pressable,
4937
5510
  {
4938
5511
  href: link.href,
@@ -5257,7 +5830,7 @@ function FooterNewsletterGrid({
5257
5830
  patternOpacity,
5258
5831
  optixFlowConfig
5259
5832
  }) {
5260
- const sectionsContent = React4.useMemo(() => {
5833
+ const sectionsContent = React5.useMemo(() => {
5261
5834
  if (!sections || sections.length === 0) return null;
5262
5835
  return sections.map((section, sectionIdx) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "col-span-2 md:col-span-1", children: [
5263
5836
  /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-5 font-medium", children: section.title }),
@@ -5271,7 +5844,7 @@ function FooterNewsletterGrid({
5271
5844
  )) })
5272
5845
  ] }, sectionIdx));
5273
5846
  }, [sections]);
5274
- const socialLinksContent = React4.useMemo(() => {
5847
+ const socialLinksContent = React5.useMemo(() => {
5275
5848
  if (!socialLinks || socialLinks.length === 0) return null;
5276
5849
  return socialLinks.map((social, idx) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(
5277
5850
  SocialLinkIcon,
@@ -5787,7 +6360,7 @@ function FooterBackgroundCard({
5787
6360
  patternOpacity,
5788
6361
  optixFlowConfig
5789
6362
  }) {
5790
- const sectionStyle = React4.useMemo(
6363
+ const sectionStyle = React5.useMemo(
5791
6364
  () => backgroundImage ? { backgroundImage: `url('${backgroundImage}')` } : void 0,
5792
6365
  [backgroundImage]
5793
6366
  );
@@ -6061,7 +6634,7 @@ function FooterAnimatedSocial({
6061
6634
  pattern,
6062
6635
  patternOpacity
6063
6636
  }) {
6064
- const socialLinksContent = React4.useMemo(() => {
6637
+ const socialLinksContent = React5.useMemo(() => {
6065
6638
  if (!socialLinks || socialLinks.length === 0) return null;
6066
6639
  return socialLinks.map((link, idx) => /* @__PURE__ */ jsxRuntime.jsx(
6067
6640
  framerMotion.motion.div,
@@ -6279,7 +6852,7 @@ function FooterNewsletterMinimal({
6279
6852
  buttonAction,
6280
6853
  formSlot
6281
6854
  }) {
6282
- const navLinksContent = React4__namespace.useMemo(() => {
6855
+ const navLinksContent = React5__namespace.useMemo(() => {
6283
6856
  if (!navLinks || navLinks.length === 0) return null;
6284
6857
  return navLinks.map((item, idx) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(
6285
6858
  Pressable,
@@ -6290,7 +6863,7 @@ function FooterNewsletterMinimal({
6290
6863
  }
6291
6864
  ) }, idx));
6292
6865
  }, [navLinks, navLinkClassName]);
6293
- const socialLinksContent = React4__namespace.useMemo(() => {
6866
+ const socialLinksContent = React5__namespace.useMemo(() => {
6294
6867
  if (!socialLinks || socialLinks.length === 0) return null;
6295
6868
  return socialLinks.map((item, idx) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(
6296
6869
  SocialLinkIcon,
@@ -6306,7 +6879,7 @@ function FooterNewsletterMinimal({
6306
6879
  }
6307
6880
  ) }, idx));
6308
6881
  }, [socialLinks, socialLinkClassName]);
6309
- const footerLinksContent = React4__namespace.useMemo(() => {
6882
+ const footerLinksContent = React5__namespace.useMemo(() => {
6310
6883
  if (!footerLinks || footerLinks.length === 0) return null;
6311
6884
  return footerLinks.map((item) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(
6312
6885
  Pressable,
@@ -6320,7 +6893,7 @@ function FooterNewsletterMinimal({
6320
6893
  }
6321
6894
  ) }, item.label));
6322
6895
  }, [footerLinks, footerLinkClassName]);
6323
- const renderForm = React4__namespace.useMemo(() => {
6896
+ const renderForm = React5__namespace.useMemo(() => {
6324
6897
  if (formSlot) return formSlot;
6325
6898
  if (!formEngineSetup) return null;
6326
6899
  const defaultButtonAction = {
@@ -6555,7 +7128,7 @@ function FooterCtaSocial({
6555
7128
  pattern,
6556
7129
  patternOpacity
6557
7130
  }) {
6558
- const socialLinksContent = React4.useMemo(() => {
7131
+ const socialLinksContent = React5.useMemo(() => {
6559
7132
  if (!socialLinks || socialLinks.length === 0) return null;
6560
7133
  return socialLinks.map((link) => /* @__PURE__ */ jsxRuntime.jsx(
6561
7134
  SocialLinkIcon,
@@ -6673,7 +7246,7 @@ function FooterNavSocial({
6673
7246
  patternOpacity,
6674
7247
  optixFlowConfig
6675
7248
  }) {
6676
- const sectionsContent = React4.useMemo(() => {
7249
+ const sectionsContent = React5.useMemo(() => {
6677
7250
  if (!sections || sections.length === 0) return null;
6678
7251
  return sections.map((section, sectionIdx) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(navSectionClassName), children: [
6679
7252
  /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("mb-4 font-semibold", navTitleClassName), children: section.title }),
@@ -6686,7 +7259,7 @@ function FooterNavSocial({
6686
7259
  navLinksClassName,
6687
7260
  navLinkClassName
6688
7261
  ]);
6689
- const socialLinksContent = React4.useMemo(() => {
7262
+ const socialLinksContent = React5.useMemo(() => {
6690
7263
  if (!socialLinks || socialLinks.length === 0) return null;
6691
7264
  return socialLinks.map((social, idx) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(
6692
7265
  SocialLinkIcon,
@@ -6701,7 +7274,7 @@ function FooterNavSocial({
6701
7274
  }
6702
7275
  ) }, idx));
6703
7276
  }, [socialLinks, socialLinkClassName]);
6704
- const legalLinksContent = React4.useMemo(() => {
7277
+ const legalLinksContent = React5.useMemo(() => {
6705
7278
  if (!legalLinks || legalLinks.length === 0) return null;
6706
7279
  return legalLinks.map((link, idx) => /* @__PURE__ */ jsxRuntime.jsx("li", { className: cn(legalLinkClassName), children: /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: link.href, className: "hover:opacity-100", children: link.name }) }, idx));
6707
7280
  }, [legalLinks, legalLinkClassName]);
@@ -6908,6 +7481,7 @@ exports.FooterNewsletterMinimal = FooterNewsletterMinimal;
6908
7481
  exports.FooterSimpleCentered = FooterSimpleCentered;
6909
7482
  exports.FooterSocialApps = FooterSocialApps;
6910
7483
  exports.FooterSocialNewsletter = FooterSocialNewsletter;
7484
+ exports.GeoMap = GeoMap;
6911
7485
  exports.ImageSlider = ImageSlider;
6912
7486
  exports.MediaHoverCtas = MediaHoverCtas;
6913
7487
  exports.PageHeroBanner = PageHeroBanner;