@opensite/ui 2.7.6 → 2.7.7

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-B3quAlwK.d.ts} +6 -2
  103. package/dist/{blocks-gR13ES5A.d.cts → blocks-UTlgYg4k.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-CdNtNOuP.d.cts} +1 -1
  135. package/dist/{button-variants-lRElsmTc.d.ts → button-variants-CdNtNOuP.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-B-4_HCwb.d.cts} +2 -6
  197. package/dist/{community-initiatives-2FsyKLdT.d.cts → community-initiatives-BwFLQ6RR.d.ts} +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 +1 -1
  231. package/dist/contact-careers.d.cts +4 -4
  232. package/dist/contact-careers.d.ts +4 -4
  233. package/dist/contact-careers.js +1 -1
  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-Dye1J8k4.d.ts} +1 -1
  239. package/dist/{contact-dark-DA4diOuH.d.cts → contact-dark-vkoXgNCp.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 +1 -1
  249. package/dist/contact-faq.d.cts +4 -4
  250. package/dist/contact-faq.d.ts +4 -4
  251. package/dist/contact-faq.js +1 -1
  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 +1096 -39
  273. package/dist/contact-map.d.cts +17 -5
  274. package/dist/contact-map.d.ts +17 -5
  275. package/dist/contact-map.js +1080 -38
  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 +2 -2
  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 +2 -2
  382. package/dist/faq-bordered-badge.cjs +12 -63
  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 +12 -63
  386. package/dist/faq-card-categories.cjs +122 -143
  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 +121 -139
  390. package/dist/faq-categorized-sections.cjs +7 -43
  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 +7 -43
  394. package/dist/faq-centered-accordion.cjs +1 -1
  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 +1 -1
  398. package/dist/faq-gradient-categories.cjs +90 -68
  399. package/dist/faq-gradient-categories.d.cts +4 -4
  400. package/dist/faq-gradient-categories.d.ts +4 -4
  401. package/dist/faq-gradient-categories.js +89 -64
  402. package/dist/faq-icon-benefits.cjs +112 -83
  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 +94 -80
  406. package/dist/faq-muted-cards.cjs +112 -89
  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 +111 -85
  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 +44 -105
  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 +44 -105
  418. package/dist/faq-profile-sidebar.cjs +139 -119
  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 +139 -119
  422. package/dist/faq-rounded-cards.cjs +97 -39
  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 +96 -35
  426. package/dist/faq-sidebar-navigation.cjs +62 -48
  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 +62 -48
  430. package/dist/faq-simple-accordion.cjs +9 -2
  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 +9 -2
  434. package/dist/faq-split-help.cjs +1 -1
  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 +1 -1
  438. package/dist/faq-split-hero.cjs +225 -72
  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 +221 -71
  442. package/dist/faq-static-list.cjs +122 -23
  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 +104 -20
  446. package/dist/feature-accordion-image.cjs +1 -1
  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 +1 -1
  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-CJ9BZplo.d.ts} +2 -2
  789. package/dist/{hero-video-dialog-gradient-BOmAMhjq.d.cts → hero-video-dialog-gradient-DqNRdnP1.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 +1 -1
  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 +1 -1
  874. package/dist/navbar-centered-menu.cjs +1 -1
  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 +1 -1
  878. package/dist/navbar-dark-icons.cjs +1 -1
  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 +1 -1
  882. package/dist/navbar-dropdown-menu.cjs +1 -1
  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 +1 -1
  886. package/dist/navbar-education-platform.cjs +1 -1
  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 +1 -1
  890. package/dist/navbar-enterprise-mega.cjs +1 -1
  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 +1 -1
  894. package/dist/navbar-feature-grid.cjs +1 -1
  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 +1 -1
  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 +1 -1
  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 +1 -1
  908. package/dist/navbar-mega-menu.cjs +1 -1
  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 +1 -1
  912. package/dist/navbar-multi-column-groups.cjs +1 -1
  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 +1 -1
  916. package/dist/navbar-platform-resources.cjs +1 -1
  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 +1 -1
  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 +1 -1
  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 +1 -1
  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 +1 -1
  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 +1 -1
  934. package/dist/navbar-tabbed-sections.cjs +1 -1
  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 +1 -1
  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 +3593 -2773
  1131. package/dist/registry.js +2373 -1553
  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 +1 -1
  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 +1 -1
  1170. package/dist/services-list-accordion.cjs +1 -1
  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 +1 -1
  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 +1 -1
  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 +1 -1
  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 +7 -2
@@ -1,15 +1,16 @@
1
1
  "use client";
2
- import * as React4 from 'react';
3
- import React4__default, { useId, useRef, useEffect, useMemo, useCallback, useState } from 'react';
2
+ import * as React5 from 'react';
3
+ import React5__default, { useId, useRef, useEffect, useMemo, useCallback, useState } from 'react';
4
4
  import { clsx } from 'clsx';
5
5
  import { twMerge } from 'tailwind-merge';
6
6
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
7
+ import { MapLibre } from '@page-speed/maps';
8
+ import { cva } from 'class-variance-authority';
7
9
  import { AnimatePresence, motion } from 'framer-motion';
8
10
  import { useOnClickOutside } from '@opensite/hooks/useOnClickOutside';
9
11
  import { AnimatePresence as AnimatePresence$1, motion as motion$1 } from 'motion/react';
10
12
  import { Img } from '@page-speed/img';
11
13
  import { Slot } from '@radix-ui/react-slot';
12
- import { cva } from 'class-variance-authority';
13
14
  import * as PopoverPrimitive from '@radix-ui/react-popover';
14
15
  import { Icon } from '@page-speed/icon';
15
16
  import { usePlatformFromUrl } from '@opensite/hooks/usePlatformFromUrl';
@@ -59,7 +60,7 @@ var maxWidthStyles = {
59
60
  "4xl": "max-w-[1536px]",
60
61
  full: "max-w-full"
61
62
  };
62
- var Container = React4__default.forwardRef(
63
+ var Container = React5__default.forwardRef(
63
64
  ({ children, maxWidth = "xl", className, as = "div", ...props }, ref) => {
64
65
  const Component = as;
65
66
  return /* @__PURE__ */ jsx(
@@ -365,7 +366,7 @@ var spacingStyles = {
365
366
  };
366
367
  var predefinedSpacings = ["none", "sm", "md", "lg", "xl", "hero"];
367
368
  var isPredefinedSpacing = (spacing) => predefinedSpacings.includes(spacing);
368
- var Section = React4__default.forwardRef(
369
+ var Section = React5__default.forwardRef(
369
370
  ({
370
371
  id,
371
372
  title,
@@ -426,125 +427,1115 @@ var Section = React4__default.forwardRef(
426
427
  }
427
428
  );
428
429
  Section.displayName = "Section";
429
- var sizeStyles = {
430
- sm: "max-w-md",
431
- md: "max-w-2xl",
432
- lg: "max-w-4xl",
433
- xl: "max-w-5xl",
434
- full: "max-w-7xl",
435
- compact: "max-w-[700px]"
436
- };
437
- var dialogTransition = {
438
- duration: 0.35,
439
- ease: [0.16, 1, 0.3, 1]
440
- };
441
- function AnimatedDialog({
442
- open,
443
- onOpenChange,
444
- title,
445
- eyebrow,
446
- description,
447
- children,
448
- header,
449
- footer,
450
- size = "lg",
451
- className,
452
- contentClassName,
453
- featuredMediaHeader
454
- }) {
455
- const titleId = useId();
456
- const descriptionId = useId();
457
- const containerRef = useRef(null);
458
- useOnClickOutside(containerRef, () => {
459
- if (open) {
460
- onOpenChange(false);
430
+ function normalizePhoneNumber(input) {
431
+ const trimmed = input.trim();
432
+ if (trimmed.toLowerCase().startsWith("tel:")) {
433
+ return trimmed;
434
+ }
435
+ const match = trimmed.match(/^[\s\+\-\(\)]*(\d[\d\s\-\(\)\.]*\d)[\s\-]*(x|ext\.?|extension)?[\s\-]*(\d+)?$/i);
436
+ if (match) {
437
+ const mainNumber = match[1].replace(/[\s\-\(\)\.]/g, "");
438
+ const extension = match[3];
439
+ const normalized = mainNumber.length >= 10 && !trimmed.startsWith("+") ? `+${mainNumber}` : mainNumber;
440
+ const withExtension = extension ? `${normalized};ext=${extension}` : normalized;
441
+ return `tel:${withExtension}`;
442
+ }
443
+ const cleaned = trimmed.replace(/[\s\-\(\)\.]/g, "");
444
+ return `tel:${cleaned}`;
445
+ }
446
+ function normalizeEmail(input) {
447
+ const trimmed = input.trim();
448
+ if (trimmed.toLowerCase().startsWith("mailto:")) {
449
+ return trimmed;
450
+ }
451
+ return `mailto:${trimmed}`;
452
+ }
453
+ function isEmail(input) {
454
+ const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
455
+ return emailRegex.test(input.trim());
456
+ }
457
+ function isPhoneNumber(input) {
458
+ const trimmed = input.trim();
459
+ if (trimmed.toLowerCase().startsWith("tel:")) {
460
+ return true;
461
+ }
462
+ const phoneRegex = /^[\s\+\-\(\)]*\d[\d\s\-\(\)\.]*\d[\s\-]*(x|ext\.?|extension)?[\s\-]*\d*$/i;
463
+ return phoneRegex.test(trimmed);
464
+ }
465
+ function isInternalUrl(href) {
466
+ if (typeof window === "undefined") {
467
+ return href.startsWith("/") && !href.startsWith("//");
468
+ }
469
+ const trimmed = href.trim();
470
+ if (trimmed.startsWith("/") && !trimmed.startsWith("//")) {
471
+ return true;
472
+ }
473
+ try {
474
+ const url = new URL(trimmed, window.location.href);
475
+ const currentOrigin = window.location.origin;
476
+ const normalizeOrigin = (origin) => origin.replace(/^(https?:\/\/)(www\.)?/, "$1");
477
+ return normalizeOrigin(url.origin) === normalizeOrigin(currentOrigin);
478
+ } catch {
479
+ return false;
480
+ }
481
+ }
482
+ function toRelativePath(href) {
483
+ if (typeof window === "undefined") {
484
+ return href;
485
+ }
486
+ const trimmed = href.trim();
487
+ if (trimmed.startsWith("/") && !trimmed.startsWith("//")) {
488
+ return trimmed;
489
+ }
490
+ try {
491
+ const url = new URL(trimmed, window.location.href);
492
+ const currentOrigin = window.location.origin;
493
+ const normalizeOrigin = (origin) => origin.replace(/^(https?:\/\/)(www\.)?/, "$1");
494
+ if (normalizeOrigin(url.origin) === normalizeOrigin(currentOrigin)) {
495
+ return url.pathname + url.search + url.hash;
461
496
  }
462
- });
463
- useEffect(() => {
464
- if (!open) {
465
- return;
497
+ } catch {
498
+ }
499
+ return trimmed;
500
+ }
501
+ function useNavigation({
502
+ href,
503
+ onClick
504
+ } = {}) {
505
+ const linkType = React5.useMemo(() => {
506
+ if (!href || href.trim() === "") {
507
+ return onClick ? "none" : "none";
466
508
  }
467
- const onKeyDown = (event) => {
468
- if (event.key === "Escape") {
469
- onOpenChange(false);
509
+ const trimmed = href.trim();
510
+ if (trimmed.toLowerCase().startsWith("mailto:") || isEmail(trimmed)) {
511
+ return "mailto";
512
+ }
513
+ if (trimmed.toLowerCase().startsWith("tel:") || isPhoneNumber(trimmed)) {
514
+ return "tel";
515
+ }
516
+ if (isInternalUrl(trimmed)) {
517
+ return "internal";
518
+ }
519
+ try {
520
+ new URL(trimmed, typeof window !== "undefined" ? window.location.href : "http://localhost");
521
+ return "external";
522
+ } catch {
523
+ return "internal";
524
+ }
525
+ }, [href, onClick]);
526
+ const normalizedHref = React5.useMemo(() => {
527
+ if (!href || href.trim() === "") {
528
+ return void 0;
529
+ }
530
+ const trimmed = href.trim();
531
+ switch (linkType) {
532
+ case "tel":
533
+ return normalizePhoneNumber(trimmed);
534
+ case "mailto":
535
+ return normalizeEmail(trimmed);
536
+ case "internal":
537
+ return toRelativePath(trimmed);
538
+ case "external":
539
+ return trimmed;
540
+ default:
541
+ return trimmed;
542
+ }
543
+ }, [href, linkType]);
544
+ const target = React5.useMemo(() => {
545
+ switch (linkType) {
546
+ case "external":
547
+ return "_blank";
548
+ case "internal":
549
+ return "_self";
550
+ case "mailto":
551
+ case "tel":
552
+ return void 0;
553
+ default:
554
+ return void 0;
555
+ }
556
+ }, [linkType]);
557
+ const rel = React5.useMemo(() => {
558
+ if (linkType === "external") {
559
+ return "noopener noreferrer";
560
+ }
561
+ return void 0;
562
+ }, [linkType]);
563
+ const isExternal = linkType === "external";
564
+ const isInternal = linkType === "internal";
565
+ const shouldUseRouter = isInternal && typeof normalizedHref === "string" && normalizedHref.startsWith("/");
566
+ const handleClick = React5.useCallback(
567
+ (event) => {
568
+ if (onClick) {
569
+ try {
570
+ onClick(event);
571
+ } catch (error) {
572
+ console.error("Error in user onClick handler:", error);
573
+ }
470
574
  }
471
- };
472
- const previousOverflow = document.body.style.overflow;
473
- document.body.style.overflow = "hidden";
474
- window.addEventListener("keydown", onKeyDown);
475
- return () => {
476
- document.body.style.overflow = previousOverflow;
477
- window.removeEventListener("keydown", onKeyDown);
478
- };
479
- }, [open, onOpenChange]);
480
- return /* @__PURE__ */ jsx(AnimatePresence, { children: open ? /* @__PURE__ */ jsxs("div", { className: "fixed inset-0 z-50 h-screen overflow-y-auto", children: [
481
- /* @__PURE__ */ jsx(
482
- motion.div,
483
- {
484
- initial: { opacity: 0 },
485
- animate: { opacity: 1, transition: dialogTransition },
486
- exit: { opacity: 0, transition: dialogTransition },
487
- className: "fixed inset-0 h-full w-full bg-foreground/80 backdrop-blur-lg"
575
+ if (event.defaultPrevented) {
576
+ return;
488
577
  }
489
- ),
490
- /* @__PURE__ */ jsxs(
491
- motion.div,
492
- {
493
- initial: { opacity: 0, y: 24, scale: 0.98 },
494
- animate: {
495
- opacity: 1,
496
- y: 0,
497
- scale: 1,
498
- transition: dialogTransition
499
- },
500
- exit: {
501
- opacity: 0,
502
- y: 12,
503
- scale: 0.98,
504
- transition: dialogTransition
505
- },
506
- ref: containerRef,
507
- role: "dialog",
508
- "aria-modal": "true",
509
- "aria-labelledby": title ? titleId : void 0,
510
- "aria-describedby": description ? descriptionId : void 0,
511
- className: cn(
512
- "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",
513
- size === "compact" ? "p-0 md:my-20" : "p-6 md:my-20 md:p-12",
514
- sizeStyles[size],
515
- className
516
- ),
517
- children: [
518
- featuredMediaHeader ? /* @__PURE__ */ jsxs("div", { className: "relative overflow-hidden", children: [
519
- featuredMediaHeader,
520
- /* @__PURE__ */ jsx(
521
- "button",
522
- {
523
- type: "button",
524
- "aria-label": "Close dialog",
525
- 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",
526
- onClick: () => onOpenChange(false),
527
- children: /* @__PURE__ */ jsx(
528
- "svg",
529
- {
530
- xmlns: "http://www.w3.org/2000/svg",
531
- width: "24",
532
- height: "24",
533
- viewBox: "0 0 24 24",
534
- children: /* @__PURE__ */ jsx(
535
- "path",
536
- {
537
- fill: "none",
538
- stroke: "currentColor",
539
- strokeLinecap: "round",
540
- strokeLinejoin: "round",
541
- strokeWidth: "2",
542
- d: "M18 6L6 18M6 6l12 12"
543
- }
544
- )
545
- }
546
- )
547
- }
578
+ if (shouldUseRouter && normalizedHref && event.button === 0 && // left-click only
579
+ !event.metaKey && !event.altKey && !event.ctrlKey && !event.shiftKey) {
580
+ if (typeof window !== "undefined") {
581
+ const handler = window.__opensiteNavigationHandler;
582
+ if (typeof handler === "function") {
583
+ try {
584
+ const handled = handler(normalizedHref, event.nativeEvent || event);
585
+ if (handled !== false) {
586
+ event.preventDefault();
587
+ }
588
+ } catch (error) {
589
+ console.error("Error in navigation handler:", error);
590
+ }
591
+ }
592
+ }
593
+ }
594
+ },
595
+ [onClick, shouldUseRouter, normalizedHref]
596
+ );
597
+ return {
598
+ linkType,
599
+ normalizedHref,
600
+ target,
601
+ rel,
602
+ isExternal,
603
+ isInternal,
604
+ shouldUseRouter,
605
+ handleClick
606
+ };
607
+ }
608
+ var baseStyles = [
609
+ // Layout
610
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap shrink-0",
611
+ // Typography - using CSS variables with sensible defaults
612
+ "font-[var(--button-font-family,inherit)]",
613
+ "font-[var(--button-font-weight,500)]",
614
+ "tracking-[var(--button-letter-spacing,0)]",
615
+ "leading-[var(--button-line-height,1.25)]",
616
+ "[text-transform:var(--button-text-transform,none)]",
617
+ "text-sm",
618
+ // Border radius
619
+ "rounded-[var(--button-radius,var(--radius,0.375rem))]",
620
+ // Smooth transition - using [transition:...] to set full shorthand property (not just transition-property)
621
+ "[transition:var(--button-transition,all_250ms_cubic-bezier(0.4,0,0.2,1))]",
622
+ // Box shadow (master level) - using [box-shadow:...] for complex multi-value shadows
623
+ "[box-shadow:var(--button-shadow,none)]",
624
+ "hover:[box-shadow:var(--button-shadow-hover,var(--button-shadow,none))]",
625
+ // Disabled state
626
+ "disabled:pointer-events-none disabled:opacity-50",
627
+ // SVG handling
628
+ "[&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0",
629
+ // Focus styles
630
+ "outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
631
+ // Invalid state
632
+ "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive"
633
+ ].join(" ");
634
+ var buttonVariants = cva(baseStyles, {
635
+ variants: {
636
+ variant: {
637
+ // Default (Primary) variant - full customization
638
+ default: [
639
+ "bg-[var(--button-default-bg,hsl(var(--primary)))]",
640
+ "text-[var(--button-default-fg,hsl(var(--primary-foreground)))]",
641
+ "border-[length:var(--button-default-border-width,0px)]",
642
+ "border-[color:var(--button-default-border,transparent)]",
643
+ "[box-shadow:var(--button-default-shadow,var(--button-shadow,none))]",
644
+ "hover:bg-[var(--button-default-hover-bg,hsl(var(--primary)/0.9))]",
645
+ "hover:text-[var(--button-default-hover-fg,var(--button-default-fg,hsl(var(--primary-foreground))))]",
646
+ "hover:border-[color:var(--button-default-hover-border,var(--button-default-border,transparent))]",
647
+ "hover:[box-shadow:var(--button-default-shadow-hover,var(--button-shadow-hover,var(--button-default-shadow,var(--button-shadow,none))))]"
648
+ ].join(" "),
649
+ // Destructive variant - full customization
650
+ destructive: [
651
+ "bg-[var(--button-destructive-bg,hsl(var(--destructive)))]",
652
+ "text-[var(--button-destructive-fg,white)]",
653
+ "border-[length:var(--button-destructive-border-width,0px)]",
654
+ "border-[color:var(--button-destructive-border,transparent)]",
655
+ "[box-shadow:var(--button-destructive-shadow,var(--button-shadow,none))]",
656
+ "hover:bg-[var(--button-destructive-hover-bg,hsl(var(--destructive)/0.9))]",
657
+ "hover:text-[var(--button-destructive-hover-fg,var(--button-destructive-fg,white))]",
658
+ "hover:border-[color:var(--button-destructive-hover-border,var(--button-destructive-border,transparent))]",
659
+ "hover:[box-shadow:var(--button-destructive-shadow-hover,var(--button-shadow-hover,var(--button-destructive-shadow,var(--button-shadow,none))))]",
660
+ "focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40",
661
+ "dark:bg-destructive/60"
662
+ ].join(" "),
663
+ // Outline variant - full customization with proper border handling
664
+ outline: [
665
+ "bg-[var(--button-outline-bg,hsl(var(--background)))]",
666
+ "text-[var(--button-outline-fg,inherit)]",
667
+ "border-[length:var(--button-outline-border-width,1px)]",
668
+ "border-[color:var(--button-outline-border,hsl(var(--border)))]",
669
+ "[box-shadow:var(--button-outline-shadow,var(--button-shadow,0_1px_2px_0_rgb(0_0_0/0.05)))]",
670
+ "hover:bg-[var(--button-outline-hover-bg,hsl(var(--accent)))]",
671
+ "hover:text-[var(--button-outline-hover-fg,hsl(var(--accent-foreground)))]",
672
+ "hover:border-[color:var(--button-outline-hover-border,var(--button-outline-border,hsl(var(--border))))]",
673
+ "hover:[box-shadow:var(--button-outline-shadow-hover,var(--button-shadow-hover,var(--button-outline-shadow,var(--button-shadow,none))))]",
674
+ "dark:bg-input/30 dark:border-input dark:hover:bg-input/50"
675
+ ].join(" "),
676
+ // Secondary variant - full customization
677
+ secondary: [
678
+ "bg-[var(--button-secondary-bg,hsl(var(--secondary)))]",
679
+ "text-[var(--button-secondary-fg,hsl(var(--secondary-foreground)))]",
680
+ "border-[length:var(--button-secondary-border-width,0px)]",
681
+ "border-[color:var(--button-secondary-border,transparent)]",
682
+ "[box-shadow:var(--button-secondary-shadow,var(--button-shadow,none))]",
683
+ "hover:bg-[var(--button-secondary-hover-bg,hsl(var(--secondary)/0.8))]",
684
+ "hover:text-[var(--button-secondary-hover-fg,var(--button-secondary-fg,hsl(var(--secondary-foreground))))]",
685
+ "hover:border-[color:var(--button-secondary-hover-border,var(--button-secondary-border,transparent))]",
686
+ "hover:[box-shadow:var(--button-secondary-shadow-hover,var(--button-shadow-hover,var(--button-secondary-shadow,var(--button-shadow,none))))]"
687
+ ].join(" "),
688
+ // Ghost variant - full customization
689
+ ghost: [
690
+ "bg-[var(--button-ghost-bg,transparent)]",
691
+ "text-[var(--button-ghost-fg,inherit)]",
692
+ "border-[length:var(--button-ghost-border-width,0px)]",
693
+ "border-[color:var(--button-ghost-border,transparent)]",
694
+ "[box-shadow:var(--button-ghost-shadow,var(--button-shadow,none))]",
695
+ "hover:bg-[var(--button-ghost-hover-bg,hsl(var(--accent)))]",
696
+ "hover:text-[var(--button-ghost-hover-fg,hsl(var(--accent-foreground)))]",
697
+ "hover:border-[color:var(--button-ghost-hover-border,var(--button-ghost-border,transparent))]",
698
+ "hover:[box-shadow:var(--button-ghost-shadow-hover,var(--button-shadow-hover,var(--button-ghost-shadow,var(--button-shadow,none))))]",
699
+ "dark:hover:bg-accent/50"
700
+ ].join(" "),
701
+ // Link variant - full customization
702
+ link: [
703
+ "bg-[var(--button-link-bg,transparent)]",
704
+ "text-[var(--button-link-fg,hsl(var(--primary)))]",
705
+ "border-[length:var(--button-link-border-width,0px)]",
706
+ "border-[color:var(--button-link-border,transparent)]",
707
+ "[box-shadow:var(--button-link-shadow,none)]",
708
+ "hover:bg-[var(--button-link-hover-bg,transparent)]",
709
+ "hover:text-[var(--button-link-hover-fg,var(--button-link-fg,hsl(var(--primary))))]",
710
+ "hover:[box-shadow:var(--button-link-shadow-hover,none)]",
711
+ "underline-offset-4 hover:underline"
712
+ ].join(" ")
713
+ },
714
+ size: {
715
+ default: [
716
+ "h-[var(--button-height-md,2.25rem)]",
717
+ "px-[var(--button-padding-x-md,1rem)]",
718
+ "py-[var(--button-padding-y-md,0.5rem)]",
719
+ "has-[>svg]:px-[calc(var(--button-padding-x-md,1rem)*0.75)]"
720
+ ].join(" "),
721
+ sm: [
722
+ "h-[var(--button-height-sm,2rem)]",
723
+ "px-[var(--button-padding-x-sm,0.75rem)]",
724
+ "py-[var(--button-padding-y-sm,0.25rem)]",
725
+ "gap-1.5",
726
+ "has-[>svg]:px-[calc(var(--button-padding-x-sm,0.75rem)*0.83)]"
727
+ ].join(" "),
728
+ md: [
729
+ "h-[var(--button-height-md,2.25rem)]",
730
+ "px-[var(--button-padding-x-md,1rem)]",
731
+ "py-[var(--button-padding-y-md,0.5rem)]",
732
+ "has-[>svg]:px-[calc(var(--button-padding-x-md,1rem)*0.75)]"
733
+ ].join(" "),
734
+ lg: [
735
+ "h-[var(--button-height-lg,2.5rem)]",
736
+ "px-[var(--button-padding-x-lg,1.5rem)]",
737
+ "py-[var(--button-padding-y-lg,0.5rem)]",
738
+ "has-[>svg]:px-[calc(var(--button-padding-x-lg,1.5rem)*0.67)]"
739
+ ].join(" "),
740
+ icon: "size-[var(--button-height-md,2.25rem)]",
741
+ "icon-sm": "size-[var(--button-height-sm,2rem)]",
742
+ "icon-lg": "size-[var(--button-height-lg,2.5rem)]"
743
+ }
744
+ },
745
+ defaultVariants: {
746
+ variant: "default",
747
+ size: "default"
748
+ }
749
+ });
750
+ var Pressable = React5.forwardRef(
751
+ ({
752
+ children,
753
+ className,
754
+ href,
755
+ onClick,
756
+ variant,
757
+ size,
758
+ asButton = false,
759
+ fallbackComponentType = "span",
760
+ componentType,
761
+ "aria-label": ariaLabel,
762
+ "aria-describedby": ariaDescribedby,
763
+ id,
764
+ ...props
765
+ }, ref) => {
766
+ const navigation = useNavigation({ href, onClick });
767
+ const {
768
+ normalizedHref,
769
+ target,
770
+ rel,
771
+ linkType,
772
+ isInternal,
773
+ handleClick
774
+ } = navigation;
775
+ const shouldRenderLink = normalizedHref && linkType !== "none";
776
+ const shouldRenderButton = !shouldRenderLink && onClick;
777
+ const effectiveComponentType = componentType || (shouldRenderLink ? "a" : shouldRenderButton ? "button" : fallbackComponentType);
778
+ const finalComponentType = isInternal && shouldRenderLink ? "a" : effectiveComponentType;
779
+ const shouldApplyButtonStyles = asButton || variant || size;
780
+ const combinedClassName = cn(
781
+ shouldApplyButtonStyles && buttonVariants({ variant, size }),
782
+ className
783
+ );
784
+ const dataProps = Object.fromEntries(
785
+ Object.entries(props).filter(([key]) => key.startsWith("data-"))
786
+ );
787
+ const buttonDataAttributes = shouldApplyButtonStyles ? {
788
+ "data-slot": "button",
789
+ "data-variant": variant ?? "default",
790
+ "data-size": size ?? "default"
791
+ } : {};
792
+ const commonProps = {
793
+ className: combinedClassName,
794
+ onClick: handleClick,
795
+ "aria-label": ariaLabel,
796
+ "aria-describedby": ariaDescribedby,
797
+ id,
798
+ ...dataProps,
799
+ ...buttonDataAttributes
800
+ };
801
+ if (finalComponentType === "a" && shouldRenderLink) {
802
+ return /* @__PURE__ */ jsx(
803
+ "a",
804
+ {
805
+ ref,
806
+ href: normalizedHref,
807
+ target,
808
+ rel,
809
+ ...commonProps,
810
+ ...props,
811
+ children
812
+ }
813
+ );
814
+ }
815
+ if (finalComponentType === "button") {
816
+ return /* @__PURE__ */ jsx(
817
+ "button",
818
+ {
819
+ ref,
820
+ type: props.type || "button",
821
+ ...commonProps,
822
+ ...props,
823
+ children
824
+ }
825
+ );
826
+ }
827
+ if (finalComponentType === "div") {
828
+ return /* @__PURE__ */ jsx(
829
+ "div",
830
+ {
831
+ ref,
832
+ ...commonProps,
833
+ children
834
+ }
835
+ );
836
+ }
837
+ return /* @__PURE__ */ jsx(
838
+ "span",
839
+ {
840
+ ref,
841
+ ...commonProps,
842
+ children
843
+ }
844
+ );
845
+ }
846
+ );
847
+ Pressable.displayName = "Pressable";
848
+ var PANEL_POSITION_CLASS = {
849
+ "top-left": "left-4 top-4",
850
+ "top-right": "right-4 top-4",
851
+ "bottom-left": "bottom-4 left-4",
852
+ "bottom-right": "bottom-4 right-4"
853
+ };
854
+ var DEFAULT_VIEW_STATE = {
855
+ latitude: 39.5,
856
+ longitude: -98.35,
857
+ zoom: 3
858
+ };
859
+ var VIDEO_FILE_EXTENSION_REGEX = /\.(mp4|webm|ogg|mov|m4v|m3u8)(\?.*)?$/i;
860
+ function resolveMediaType(item) {
861
+ if (item.type) {
862
+ return item.type;
863
+ }
864
+ return VIDEO_FILE_EXTENSION_REGEX.test(item.src) ? "video" : "image";
865
+ }
866
+ function normalizeId(value, fallback) {
867
+ if (value === null || value === void 0 || value === "") {
868
+ return fallback;
869
+ }
870
+ return String(value);
871
+ }
872
+ function buildClusterCenter(markers) {
873
+ if (!markers.length) {
874
+ return null;
875
+ }
876
+ const total = markers.reduce(
877
+ (accumulator, marker) => ({
878
+ latitude: accumulator.latitude + marker.latitude,
879
+ longitude: accumulator.longitude + marker.longitude
880
+ }),
881
+ { latitude: 0, longitude: 0 }
882
+ );
883
+ return {
884
+ latitude: total.latitude / markers.length,
885
+ longitude: total.longitude / markers.length
886
+ };
887
+ }
888
+ function resolveActionKey(action, index) {
889
+ if (typeof action.label === "string" && action.label.trim().length > 0) {
890
+ return `label:${action.label}:${index}`;
891
+ }
892
+ if (action.href) {
893
+ return `href:${action.href}:${index}`;
894
+ }
895
+ return `action:${index}`;
896
+ }
897
+ function MarkerActions({ actions }) {
898
+ if (!actions || actions.length === 0) {
899
+ return null;
900
+ }
901
+ return /* @__PURE__ */ jsx("div", { className: "mt-4 flex flex-wrap gap-2", children: actions.map((action, index) => {
902
+ const {
903
+ label,
904
+ icon,
905
+ iconAfter,
906
+ children,
907
+ href,
908
+ onClick,
909
+ className: actionClassName,
910
+ variant,
911
+ size,
912
+ asButton,
913
+ ...rest
914
+ } = action;
915
+ return /* @__PURE__ */ jsx(
916
+ Pressable,
917
+ {
918
+ href,
919
+ onClick,
920
+ variant: variant ?? (index === 0 ? "default" : "outline"),
921
+ size: size ?? "sm",
922
+ asButton: asButton ?? true,
923
+ className: cn("inline-flex items-center gap-2", actionClassName),
924
+ ...rest,
925
+ children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
926
+ icon,
927
+ label,
928
+ iconAfter
929
+ ] })
930
+ },
931
+ resolveActionKey(action, index)
932
+ );
933
+ }) });
934
+ }
935
+ function MarkerMediaCarousel({ mediaItems }) {
936
+ const [activeIndex, setActiveIndex] = React5.useState(0);
937
+ const totalItems = mediaItems.length;
938
+ React5.useEffect(() => {
939
+ setActiveIndex(0);
940
+ }, [mediaItems]);
941
+ const activeMediaItem = mediaItems[activeIndex];
942
+ const mediaType = resolveMediaType(activeMediaItem);
943
+ return /* @__PURE__ */ jsxs("div", { className: "relative border-b border-border/60 bg-muted/40", children: [
944
+ /* @__PURE__ */ jsx("div", { className: "relative h-44 w-full overflow-hidden", children: mediaType === "video" ? /* @__PURE__ */ jsx(
945
+ "video",
946
+ {
947
+ className: "h-full w-full object-cover",
948
+ controls: true,
949
+ preload: "metadata",
950
+ poster: activeMediaItem.poster,
951
+ children: /* @__PURE__ */ jsx("source", { src: activeMediaItem.src })
952
+ }
953
+ ) : /* @__PURE__ */ jsx(
954
+ "img",
955
+ {
956
+ src: activeMediaItem.src,
957
+ alt: activeMediaItem.alt ?? "Map marker media",
958
+ className: "h-full w-full object-cover",
959
+ loading: "lazy"
960
+ }
961
+ ) }),
962
+ totalItems > 1 ? /* @__PURE__ */ jsxs(Fragment, { children: [
963
+ /* @__PURE__ */ jsx(
964
+ "button",
965
+ {
966
+ type: "button",
967
+ "aria-label": "Show previous media",
968
+ 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",
969
+ onClick: () => {
970
+ setActiveIndex((current) => (current - 1 + totalItems) % totalItems);
971
+ },
972
+ children: "<"
973
+ }
974
+ ),
975
+ /* @__PURE__ */ jsx(
976
+ "button",
977
+ {
978
+ type: "button",
979
+ "aria-label": "Show next media",
980
+ 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",
981
+ onClick: () => {
982
+ setActiveIndex((current) => (current + 1) % totalItems);
983
+ },
984
+ children: ">"
985
+ }
986
+ ),
987
+ /* @__PURE__ */ jsx("div", { className: "absolute bottom-2 left-1/2 flex -translate-x-1/2 items-center gap-1.5", children: mediaItems.map((item, index) => /* @__PURE__ */ jsx(
988
+ "button",
989
+ {
990
+ type: "button",
991
+ "aria-label": `Show media item ${index + 1}`,
992
+ className: cn(
993
+ "h-2 rounded-full transition-all",
994
+ index === activeIndex ? "w-6 bg-white" : "w-2 bg-white/70 hover:bg-white/90"
995
+ ),
996
+ onClick: () => setActiveIndex(index)
997
+ },
998
+ normalizeId(item.id, `media-dot-${index}`)
999
+ )) })
1000
+ ] }) : null
1001
+ ] });
1002
+ }
1003
+ function getMarkerTitle(marker, markerIndex) {
1004
+ if (marker.title !== void 0 && marker.title !== null) {
1005
+ return marker.title;
1006
+ }
1007
+ if (marker.label !== void 0 && marker.label !== null) {
1008
+ return marker.label;
1009
+ }
1010
+ return `Location ${markerIndex + 1}`;
1011
+ }
1012
+ function GeoMap({
1013
+ className,
1014
+ mapWrapperClassName,
1015
+ mapClassName,
1016
+ panelClassName,
1017
+ panelPosition = "top-left",
1018
+ stadiaApiKey = "",
1019
+ mapStyle = "osm-bright",
1020
+ styleUrl,
1021
+ mapLibreCssHref,
1022
+ markers = [],
1023
+ clusters = [],
1024
+ viewState,
1025
+ defaultViewState,
1026
+ onViewStateChange,
1027
+ onMapClick,
1028
+ onMarkerDrag,
1029
+ showNavigationControl = true,
1030
+ showGeolocateControl = false,
1031
+ navigationControlPosition = "top-right",
1032
+ geolocateControlPosition = "top-left",
1033
+ flyToOptions,
1034
+ markerFocusZoom = 14,
1035
+ clusterFocusZoom = 5,
1036
+ selectedMarkerId,
1037
+ initialSelectedMarkerId,
1038
+ onSelectionChange,
1039
+ clearSelectionOnMapClick = true,
1040
+ mapChildren
1041
+ }) {
1042
+ const normalizedStandaloneMarkers = React5.useMemo(
1043
+ () => markers.map((marker, index) => ({
1044
+ ...marker,
1045
+ id: normalizeId(marker.id, `marker-${index}`)
1046
+ })),
1047
+ [markers]
1048
+ );
1049
+ const normalizedClusters = React5.useMemo(() => {
1050
+ const results = [];
1051
+ clusters.forEach((cluster, clusterIndex) => {
1052
+ const clusterId = normalizeId(cluster.id, `cluster-${clusterIndex}`);
1053
+ const normalizedClusterMarkers = cluster.markers.map(
1054
+ (marker, markerIndex) => ({
1055
+ ...marker,
1056
+ id: normalizeId(marker.id, `${clusterId}-marker-${markerIndex}`),
1057
+ clusterId
1058
+ })
1059
+ );
1060
+ const clusterCenter = cluster.latitude !== void 0 && cluster.longitude !== void 0 ? { latitude: cluster.latitude, longitude: cluster.longitude } : buildClusterCenter(normalizedClusterMarkers);
1061
+ if (!clusterCenter) {
1062
+ return;
1063
+ }
1064
+ results.push({
1065
+ ...cluster,
1066
+ id: clusterId,
1067
+ latitude: clusterCenter.latitude,
1068
+ longitude: clusterCenter.longitude,
1069
+ markers: normalizedClusterMarkers
1070
+ });
1071
+ });
1072
+ return results;
1073
+ }, [clusters]);
1074
+ const markerLookup = React5.useMemo(() => {
1075
+ const lookup = /* @__PURE__ */ new Map();
1076
+ normalizedStandaloneMarkers.forEach((marker) => {
1077
+ lookup.set(marker.id, marker);
1078
+ });
1079
+ normalizedClusters.forEach((cluster) => {
1080
+ cluster.markers.forEach((marker) => {
1081
+ lookup.set(marker.id, marker);
1082
+ });
1083
+ });
1084
+ return lookup;
1085
+ }, [normalizedClusters, normalizedStandaloneMarkers]);
1086
+ const clusterLookup = React5.useMemo(() => {
1087
+ const lookup = /* @__PURE__ */ new Map();
1088
+ normalizedClusters.forEach((cluster) => {
1089
+ lookup.set(cluster.id, cluster);
1090
+ });
1091
+ return lookup;
1092
+ }, [normalizedClusters]);
1093
+ const firstCoordinate = React5.useMemo(() => {
1094
+ if (normalizedStandaloneMarkers.length > 0) {
1095
+ const firstStandaloneMarker = normalizedStandaloneMarkers[0];
1096
+ return {
1097
+ latitude: firstStandaloneMarker.latitude,
1098
+ longitude: firstStandaloneMarker.longitude
1099
+ };
1100
+ }
1101
+ if (normalizedClusters.length > 0) {
1102
+ const firstCluster = normalizedClusters[0];
1103
+ return {
1104
+ latitude: firstCluster.latitude,
1105
+ longitude: firstCluster.longitude
1106
+ };
1107
+ }
1108
+ return {
1109
+ latitude: DEFAULT_VIEW_STATE.latitude,
1110
+ longitude: DEFAULT_VIEW_STATE.longitude
1111
+ };
1112
+ }, [normalizedClusters, normalizedStandaloneMarkers]);
1113
+ const [uncontrolledViewState, setUncontrolledViewState] = React5.useState({
1114
+ latitude: defaultViewState?.latitude ?? firstCoordinate.latitude,
1115
+ longitude: defaultViewState?.longitude ?? firstCoordinate.longitude,
1116
+ zoom: defaultViewState?.zoom ?? DEFAULT_VIEW_STATE.zoom
1117
+ });
1118
+ const isControlledViewState = viewState !== void 0;
1119
+ const resolvedViewState = isControlledViewState ? viewState : uncontrolledViewState;
1120
+ const applyViewState = React5.useCallback(
1121
+ (nextState) => {
1122
+ if (!isControlledViewState) {
1123
+ setUncontrolledViewState((current) => ({ ...current, ...nextState }));
1124
+ }
1125
+ onViewStateChange?.(nextState);
1126
+ },
1127
+ [isControlledViewState, onViewStateChange]
1128
+ );
1129
+ const [selection, setSelection] = React5.useState(() => {
1130
+ if (initialSelectedMarkerId !== void 0 && initialSelectedMarkerId !== null) {
1131
+ return {
1132
+ type: "marker",
1133
+ markerId: String(initialSelectedMarkerId)
1134
+ };
1135
+ }
1136
+ return { type: "none" };
1137
+ });
1138
+ React5.useEffect(() => {
1139
+ if (selectedMarkerId === void 0 || selectedMarkerId === null) {
1140
+ return;
1141
+ }
1142
+ setSelection({
1143
+ type: "marker",
1144
+ markerId: String(selectedMarkerId)
1145
+ });
1146
+ }, [selectedMarkerId]);
1147
+ const selectedMarker = selection.markerId ? markerLookup.get(selection.markerId) : void 0;
1148
+ const selectedCluster = selection.clusterId ? clusterLookup.get(selection.clusterId) : void 0;
1149
+ React5.useEffect(() => {
1150
+ if (selection.type === "marker" && selection.markerId && !selectedMarker) {
1151
+ setSelection({ type: "none" });
1152
+ onSelectionChange?.({ type: "none" });
1153
+ }
1154
+ }, [onSelectionChange, selectedMarker, selection]);
1155
+ const emitSelectionChange = React5.useCallback(
1156
+ (nextSelection) => {
1157
+ if (nextSelection.type === "none") {
1158
+ onSelectionChange?.({ type: "none" });
1159
+ return;
1160
+ }
1161
+ if (nextSelection.type === "marker") {
1162
+ const parentCluster = nextSelection.marker.clusterId ? clusterLookup.get(nextSelection.marker.clusterId) : void 0;
1163
+ onSelectionChange?.({
1164
+ type: "marker",
1165
+ marker: nextSelection.marker,
1166
+ cluster: parentCluster
1167
+ });
1168
+ return;
1169
+ }
1170
+ onSelectionChange?.({
1171
+ type: "cluster",
1172
+ cluster: nextSelection.cluster
1173
+ });
1174
+ },
1175
+ [clusterLookup, onSelectionChange]
1176
+ );
1177
+ const selectMarker = React5.useCallback(
1178
+ (marker) => {
1179
+ setSelection({
1180
+ type: "marker",
1181
+ markerId: marker.id,
1182
+ clusterId: marker.clusterId
1183
+ });
1184
+ applyViewState({
1185
+ latitude: marker.latitude,
1186
+ longitude: marker.longitude,
1187
+ zoom: markerFocusZoom
1188
+ });
1189
+ emitSelectionChange({ type: "marker", marker });
1190
+ },
1191
+ [applyViewState, emitSelectionChange, markerFocusZoom]
1192
+ );
1193
+ const selectCluster = React5.useCallback(
1194
+ (cluster) => {
1195
+ setSelection({
1196
+ type: "cluster",
1197
+ clusterId: cluster.id
1198
+ });
1199
+ applyViewState({
1200
+ latitude: cluster.latitude,
1201
+ longitude: cluster.longitude,
1202
+ zoom: clusterFocusZoom
1203
+ });
1204
+ emitSelectionChange({ type: "cluster", cluster });
1205
+ },
1206
+ [applyViewState, clusterFocusZoom, emitSelectionChange]
1207
+ );
1208
+ const clearSelection = React5.useCallback(() => {
1209
+ setSelection({ type: "none" });
1210
+ emitSelectionChange({ type: "none" });
1211
+ }, [emitSelectionChange]);
1212
+ const mapMarkers = React5.useMemo(() => {
1213
+ const resolvedMarkers = [];
1214
+ normalizedClusters.forEach((cluster) => {
1215
+ const isSelected = selection.type === "cluster" && selection.clusterId === cluster.id;
1216
+ resolvedMarkers.push({
1217
+ id: `cluster-pin:${cluster.id}`,
1218
+ latitude: cluster.latitude,
1219
+ longitude: cluster.longitude,
1220
+ element: () => {
1221
+ const customMarkerElement = cluster.markerElement;
1222
+ const markerBody = typeof customMarkerElement === "function" ? customMarkerElement({
1223
+ isSelected,
1224
+ count: cluster.markers.length
1225
+ }) : customMarkerElement;
1226
+ return /* @__PURE__ */ jsx(
1227
+ "button",
1228
+ {
1229
+ type: "button",
1230
+ className: "group cursor-pointer",
1231
+ onClick: (event) => {
1232
+ event.preventDefault();
1233
+ event.stopPropagation();
1234
+ selectCluster(cluster);
1235
+ },
1236
+ "aria-label": `View ${cluster.markers.length} clustered locations`,
1237
+ children: markerBody ?? /* @__PURE__ */ jsx(
1238
+ "span",
1239
+ {
1240
+ className: cn(
1241
+ "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",
1242
+ isSelected && "ring-4 ring-primary/30",
1243
+ cluster.pinClassName
1244
+ ),
1245
+ style: {
1246
+ backgroundColor: cluster.pinColor ?? "var(--foreground)"
1247
+ },
1248
+ children: cluster.markers.length
1249
+ }
1250
+ )
1251
+ }
1252
+ );
1253
+ }
1254
+ });
1255
+ });
1256
+ normalizedStandaloneMarkers.forEach((marker) => {
1257
+ const isSelected = selection.type === "marker" && selection.markerId === marker.id;
1258
+ const customMarkerElement = marker.markerElement;
1259
+ resolvedMarkers.push({
1260
+ id: marker.id,
1261
+ latitude: marker.latitude,
1262
+ longitude: marker.longitude,
1263
+ draggable: marker.draggable,
1264
+ element: () => {
1265
+ const markerBody = typeof customMarkerElement === "function" ? customMarkerElement({ isSelected }) : customMarkerElement;
1266
+ return /* @__PURE__ */ jsx(
1267
+ "button",
1268
+ {
1269
+ type: "button",
1270
+ className: "group cursor-pointer",
1271
+ onClick: (event) => {
1272
+ event.preventDefault();
1273
+ event.stopPropagation();
1274
+ selectMarker(marker);
1275
+ },
1276
+ "aria-label": typeof marker.title === "string" ? `View ${marker.title}` : "View location details",
1277
+ children: markerBody ?? /* @__PURE__ */ jsx(
1278
+ "span",
1279
+ {
1280
+ className: cn(
1281
+ "inline-flex h-4 w-4 rounded-full border-2 border-white shadow-md transition-transform duration-200 group-hover:scale-110",
1282
+ isSelected && "h-5 w-5 ring-4 ring-primary/30",
1283
+ marker.pinClassName
1284
+ ),
1285
+ style: {
1286
+ backgroundColor: marker.pinColor ?? "#f43f5e"
1287
+ }
1288
+ }
1289
+ )
1290
+ }
1291
+ );
1292
+ }
1293
+ });
1294
+ });
1295
+ return resolvedMarkers;
1296
+ }, [normalizedClusters, normalizedStandaloneMarkers, selectCluster, selectMarker, selection]);
1297
+ const renderMarkerPanel = () => {
1298
+ if (selectedMarker) {
1299
+ const markerMediaItems = selectedMarker.mediaItems ?? [];
1300
+ return /* @__PURE__ */ jsxs(
1301
+ "div",
1302
+ {
1303
+ className: cn(
1304
+ "w-[min(24rem,calc(100vw-2rem))] overflow-hidden rounded-xl border border-border bg-background shadow-2xl",
1305
+ panelClassName
1306
+ ),
1307
+ children: [
1308
+ markerMediaItems.length > 0 ? /* @__PURE__ */ jsx(MarkerMediaCarousel, { mediaItems: markerMediaItems }) : null,
1309
+ /* @__PURE__ */ jsxs("div", { className: "space-y-2 p-4", children: [
1310
+ /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between gap-3", children: [
1311
+ /* @__PURE__ */ jsxs("div", { className: "min-w-0 space-y-1", children: [
1312
+ selectedMarker.eyebrow ? /* @__PURE__ */ jsx("p", { className: "text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: selectedMarker.eyebrow }) : null,
1313
+ /* @__PURE__ */ jsx("div", { className: "text-base font-semibold leading-tight text-foreground", children: selectedMarker.title ?? selectedMarker.label ?? "Location" })
1314
+ ] }),
1315
+ /* @__PURE__ */ jsx(
1316
+ "button",
1317
+ {
1318
+ type: "button",
1319
+ "aria-label": "Close marker details",
1320
+ 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",
1321
+ onClick: clearSelection,
1322
+ children: "x"
1323
+ }
1324
+ )
1325
+ ] }),
1326
+ selectedMarker.summary ? /* @__PURE__ */ jsx("div", { className: "text-sm leading-relaxed text-muted-foreground", children: selectedMarker.summary }) : null,
1327
+ selectedMarker.locationLine ? /* @__PURE__ */ jsx("div", { className: "text-sm font-medium text-foreground", children: selectedMarker.locationLine }) : null,
1328
+ selectedMarker.hoursLine ? /* @__PURE__ */ jsx("div", { className: "text-sm text-muted-foreground", children: selectedMarker.hoursLine }) : null,
1329
+ selectedMarker.markerContentComponent ? /* @__PURE__ */ jsx("div", { className: "text-sm", children: selectedMarker.markerContentComponent }) : null,
1330
+ /* @__PURE__ */ jsx(MarkerActions, { actions: selectedMarker.actions })
1331
+ ] })
1332
+ ]
1333
+ }
1334
+ );
1335
+ }
1336
+ if (selectedCluster) {
1337
+ return /* @__PURE__ */ jsxs(
1338
+ "div",
1339
+ {
1340
+ className: cn(
1341
+ "w-[min(24rem,calc(100vw-2rem))] overflow-hidden rounded-xl border border-border bg-background p-4 shadow-2xl",
1342
+ panelClassName
1343
+ ),
1344
+ children: [
1345
+ /* @__PURE__ */ jsxs("div", { className: "mb-3 flex items-start justify-between gap-3", children: [
1346
+ /* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
1347
+ selectedCluster.label ? /* @__PURE__ */ jsx("p", { className: "text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: selectedCluster.label }) : null,
1348
+ /* @__PURE__ */ jsx("div", { className: "text-base font-semibold leading-tight text-foreground", children: selectedCluster.title ?? "Clustered Locations" }),
1349
+ /* @__PURE__ */ jsx("p", { className: "mt-1 text-sm text-muted-foreground", children: selectedCluster.summary ?? `${selectedCluster.markers.length} location${selectedCluster.markers.length === 1 ? "" : "s"} in this cluster.` })
1350
+ ] }),
1351
+ /* @__PURE__ */ jsx(
1352
+ "button",
1353
+ {
1354
+ type: "button",
1355
+ "aria-label": "Close cluster details",
1356
+ 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",
1357
+ onClick: clearSelection,
1358
+ children: "x"
1359
+ }
1360
+ )
1361
+ ] }),
1362
+ /* @__PURE__ */ jsx("div", { className: "max-h-56 space-y-2 overflow-y-auto pr-1", children: selectedCluster.markers.map((marker, markerIndex) => /* @__PURE__ */ jsxs(
1363
+ "button",
1364
+ {
1365
+ type: "button",
1366
+ className: "w-full rounded-lg border border-border/60 p-3 text-left transition hover:border-border hover:bg-muted/50",
1367
+ onClick: () => selectMarker(marker),
1368
+ children: [
1369
+ /* @__PURE__ */ jsx("div", { className: "line-clamp-1 text-sm font-semibold text-foreground", children: getMarkerTitle(marker, markerIndex) }),
1370
+ marker.summary ? /* @__PURE__ */ jsx("div", { className: "mt-1 line-clamp-2 text-xs text-muted-foreground", children: marker.summary }) : null
1371
+ ]
1372
+ },
1373
+ marker.id
1374
+ )) })
1375
+ ]
1376
+ }
1377
+ );
1378
+ }
1379
+ return null;
1380
+ };
1381
+ return /* @__PURE__ */ jsxs(
1382
+ "div",
1383
+ {
1384
+ className: cn(
1385
+ "relative overflow-hidden rounded-2xl border border-border bg-background",
1386
+ className
1387
+ ),
1388
+ children: [
1389
+ /* @__PURE__ */ jsx("div", { className: cn("h-[520px] w-full", mapWrapperClassName), children: /* @__PURE__ */ jsx(
1390
+ MapLibre,
1391
+ {
1392
+ stadiaApiKey,
1393
+ mapStyle,
1394
+ styleUrl,
1395
+ mapLibreCssHref,
1396
+ viewState: resolvedViewState,
1397
+ onViewStateChange: applyViewState,
1398
+ markers: mapMarkers,
1399
+ onClick: (coord) => {
1400
+ onMapClick?.(coord);
1401
+ if (clearSelectionOnMapClick) {
1402
+ clearSelection();
1403
+ }
1404
+ },
1405
+ onMarkerDrag,
1406
+ showNavigationControl,
1407
+ showGeolocateControl,
1408
+ navigationControlPosition,
1409
+ geolocateControlPosition,
1410
+ flyToOptions,
1411
+ className: cn("h-full w-full", mapClassName),
1412
+ children: mapChildren
1413
+ }
1414
+ ) }),
1415
+ selection.type !== "none" ? /* @__PURE__ */ jsx("div", { className: cn("pointer-events-none absolute z-20", PANEL_POSITION_CLASS[panelPosition]), children: /* @__PURE__ */ jsx("div", { className: "pointer-events-auto", children: renderMarkerPanel() }) }) : null
1416
+ ]
1417
+ }
1418
+ );
1419
+ }
1420
+ var sizeStyles = {
1421
+ sm: "max-w-md",
1422
+ md: "max-w-2xl",
1423
+ lg: "max-w-4xl",
1424
+ xl: "max-w-5xl",
1425
+ full: "max-w-7xl",
1426
+ compact: "max-w-[700px]"
1427
+ };
1428
+ var dialogTransition = {
1429
+ duration: 0.35,
1430
+ ease: [0.16, 1, 0.3, 1]
1431
+ };
1432
+ function AnimatedDialog({
1433
+ open,
1434
+ onOpenChange,
1435
+ title,
1436
+ eyebrow,
1437
+ description,
1438
+ children,
1439
+ header,
1440
+ footer,
1441
+ size = "lg",
1442
+ className,
1443
+ contentClassName,
1444
+ featuredMediaHeader
1445
+ }) {
1446
+ const titleId = useId();
1447
+ const descriptionId = useId();
1448
+ const containerRef = useRef(null);
1449
+ useOnClickOutside(containerRef, () => {
1450
+ if (open) {
1451
+ onOpenChange(false);
1452
+ }
1453
+ });
1454
+ useEffect(() => {
1455
+ if (!open) {
1456
+ return;
1457
+ }
1458
+ const onKeyDown = (event) => {
1459
+ if (event.key === "Escape") {
1460
+ onOpenChange(false);
1461
+ }
1462
+ };
1463
+ const previousOverflow = document.body.style.overflow;
1464
+ document.body.style.overflow = "hidden";
1465
+ window.addEventListener("keydown", onKeyDown);
1466
+ return () => {
1467
+ document.body.style.overflow = previousOverflow;
1468
+ window.removeEventListener("keydown", onKeyDown);
1469
+ };
1470
+ }, [open, onOpenChange]);
1471
+ return /* @__PURE__ */ jsx(AnimatePresence, { children: open ? /* @__PURE__ */ jsxs("div", { className: "fixed inset-0 z-50 h-screen overflow-y-auto", children: [
1472
+ /* @__PURE__ */ jsx(
1473
+ motion.div,
1474
+ {
1475
+ initial: { opacity: 0 },
1476
+ animate: { opacity: 1, transition: dialogTransition },
1477
+ exit: { opacity: 0, transition: dialogTransition },
1478
+ className: "fixed inset-0 h-full w-full bg-foreground/80 backdrop-blur-lg"
1479
+ }
1480
+ ),
1481
+ /* @__PURE__ */ jsxs(
1482
+ motion.div,
1483
+ {
1484
+ initial: { opacity: 0, y: 24, scale: 0.98 },
1485
+ animate: {
1486
+ opacity: 1,
1487
+ y: 0,
1488
+ scale: 1,
1489
+ transition: dialogTransition
1490
+ },
1491
+ exit: {
1492
+ opacity: 0,
1493
+ y: 12,
1494
+ scale: 0.98,
1495
+ transition: dialogTransition
1496
+ },
1497
+ ref: containerRef,
1498
+ role: "dialog",
1499
+ "aria-modal": "true",
1500
+ "aria-labelledby": title ? titleId : void 0,
1501
+ "aria-describedby": description ? descriptionId : void 0,
1502
+ className: cn(
1503
+ "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",
1504
+ size === "compact" ? "p-0 md:my-20" : "p-6 md:my-20 md:p-12",
1505
+ sizeStyles[size],
1506
+ className
1507
+ ),
1508
+ children: [
1509
+ featuredMediaHeader ? /* @__PURE__ */ jsxs("div", { className: "relative overflow-hidden", children: [
1510
+ featuredMediaHeader,
1511
+ /* @__PURE__ */ jsx(
1512
+ "button",
1513
+ {
1514
+ type: "button",
1515
+ "aria-label": "Close dialog",
1516
+ 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",
1517
+ onClick: () => onOpenChange(false),
1518
+ children: /* @__PURE__ */ jsx(
1519
+ "svg",
1520
+ {
1521
+ xmlns: "http://www.w3.org/2000/svg",
1522
+ width: "24",
1523
+ height: "24",
1524
+ viewBox: "0 0 24 24",
1525
+ children: /* @__PURE__ */ jsx(
1526
+ "path",
1527
+ {
1528
+ fill: "none",
1529
+ stroke: "currentColor",
1530
+ strokeLinecap: "round",
1531
+ strokeLinejoin: "round",
1532
+ strokeWidth: "2",
1533
+ d: "M18 6L6 18M6 6l12 12"
1534
+ }
1535
+ )
1536
+ }
1537
+ )
1538
+ }
548
1539
  )
549
1540
  ] }) : null,
550
1541
  /* @__PURE__ */ jsxs(
@@ -783,10 +1774,10 @@ var ImageSlider = ({
783
1774
  optixFlowConfig
784
1775
  }) => {
785
1776
  const hasImages = images.length > 0;
786
- const [currentIndex, setCurrentIndex] = React4.useState(
1777
+ const [currentIndex, setCurrentIndex] = React5.useState(
787
1778
  () => normalizeIndex(startIndex, images.length)
788
1779
  );
789
- const handleNext = React4.useCallback(() => {
1780
+ const handleNext = React5.useCallback(() => {
790
1781
  if (!hasImages) return;
791
1782
  setCurrentIndex((prevIndex) => {
792
1783
  const nextIndex = prevIndex + 1 >= images.length ? 0 : prevIndex + 1;
@@ -794,7 +1785,7 @@ var ImageSlider = ({
794
1785
  return nextIndex;
795
1786
  });
796
1787
  }, [hasImages, images.length, onSlideChange]);
797
- const handlePrevious = React4.useCallback(() => {
1788
+ const handlePrevious = React5.useCallback(() => {
798
1789
  if (!hasImages) return;
799
1790
  setCurrentIndex((prevIndex) => {
800
1791
  const nextIndex = prevIndex - 1 < 0 ? images.length - 1 : prevIndex - 1;
@@ -802,11 +1793,11 @@ var ImageSlider = ({
802
1793
  return nextIndex;
803
1794
  });
804
1795
  }, [hasImages, images.length, onSlideChange]);
805
- React4.useEffect(() => {
1796
+ React5.useEffect(() => {
806
1797
  if (!hasImages) return;
807
1798
  setCurrentIndex(normalizeIndex(startIndex, images.length));
808
1799
  }, [startIndex, images.length, hasImages]);
809
- React4.useEffect(() => {
1800
+ React5.useEffect(() => {
810
1801
  if (!enableKeyboard || !hasImages) return;
811
1802
  const handleKeyDown = (event) => {
812
1803
  if (event.key === "ArrowRight") {
@@ -820,7 +1811,7 @@ var ImageSlider = ({
820
1811
  window.removeEventListener("keydown", handleKeyDown);
821
1812
  };
822
1813
  }, [enableKeyboard, handleNext, handlePrevious, hasImages]);
823
- React4.useEffect(() => {
1814
+ React5.useEffect(() => {
824
1815
  if (!autoplay || images.length < 2) return;
825
1816
  const interval = window.setInterval(handleNext, autoplayIntervalMs);
826
1817
  return () => window.clearInterval(interval);
@@ -887,154 +1878,12 @@ var ImageSlider = ({
887
1878
  contentClassName
888
1879
  ),
889
1880
  children
890
- }
891
- ) : null
892
- ]
893
- }
894
- );
895
- };
896
- var baseStyles = [
897
- // Layout
898
- "inline-flex items-center justify-center gap-2 whitespace-nowrap shrink-0",
899
- // Typography - using CSS variables with sensible defaults
900
- "font-[var(--button-font-family,inherit)]",
901
- "font-[var(--button-font-weight,500)]",
902
- "tracking-[var(--button-letter-spacing,0)]",
903
- "leading-[var(--button-line-height,1.25)]",
904
- "[text-transform:var(--button-text-transform,none)]",
905
- "text-sm",
906
- // Border radius
907
- "rounded-[var(--button-radius,var(--radius,0.375rem))]",
908
- // Smooth transition - using [transition:...] to set full shorthand property (not just transition-property)
909
- "[transition:var(--button-transition,all_250ms_cubic-bezier(0.4,0,0.2,1))]",
910
- // Box shadow (master level) - using [box-shadow:...] for complex multi-value shadows
911
- "[box-shadow:var(--button-shadow,none)]",
912
- "hover:[box-shadow:var(--button-shadow-hover,var(--button-shadow,none))]",
913
- // Disabled state
914
- "disabled:pointer-events-none disabled:opacity-50",
915
- // SVG handling
916
- "[&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0",
917
- // Focus styles
918
- "outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
919
- // Invalid state
920
- "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive"
921
- ].join(" ");
922
- var buttonVariants = cva(baseStyles, {
923
- variants: {
924
- variant: {
925
- // Default (Primary) variant - full customization
926
- default: [
927
- "bg-[var(--button-default-bg,hsl(var(--primary)))]",
928
- "text-[var(--button-default-fg,hsl(var(--primary-foreground)))]",
929
- "border-[length:var(--button-default-border-width,0px)]",
930
- "border-[color:var(--button-default-border,transparent)]",
931
- "[box-shadow:var(--button-default-shadow,var(--button-shadow,none))]",
932
- "hover:bg-[var(--button-default-hover-bg,hsl(var(--primary)/0.9))]",
933
- "hover:text-[var(--button-default-hover-fg,var(--button-default-fg,hsl(var(--primary-foreground))))]",
934
- "hover:border-[color:var(--button-default-hover-border,var(--button-default-border,transparent))]",
935
- "hover:[box-shadow:var(--button-default-shadow-hover,var(--button-shadow-hover,var(--button-default-shadow,var(--button-shadow,none))))]"
936
- ].join(" "),
937
- // Destructive variant - full customization
938
- destructive: [
939
- "bg-[var(--button-destructive-bg,hsl(var(--destructive)))]",
940
- "text-[var(--button-destructive-fg,white)]",
941
- "border-[length:var(--button-destructive-border-width,0px)]",
942
- "border-[color:var(--button-destructive-border,transparent)]",
943
- "[box-shadow:var(--button-destructive-shadow,var(--button-shadow,none))]",
944
- "hover:bg-[var(--button-destructive-hover-bg,hsl(var(--destructive)/0.9))]",
945
- "hover:text-[var(--button-destructive-hover-fg,var(--button-destructive-fg,white))]",
946
- "hover:border-[color:var(--button-destructive-hover-border,var(--button-destructive-border,transparent))]",
947
- "hover:[box-shadow:var(--button-destructive-shadow-hover,var(--button-shadow-hover,var(--button-destructive-shadow,var(--button-shadow,none))))]",
948
- "focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40",
949
- "dark:bg-destructive/60"
950
- ].join(" "),
951
- // Outline variant - full customization with proper border handling
952
- outline: [
953
- "bg-[var(--button-outline-bg,hsl(var(--background)))]",
954
- "text-[var(--button-outline-fg,inherit)]",
955
- "border-[length:var(--button-outline-border-width,1px)]",
956
- "border-[color:var(--button-outline-border,hsl(var(--border)))]",
957
- "[box-shadow:var(--button-outline-shadow,var(--button-shadow,0_1px_2px_0_rgb(0_0_0/0.05)))]",
958
- "hover:bg-[var(--button-outline-hover-bg,hsl(var(--accent)))]",
959
- "hover:text-[var(--button-outline-hover-fg,hsl(var(--accent-foreground)))]",
960
- "hover:border-[color:var(--button-outline-hover-border,var(--button-outline-border,hsl(var(--border))))]",
961
- "hover:[box-shadow:var(--button-outline-shadow-hover,var(--button-shadow-hover,var(--button-outline-shadow,var(--button-shadow,none))))]",
962
- "dark:bg-input/30 dark:border-input dark:hover:bg-input/50"
963
- ].join(" "),
964
- // Secondary variant - full customization
965
- secondary: [
966
- "bg-[var(--button-secondary-bg,hsl(var(--secondary)))]",
967
- "text-[var(--button-secondary-fg,hsl(var(--secondary-foreground)))]",
968
- "border-[length:var(--button-secondary-border-width,0px)]",
969
- "border-[color:var(--button-secondary-border,transparent)]",
970
- "[box-shadow:var(--button-secondary-shadow,var(--button-shadow,none))]",
971
- "hover:bg-[var(--button-secondary-hover-bg,hsl(var(--secondary)/0.8))]",
972
- "hover:text-[var(--button-secondary-hover-fg,var(--button-secondary-fg,hsl(var(--secondary-foreground))))]",
973
- "hover:border-[color:var(--button-secondary-hover-border,var(--button-secondary-border,transparent))]",
974
- "hover:[box-shadow:var(--button-secondary-shadow-hover,var(--button-shadow-hover,var(--button-secondary-shadow,var(--button-shadow,none))))]"
975
- ].join(" "),
976
- // Ghost variant - full customization
977
- ghost: [
978
- "bg-[var(--button-ghost-bg,transparent)]",
979
- "text-[var(--button-ghost-fg,inherit)]",
980
- "border-[length:var(--button-ghost-border-width,0px)]",
981
- "border-[color:var(--button-ghost-border,transparent)]",
982
- "[box-shadow:var(--button-ghost-shadow,var(--button-shadow,none))]",
983
- "hover:bg-[var(--button-ghost-hover-bg,hsl(var(--accent)))]",
984
- "hover:text-[var(--button-ghost-hover-fg,hsl(var(--accent-foreground)))]",
985
- "hover:border-[color:var(--button-ghost-hover-border,var(--button-ghost-border,transparent))]",
986
- "hover:[box-shadow:var(--button-ghost-shadow-hover,var(--button-shadow-hover,var(--button-ghost-shadow,var(--button-shadow,none))))]",
987
- "dark:hover:bg-accent/50"
988
- ].join(" "),
989
- // Link variant - full customization
990
- link: [
991
- "bg-[var(--button-link-bg,transparent)]",
992
- "text-[var(--button-link-fg,hsl(var(--primary)))]",
993
- "border-[length:var(--button-link-border-width,0px)]",
994
- "border-[color:var(--button-link-border,transparent)]",
995
- "[box-shadow:var(--button-link-shadow,none)]",
996
- "hover:bg-[var(--button-link-hover-bg,transparent)]",
997
- "hover:text-[var(--button-link-hover-fg,var(--button-link-fg,hsl(var(--primary))))]",
998
- "hover:[box-shadow:var(--button-link-shadow-hover,none)]",
999
- "underline-offset-4 hover:underline"
1000
- ].join(" ")
1001
- },
1002
- size: {
1003
- default: [
1004
- "h-[var(--button-height-md,2.25rem)]",
1005
- "px-[var(--button-padding-x-md,1rem)]",
1006
- "py-[var(--button-padding-y-md,0.5rem)]",
1007
- "has-[>svg]:px-[calc(var(--button-padding-x-md,1rem)*0.75)]"
1008
- ].join(" "),
1009
- sm: [
1010
- "h-[var(--button-height-sm,2rem)]",
1011
- "px-[var(--button-padding-x-sm,0.75rem)]",
1012
- "py-[var(--button-padding-y-sm,0.25rem)]",
1013
- "gap-1.5",
1014
- "has-[>svg]:px-[calc(var(--button-padding-x-sm,0.75rem)*0.83)]"
1015
- ].join(" "),
1016
- md: [
1017
- "h-[var(--button-height-md,2.25rem)]",
1018
- "px-[var(--button-padding-x-md,1rem)]",
1019
- "py-[var(--button-padding-y-md,0.5rem)]",
1020
- "has-[>svg]:px-[calc(var(--button-padding-x-md,1rem)*0.75)]"
1021
- ].join(" "),
1022
- lg: [
1023
- "h-[var(--button-height-lg,2.5rem)]",
1024
- "px-[var(--button-padding-x-lg,1.5rem)]",
1025
- "py-[var(--button-padding-y-lg,0.5rem)]",
1026
- "has-[>svg]:px-[calc(var(--button-padding-x-lg,1.5rem)*0.67)]"
1027
- ].join(" "),
1028
- icon: "size-[var(--button-height-md,2.25rem)]",
1029
- "icon-sm": "size-[var(--button-height-sm,2rem)]",
1030
- "icon-lg": "size-[var(--button-height-lg,2.5rem)]"
1031
- }
1032
- },
1033
- defaultVariants: {
1034
- variant: "default",
1035
- size: "default"
1036
- }
1037
- });
1881
+ }
1882
+ ) : null
1883
+ ]
1884
+ }
1885
+ );
1886
+ };
1038
1887
  function Button({
1039
1888
  className,
1040
1889
  variant = "default",
@@ -1058,410 +1907,134 @@ function Card({ className, ...props }) {
1058
1907
  return /* @__PURE__ */ jsx(
1059
1908
  "div",
1060
1909
  {
1061
- "data-slot": "card",
1062
- className: cn(
1063
- "bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",
1064
- className
1065
- ),
1066
- ...props
1067
- }
1068
- );
1069
- }
1070
- function CardHeader({ className, ...props }) {
1071
- return /* @__PURE__ */ jsx(
1072
- "div",
1073
- {
1074
- "data-slot": "card-header",
1075
- className: cn(
1076
- "@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",
1077
- className
1078
- ),
1079
- ...props
1080
- }
1081
- );
1082
- }
1083
- function CardTitle({ className, ...props }) {
1084
- return /* @__PURE__ */ jsx(
1085
- "div",
1086
- {
1087
- "data-slot": "card-title",
1088
- className: cn("leading-none font-semibold", className),
1089
- ...props
1090
- }
1091
- );
1092
- }
1093
- function CardDescription({ className, ...props }) {
1094
- return /* @__PURE__ */ jsx(
1095
- "div",
1096
- {
1097
- "data-slot": "card-description",
1098
- className: cn("text-muted-foreground text-sm", className),
1099
- ...props
1100
- }
1101
- );
1102
- }
1103
- function CardContent({ className, ...props }) {
1104
- return /* @__PURE__ */ jsx(
1105
- "div",
1106
- {
1107
- "data-slot": "card-content",
1108
- className: cn("px-6", className),
1109
- ...props
1110
- }
1111
- );
1112
- }
1113
- function CardFooter({ className, ...props }) {
1114
- return /* @__PURE__ */ jsx(
1115
- "div",
1116
- {
1117
- "data-slot": "card-footer",
1118
- className: cn("flex items-center px-6 [.border-t]:pt-6", className),
1119
- ...props
1120
- }
1121
- );
1122
- }
1123
- var badgeVariants = cva(
1124
- "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",
1125
- {
1126
- variants: {
1127
- variant: {
1128
- default: "border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",
1129
- secondary: "border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",
1130
- 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",
1131
- outline: "text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"
1132
- }
1133
- },
1134
- defaultVariants: {
1135
- variant: "default"
1136
- }
1137
- }
1138
- );
1139
- function Badge({
1140
- className,
1141
- variant,
1142
- asChild = false,
1143
- ...props
1144
- }) {
1145
- const Comp = asChild ? Slot : "span";
1146
- return /* @__PURE__ */ jsx(
1147
- Comp,
1148
- {
1149
- "data-slot": "badge",
1150
- className: cn(badgeVariants({ variant }), className),
1151
- ...props
1152
- }
1153
- );
1154
- }
1155
- function Popover({
1156
- ...props
1157
- }) {
1158
- return /* @__PURE__ */ jsx(PopoverPrimitive.Root, { "data-slot": "popover", ...props });
1159
- }
1160
- function PopoverTrigger({
1161
- ...props
1162
- }) {
1163
- return /* @__PURE__ */ jsx(PopoverPrimitive.Trigger, { "data-slot": "popover-trigger", ...props });
1164
- }
1165
- function PopoverContent({
1166
- className,
1167
- align = "center",
1168
- sideOffset = 4,
1169
- ...props
1170
- }) {
1171
- return /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx(
1172
- PopoverPrimitive.Content,
1173
- {
1174
- "data-slot": "popover-content",
1175
- align,
1176
- sideOffset,
1177
- className: cn(
1178
- "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",
1179
- className
1180
- ),
1181
- ...props
1182
- }
1183
- ) });
1184
- }
1185
- var DEFAULT_ICON_API_KEY = "au382bi7fsh96w9h9xlrnat2jglx";
1186
- function DynamicIcon({ apiKey, ...props }) {
1187
- return /* @__PURE__ */ jsx(Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
1188
- }
1189
- function normalizePhoneNumber(input) {
1190
- const trimmed = input.trim();
1191
- if (trimmed.toLowerCase().startsWith("tel:")) {
1192
- return trimmed;
1193
- }
1194
- const match = trimmed.match(/^[\s\+\-\(\)]*(\d[\d\s\-\(\)\.]*\d)[\s\-]*(x|ext\.?|extension)?[\s\-]*(\d+)?$/i);
1195
- if (match) {
1196
- const mainNumber = match[1].replace(/[\s\-\(\)\.]/g, "");
1197
- const extension = match[3];
1198
- const normalized = mainNumber.length >= 10 && !trimmed.startsWith("+") ? `+${mainNumber}` : mainNumber;
1199
- const withExtension = extension ? `${normalized};ext=${extension}` : normalized;
1200
- return `tel:${withExtension}`;
1201
- }
1202
- const cleaned = trimmed.replace(/[\s\-\(\)\.]/g, "");
1203
- return `tel:${cleaned}`;
1204
- }
1205
- function normalizeEmail(input) {
1206
- const trimmed = input.trim();
1207
- if (trimmed.toLowerCase().startsWith("mailto:")) {
1208
- return trimmed;
1209
- }
1210
- return `mailto:${trimmed}`;
1211
- }
1212
- function isEmail(input) {
1213
- const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
1214
- return emailRegex.test(input.trim());
1215
- }
1216
- function isPhoneNumber(input) {
1217
- const trimmed = input.trim();
1218
- if (trimmed.toLowerCase().startsWith("tel:")) {
1219
- return true;
1220
- }
1221
- const phoneRegex = /^[\s\+\-\(\)]*\d[\d\s\-\(\)\.]*\d[\s\-]*(x|ext\.?|extension)?[\s\-]*\d*$/i;
1222
- return phoneRegex.test(trimmed);
1223
- }
1224
- function isInternalUrl(href) {
1225
- if (typeof window === "undefined") {
1226
- return href.startsWith("/") && !href.startsWith("//");
1227
- }
1228
- const trimmed = href.trim();
1229
- if (trimmed.startsWith("/") && !trimmed.startsWith("//")) {
1230
- return true;
1231
- }
1232
- try {
1233
- const url = new URL(trimmed, window.location.href);
1234
- const currentOrigin = window.location.origin;
1235
- const normalizeOrigin = (origin) => origin.replace(/^(https?:\/\/)(www\.)?/, "$1");
1236
- return normalizeOrigin(url.origin) === normalizeOrigin(currentOrigin);
1237
- } catch {
1238
- return false;
1239
- }
1240
- }
1241
- function toRelativePath(href) {
1242
- if (typeof window === "undefined") {
1243
- return href;
1244
- }
1245
- const trimmed = href.trim();
1246
- if (trimmed.startsWith("/") && !trimmed.startsWith("//")) {
1247
- return trimmed;
1248
- }
1249
- try {
1250
- const url = new URL(trimmed, window.location.href);
1251
- const currentOrigin = window.location.origin;
1252
- const normalizeOrigin = (origin) => origin.replace(/^(https?:\/\/)(www\.)?/, "$1");
1253
- if (normalizeOrigin(url.origin) === normalizeOrigin(currentOrigin)) {
1254
- return url.pathname + url.search + url.hash;
1255
- }
1256
- } catch {
1257
- }
1258
- return trimmed;
1259
- }
1260
- function useNavigation({
1261
- href,
1262
- onClick
1263
- } = {}) {
1264
- const linkType = React4.useMemo(() => {
1265
- if (!href || href.trim() === "") {
1266
- return onClick ? "none" : "none";
1267
- }
1268
- const trimmed = href.trim();
1269
- if (trimmed.toLowerCase().startsWith("mailto:") || isEmail(trimmed)) {
1270
- return "mailto";
1271
- }
1272
- if (trimmed.toLowerCase().startsWith("tel:") || isPhoneNumber(trimmed)) {
1273
- return "tel";
1274
- }
1275
- if (isInternalUrl(trimmed)) {
1276
- return "internal";
1277
- }
1278
- try {
1279
- new URL(trimmed, typeof window !== "undefined" ? window.location.href : "http://localhost");
1280
- return "external";
1281
- } catch {
1282
- return "internal";
1283
- }
1284
- }, [href, onClick]);
1285
- const normalizedHref = React4.useMemo(() => {
1286
- if (!href || href.trim() === "") {
1287
- return void 0;
1288
- }
1289
- const trimmed = href.trim();
1290
- switch (linkType) {
1291
- case "tel":
1292
- return normalizePhoneNumber(trimmed);
1293
- case "mailto":
1294
- return normalizeEmail(trimmed);
1295
- case "internal":
1296
- return toRelativePath(trimmed);
1297
- case "external":
1298
- return trimmed;
1299
- default:
1300
- return trimmed;
1301
- }
1302
- }, [href, linkType]);
1303
- const target = React4.useMemo(() => {
1304
- switch (linkType) {
1305
- case "external":
1306
- return "_blank";
1307
- case "internal":
1308
- return "_self";
1309
- case "mailto":
1310
- case "tel":
1311
- return void 0;
1312
- default:
1313
- return void 0;
1910
+ "data-slot": "card",
1911
+ className: cn(
1912
+ "bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",
1913
+ className
1914
+ ),
1915
+ ...props
1314
1916
  }
1315
- }, [linkType]);
1316
- const rel = React4.useMemo(() => {
1317
- if (linkType === "external") {
1318
- return "noopener noreferrer";
1917
+ );
1918
+ }
1919
+ function CardHeader({ className, ...props }) {
1920
+ return /* @__PURE__ */ jsx(
1921
+ "div",
1922
+ {
1923
+ "data-slot": "card-header",
1924
+ className: cn(
1925
+ "@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",
1926
+ className
1927
+ ),
1928
+ ...props
1319
1929
  }
1320
- return void 0;
1321
- }, [linkType]);
1322
- const isExternal = linkType === "external";
1323
- const isInternal = linkType === "internal";
1324
- const shouldUseRouter = isInternal && typeof normalizedHref === "string" && normalizedHref.startsWith("/");
1325
- const handleClick = React4.useCallback(
1326
- (event) => {
1327
- if (onClick) {
1328
- try {
1329
- onClick(event);
1330
- } catch (error) {
1331
- console.error("Error in user onClick handler:", error);
1332
- }
1333
- }
1334
- if (event.defaultPrevented) {
1335
- return;
1336
- }
1337
- if (shouldUseRouter && normalizedHref && event.button === 0 && // left-click only
1338
- !event.metaKey && !event.altKey && !event.ctrlKey && !event.shiftKey) {
1339
- if (typeof window !== "undefined") {
1340
- const handler = window.__opensiteNavigationHandler;
1341
- if (typeof handler === "function") {
1342
- try {
1343
- const handled = handler(normalizedHref, event.nativeEvent || event);
1344
- if (handled !== false) {
1345
- event.preventDefault();
1346
- }
1347
- } catch (error) {
1348
- console.error("Error in navigation handler:", error);
1349
- }
1350
- }
1351
- }
1352
- }
1353
- },
1354
- [onClick, shouldUseRouter, normalizedHref]
1355
1930
  );
1356
- return {
1357
- linkType,
1358
- normalizedHref,
1359
- target,
1360
- rel,
1361
- isExternal,
1362
- isInternal,
1363
- shouldUseRouter,
1364
- handleClick
1365
- };
1366
1931
  }
1367
- var Pressable = React4.forwardRef(
1368
- ({
1369
- children,
1370
- className,
1371
- href,
1372
- onClick,
1373
- variant,
1374
- size,
1375
- asButton = false,
1376
- fallbackComponentType = "span",
1377
- componentType,
1378
- "aria-label": ariaLabel,
1379
- "aria-describedby": ariaDescribedby,
1380
- id,
1381
- ...props
1382
- }, ref) => {
1383
- const navigation = useNavigation({ href, onClick });
1384
- const {
1385
- normalizedHref,
1386
- target,
1387
- rel,
1388
- linkType,
1389
- isInternal,
1390
- handleClick
1391
- } = navigation;
1392
- const shouldRenderLink = normalizedHref && linkType !== "none";
1393
- const shouldRenderButton = !shouldRenderLink && onClick;
1394
- const effectiveComponentType = componentType || (shouldRenderLink ? "a" : shouldRenderButton ? "button" : fallbackComponentType);
1395
- const finalComponentType = isInternal && shouldRenderLink ? "a" : effectiveComponentType;
1396
- const shouldApplyButtonStyles = asButton || variant || size;
1397
- const combinedClassName = cn(
1398
- shouldApplyButtonStyles && buttonVariants({ variant, size }),
1399
- className
1400
- );
1401
- const dataProps = Object.fromEntries(
1402
- Object.entries(props).filter(([key]) => key.startsWith("data-"))
1403
- );
1404
- const buttonDataAttributes = shouldApplyButtonStyles ? {
1405
- "data-slot": "button",
1406
- "data-variant": variant ?? "default",
1407
- "data-size": size ?? "default"
1408
- } : {};
1409
- const commonProps = {
1410
- className: combinedClassName,
1411
- onClick: handleClick,
1412
- "aria-label": ariaLabel,
1413
- "aria-describedby": ariaDescribedby,
1414
- id,
1415
- ...dataProps,
1416
- ...buttonDataAttributes
1417
- };
1418
- if (finalComponentType === "a" && shouldRenderLink) {
1419
- return /* @__PURE__ */ jsx(
1420
- "a",
1421
- {
1422
- ref,
1423
- href: normalizedHref,
1424
- target,
1425
- rel,
1426
- ...commonProps,
1427
- ...props,
1428
- children
1429
- }
1430
- );
1932
+ function CardTitle({ className, ...props }) {
1933
+ return /* @__PURE__ */ jsx(
1934
+ "div",
1935
+ {
1936
+ "data-slot": "card-title",
1937
+ className: cn("leading-none font-semibold", className),
1938
+ ...props
1431
1939
  }
1432
- if (finalComponentType === "button") {
1433
- return /* @__PURE__ */ jsx(
1434
- "button",
1435
- {
1436
- ref,
1437
- type: props.type || "button",
1438
- ...commonProps,
1439
- ...props,
1440
- children
1441
- }
1442
- );
1940
+ );
1941
+ }
1942
+ function CardDescription({ className, ...props }) {
1943
+ return /* @__PURE__ */ jsx(
1944
+ "div",
1945
+ {
1946
+ "data-slot": "card-description",
1947
+ className: cn("text-muted-foreground text-sm", className),
1948
+ ...props
1443
1949
  }
1444
- if (finalComponentType === "div") {
1445
- return /* @__PURE__ */ jsx(
1446
- "div",
1447
- {
1448
- ref,
1449
- ...commonProps,
1450
- children
1451
- }
1452
- );
1950
+ );
1951
+ }
1952
+ function CardContent({ className, ...props }) {
1953
+ return /* @__PURE__ */ jsx(
1954
+ "div",
1955
+ {
1956
+ "data-slot": "card-content",
1957
+ className: cn("px-6", className),
1958
+ ...props
1453
1959
  }
1454
- return /* @__PURE__ */ jsx(
1455
- "span",
1456
- {
1457
- ref,
1458
- ...commonProps,
1459
- children
1960
+ );
1961
+ }
1962
+ function CardFooter({ className, ...props }) {
1963
+ return /* @__PURE__ */ jsx(
1964
+ "div",
1965
+ {
1966
+ "data-slot": "card-footer",
1967
+ className: cn("flex items-center px-6 [.border-t]:pt-6", className),
1968
+ ...props
1969
+ }
1970
+ );
1971
+ }
1972
+ var badgeVariants = cva(
1973
+ "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",
1974
+ {
1975
+ variants: {
1976
+ variant: {
1977
+ default: "border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",
1978
+ secondary: "border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",
1979
+ 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",
1980
+ outline: "text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"
1460
1981
  }
1461
- );
1982
+ },
1983
+ defaultVariants: {
1984
+ variant: "default"
1985
+ }
1462
1986
  }
1463
1987
  );
1464
- Pressable.displayName = "Pressable";
1988
+ function Badge({
1989
+ className,
1990
+ variant,
1991
+ asChild = false,
1992
+ ...props
1993
+ }) {
1994
+ const Comp = asChild ? Slot : "span";
1995
+ return /* @__PURE__ */ jsx(
1996
+ Comp,
1997
+ {
1998
+ "data-slot": "badge",
1999
+ className: cn(badgeVariants({ variant }), className),
2000
+ ...props
2001
+ }
2002
+ );
2003
+ }
2004
+ function Popover({
2005
+ ...props
2006
+ }) {
2007
+ return /* @__PURE__ */ jsx(PopoverPrimitive.Root, { "data-slot": "popover", ...props });
2008
+ }
2009
+ function PopoverTrigger({
2010
+ ...props
2011
+ }) {
2012
+ return /* @__PURE__ */ jsx(PopoverPrimitive.Trigger, { "data-slot": "popover-trigger", ...props });
2013
+ }
2014
+ function PopoverContent({
2015
+ className,
2016
+ align = "center",
2017
+ sideOffset = 4,
2018
+ ...props
2019
+ }) {
2020
+ return /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx(
2021
+ PopoverPrimitive.Content,
2022
+ {
2023
+ "data-slot": "popover-content",
2024
+ align,
2025
+ sideOffset,
2026
+ className: cn(
2027
+ "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",
2028
+ className
2029
+ ),
2030
+ ...props
2031
+ }
2032
+ ) });
2033
+ }
2034
+ var DEFAULT_ICON_API_KEY = "au382bi7fsh96w9h9xlrnat2jglx";
2035
+ function DynamicIcon({ apiKey, ...props }) {
2036
+ return /* @__PURE__ */ jsx(Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
2037
+ }
1465
2038
  var BUTTON_SIZES = {
1466
2039
  sm: { buttonSize: "size-8", iconSize: 16 },
1467
2040
  md: { buttonSize: "size-10", iconSize: 20 },
@@ -1553,7 +2126,7 @@ var platformIconMap = {
1553
2126
  dribbble: "cib/dribbble",
1554
2127
  unknown: "icon-park-solid/circular-connection"
1555
2128
  };
1556
- var SocialLinkIcon = React4.forwardRef(
2129
+ var SocialLinkIcon = React5.forwardRef(
1557
2130
  ({
1558
2131
  platformName,
1559
2132
  label,
@@ -1566,13 +2139,13 @@ var SocialLinkIcon = React4.forwardRef(
1566
2139
  ...pressableProps
1567
2140
  }, ref) => {
1568
2141
  const platform = usePlatformFromUrl(href);
1569
- const smartPlatformName = React4.useMemo(() => {
2142
+ const smartPlatformName = React5.useMemo(() => {
1570
2143
  return platform || platformName;
1571
2144
  }, [platform, platformName]);
1572
- const iconName = React4.useMemo(() => {
2145
+ const iconName = React5.useMemo(() => {
1573
2146
  return iconNameOverride || platformIconMap[smartPlatformName];
1574
2147
  }, [iconNameOverride, smartPlatformName]);
1575
- const accessibleLabel = React4.useMemo(() => {
2148
+ const accessibleLabel = React5.useMemo(() => {
1576
2149
  return label || platformName;
1577
2150
  }, [label, platformName]);
1578
2151
  return /* @__PURE__ */ jsx(
@@ -1649,12 +2222,12 @@ function TextInner({ as, className, children, ...props }, ref) {
1649
2222
  const Component = as || "span";
1650
2223
  return /* @__PURE__ */ jsx(Component, { ref, className: cn(className), ...props, children });
1651
2224
  }
1652
- var Text = React4.forwardRef(TextInner);
2225
+ var Text = React5.forwardRef(TextInner);
1653
2226
  Text.displayName = "Text";
1654
2227
  function isContentTextItem(item) {
1655
- return item !== null && typeof item === "object" && !React4.isValidElement(item) && "_type" in item && item._type === "text";
2228
+ return item !== null && typeof item === "object" && !React5.isValidElement(item) && "_type" in item && item._type === "text";
1656
2229
  }
1657
- var ContentGroup = React4.forwardRef(
2230
+ var ContentGroup = React5.forwardRef(
1658
2231
  ({ items, className, children, ...props }, ref) => {
1659
2232
  const hasContent = items && items.length > 0;
1660
2233
  if (!hasContent) {
@@ -1667,10 +2240,10 @@ var ContentGroup = React4.forwardRef(
1667
2240
  return /* @__PURE__ */ jsx(Text, { ...textProps }, idx);
1668
2241
  }
1669
2242
  const reactNode = item;
1670
- if (React4.isValidElement(reactNode)) {
1671
- return React4.cloneElement(reactNode, { key: reactNode.key ?? idx });
2243
+ if (React5.isValidElement(reactNode)) {
2244
+ return React5.cloneElement(reactNode, { key: reactNode.key ?? idx });
1672
2245
  }
1673
- return /* @__PURE__ */ jsx(React4.Fragment, { children: reactNode }, idx);
2246
+ return /* @__PURE__ */ jsx(React5.Fragment, { children: reactNode }, idx);
1674
2247
  }),
1675
2248
  children
1676
2249
  ] });
@@ -2195,7 +2768,7 @@ function AboutExpandableValues({
2195
2768
  pattern,
2196
2769
  patternOpacity
2197
2770
  }) {
2198
- const [expandedValue, setExpandedValue] = React4.useState(null);
2771
+ const [expandedValue, setExpandedValue] = React5.useState(null);
2199
2772
  const toggleExpand = useCallback((id) => {
2200
2773
  setExpandedValue((prev) => prev === id ? null : id);
2201
2774
  }, []);
@@ -2431,7 +3004,7 @@ function CommunityInitiatives({
2431
3004
  pattern,
2432
3005
  patternOpacity
2433
3006
  }) {
2434
- const [activeCategory, setActiveCategory] = React4.useState(
3007
+ const [activeCategory, setActiveCategory] = React5.useState(
2435
3008
  categories?.[0]?.id || ""
2436
3009
  );
2437
3010
  const currentCategory = categories?.find((category) => category.id === activeCategory) || categories?.[0];
@@ -2695,7 +3268,7 @@ function AboutCultureTabs({
2695
3268
  patternOpacity
2696
3269
  }) {
2697
3270
  const resolvedAspects = aspects ?? [];
2698
- const [activeTab, setActiveTab] = React4.useState(
3271
+ const [activeTab, setActiveTab] = React5.useState(
2699
3272
  resolvedAspects[0]?.id || ""
2700
3273
  );
2701
3274
  const headerItems = useMemo(() => {
@@ -3228,7 +3801,7 @@ function BannerDeliveryCountdown({
3228
3801
  }, [prefixText, timerContent, middleText, deliveryDateContent]);
3229
3802
  return /* @__PURE__ */ jsx(Section, { background, spacing: "none", className: cn("bg-accent text-accent-foreground", className), children: /* @__PURE__ */ jsx("div", { className: cn("container py-2.5", containerClassName), children: /* @__PURE__ */ jsx("div", { className: cn("flex flex-wrap items-center justify-center gap-3 text-sm", contentClassName), children: /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-2", messageClassName), children: [
3230
3803
  iconContent,
3231
- messageParts.length > 0 && /* @__PURE__ */ jsx("span", { children: messageParts.map((part, index) => /* @__PURE__ */ jsxs(React4.Fragment, { children: [
3804
+ messageParts.length > 0 && /* @__PURE__ */ jsx("span", { children: messageParts.map((part, index) => /* @__PURE__ */ jsxs(React5.Fragment, { children: [
3232
3805
  index > 0 ? " " : null,
3233
3806
  part
3234
3807
  ] }, index)) })
@@ -4499,8 +5072,8 @@ var BrandAttribution = ({
4499
5072
  }
4500
5073
  const { prefix = "", anchorText, href, suffix = "" } = options[optionIndex];
4501
5074
  const ContainerEl = variant;
4502
- const [trackedHref, setTrackedHref] = React4.useState(href);
4503
- React4.useEffect(() => {
5075
+ const [trackedHref, setTrackedHref] = React5.useState(href);
5076
+ React5.useEffect(() => {
4504
5077
  setTrackedHref(buildTrackedHref(href));
4505
5078
  }, [href]);
4506
5079
  return /* @__PURE__ */ jsxs(ContainerEl, { className: containerClassName, children: [
@@ -4620,7 +5193,7 @@ function FooterSocialNewsletter({
4620
5193
  patternOpacity,
4621
5194
  optixFlowConfig
4622
5195
  }) {
4623
- const renderForm = React4.useMemo(() => {
5196
+ const renderForm = React5.useMemo(() => {
4624
5197
  if (!formEngineSetup) return null;
4625
5198
  const action = {
4626
5199
  variant: "default",
@@ -4909,7 +5482,7 @@ function FooterSimpleCentered({
4909
5482
  ]);
4910
5483
  const bottomLinksContent = useMemo(() => {
4911
5484
  if (!bottomLinks || bottomLinks.length === 0) return null;
4912
- return bottomLinks.map((link, idx) => /* @__PURE__ */ jsx(React4.Fragment, { children: /* @__PURE__ */ jsx(
5485
+ return bottomLinks.map((link, idx) => /* @__PURE__ */ jsx(React5.Fragment, { children: /* @__PURE__ */ jsx(
4913
5486
  Pressable,
4914
5487
  {
4915
5488
  href: link.href,
@@ -6256,7 +6829,7 @@ function FooterNewsletterMinimal({
6256
6829
  buttonAction,
6257
6830
  formSlot
6258
6831
  }) {
6259
- const navLinksContent = React4.useMemo(() => {
6832
+ const navLinksContent = React5.useMemo(() => {
6260
6833
  if (!navLinks || navLinks.length === 0) return null;
6261
6834
  return navLinks.map((item, idx) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
6262
6835
  Pressable,
@@ -6267,7 +6840,7 @@ function FooterNewsletterMinimal({
6267
6840
  }
6268
6841
  ) }, idx));
6269
6842
  }, [navLinks, navLinkClassName]);
6270
- const socialLinksContent = React4.useMemo(() => {
6843
+ const socialLinksContent = React5.useMemo(() => {
6271
6844
  if (!socialLinks || socialLinks.length === 0) return null;
6272
6845
  return socialLinks.map((item, idx) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
6273
6846
  SocialLinkIcon,
@@ -6283,7 +6856,7 @@ function FooterNewsletterMinimal({
6283
6856
  }
6284
6857
  ) }, idx));
6285
6858
  }, [socialLinks, socialLinkClassName]);
6286
- const footerLinksContent = React4.useMemo(() => {
6859
+ const footerLinksContent = React5.useMemo(() => {
6287
6860
  if (!footerLinks || footerLinks.length === 0) return null;
6288
6861
  return footerLinks.map((item) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
6289
6862
  Pressable,
@@ -6297,7 +6870,7 @@ function FooterNewsletterMinimal({
6297
6870
  }
6298
6871
  ) }, item.label));
6299
6872
  }, [footerLinks, footerLinkClassName]);
6300
- const renderForm = React4.useMemo(() => {
6873
+ const renderForm = React5.useMemo(() => {
6301
6874
  if (formSlot) return formSlot;
6302
6875
  if (!formEngineSetup) return null;
6303
6876
  const defaultButtonAction = {
@@ -6844,4 +7417,4 @@ function FooterNavSocial({
6844
7417
  );
6845
7418
  }
6846
7419
 
6847
- export { AboutCultureTabs, AboutExpandableValues, AboutMissionPrinciples, AboutSplitHero, AlternatingBlocks, AnimatedDialog, Badge, BannerAnnouncementDismissible, BannerCountdownSale, BannerDeliveryCountdown, BannerEventPromo, BannerFloatingOffer, BannerGdprRights, BannerPrivacyNotice, BannerPromoCta, BannerSocialFollow, BannerSurveyIncentive, Button, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CarouselPagination, CommunityInitiatives, Container, DynamicIcon, FooterAnimatedSocial, FooterBackgroundCard, FooterBrandDescription, FooterContactCard, FooterCtaBanner, FooterCtaSocial, FooterLinksGrid, FooterNavSocial, FooterNewsletterGrid, FooterNewsletterMinimal, FooterSimpleCentered, FooterSocialApps, FooterSocialNewsletter, ImageSlider, MediaHoverCtas, PageHeroBanner, PaymentPlatformIcon, Popover, PopoverContent, PopoverTrigger, Pressable, Section, SocialLinkIcon };
7420
+ export { AboutCultureTabs, AboutExpandableValues, AboutMissionPrinciples, AboutSplitHero, AlternatingBlocks, AnimatedDialog, Badge, BannerAnnouncementDismissible, BannerCountdownSale, BannerDeliveryCountdown, BannerEventPromo, BannerFloatingOffer, BannerGdprRights, BannerPrivacyNotice, BannerPromoCta, BannerSocialFollow, BannerSurveyIncentive, Button, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CarouselPagination, CommunityInitiatives, Container, DynamicIcon, FooterAnimatedSocial, FooterBackgroundCard, FooterBrandDescription, FooterContactCard, FooterCtaBanner, FooterCtaSocial, FooterLinksGrid, FooterNavSocial, FooterNewsletterGrid, FooterNewsletterMinimal, FooterSimpleCentered, FooterSocialApps, FooterSocialNewsletter, GeoMap, ImageSlider, MediaHoverCtas, PageHeroBanner, PaymentPlatformIcon, Popover, PopoverContent, PopoverTrigger, Pressable, Section, SocialLinkIcon };