@opensite/ui 2.7.6 → 2.7.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1386) hide show
  1. package/README.md +11 -2
  2. package/dist/about-company-profile.d.cts +3 -3
  3. package/dist/about-company-profile.d.ts +3 -3
  4. package/dist/about-culture-tabs.cjs +174 -174
  5. package/dist/about-culture-tabs.d.cts +4 -4
  6. package/dist/about-culture-tabs.d.ts +4 -4
  7. package/dist/about-culture-tabs.js +174 -174
  8. package/dist/about-developer-profile.cjs +178 -178
  9. package/dist/about-developer-profile.d.cts +3 -3
  10. package/dist/about-developer-profile.d.ts +3 -3
  11. package/dist/about-developer-profile.js +178 -178
  12. package/dist/about-developer-story.cjs +142 -142
  13. package/dist/about-developer-story.d.cts +3 -3
  14. package/dist/about-developer-story.d.ts +3 -3
  15. package/dist/about-developer-story.js +142 -142
  16. package/dist/about-expandable-values.d.cts +4 -4
  17. package/dist/about-expandable-values.d.ts +4 -4
  18. package/dist/about-interactive-tabs.d.cts +3 -3
  19. package/dist/about-interactive-tabs.d.ts +3 -3
  20. package/dist/about-location-info-hero.d.cts +3 -3
  21. package/dist/about-location-info-hero.d.ts +3 -3
  22. package/dist/about-minimal-story.d.cts +3 -3
  23. package/dist/about-minimal-story.d.ts +3 -3
  24. package/dist/about-mission-dual-image.cjs +142 -142
  25. package/dist/about-mission-dual-image.d.cts +3 -3
  26. package/dist/about-mission-dual-image.d.ts +3 -3
  27. package/dist/about-mission-dual-image.js +142 -142
  28. package/dist/about-mission-features.cjs +143 -143
  29. package/dist/about-mission-features.d.cts +3 -3
  30. package/dist/about-mission-features.d.ts +3 -3
  31. package/dist/about-mission-features.js +143 -143
  32. package/dist/about-mission-principles.d.cts +4 -4
  33. package/dist/about-mission-principles.d.ts +4 -4
  34. package/dist/about-network-spotlight.cjs +147 -144
  35. package/dist/about-network-spotlight.d.cts +3 -3
  36. package/dist/about-network-spotlight.d.ts +3 -3
  37. package/dist/about-network-spotlight.js +147 -144
  38. package/dist/about-split-hero.d.cts +3 -3
  39. package/dist/about-split-hero.d.ts +3 -3
  40. package/dist/about-startup-team.d.cts +3 -3
  41. package/dist/about-startup-team.d.ts +3 -3
  42. package/dist/about-stats-showcase.d.cts +3 -3
  43. package/dist/about-stats-showcase.d.ts +3 -3
  44. package/dist/about-stats-sidebar.d.cts +3 -3
  45. package/dist/about-stats-sidebar.d.ts +3 -3
  46. package/dist/about-story-expertise.cjs +142 -142
  47. package/dist/about-story-expertise.d.cts +3 -3
  48. package/dist/about-story-expertise.d.ts +3 -3
  49. package/dist/about-story-expertise.js +142 -142
  50. package/dist/about-story-gallery.d.cts +3 -3
  51. package/dist/about-story-gallery.d.ts +3 -3
  52. package/dist/about-story-hero.d.cts +3 -3
  53. package/dist/about-story-hero.d.ts +3 -3
  54. package/dist/about-streamline-team.cjs +142 -142
  55. package/dist/about-streamline-team.d.cts +3 -3
  56. package/dist/about-streamline-team.d.ts +3 -3
  57. package/dist/about-streamline-team.js +142 -142
  58. package/dist/about-vision-gallery.d.cts +3 -3
  59. package/dist/about-vision-gallery.d.ts +3 -3
  60. package/dist/alternating-blocks.d.cts +4 -4
  61. package/dist/alternating-blocks.d.ts +4 -4
  62. package/dist/animated-dialog.d.cts +3 -3
  63. package/dist/animated-dialog.d.ts +3 -3
  64. package/dist/article-breadcrumb-social.d.cts +3 -3
  65. package/dist/article-breadcrumb-social.d.ts +3 -3
  66. package/dist/article-chapters-author.d.cts +3 -3
  67. package/dist/article-chapters-author.d.ts +3 -3
  68. package/dist/article-compact-toc.d.cts +3 -3
  69. package/dist/article-compact-toc.d.ts +3 -3
  70. package/dist/article-hero-prose.d.cts +3 -3
  71. package/dist/article-hero-prose.d.ts +3 -3
  72. package/dist/article-sidebar-sticky.d.cts +3 -3
  73. package/dist/article-sidebar-sticky.d.ts +3 -3
  74. package/dist/article-split-animated.d.cts +3 -3
  75. package/dist/article-split-animated.d.ts +3 -3
  76. package/dist/article-toc-sidebar.d.cts +3 -3
  77. package/dist/article-toc-sidebar.d.ts +3 -3
  78. package/dist/auto-scroll-carousel.d.cts +3 -3
  79. package/dist/auto-scroll-carousel.d.ts +3 -3
  80. package/dist/badge.d.cts +1 -1
  81. package/dist/badge.d.ts +1 -1
  82. package/dist/banner-announcement-dismissible.d.cts +3 -3
  83. package/dist/banner-announcement-dismissible.d.ts +3 -3
  84. package/dist/banner-countdown-sale.d.cts +3 -3
  85. package/dist/banner-countdown-sale.d.ts +3 -3
  86. package/dist/banner-delivery-countdown.d.cts +3 -3
  87. package/dist/banner-delivery-countdown.d.ts +3 -3
  88. package/dist/banner-event-promo.d.cts +3 -3
  89. package/dist/banner-event-promo.d.ts +3 -3
  90. package/dist/banner-floating-offer.d.cts +3 -3
  91. package/dist/banner-floating-offer.d.ts +3 -3
  92. package/dist/banner-gdpr-rights.d.cts +3 -3
  93. package/dist/banner-gdpr-rights.d.ts +3 -3
  94. package/dist/banner-privacy-notice.d.cts +3 -3
  95. package/dist/banner-privacy-notice.d.ts +3 -3
  96. package/dist/banner-promo-cta.d.cts +3 -3
  97. package/dist/banner-promo-cta.d.ts +3 -3
  98. package/dist/banner-social-follow.d.cts +3 -3
  99. package/dist/banner-social-follow.d.ts +3 -3
  100. package/dist/banner-survey-incentive.d.cts +3 -3
  101. package/dist/banner-survey-incentive.d.ts +3 -3
  102. package/dist/{blocks-CsMdf2Jh.d.ts → blocks-DmMuCMEh.d.ts} +6 -2
  103. package/dist/{blocks-gR13ES5A.d.cts → blocks-U7wOoE0O.d.cts} +6 -2
  104. package/dist/blog-cards-read-time.d.cts +3 -3
  105. package/dist/blog-cards-read-time.d.ts +3 -3
  106. package/dist/blog-cards-tagline-cta.d.cts +3 -3
  107. package/dist/blog-cards-tagline-cta.d.ts +3 -3
  108. package/dist/blog-carousel-apple.d.cts +3 -3
  109. package/dist/blog-carousel-apple.d.ts +3 -3
  110. package/dist/blog-category-overlay.d.cts +3 -3
  111. package/dist/blog-category-overlay.d.ts +3 -3
  112. package/dist/blog-featured-popular.d.cts +3 -3
  113. package/dist/blog-featured-popular.d.ts +3 -3
  114. package/dist/blog-filtered-results.d.cts +3 -3
  115. package/dist/blog-filtered-results.d.ts +3 -3
  116. package/dist/blog-grid-author-cards.d.cts +3 -3
  117. package/dist/blog-grid-author-cards.d.ts +3 -3
  118. package/dist/blog-grid-nine-posts.d.cts +3 -3
  119. package/dist/blog-grid-nine-posts.d.ts +3 -3
  120. package/dist/blog-horizontal-cards.d.cts +3 -3
  121. package/dist/blog-horizontal-cards.d.ts +3 -3
  122. package/dist/blog-horizontal-timeline.d.cts +3 -3
  123. package/dist/blog-horizontal-timeline.d.ts +3 -3
  124. package/dist/blog-masonry-featured.d.cts +3 -3
  125. package/dist/blog-masonry-featured.d.ts +3 -3
  126. package/dist/blog-related-articles.d.cts +3 -3
  127. package/dist/blog-related-articles.d.ts +3 -3
  128. package/dist/blog-tech-insights.cjs +6 -6
  129. package/dist/blog-tech-insights.d.cts +3 -3
  130. package/dist/blog-tech-insights.d.ts +3 -3
  131. package/dist/blog-tech-insights.js +6 -6
  132. package/dist/blur-vignette-grid.d.cts +3 -3
  133. package/dist/blur-vignette-grid.d.ts +3 -3
  134. package/dist/{button-variants-lRElsmTc.d.cts → button-variants-8mtEHxev.d.cts} +1 -1
  135. package/dist/{button-variants-lRElsmTc.d.ts → button-variants-8mtEHxev.d.ts} +1 -1
  136. package/dist/button.d.cts +1 -1
  137. package/dist/button.d.ts +1 -1
  138. package/dist/carousel-animated-sections.d.cts +3 -3
  139. package/dist/carousel-animated-sections.d.ts +3 -3
  140. package/dist/carousel-auto-progress-slides.d.cts +3 -3
  141. package/dist/carousel-auto-progress-slides.d.ts +3 -3
  142. package/dist/carousel-autoplay-progress.d.cts +3 -3
  143. package/dist/carousel-autoplay-progress.d.ts +3 -3
  144. package/dist/carousel-badge-cards.d.cts +3 -3
  145. package/dist/carousel-badge-cards.d.ts +3 -3
  146. package/dist/carousel-demo-link.d.cts +3 -3
  147. package/dist/carousel-demo-link.d.ts +3 -3
  148. package/dist/carousel-feature-badge.d.cts +3 -3
  149. package/dist/carousel-feature-badge.d.ts +3 -3
  150. package/dist/carousel-fullscreen-scroll-fx.d.cts +3 -3
  151. package/dist/carousel-fullscreen-scroll-fx.d.ts +3 -3
  152. package/dist/carousel-gallery-thumbnails.d.cts +3 -3
  153. package/dist/carousel-gallery-thumbnails.d.ts +3 -3
  154. package/dist/carousel-gradient-overlay.d.cts +3 -3
  155. package/dist/carousel-gradient-overlay.d.ts +3 -3
  156. package/dist/carousel-gradient-text.d.cts +3 -3
  157. package/dist/carousel-gradient-text.d.ts +3 -3
  158. package/dist/carousel-horizontal-cards.d.cts +3 -3
  159. package/dist/carousel-horizontal-cards.d.ts +3 -3
  160. package/dist/carousel-icon-sidebar.d.cts +3 -3
  161. package/dist/carousel-icon-sidebar.d.ts +3 -3
  162. package/dist/carousel-icon-tabs.d.cts +3 -3
  163. package/dist/carousel-icon-tabs.d.ts +3 -3
  164. package/dist/carousel-image-hero.d.cts +3 -3
  165. package/dist/carousel-image-hero.d.ts +3 -3
  166. package/dist/carousel-multi-step-showcase.d.cts +3 -3
  167. package/dist/carousel-multi-step-showcase.d.ts +3 -3
  168. package/dist/carousel-portfolio-hero.d.cts +3 -3
  169. package/dist/carousel-portfolio-hero.d.ts +3 -3
  170. package/dist/carousel-product-feature-showcase.d.cts +3 -3
  171. package/dist/carousel-product-feature-showcase.d.ts +3 -3
  172. package/dist/carousel-progress-slider.d.cts +3 -3
  173. package/dist/carousel-progress-slider.d.ts +3 -3
  174. package/dist/carousel-scale-focus.d.cts +3 -3
  175. package/dist/carousel-scale-focus.d.ts +3 -3
  176. package/dist/carousel-scrolling-feature-showcase.d.cts +3 -3
  177. package/dist/carousel-scrolling-feature-showcase.d.ts +3 -3
  178. package/dist/carousel-sidebar-resources.d.cts +3 -3
  179. package/dist/carousel-sidebar-resources.d.ts +3 -3
  180. package/dist/carousel-tabs-content.d.cts +3 -3
  181. package/dist/carousel-tabs-content.d.ts +3 -3
  182. package/dist/case-studies-featured-border.d.cts +3 -3
  183. package/dist/case-studies-featured-border.d.ts +3 -3
  184. package/dist/case-studies-image-grid.d.cts +3 -3
  185. package/dist/case-studies-image-grid.d.ts +3 -3
  186. package/dist/case-studies-stats-card.d.cts +3 -3
  187. package/dist/case-studies-stats-card.d.ts +3 -3
  188. package/dist/case-studies-testimonial-stats.d.cts +3 -3
  189. package/dist/case-studies-testimonial-stats.d.ts +3 -3
  190. package/dist/case-study-prose-sidebar.d.cts +3 -3
  191. package/dist/case-study-prose-sidebar.d.ts +3 -3
  192. package/dist/case-study-stats-metrics.d.cts +3 -3
  193. package/dist/case-study-stats-metrics.d.ts +3 -3
  194. package/dist/case-study-toc-social-sidebar.d.cts +3 -3
  195. package/dist/case-study-toc-social-sidebar.d.ts +3 -3
  196. package/dist/{community-initiatives-CtLnPq2v.d.ts → community-initiatives-64wrtPed.d.ts} +2 -6
  197. package/dist/{community-initiatives-2FsyKLdT.d.cts → community-initiatives-DM27LAzE.d.cts} +2 -6
  198. package/dist/community-initiatives.cjs +142 -142
  199. package/dist/community-initiatives.d.cts +4 -4
  200. package/dist/community-initiatives.d.ts +4 -4
  201. package/dist/community-initiatives.js +142 -142
  202. package/dist/comparison-ai-models.d.cts +3 -3
  203. package/dist/comparison-ai-models.d.ts +3 -3
  204. package/dist/comparison-feature-cards.d.cts +3 -3
  205. package/dist/comparison-feature-cards.d.ts +3 -3
  206. package/dist/comparison-feature-grid.d.cts +4 -4
  207. package/dist/comparison-feature-grid.d.ts +4 -4
  208. package/dist/comparison-grid-badges.d.cts +4 -4
  209. package/dist/comparison-grid-badges.d.ts +4 -4
  210. package/dist/comparison-image-cards.d.cts +3 -3
  211. package/dist/comparison-image-cards.d.ts +3 -3
  212. package/dist/comparison-legacy-modern.d.cts +4 -4
  213. package/dist/comparison-legacy-modern.d.ts +4 -4
  214. package/dist/comparison-metrics-rows.d.cts +3 -3
  215. package/dist/comparison-metrics-rows.d.ts +3 -3
  216. package/dist/comparison-table-tabs.d.cts +4 -4
  217. package/dist/comparison-table-tabs.d.ts +4 -4
  218. package/dist/comparison-table-tooltips.d.cts +4 -4
  219. package/dist/comparison-table-tooltips.d.ts +4 -4
  220. package/dist/comparison-table-two-column.d.cts +3 -3
  221. package/dist/comparison-table-two-column.d.ts +3 -3
  222. package/dist/components.cjs +1359 -785
  223. package/dist/components.d.cts +6 -4
  224. package/dist/components.d.ts +6 -4
  225. package/dist/components.js +1264 -691
  226. package/dist/contact-callback.d.cts +4 -4
  227. package/dist/contact-callback.d.ts +4 -4
  228. package/dist/contact-card.d.cts +5 -5
  229. package/dist/contact-card.d.ts +5 -5
  230. package/dist/contact-careers.cjs +4 -4
  231. package/dist/contact-careers.d.cts +4 -4
  232. package/dist/contact-careers.d.ts +4 -4
  233. package/dist/contact-careers.js +4 -4
  234. package/dist/contact-catering.d.cts +4 -4
  235. package/dist/contact-catering.d.ts +4 -4
  236. package/dist/contact-consultation.d.cts +4 -4
  237. package/dist/contact-consultation.d.ts +4 -4
  238. package/dist/{contact-dark-BN6426-J.d.ts → contact-dark-CECEnR7C.d.ts} +1 -1
  239. package/dist/{contact-dark-DA4diOuH.d.cts → contact-dark-DlV3Sdwd.d.cts} +1 -1
  240. package/dist/contact-dark.d.cts +5 -5
  241. package/dist/contact-dark.d.ts +5 -5
  242. package/dist/contact-demo.d.cts +4 -4
  243. package/dist/contact-demo.d.ts +4 -4
  244. package/dist/contact-emergency.d.cts +4 -4
  245. package/dist/contact-emergency.d.ts +4 -4
  246. package/dist/contact-event.d.cts +4 -4
  247. package/dist/contact-event.d.ts +4 -4
  248. package/dist/contact-faq.cjs +4 -4
  249. package/dist/contact-faq.d.cts +4 -4
  250. package/dist/contact-faq.d.ts +4 -4
  251. package/dist/contact-faq.js +4 -4
  252. package/dist/contact-feedback.d.cts +4 -4
  253. package/dist/contact-feedback.d.ts +4 -4
  254. package/dist/contact-fitness.d.cts +4 -4
  255. package/dist/contact-fitness.d.ts +4 -4
  256. package/dist/contact-floating-banner.d.cts +3 -3
  257. package/dist/contact-floating-banner.d.ts +3 -3
  258. package/dist/contact-guest.d.cts +4 -4
  259. package/dist/contact-guest.d.ts +4 -4
  260. package/dist/contact-help-center.d.cts +4 -4
  261. package/dist/contact-help-center.d.ts +4 -4
  262. package/dist/contact-image.d.cts +3 -3
  263. package/dist/contact-image.d.ts +3 -3
  264. package/dist/contact-insurance.d.cts +4 -4
  265. package/dist/contact-insurance.d.ts +4 -4
  266. package/dist/contact-interview.d.cts +4 -4
  267. package/dist/contact-interview.d.ts +4 -4
  268. package/dist/contact-locations.d.cts +4 -4
  269. package/dist/contact-locations.d.ts +4 -4
  270. package/dist/contact-maintenance.d.cts +4 -4
  271. package/dist/contact-maintenance.d.ts +4 -4
  272. package/dist/contact-map.cjs +1078 -40
  273. package/dist/contact-map.d.cts +15 -5
  274. package/dist/contact-map.d.ts +15 -5
  275. package/dist/contact-map.js +1062 -39
  276. package/dist/contact-minimal.d.cts +4 -4
  277. package/dist/contact-minimal.d.ts +4 -4
  278. package/dist/contact-moving.d.cts +4 -4
  279. package/dist/contact-moving.d.ts +4 -4
  280. package/dist/contact-multistep.d.cts +4 -4
  281. package/dist/contact-multistep.d.ts +4 -4
  282. package/dist/contact-partnership.d.cts +4 -4
  283. package/dist/contact-partnership.d.ts +4 -4
  284. package/dist/contact-photography.d.cts +3 -3
  285. package/dist/contact-photography.d.ts +3 -3
  286. package/dist/contact-press.d.cts +4 -4
  287. package/dist/contact-press.d.ts +4 -4
  288. package/dist/contact-quote.d.cts +4 -4
  289. package/dist/contact-quote.d.ts +4 -4
  290. package/dist/contact-referral.d.cts +4 -4
  291. package/dist/contact-referral.d.ts +4 -4
  292. package/dist/contact-report.d.cts +4 -4
  293. package/dist/contact-report.d.ts +4 -4
  294. package/dist/contact-reservation.d.cts +4 -4
  295. package/dist/contact-reservation.d.ts +4 -4
  296. package/dist/contact-retreat.d.cts +4 -4
  297. package/dist/contact-retreat.d.ts +4 -4
  298. package/dist/contact-rsvp.d.cts +4 -4
  299. package/dist/contact-rsvp.d.ts +4 -4
  300. package/dist/contact-sales.d.cts +4 -4
  301. package/dist/contact-sales.d.ts +4 -4
  302. package/dist/contact-schedule.d.cts +4 -4
  303. package/dist/contact-schedule.d.ts +4 -4
  304. package/dist/contact-sponsorship.d.cts +4 -4
  305. package/dist/contact-sponsorship.d.ts +4 -4
  306. package/dist/contact-support.d.cts +4 -4
  307. package/dist/contact-support.d.ts +4 -4
  308. package/dist/contact-tenant.d.cts +4 -4
  309. package/dist/contact-tenant.d.ts +4 -4
  310. package/dist/contact-vendor.d.cts +4 -4
  311. package/dist/contact-vendor.d.ts +4 -4
  312. package/dist/contact-volunteer.d.cts +4 -4
  313. package/dist/contact-volunteer.d.ts +4 -4
  314. package/dist/contact-warranty.d.cts +4 -4
  315. package/dist/contact-warranty.d.ts +4 -4
  316. package/dist/contact-wedding.d.cts +4 -4
  317. package/dist/contact-wedding.d.ts +4 -4
  318. package/dist/container.d.cts +4 -4
  319. package/dist/container.d.ts +4 -4
  320. package/dist/cta-accent-background.d.cts +3 -3
  321. package/dist/cta-accent-background.d.ts +3 -3
  322. package/dist/cta-app-download-newsletter.d.cts +3 -3
  323. package/dist/cta-app-download-newsletter.d.ts +3 -3
  324. package/dist/cta-background-icon-badge.d.cts +3 -3
  325. package/dist/cta-background-icon-badge.d.ts +3 -3
  326. package/dist/cta-case-study-testimonial.d.cts +3 -3
  327. package/dist/cta-case-study-testimonial.d.ts +3 -3
  328. package/dist/cta-documentation-links.d.cts +3 -3
  329. package/dist/cta-documentation-links.d.ts +3 -3
  330. package/dist/cta-enterprise-dark-features.d.cts +3 -3
  331. package/dist/cta-enterprise-dark-features.d.ts +3 -3
  332. package/dist/cta-enterprise-split.d.cts +3 -3
  333. package/dist/cta-enterprise-split.d.ts +3 -3
  334. package/dist/cta-feature-cards-grid.d.cts +3 -3
  335. package/dist/cta-feature-cards-grid.d.ts +3 -3
  336. package/dist/cta-feature-checklist.cjs +142 -142
  337. package/dist/cta-feature-checklist.d.cts +3 -3
  338. package/dist/cta-feature-checklist.d.ts +3 -3
  339. package/dist/cta-feature-checklist.js +142 -142
  340. package/dist/cta-feature-list.d.cts +3 -3
  341. package/dist/cta-feature-list.d.ts +3 -3
  342. package/dist/cta-fullwidth-background.d.cts +3 -3
  343. package/dist/cta-fullwidth-background.d.ts +3 -3
  344. package/dist/cta-gradient-logos-floating.d.cts +3 -3
  345. package/dist/cta-gradient-logos-floating.d.ts +3 -3
  346. package/dist/cta-gradient-stats-hero.d.cts +3 -3
  347. package/dist/cta-gradient-stats-hero.d.ts +3 -3
  348. package/dist/cta-hero-feature-cards.d.cts +3 -3
  349. package/dist/cta-hero-feature-cards.d.ts +3 -3
  350. package/dist/cta-image-overlay-arrow.d.cts +3 -3
  351. package/dist/cta-image-overlay-arrow.d.ts +3 -3
  352. package/dist/cta-image-overlay-centered.d.cts +3 -3
  353. package/dist/cta-image-overlay-centered.d.ts +3 -3
  354. package/dist/cta-minimal-separator.d.cts +3 -3
  355. package/dist/cta-minimal-separator.d.ts +3 -3
  356. package/dist/cta-newsletter-features.d.cts +3 -3
  357. package/dist/cta-newsletter-features.d.ts +3 -3
  358. package/dist/cta-pattern-background.d.cts +3 -3
  359. package/dist/cta-pattern-background.d.ts +3 -3
  360. package/dist/cta-platform-demo.d.cts +3 -3
  361. package/dist/cta-platform-demo.d.ts +3 -3
  362. package/dist/cta-simple-centered.d.cts +3 -3
  363. package/dist/cta-simple-centered.d.ts +3 -3
  364. package/dist/cta-split-gradient-image.d.cts +3 -3
  365. package/dist/cta-split-gradient-image.d.ts +3 -3
  366. package/dist/cta-split-image-logos.d.cts +3 -3
  367. package/dist/cta-split-image-logos.d.ts +3 -3
  368. package/dist/cta-split-image.d.cts +3 -3
  369. package/dist/cta-split-image.d.ts +3 -3
  370. package/dist/cta-stacked-cards.d.cts +3 -3
  371. package/dist/cta-stacked-cards.d.ts +3 -3
  372. package/dist/cta-video-background-hero.d.cts +3 -3
  373. package/dist/cta-video-background-hero.d.ts +3 -3
  374. package/dist/cta-workflow-tabs.d.cts +3 -3
  375. package/dist/cta-workflow-tabs.d.ts +3 -3
  376. package/dist/expandable-case-study-cards.d.cts +3 -3
  377. package/dist/expandable-case-study-cards.d.ts +3 -3
  378. package/dist/faq-badge-support.cjs +5 -5
  379. package/dist/faq-badge-support.d.cts +3 -3
  380. package/dist/faq-badge-support.d.ts +3 -3
  381. package/dist/faq-badge-support.js +5 -5
  382. package/dist/faq-bordered-badge.cjs +15 -66
  383. package/dist/faq-bordered-badge.d.cts +4 -4
  384. package/dist/faq-bordered-badge.d.ts +4 -4
  385. package/dist/faq-bordered-badge.js +15 -66
  386. package/dist/faq-card-categories.cjs +143 -162
  387. package/dist/faq-card-categories.d.cts +4 -4
  388. package/dist/faq-card-categories.d.ts +4 -4
  389. package/dist/faq-card-categories.js +142 -158
  390. package/dist/faq-categorized-sections.cjs +10 -46
  391. package/dist/faq-categorized-sections.d.cts +4 -4
  392. package/dist/faq-categorized-sections.d.ts +4 -4
  393. package/dist/faq-categorized-sections.js +10 -46
  394. package/dist/faq-centered-accordion.cjs +4 -4
  395. package/dist/faq-centered-accordion.d.cts +3 -3
  396. package/dist/faq-centered-accordion.d.ts +3 -3
  397. package/dist/faq-centered-accordion.js +4 -4
  398. package/dist/faq-gradient-categories.cjs +99 -75
  399. package/dist/faq-gradient-categories.d.cts +6 -6
  400. package/dist/faq-gradient-categories.d.ts +6 -6
  401. package/dist/faq-gradient-categories.js +98 -71
  402. package/dist/faq-icon-benefits.cjs +125 -76
  403. package/dist/faq-icon-benefits.d.cts +4 -4
  404. package/dist/faq-icon-benefits.d.ts +4 -4
  405. package/dist/faq-icon-benefits.js +107 -73
  406. package/dist/faq-muted-cards.cjs +122 -92
  407. package/dist/faq-muted-cards.d.cts +20 -4
  408. package/dist/faq-muted-cards.d.ts +20 -4
  409. package/dist/faq-muted-cards.js +121 -88
  410. package/dist/faq-numbered-grid.cjs +142 -142
  411. package/dist/faq-numbered-grid.d.cts +3 -3
  412. package/dist/faq-numbered-grid.d.ts +3 -3
  413. package/dist/faq-numbered-grid.js +142 -142
  414. package/dist/faq-numbered-list.cjs +47 -106
  415. package/dist/faq-numbered-list.d.cts +4 -4
  416. package/dist/faq-numbered-list.d.ts +4 -4
  417. package/dist/faq-numbered-list.js +47 -106
  418. package/dist/faq-profile-sidebar.cjs +150 -124
  419. package/dist/faq-profile-sidebar.d.cts +4 -4
  420. package/dist/faq-profile-sidebar.d.ts +4 -4
  421. package/dist/faq-profile-sidebar.js +150 -124
  422. package/dist/faq-rounded-cards.cjs +107 -37
  423. package/dist/faq-rounded-cards.d.cts +4 -4
  424. package/dist/faq-rounded-cards.d.ts +4 -4
  425. package/dist/faq-rounded-cards.js +106 -33
  426. package/dist/faq-sidebar-navigation.cjs +65 -51
  427. package/dist/faq-sidebar-navigation.d.cts +3 -3
  428. package/dist/faq-sidebar-navigation.d.ts +3 -3
  429. package/dist/faq-sidebar-navigation.js +65 -51
  430. package/dist/faq-simple-accordion.cjs +12 -5
  431. package/dist/faq-simple-accordion.d.cts +3 -3
  432. package/dist/faq-simple-accordion.d.ts +3 -3
  433. package/dist/faq-simple-accordion.js +12 -5
  434. package/dist/faq-split-help.cjs +77 -20
  435. package/dist/faq-split-help.d.cts +3 -3
  436. package/dist/faq-split-help.d.ts +3 -3
  437. package/dist/faq-split-help.js +77 -20
  438. package/dist/faq-split-hero.cjs +228 -75
  439. package/dist/faq-split-hero.d.cts +16 -22
  440. package/dist/faq-split-hero.d.ts +16 -22
  441. package/dist/faq-split-hero.js +224 -74
  442. package/dist/faq-static-list.cjs +124 -21
  443. package/dist/faq-static-list.d.cts +16 -4
  444. package/dist/faq-static-list.d.ts +16 -4
  445. package/dist/faq-static-list.js +106 -18
  446. package/dist/feature-accordion-image.cjs +4 -4
  447. package/dist/feature-accordion-image.d.cts +3 -3
  448. package/dist/feature-accordion-image.d.ts +3 -3
  449. package/dist/feature-accordion-image.js +4 -4
  450. package/dist/feature-animated-carousel.cjs +142 -142
  451. package/dist/feature-animated-carousel.d.cts +3 -3
  452. package/dist/feature-animated-carousel.d.ts +3 -3
  453. package/dist/feature-animated-carousel.js +142 -142
  454. package/dist/feature-badge-grid-six.d.cts +3 -3
  455. package/dist/feature-badge-grid-six.d.ts +3 -3
  456. package/dist/feature-bento-image-grid.d.cts +3 -3
  457. package/dist/feature-bento-image-grid.d.ts +3 -3
  458. package/dist/feature-bento-utilities.cjs +142 -142
  459. package/dist/feature-bento-utilities.d.cts +3 -3
  460. package/dist/feature-bento-utilities.d.ts +3 -3
  461. package/dist/feature-bento-utilities.js +142 -142
  462. package/dist/feature-capabilities-grid.cjs +142 -142
  463. package/dist/feature-capabilities-grid.d.cts +4 -4
  464. package/dist/feature-capabilities-grid.d.ts +4 -4
  465. package/dist/feature-capabilities-grid.js +142 -142
  466. package/dist/feature-card-grid-linked.d.cts +3 -3
  467. package/dist/feature-card-grid-linked.d.ts +3 -3
  468. package/dist/feature-carousel-progress.d.cts +4 -4
  469. package/dist/feature-carousel-progress.d.ts +4 -4
  470. package/dist/feature-category-image-cards.cjs +142 -142
  471. package/dist/feature-category-image-cards.d.cts +3 -3
  472. package/dist/feature-category-image-cards.d.ts +3 -3
  473. package/dist/feature-category-image-cards.js +142 -142
  474. package/dist/feature-checklist-image.d.cts +3 -3
  475. package/dist/feature-checklist-image.d.ts +3 -3
  476. package/dist/feature-checklist-three-column.d.cts +3 -3
  477. package/dist/feature-checklist-three-column.d.ts +3 -3
  478. package/dist/feature-icon-grid-accent.d.cts +3 -3
  479. package/dist/feature-icon-grid-accent.d.ts +3 -3
  480. package/dist/feature-icon-grid-bordered.cjs +142 -142
  481. package/dist/feature-icon-grid-bordered.d.cts +4 -4
  482. package/dist/feature-icon-grid-bordered.d.ts +4 -4
  483. package/dist/feature-icon-grid-bordered.js +142 -142
  484. package/dist/feature-icon-grid-muted.cjs +142 -142
  485. package/dist/feature-icon-grid-muted.d.cts +4 -4
  486. package/dist/feature-icon-grid-muted.d.ts +4 -4
  487. package/dist/feature-icon-grid-muted.js +142 -142
  488. package/dist/feature-icon-tabs-content.d.cts +3 -3
  489. package/dist/feature-icon-tabs-content.d.ts +3 -3
  490. package/dist/feature-image-cards-three-column.d.cts +3 -3
  491. package/dist/feature-image-cards-three-column.d.ts +3 -3
  492. package/dist/feature-image-overlay-badge.d.cts +3 -3
  493. package/dist/feature-image-overlay-badge.d.ts +3 -3
  494. package/dist/feature-integration-cards.d.cts +3 -3
  495. package/dist/feature-integration-cards.d.ts +3 -3
  496. package/dist/feature-numbered-cards.cjs +142 -142
  497. package/dist/feature-numbered-cards.d.cts +3 -3
  498. package/dist/feature-numbered-cards.d.ts +3 -3
  499. package/dist/feature-numbered-cards.js +142 -142
  500. package/dist/feature-pattern-grid-links.d.cts +4 -4
  501. package/dist/feature-pattern-grid-links.d.ts +4 -4
  502. package/dist/feature-showcase.d.cts +4 -4
  503. package/dist/feature-showcase.d.ts +4 -4
  504. package/dist/feature-split-image-reverse.d.cts +3 -3
  505. package/dist/feature-split-image-reverse.d.ts +3 -3
  506. package/dist/feature-split-image.d.cts +3 -3
  507. package/dist/feature-split-image.d.ts +3 -3
  508. package/dist/feature-stats-highlight.d.cts +3 -3
  509. package/dist/feature-stats-highlight.d.ts +3 -3
  510. package/dist/feature-tabbed-content-image.d.cts +3 -3
  511. package/dist/feature-tabbed-content-image.d.ts +3 -3
  512. package/dist/feature-three-column-values.cjs +142 -142
  513. package/dist/feature-three-column-values.d.cts +4 -4
  514. package/dist/feature-three-column-values.d.ts +4 -4
  515. package/dist/feature-three-column-values.js +142 -142
  516. package/dist/feature-utility-cards-grid.d.cts +3 -3
  517. package/dist/feature-utility-cards-grid.d.ts +3 -3
  518. package/dist/footer-accordion-social.d.cts +3 -3
  519. package/dist/footer-accordion-social.d.ts +3 -3
  520. package/dist/footer-animated-social.d.cts +4 -4
  521. package/dist/footer-animated-social.d.ts +4 -4
  522. package/dist/footer-background-card.d.cts +3 -3
  523. package/dist/footer-background-card.d.ts +3 -3
  524. package/dist/footer-brand-description.d.cts +3 -3
  525. package/dist/footer-brand-description.d.ts +3 -3
  526. package/dist/footer-brand-links-contact.d.cts +3 -3
  527. package/dist/footer-brand-links-contact.d.ts +3 -3
  528. package/dist/footer-comprehensive-links.d.cts +4 -4
  529. package/dist/footer-comprehensive-links.d.ts +4 -4
  530. package/dist/footer-contact-card.d.cts +3 -3
  531. package/dist/footer-contact-card.d.ts +3 -3
  532. package/dist/footer-cta-banner.d.cts +3 -3
  533. package/dist/footer-cta-banner.d.ts +3 -3
  534. package/dist/footer-cta-social.d.cts +4 -4
  535. package/dist/footer-cta-social.d.ts +4 -4
  536. package/dist/footer-info-cards-accordion.d.cts +3 -3
  537. package/dist/footer-info-cards-accordion.d.ts +3 -3
  538. package/dist/footer-links-grid.d.cts +4 -4
  539. package/dist/footer-links-grid.d.ts +4 -4
  540. package/dist/footer-nav-social.d.cts +3 -3
  541. package/dist/footer-nav-social.d.ts +3 -3
  542. package/dist/footer-newsletter-contact.d.cts +3 -3
  543. package/dist/footer-newsletter-contact.d.ts +3 -3
  544. package/dist/footer-newsletter-grid.d.cts +4 -4
  545. package/dist/footer-newsletter-grid.d.ts +4 -4
  546. package/dist/footer-newsletter-minimal.d.cts +3 -3
  547. package/dist/footer-newsletter-minimal.d.ts +3 -3
  548. package/dist/footer-simple-centered.d.cts +3 -3
  549. package/dist/footer-simple-centered.d.ts +3 -3
  550. package/dist/footer-social-apps.d.cts +4 -4
  551. package/dist/footer-social-apps.d.ts +4 -4
  552. package/dist/footer-social-newsletter.d.cts +3 -3
  553. package/dist/footer-social-newsletter.d.ts +3 -3
  554. package/dist/footer-split-image-accordion.d.cts +3 -3
  555. package/dist/footer-split-image-accordion.d.ts +3 -3
  556. package/dist/geo-map.cjs +1026 -0
  557. package/dist/geo-map.d.cts +90 -0
  558. package/dist/geo-map.d.ts +90 -0
  559. package/dist/geo-map.js +1004 -0
  560. package/dist/hero-ad-campaign-expert.cjs +144 -144
  561. package/dist/hero-ad-campaign-expert.d.cts +3 -3
  562. package/dist/hero-ad-campaign-expert.d.ts +3 -3
  563. package/dist/hero-ad-campaign-expert.js +144 -144
  564. package/dist/hero-adaptable-product-grid.cjs +142 -142
  565. package/dist/hero-adaptable-product-grid.d.cts +3 -3
  566. package/dist/hero-adaptable-product-grid.d.ts +3 -3
  567. package/dist/hero-adaptable-product-grid.js +142 -142
  568. package/dist/hero-agency-animated-images.cjs +142 -142
  569. package/dist/hero-agency-animated-images.d.cts +3 -3
  570. package/dist/hero-agency-animated-images.d.ts +3 -3
  571. package/dist/hero-agency-animated-images.js +142 -142
  572. package/dist/hero-ai-powered-carousel.d.cts +3 -3
  573. package/dist/hero-ai-powered-carousel.d.ts +3 -3
  574. package/dist/hero-announcement-badge.cjs +142 -142
  575. package/dist/hero-announcement-badge.d.cts +3 -3
  576. package/dist/hero-announcement-badge.d.ts +3 -3
  577. package/dist/hero-announcement-badge.js +142 -142
  578. package/dist/hero-architecture-fullscreen.d.cts +3 -3
  579. package/dist/hero-architecture-fullscreen.d.ts +3 -3
  580. package/dist/hero-badge-image-split.cjs +142 -142
  581. package/dist/hero-badge-image-split.d.cts +3 -3
  582. package/dist/hero-badge-image-split.d.ts +3 -3
  583. package/dist/hero-badge-image-split.js +142 -142
  584. package/dist/hero-badge-shadow-overlay.d.cts +3 -3
  585. package/dist/hero-badge-shadow-overlay.d.ts +3 -3
  586. package/dist/hero-billing-platform-logos.d.cts +3 -3
  587. package/dist/hero-billing-platform-logos.d.ts +3 -3
  588. package/dist/hero-business-carousel-dots.cjs +142 -142
  589. package/dist/hero-business-carousel-dots.d.cts +3 -3
  590. package/dist/hero-business-carousel-dots.d.ts +3 -3
  591. package/dist/hero-business-carousel-dots.js +142 -142
  592. package/dist/hero-business-operations-mosaic.cjs +142 -142
  593. package/dist/hero-business-operations-mosaic.d.cts +3 -3
  594. package/dist/hero-business-operations-mosaic.d.ts +3 -3
  595. package/dist/hero-business-operations-mosaic.js +142 -142
  596. package/dist/hero-centered-gradient-cta.d.cts +3 -3
  597. package/dist/hero-centered-gradient-cta.d.ts +3 -3
  598. package/dist/hero-centered-image-grid.d.cts +3 -3
  599. package/dist/hero-centered-image-grid.d.ts +3 -3
  600. package/dist/hero-centered-screenshot.d.cts +3 -3
  601. package/dist/hero-centered-screenshot.d.ts +3 -3
  602. package/dist/hero-coming-soon-countdown.d.cts +3 -3
  603. package/dist/hero-coming-soon-countdown.d.ts +3 -3
  604. package/dist/hero-community-survey-cta.d.cts +3 -3
  605. package/dist/hero-community-survey-cta.d.ts +3 -3
  606. package/dist/hero-conversation-intelligence.cjs +142 -142
  607. package/dist/hero-conversation-intelligence.d.cts +3 -3
  608. package/dist/hero-conversation-intelligence.d.ts +3 -3
  609. package/dist/hero-conversation-intelligence.js +142 -142
  610. package/dist/hero-conversion-video-play.d.cts +3 -3
  611. package/dist/hero-conversion-video-play.d.ts +3 -3
  612. package/dist/hero-creative-studio-stacked.cjs +142 -142
  613. package/dist/hero-creative-studio-stacked.d.cts +4 -4
  614. package/dist/hero-creative-studio-stacked.d.ts +4 -4
  615. package/dist/hero-creative-studio-stacked.js +142 -142
  616. package/dist/hero-crm-streamlined.cjs +142 -142
  617. package/dist/hero-crm-streamlined.d.cts +3 -3
  618. package/dist/hero-crm-streamlined.d.ts +3 -3
  619. package/dist/hero-crm-streamlined.js +142 -142
  620. package/dist/hero-customer-support-layered.cjs +142 -142
  621. package/dist/hero-customer-support-layered.d.cts +3 -3
  622. package/dist/hero-customer-support-layered.d.ts +3 -3
  623. package/dist/hero-customer-support-layered.js +142 -142
  624. package/dist/hero-dashed-border-features.d.cts +3 -3
  625. package/dist/hero-dashed-border-features.d.ts +3 -3
  626. package/dist/hero-design-carousel-portfolio.d.cts +3 -3
  627. package/dist/hero-design-carousel-portfolio.d.ts +3 -3
  628. package/dist/hero-design-showcase-logos.cjs +142 -142
  629. package/dist/hero-design-showcase-logos.d.cts +3 -3
  630. package/dist/hero-design-showcase-logos.d.ts +3 -3
  631. package/dist/hero-design-showcase-logos.js +142 -142
  632. package/dist/hero-design-system-3d.cjs +142 -142
  633. package/dist/hero-design-system-3d.d.cts +3 -3
  634. package/dist/hero-design-system-3d.d.ts +3 -3
  635. package/dist/hero-design-system-3d.js +142 -142
  636. package/dist/hero-developer-tools-code.cjs +142 -142
  637. package/dist/hero-developer-tools-code.d.cts +3 -3
  638. package/dist/hero-developer-tools-code.d.ts +3 -3
  639. package/dist/hero-developer-tools-code.js +142 -142
  640. package/dist/hero-digital-agency-fullscreen.cjs +142 -142
  641. package/dist/hero-digital-agency-fullscreen.d.cts +3 -3
  642. package/dist/hero-digital-agency-fullscreen.d.ts +3 -3
  643. package/dist/hero-digital-agency-fullscreen.js +142 -142
  644. package/dist/hero-ecommerce-product-showcase.cjs +174 -174
  645. package/dist/hero-ecommerce-product-showcase.d.cts +3 -3
  646. package/dist/hero-ecommerce-product-showcase.d.ts +3 -3
  647. package/dist/hero-ecommerce-product-showcase.js +174 -174
  648. package/dist/hero-enterprise-security.d.cts +3 -3
  649. package/dist/hero-enterprise-security.d.ts +3 -3
  650. package/dist/hero-event-registration.cjs +142 -142
  651. package/dist/hero-event-registration.d.cts +3 -3
  652. package/dist/hero-event-registration.d.ts +3 -3
  653. package/dist/hero-event-registration.js +142 -142
  654. package/dist/hero-feature-cards-grid.d.cts +3 -3
  655. package/dist/hero-feature-cards-grid.d.ts +3 -3
  656. package/dist/hero-floating-images.d.cts +3 -3
  657. package/dist/hero-floating-images.d.ts +3 -3
  658. package/dist/hero-fullscreen-background-image.cjs +142 -142
  659. package/dist/hero-fullscreen-background-image.d.cts +3 -3
  660. package/dist/hero-fullscreen-background-image.d.ts +3 -3
  661. package/dist/hero-fullscreen-background-image.js +142 -142
  662. package/dist/hero-fullscreen-logo-cta.d.cts +3 -3
  663. package/dist/hero-fullscreen-logo-cta.d.ts +3 -3
  664. package/dist/hero-gradient-avatars-rating.cjs +142 -142
  665. package/dist/hero-gradient-avatars-rating.d.cts +3 -3
  666. package/dist/hero-gradient-avatars-rating.d.ts +3 -3
  667. package/dist/hero-gradient-avatars-rating.js +142 -142
  668. package/dist/hero-gradient-client-focused.cjs +142 -142
  669. package/dist/hero-gradient-client-focused.d.cts +3 -3
  670. package/dist/hero-gradient-client-focused.d.ts +3 -3
  671. package/dist/hero-gradient-client-focused.js +142 -142
  672. package/dist/hero-grid-pattern-efficiency.d.cts +3 -3
  673. package/dist/hero-grid-pattern-efficiency.d.ts +3 -3
  674. package/dist/hero-grid-pattern-solutions.d.cts +3 -3
  675. package/dist/hero-grid-pattern-solutions.d.ts +3 -3
  676. package/dist/hero-hiring-animated-text.cjs +142 -142
  677. package/dist/hero-hiring-animated-text.d.cts +3 -3
  678. package/dist/hero-hiring-animated-text.d.ts +3 -3
  679. package/dist/hero-hiring-animated-text.js +142 -142
  680. package/dist/hero-image-left-content.cjs +142 -142
  681. package/dist/hero-image-left-content.d.cts +3 -3
  682. package/dist/hero-image-left-content.d.ts +3 -3
  683. package/dist/hero-image-left-content.js +142 -142
  684. package/dist/hero-image-slider.d.cts +3 -3
  685. package/dist/hero-image-slider.d.ts +3 -3
  686. package/dist/hero-innovation-image-grid.cjs +142 -142
  687. package/dist/hero-innovation-image-grid.d.cts +3 -3
  688. package/dist/hero-innovation-image-grid.d.ts +3 -3
  689. package/dist/hero-innovation-image-grid.js +142 -142
  690. package/dist/hero-logo-centered-screenshot.d.cts +3 -3
  691. package/dist/hero-logo-centered-screenshot.d.ts +3 -3
  692. package/dist/hero-marketplace-scattered-images.d.cts +3 -3
  693. package/dist/hero-marketplace-scattered-images.d.ts +3 -3
  694. package/dist/hero-mental-health-team.cjs +142 -142
  695. package/dist/hero-mental-health-team.d.cts +3 -3
  696. package/dist/hero-mental-health-team.d.ts +3 -3
  697. package/dist/hero-mental-health-team.js +142 -142
  698. package/dist/hero-mentorship-video-split.d.cts +3 -3
  699. package/dist/hero-mentorship-video-split.d.ts +3 -3
  700. package/dist/hero-minimal-centered-dark.cjs +174 -174
  701. package/dist/hero-minimal-centered-dark.d.cts +3 -3
  702. package/dist/hero-minimal-centered-dark.d.ts +3 -3
  703. package/dist/hero-minimal-centered-dark.js +174 -174
  704. package/dist/hero-mobile-app-download.d.cts +3 -3
  705. package/dist/hero-mobile-app-download.d.ts +3 -3
  706. package/dist/hero-newsletter-minimal.d.cts +3 -3
  707. package/dist/hero-newsletter-minimal.d.ts +3 -3
  708. package/dist/hero-overlay-cta-grid.d.cts +4 -4
  709. package/dist/hero-overlay-cta-grid.d.ts +4 -4
  710. package/dist/hero-pattern-badge-logos.d.cts +3 -3
  711. package/dist/hero-pattern-badge-logos.d.ts +3 -3
  712. package/dist/hero-pattern-logo-tech-stack.d.cts +3 -3
  713. package/dist/hero-pattern-logo-tech-stack.d.ts +3 -3
  714. package/dist/hero-platform-features-grid.d.cts +3 -3
  715. package/dist/hero-platform-features-grid.d.ts +3 -3
  716. package/dist/hero-portfolio-creative.d.cts +3 -3
  717. package/dist/hero-portfolio-creative.d.ts +3 -3
  718. package/dist/hero-premium-split-avatars.d.cts +3 -3
  719. package/dist/hero-premium-split-avatars.d.ts +3 -3
  720. package/dist/hero-presentation-platform-video.cjs +142 -142
  721. package/dist/hero-presentation-platform-video.d.cts +3 -3
  722. package/dist/hero-presentation-platform-video.d.ts +3 -3
  723. package/dist/hero-presentation-platform-video.js +142 -142
  724. package/dist/hero-pricing-comparison.d.cts +3 -3
  725. package/dist/hero-pricing-comparison.d.ts +3 -3
  726. package/dist/hero-product-showcase-floating.cjs +174 -174
  727. package/dist/hero-product-showcase-floating.d.cts +3 -3
  728. package/dist/hero-product-showcase-floating.d.ts +3 -3
  729. package/dist/hero-product-showcase-floating.js +174 -174
  730. package/dist/hero-productivity-launcher-video.d.cts +3 -3
  731. package/dist/hero-productivity-launcher-video.d.ts +3 -3
  732. package/dist/hero-saas-dashboard-preview.d.cts +3 -3
  733. package/dist/hero-saas-dashboard-preview.d.ts +3 -3
  734. package/dist/hero-shared-inbox-layered.cjs +142 -142
  735. package/dist/hero-shared-inbox-layered.d.cts +3 -3
  736. package/dist/hero-shared-inbox-layered.d.ts +3 -3
  737. package/dist/hero-shared-inbox-layered.js +142 -142
  738. package/dist/hero-simple-centered-image.d.cts +3 -3
  739. package/dist/hero-simple-centered-image.d.ts +3 -3
  740. package/dist/hero-software-growth-video-dialog.cjs +142 -142
  741. package/dist/hero-software-growth-video-dialog.d.cts +3 -3
  742. package/dist/hero-software-growth-video-dialog.d.ts +3 -3
  743. package/dist/hero-software-growth-video-dialog.js +142 -142
  744. package/dist/hero-spiral-pattern-cards.cjs +174 -174
  745. package/dist/hero-spiral-pattern-cards.d.cts +3 -3
  746. package/dist/hero-spiral-pattern-cards.d.ts +3 -3
  747. package/dist/hero-spiral-pattern-cards.js +174 -174
  748. package/dist/hero-split-geometric-shapes.cjs +142 -142
  749. package/dist/hero-split-geometric-shapes.d.cts +3 -3
  750. package/dist/hero-split-geometric-shapes.d.ts +3 -3
  751. package/dist/hero-split-geometric-shapes.js +142 -142
  752. package/dist/hero-split-icon-cards.d.cts +4 -4
  753. package/dist/hero-split-icon-cards.d.ts +4 -4
  754. package/dist/hero-split-image-newsletter.d.cts +3 -3
  755. package/dist/hero-split-image-newsletter.d.ts +3 -3
  756. package/dist/hero-split-spiral-shapes.d.cts +3 -3
  757. package/dist/hero-split-spiral-shapes.d.ts +3 -3
  758. package/dist/hero-startup-launch-cta.cjs +174 -174
  759. package/dist/hero-startup-launch-cta.d.cts +3 -3
  760. package/dist/hero-startup-launch-cta.d.ts +3 -3
  761. package/dist/hero-startup-launch-cta.js +174 -174
  762. package/dist/hero-stats-social-proof.cjs +174 -174
  763. package/dist/hero-stats-social-proof.d.cts +3 -3
  764. package/dist/hero-stats-social-proof.d.ts +3 -3
  765. package/dist/hero-stats-social-proof.js +174 -174
  766. package/dist/hero-task-timer-animated.cjs +142 -142
  767. package/dist/hero-task-timer-animated.d.cts +3 -3
  768. package/dist/hero-task-timer-animated.d.ts +3 -3
  769. package/dist/hero-task-timer-animated.js +142 -142
  770. package/dist/hero-tech-carousel.d.cts +3 -3
  771. package/dist/hero-tech-carousel.d.ts +3 -3
  772. package/dist/hero-testimonial-image-grid.cjs +142 -142
  773. package/dist/hero-testimonial-image-grid.d.cts +3 -3
  774. package/dist/hero-testimonial-image-grid.d.ts +3 -3
  775. package/dist/hero-testimonial-image-grid.js +142 -142
  776. package/dist/hero-therapy-testimonial-grid.cjs +142 -142
  777. package/dist/hero-therapy-testimonial-grid.d.cts +3 -3
  778. package/dist/hero-therapy-testimonial-grid.d.ts +3 -3
  779. package/dist/hero-therapy-testimonial-grid.js +142 -142
  780. package/dist/hero-ui-library-showcase.cjs +142 -142
  781. package/dist/hero-ui-library-showcase.d.cts +3 -3
  782. package/dist/hero-ui-library-showcase.d.ts +3 -3
  783. package/dist/hero-ui-library-showcase.js +142 -142
  784. package/dist/hero-video-background-dark.cjs +174 -174
  785. package/dist/hero-video-background-dark.d.cts +3 -3
  786. package/dist/hero-video-background-dark.d.ts +3 -3
  787. package/dist/hero-video-background-dark.js +174 -174
  788. package/dist/{hero-video-dialog-gradient-CW2ELwTs.d.ts → hero-video-dialog-gradient-C7o05nWW.d.ts} +2 -2
  789. package/dist/{hero-video-dialog-gradient-BOmAMhjq.d.cts → hero-video-dialog-gradient-DykMOpK9.d.cts} +2 -2
  790. package/dist/hero-video-dialog-gradient.cjs +142 -142
  791. package/dist/hero-video-dialog-gradient.d.cts +5 -5
  792. package/dist/hero-video-dialog-gradient.d.ts +5 -5
  793. package/dist/hero-video-dialog-gradient.js +142 -142
  794. package/dist/hero-video-overlay-stars.cjs +142 -142
  795. package/dist/hero-video-overlay-stars.d.cts +3 -3
  796. package/dist/hero-video-overlay-stars.d.ts +3 -3
  797. package/dist/hero-video-overlay-stars.js +142 -142
  798. package/dist/hero-welcome-asymmetric-images.cjs +142 -142
  799. package/dist/hero-welcome-asymmetric-images.d.cts +3 -3
  800. package/dist/hero-welcome-asymmetric-images.d.ts +3 -3
  801. package/dist/hero-welcome-asymmetric-images.js +142 -142
  802. package/dist/hooks.cjs +11 -0
  803. package/dist/hooks.d.cts +6 -0
  804. package/dist/hooks.d.ts +6 -0
  805. package/dist/hooks.js +12 -1
  806. package/dist/image-slider.d.cts +2 -2
  807. package/dist/image-slider.d.ts +2 -2
  808. package/dist/index.cjs +1365 -780
  809. package/dist/index.d.cts +6 -3
  810. package/dist/index.d.ts +6 -3
  811. package/dist/index.js +1269 -686
  812. package/dist/industries-badge-list-bordered.d.cts +3 -3
  813. package/dist/industries-badge-list-bordered.d.ts +3 -3
  814. package/dist/industries-expandable-showcase.d.cts +3 -3
  815. package/dist/industries-expandable-showcase.d.ts +3 -3
  816. package/dist/industries-hover-reveal-grid.d.cts +3 -3
  817. package/dist/industries-hover-reveal-grid.d.ts +3 -3
  818. package/dist/industries-timeline-table.d.cts +3 -3
  819. package/dist/industries-timeline-table.d.ts +3 -3
  820. package/dist/interior-carousel.d.cts +3 -3
  821. package/dist/interior-carousel.d.ts +3 -3
  822. package/dist/link-page-bento-layout.d.cts +3 -3
  823. package/dist/link-page-bento-layout.d.ts +3 -3
  824. package/dist/link-page-grid-cards.d.cts +3 -3
  825. package/dist/link-page-grid-cards.d.ts +3 -3
  826. package/dist/link-page-minimal-profile.d.cts +3 -3
  827. package/dist/link-page-minimal-profile.d.ts +3 -3
  828. package/dist/link-page-newsletter-social.d.cts +3 -3
  829. package/dist/link-page-newsletter-social.d.ts +3 -3
  830. package/dist/link-tree-block.d.cts +3 -3
  831. package/dist/link-tree-block.d.ts +3 -3
  832. package/dist/list-achievements-showcase.d.cts +3 -3
  833. package/dist/list-achievements-showcase.d.ts +3 -3
  834. package/dist/list-career-timeline.d.cts +4 -4
  835. package/dist/list-career-timeline.d.ts +4 -4
  836. package/dist/list-feature-comparison.d.cts +3 -3
  837. package/dist/list-feature-comparison.d.ts +3 -3
  838. package/dist/list-metrics-dashboard.d.cts +3 -3
  839. package/dist/list-metrics-dashboard.d.ts +3 -3
  840. package/dist/list-searchable-grid.d.cts +4 -4
  841. package/dist/list-searchable-grid.d.ts +4 -4
  842. package/dist/list-service-category-table.d.cts +4 -4
  843. package/dist/list-service-category-table.d.ts +4 -4
  844. package/dist/logos-carousel-heading.d.cts +3 -3
  845. package/dist/logos-carousel-heading.d.ts +3 -3
  846. package/dist/logos-centered-simple.d.cts +3 -3
  847. package/dist/logos-centered-simple.d.ts +3 -3
  848. package/dist/logos-certifications-grid.d.cts +3 -3
  849. package/dist/logos-certifications-grid.d.ts +3 -3
  850. package/dist/logos-double-carousel-pattern.d.cts +3 -3
  851. package/dist/logos-double-carousel-pattern.d.ts +3 -3
  852. package/dist/logos-inline-tagline.d.cts +3 -3
  853. package/dist/logos-inline-tagline.d.ts +3 -3
  854. package/dist/logos-marquee-muted.d.cts +3 -3
  855. package/dist/logos-marquee-muted.d.ts +3 -3
  856. package/dist/logos-minimal-carousel.d.cts +3 -3
  857. package/dist/logos-minimal-carousel.d.ts +3 -3
  858. package/dist/logos-numbered-carousel.d.cts +3 -3
  859. package/dist/logos-numbered-carousel.d.ts +3 -3
  860. package/dist/logos-partner-grid-sidebar.d.cts +3 -3
  861. package/dist/logos-partner-grid-sidebar.d.ts +3 -3
  862. package/dist/logos-partner-network.d.cts +3 -3
  863. package/dist/logos-partner-network.d.ts +3 -3
  864. package/dist/logos-two-row-grid.d.cts +3 -3
  865. package/dist/logos-two-row-grid.d.ts +3 -3
  866. package/dist/masonry-motion-grid.d.cts +3 -3
  867. package/dist/masonry-motion-grid.d.ts +3 -3
  868. package/dist/media-hover-ctas.d.cts +4 -4
  869. package/dist/media-hover-ctas.d.ts +4 -4
  870. package/dist/navbar-animated-preview.cjs +4 -4
  871. package/dist/navbar-animated-preview.d.cts +3 -3
  872. package/dist/navbar-animated-preview.d.ts +3 -3
  873. package/dist/navbar-animated-preview.js +4 -4
  874. package/dist/navbar-centered-menu.cjs +4 -4
  875. package/dist/navbar-centered-menu.d.cts +3 -3
  876. package/dist/navbar-centered-menu.d.ts +3 -3
  877. package/dist/navbar-centered-menu.js +4 -4
  878. package/dist/navbar-dark-icons.cjs +4 -4
  879. package/dist/navbar-dark-icons.d.cts +3 -3
  880. package/dist/navbar-dark-icons.d.ts +3 -3
  881. package/dist/navbar-dark-icons.js +4 -4
  882. package/dist/navbar-dropdown-menu.cjs +4 -4
  883. package/dist/navbar-dropdown-menu.d.cts +3 -3
  884. package/dist/navbar-dropdown-menu.d.ts +3 -3
  885. package/dist/navbar-dropdown-menu.js +4 -4
  886. package/dist/navbar-education-platform.cjs +4 -4
  887. package/dist/navbar-education-platform.d.cts +3 -3
  888. package/dist/navbar-education-platform.d.ts +3 -3
  889. package/dist/navbar-education-platform.js +4 -4
  890. package/dist/navbar-enterprise-mega.cjs +4 -4
  891. package/dist/navbar-enterprise-mega.d.cts +3 -3
  892. package/dist/navbar-enterprise-mega.d.ts +3 -3
  893. package/dist/navbar-enterprise-mega.js +4 -4
  894. package/dist/navbar-feature-grid.cjs +4 -4
  895. package/dist/navbar-feature-grid.d.cts +3 -3
  896. package/dist/navbar-feature-grid.d.ts +3 -3
  897. package/dist/navbar-feature-grid.js +4 -4
  898. package/dist/navbar-floating-pill.d.cts +3 -3
  899. package/dist/navbar-floating-pill.d.ts +3 -3
  900. package/dist/navbar-fullscreen-menu.d.cts +3 -3
  901. package/dist/navbar-fullscreen-menu.d.ts +3 -3
  902. package/dist/navbar-icon-links.d.cts +3 -3
  903. package/dist/navbar-icon-links.d.ts +3 -3
  904. package/dist/navbar-image-preview.cjs +4 -4
  905. package/dist/navbar-image-preview.d.cts +3 -3
  906. package/dist/navbar-image-preview.d.ts +3 -3
  907. package/dist/navbar-image-preview.js +4 -4
  908. package/dist/navbar-mega-menu.cjs +4 -4
  909. package/dist/navbar-mega-menu.d.cts +3 -3
  910. package/dist/navbar-mega-menu.d.ts +3 -3
  911. package/dist/navbar-mega-menu.js +4 -4
  912. package/dist/navbar-multi-column-groups.cjs +4 -4
  913. package/dist/navbar-multi-column-groups.d.cts +3 -3
  914. package/dist/navbar-multi-column-groups.d.ts +3 -3
  915. package/dist/navbar-multi-column-groups.js +4 -4
  916. package/dist/navbar-platform-resources.cjs +4 -4
  917. package/dist/navbar-platform-resources.d.cts +3 -3
  918. package/dist/navbar-platform-resources.d.ts +3 -3
  919. package/dist/navbar-platform-resources.js +4 -4
  920. package/dist/navbar-search-focused.d.cts +3 -3
  921. package/dist/navbar-search-focused.d.ts +3 -3
  922. package/dist/navbar-sidebar-mobile.cjs +4 -4
  923. package/dist/navbar-sidebar-mobile.d.cts +3 -3
  924. package/dist/navbar-sidebar-mobile.d.ts +3 -3
  925. package/dist/navbar-sidebar-mobile.js +4 -4
  926. package/dist/navbar-simple-links.d.cts +3 -3
  927. package/dist/navbar-simple-links.d.ts +3 -3
  928. package/dist/navbar-split-cta.d.cts +3 -3
  929. package/dist/navbar-split-cta.d.ts +3 -3
  930. package/dist/navbar-sticky-compact.cjs +4 -4
  931. package/dist/navbar-sticky-compact.d.cts +3 -3
  932. package/dist/navbar-sticky-compact.d.ts +3 -3
  933. package/dist/navbar-sticky-compact.js +4 -4
  934. package/dist/navbar-tabbed-sections.cjs +4 -4
  935. package/dist/navbar-tabbed-sections.d.cts +3 -3
  936. package/dist/navbar-tabbed-sections.d.ts +3 -3
  937. package/dist/navbar-tabbed-sections.js +4 -4
  938. package/dist/navbar-transparent-overlay.d.cts +3 -3
  939. package/dist/navbar-transparent-overlay.d.ts +3 -3
  940. package/dist/offer-modal-membership-image.d.cts +3 -3
  941. package/dist/offer-modal-membership-image.d.ts +3 -3
  942. package/dist/offer-modal-newsletter-discount.d.cts +3 -3
  943. package/dist/offer-modal-newsletter-discount.d.ts +3 -3
  944. package/dist/offer-modal-sheet-newsletter.d.cts +3 -3
  945. package/dist/offer-modal-sheet-newsletter.d.ts +3 -3
  946. package/dist/page-hero-banner.d.cts +3 -3
  947. package/dist/page-hero-banner.d.ts +3 -3
  948. package/dist/pressable.d.cts +2 -2
  949. package/dist/pressable.d.ts +2 -2
  950. package/dist/pricing-addons-cards.d.cts +3 -3
  951. package/dist/pricing-addons-cards.d.ts +3 -3
  952. package/dist/pricing-addons-featured.d.cts +3 -3
  953. package/dist/pricing-addons-featured.d.ts +3 -3
  954. package/dist/pricing-collapsible-plans.d.cts +3 -3
  955. package/dist/pricing-collapsible-plans.d.ts +3 -3
  956. package/dist/pricing-columns-toggle.d.cts +3 -3
  957. package/dist/pricing-columns-toggle.d.ts +3 -3
  958. package/dist/pricing-comparison-headers.d.cts +3 -3
  959. package/dist/pricing-comparison-headers.d.ts +3 -3
  960. package/dist/pricing-comparison-table.d.cts +3 -3
  961. package/dist/pricing-comparison-table.d.ts +3 -3
  962. package/dist/pricing-discount-card.d.cts +3 -3
  963. package/dist/pricing-discount-card.d.ts +3 -3
  964. package/dist/pricing-enterprise-contact.d.cts +3 -3
  965. package/dist/pricing-enterprise-contact.d.ts +3 -3
  966. package/dist/pricing-feature-matrix.d.cts +3 -3
  967. package/dist/pricing-feature-matrix.d.ts +3 -3
  968. package/dist/pricing-four-tier-toggle.d.cts +3 -3
  969. package/dist/pricing-four-tier-toggle.d.ts +3 -3
  970. package/dist/pricing-full-comparison.d.cts +3 -3
  971. package/dist/pricing-full-comparison.d.ts +3 -3
  972. package/dist/pricing-gradient-cards.d.cts +3 -3
  973. package/dist/pricing-gradient-cards.d.ts +3 -3
  974. package/dist/pricing-icon-headers.d.cts +3 -3
  975. package/dist/pricing-icon-headers.d.ts +3 -3
  976. package/dist/pricing-minimal-cards.d.cts +3 -3
  977. package/dist/pricing-minimal-cards.d.ts +3 -3
  978. package/dist/pricing-packages-radio.d.cts +3 -3
  979. package/dist/pricing-packages-radio.d.ts +3 -3
  980. package/dist/pricing-popular-highlight.d.cts +3 -3
  981. package/dist/pricing-popular-highlight.d.ts +3 -3
  982. package/dist/pricing-radio-toggle.d.cts +3 -3
  983. package/dist/pricing-radio-toggle.d.ts +3 -3
  984. package/dist/pricing-responsive-table.d.cts +3 -3
  985. package/dist/pricing-responsive-table.d.ts +3 -3
  986. package/dist/pricing-services-cards.d.cts +3 -3
  987. package/dist/pricing-services-cards.d.ts +3 -3
  988. package/dist/pricing-simple-card.d.cts +3 -3
  989. package/dist/pricing-simple-card.d.ts +3 -3
  990. package/dist/pricing-single-card.d.cts +3 -3
  991. package/dist/pricing-single-card.d.ts +3 -3
  992. package/dist/pricing-split-layout.d.cts +3 -3
  993. package/dist/pricing-split-layout.d.ts +3 -3
  994. package/dist/pricing-spotlight-card.d.cts +3 -3
  995. package/dist/pricing-spotlight-card.d.ts +3 -3
  996. package/dist/pricing-switch-cards.d.cts +3 -3
  997. package/dist/pricing-switch-cards.d.ts +3 -3
  998. package/dist/pricing-tabs-toggle.d.cts +3 -3
  999. package/dist/pricing-tabs-toggle.d.ts +3 -3
  1000. package/dist/pricing-tier-grid.d.cts +3 -3
  1001. package/dist/pricing-tier-grid.d.ts +3 -3
  1002. package/dist/pricing-toggle-cards.d.cts +3 -3
  1003. package/dist/pricing-toggle-cards.d.ts +3 -3
  1004. package/dist/pricing-toggle-period.d.cts +3 -3
  1005. package/dist/pricing-toggle-period.d.ts +3 -3
  1006. package/dist/pricing-two-column-basic.d.cts +3 -3
  1007. package/dist/pricing-two-column-basic.d.ts +3 -3
  1008. package/dist/process-expandable-timeline.d.cts +3 -3
  1009. package/dist/process-expandable-timeline.d.ts +3 -3
  1010. package/dist/process-hover-cards.d.cts +3 -3
  1011. package/dist/process-hover-cards.d.ts +3 -3
  1012. package/dist/process-icon-timeline.d.cts +3 -3
  1013. package/dist/process-icon-timeline.d.ts +3 -3
  1014. package/dist/process-mission-principles.d.cts +3 -3
  1015. package/dist/process-mission-principles.d.ts +3 -3
  1016. package/dist/process-numbered-services.d.cts +3 -3
  1017. package/dist/process-numbered-services.d.ts +3 -3
  1018. package/dist/process-roadmap-timeline.d.cts +3 -3
  1019. package/dist/process-roadmap-timeline.d.ts +3 -3
  1020. package/dist/process-scroll-image.d.cts +3 -3
  1021. package/dist/process-scroll-image.d.ts +3 -3
  1022. package/dist/process-steps-grid.d.cts +3 -3
  1023. package/dist/process-steps-grid.d.ts +3 -3
  1024. package/dist/process-sticky-steps.d.cts +3 -3
  1025. package/dist/process-sticky-steps.d.ts +3 -3
  1026. package/dist/project-alternating-motion.d.cts +3 -3
  1027. package/dist/project-alternating-motion.d.ts +3 -3
  1028. package/dist/project-background-reveal.d.cts +3 -3
  1029. package/dist/project-background-reveal.d.ts +3 -3
  1030. package/dist/project-card-overlay.d.cts +3 -3
  1031. package/dist/project-card-overlay.d.ts +3 -3
  1032. package/dist/project-carousel-cinematic.d.cts +3 -3
  1033. package/dist/project-carousel-cinematic.d.ts +3 -3
  1034. package/dist/project-carousel-detail-cards.d.cts +3 -3
  1035. package/dist/project-carousel-detail-cards.d.ts +3 -3
  1036. package/dist/project-carousel-minimal.d.cts +3 -3
  1037. package/dist/project-carousel-minimal.d.ts +3 -3
  1038. package/dist/project-detail-architecture-carousel.d.cts +3 -3
  1039. package/dist/project-detail-architecture-carousel.d.ts +3 -3
  1040. package/dist/project-detail-card-header.d.cts +3 -3
  1041. package/dist/project-detail-card-header.d.ts +3 -3
  1042. package/dist/project-detail-case-study-prose.d.cts +3 -3
  1043. package/dist/project-detail-case-study-prose.d.ts +3 -3
  1044. package/dist/project-detail-compact-metadata.d.cts +3 -3
  1045. package/dist/project-detail-compact-metadata.d.ts +3 -3
  1046. package/dist/project-detail-exhibition-sidebar.d.cts +3 -3
  1047. package/dist/project-detail-exhibition-sidebar.d.ts +3 -3
  1048. package/dist/project-detail-fashion-editorial.d.cts +3 -3
  1049. package/dist/project-detail-fashion-editorial.d.ts +3 -3
  1050. package/dist/project-detail-fullscreen-hero.d.cts +3 -3
  1051. package/dist/project-detail-fullscreen-hero.d.ts +3 -3
  1052. package/dist/project-detail-grid-gallery.d.cts +3 -3
  1053. package/dist/project-detail-grid-gallery.d.ts +3 -3
  1054. package/dist/project-detail-hero-metadata.d.cts +3 -3
  1055. package/dist/project-detail-hero-metadata.d.ts +3 -3
  1056. package/dist/project-detail-hover-gallery.d.cts +3 -3
  1057. package/dist/project-detail-hover-gallery.d.ts +3 -3
  1058. package/dist/project-detail-large-hero-featured.d.cts +3 -3
  1059. package/dist/project-detail-large-hero-featured.d.ts +3 -3
  1060. package/dist/project-detail-list-related.d.cts +3 -3
  1061. package/dist/project-detail-list-related.d.ts +3 -3
  1062. package/dist/project-detail-mask-reveal.d.cts +3 -3
  1063. package/dist/project-detail-mask-reveal.d.ts +3 -3
  1064. package/dist/project-detail-minimal-centered.d.cts +3 -3
  1065. package/dist/project-detail-minimal-centered.d.ts +3 -3
  1066. package/dist/project-detail-numbered-sections.d.cts +3 -3
  1067. package/dist/project-detail-numbered-sections.d.ts +3 -3
  1068. package/dist/project-detail-parallax-scroll.d.cts +3 -3
  1069. package/dist/project-detail-parallax-scroll.d.ts +3 -3
  1070. package/dist/project-detail-photography-breadcrumb.d.cts +3 -3
  1071. package/dist/project-detail-photography-breadcrumb.d.ts +3 -3
  1072. package/dist/project-detail-sculpture-showcase.d.cts +3 -3
  1073. package/dist/project-detail-sculpture-showcase.d.ts +3 -3
  1074. package/dist/project-detail-sidebar-navigation.d.cts +3 -3
  1075. package/dist/project-detail-sidebar-navigation.d.ts +3 -3
  1076. package/dist/project-detail-sidebar-sticky.d.cts +3 -3
  1077. package/dist/project-detail-sidebar-sticky.d.ts +3 -3
  1078. package/dist/project-detail-split-materials.d.cts +3 -3
  1079. package/dist/project-detail-split-materials.d.ts +3 -3
  1080. package/dist/project-detail-tabbed-case-study.d.cts +3 -3
  1081. package/dist/project-detail-tabbed-case-study.d.ts +3 -3
  1082. package/dist/project-experience-quote.d.cts +3 -3
  1083. package/dist/project-experience-quote.d.ts +3 -3
  1084. package/dist/project-featured-carousel.d.cts +3 -3
  1085. package/dist/project-featured-carousel.d.ts +3 -3
  1086. package/dist/project-filterable-gallery.d.cts +3 -3
  1087. package/dist/project-filterable-gallery.d.ts +3 -3
  1088. package/dist/project-filterable-three-column.d.cts +3 -3
  1089. package/dist/project-filterable-three-column.d.ts +3 -3
  1090. package/dist/project-grid-gallery.d.cts +3 -3
  1091. package/dist/project-grid-gallery.d.ts +3 -3
  1092. package/dist/project-grid-motion.d.cts +3 -3
  1093. package/dist/project-grid-motion.d.ts +3 -3
  1094. package/dist/project-horizontal-cards.d.cts +3 -3
  1095. package/dist/project-horizontal-cards.d.ts +3 -3
  1096. package/dist/project-hover-reveal-grid.d.cts +3 -3
  1097. package/dist/project-hover-reveal-grid.d.ts +3 -3
  1098. package/dist/project-interactive-hover-reveal.d.cts +3 -3
  1099. package/dist/project-interactive-hover-reveal.d.ts +3 -3
  1100. package/dist/project-masonry-columns.d.cts +3 -3
  1101. package/dist/project-masonry-columns.d.ts +3 -3
  1102. package/dist/project-nature-mosaic.d.cts +3 -3
  1103. package/dist/project-nature-mosaic.d.ts +3 -3
  1104. package/dist/project-scroll-reveal.d.cts +3 -3
  1105. package/dist/project-scroll-reveal.d.ts +3 -3
  1106. package/dist/project-showcase-alternating.d.cts +3 -3
  1107. package/dist/project-showcase-alternating.d.ts +3 -3
  1108. package/dist/project-sticky-scroll.d.cts +3 -3
  1109. package/dist/project-sticky-scroll.d.ts +3 -3
  1110. package/dist/project-studio-hover-preview.d.cts +3 -3
  1111. package/dist/project-studio-hover-preview.d.ts +3 -3
  1112. package/dist/project-table-list.d.cts +3 -3
  1113. package/dist/project-table-list.d.ts +3 -3
  1114. package/dist/project-video-carousel.d.cts +3 -3
  1115. package/dist/project-video-carousel.d.ts +3 -3
  1116. package/dist/project-video-hover-bento.d.cts +3 -3
  1117. package/dist/project-video-hover-bento.d.ts +3 -3
  1118. package/dist/project-video-hover-grid.d.cts +3 -3
  1119. package/dist/project-video-hover-grid.d.ts +3 -3
  1120. package/dist/project-video-hover-rounded.d.cts +3 -3
  1121. package/dist/project-video-hover-rounded.d.ts +3 -3
  1122. package/dist/project-video-hover-stack.d.cts +3 -3
  1123. package/dist/project-video-hover-stack.d.ts +3 -3
  1124. package/dist/project-video-hover-two-by-two.d.cts +3 -3
  1125. package/dist/project-video-hover-two-by-two.d.ts +3 -3
  1126. package/dist/project-work-showcase.d.cts +3 -3
  1127. package/dist/project-work-showcase.d.ts +3 -3
  1128. package/dist/project-zigzag-layout.d.cts +3 -3
  1129. package/dist/project-zigzag-layout.d.ts +3 -3
  1130. package/dist/registry.cjs +3770 -2889
  1131. package/dist/registry.js +2613 -1732
  1132. package/dist/resource-detail-article-hero.d.cts +3 -3
  1133. package/dist/resource-detail-article-hero.d.ts +3 -3
  1134. package/dist/resource-detail-document-sidebar.d.cts +3 -3
  1135. package/dist/resource-detail-document-sidebar.d.ts +3 -3
  1136. package/dist/resource-detail-whitepaper-sidebar.d.cts +3 -3
  1137. package/dist/resource-detail-whitepaper-sidebar.d.ts +3 -3
  1138. package/dist/resource-list-course-cards.d.cts +3 -3
  1139. package/dist/resource-list-course-cards.d.ts +3 -3
  1140. package/dist/resource-list-featured-articles.d.cts +3 -3
  1141. package/dist/resource-list-featured-articles.d.ts +3 -3
  1142. package/dist/resource-list-featured-grid.d.cts +3 -3
  1143. package/dist/resource-list-featured-grid.d.ts +3 -3
  1144. package/dist/resource-list-hero-filter.d.cts +2 -2
  1145. package/dist/resource-list-hero-filter.d.ts +2 -2
  1146. package/dist/resource-list-news-updates.d.cts +3 -3
  1147. package/dist/resource-list-news-updates.d.ts +3 -3
  1148. package/dist/section.d.cts +4 -4
  1149. package/dist/section.d.ts +4 -4
  1150. package/dist/service-detail-centered-expertise.d.cts +3 -3
  1151. package/dist/service-detail-centered-expertise.d.ts +3 -3
  1152. package/dist/service-detail-compact-cards.d.cts +3 -3
  1153. package/dist/service-detail-compact-cards.d.ts +3 -3
  1154. package/dist/service-detail-image-hero.d.cts +3 -3
  1155. package/dist/service-detail-image-hero.d.ts +3 -3
  1156. package/dist/service-detail-prose-minimal.d.cts +3 -3
  1157. package/dist/service-detail-prose-minimal.d.ts +3 -3
  1158. package/dist/service-detail-sidebar-related.d.cts +3 -3
  1159. package/dist/service-detail-sidebar-related.d.ts +3 -3
  1160. package/dist/service-detail-sidebar-stats.d.cts +3 -3
  1161. package/dist/service-detail-sidebar-stats.d.ts +3 -3
  1162. package/dist/service-detail-stats-hero.d.cts +3 -3
  1163. package/dist/service-detail-stats-hero.d.ts +3 -3
  1164. package/dist/service-hover-carousel.d.cts +3 -3
  1165. package/dist/service-hover-carousel.d.ts +3 -3
  1166. package/dist/services-list-accordion-benefits.cjs +4 -4
  1167. package/dist/services-list-accordion-benefits.d.cts +3 -3
  1168. package/dist/services-list-accordion-benefits.d.ts +3 -3
  1169. package/dist/services-list-accordion-benefits.js +4 -4
  1170. package/dist/services-list-accordion.cjs +4 -4
  1171. package/dist/services-list-accordion.d.cts +4 -4
  1172. package/dist/services-list-accordion.d.ts +4 -4
  1173. package/dist/services-list-accordion.js +4 -4
  1174. package/dist/services-list-cards-hover.d.cts +4 -4
  1175. package/dist/services-list-cards-hover.d.ts +4 -4
  1176. package/dist/services-list-category-accordion.cjs +4 -4
  1177. package/dist/services-list-category-accordion.d.cts +4 -4
  1178. package/dist/services-list-category-accordion.d.ts +4 -4
  1179. package/dist/services-list-category-accordion.js +4 -4
  1180. package/dist/services-list-centered-icons.d.cts +4 -4
  1181. package/dist/services-list-centered-icons.d.ts +4 -4
  1182. package/dist/services-list-culture-tabs.d.cts +3 -3
  1183. package/dist/services-list-culture-tabs.d.ts +3 -3
  1184. package/dist/services-list-expandable-cards.d.cts +3 -3
  1185. package/dist/services-list-expandable-cards.d.ts +3 -3
  1186. package/dist/services-list-feature-spotlight.d.cts +4 -4
  1187. package/dist/services-list-feature-spotlight.d.ts +4 -4
  1188. package/dist/services-list-featured-highlight.d.cts +4 -4
  1189. package/dist/services-list-featured-highlight.d.ts +4 -4
  1190. package/dist/services-list-hero-cards.d.cts +3 -3
  1191. package/dist/services-list-hero-cards.d.ts +3 -3
  1192. package/dist/services-list-icon-grid.d.cts +4 -4
  1193. package/dist/services-list-icon-grid.d.ts +4 -4
  1194. package/dist/services-list-image-cards.d.cts +3 -3
  1195. package/dist/services-list-image-cards.d.ts +3 -3
  1196. package/dist/services-list-image-overlay-grid.d.cts +3 -3
  1197. package/dist/services-list-image-overlay-grid.d.ts +3 -3
  1198. package/dist/services-list-masonry.d.cts +4 -4
  1199. package/dist/services-list-masonry.d.ts +4 -4
  1200. package/dist/services-list-methodology-steps.d.cts +3 -3
  1201. package/dist/services-list-methodology-steps.d.ts +3 -3
  1202. package/dist/services-list-minimal-grid.d.cts +4 -4
  1203. package/dist/services-list-minimal-grid.d.ts +4 -4
  1204. package/dist/services-list-muted-cards.d.cts +4 -4
  1205. package/dist/services-list-muted-cards.d.ts +4 -4
  1206. package/dist/services-list-numbered-steps.d.cts +3 -3
  1207. package/dist/services-list-numbered-steps.d.ts +3 -3
  1208. package/dist/services-list-pricing-grid.d.cts +4 -4
  1209. package/dist/services-list-pricing-grid.d.ts +4 -4
  1210. package/dist/services-list-progress-sidebar.d.cts +3 -3
  1211. package/dist/services-list-progress-sidebar.d.ts +3 -3
  1212. package/dist/services-list-split-checklist.d.cts +3 -3
  1213. package/dist/services-list-split-checklist.d.ts +3 -3
  1214. package/dist/services-list-sticky-image.d.cts +3 -3
  1215. package/dist/services-list-sticky-image.d.ts +3 -3
  1216. package/dist/services-list-table-hover.d.cts +3 -3
  1217. package/dist/services-list-table-hover.d.ts +3 -3
  1218. package/dist/services-list-tabs-features.d.cts +3 -3
  1219. package/dist/services-list-tabs-features.d.ts +3 -3
  1220. package/dist/services-list-timeline.d.cts +3 -3
  1221. package/dist/services-list-timeline.d.ts +3 -3
  1222. package/dist/services-list-two-column-grid.d.cts +3 -3
  1223. package/dist/services-list-two-column-grid.d.ts +3 -3
  1224. package/dist/services-list-vertical-tags.d.cts +4 -4
  1225. package/dist/services-list-vertical-tags.d.ts +4 -4
  1226. package/dist/services-list-video-showcase.d.cts +3 -3
  1227. package/dist/services-list-video-showcase.d.ts +3 -3
  1228. package/dist/social-link-icon.d.cts +2 -2
  1229. package/dist/social-link-icon.d.ts +2 -2
  1230. package/dist/stats-animated-counter.d.cts +3 -3
  1231. package/dist/stats-animated-counter.d.ts +3 -3
  1232. package/dist/stats-bar-comparison.d.cts +3 -3
  1233. package/dist/stats-bar-comparison.d.ts +3 -3
  1234. package/dist/stats-card-group.d.cts +3 -3
  1235. package/dist/stats-card-group.d.ts +3 -3
  1236. package/dist/stats-circular-progress.d.cts +3 -3
  1237. package/dist/stats-circular-progress.d.ts +3 -3
  1238. package/dist/stats-growth-timeline.d.cts +3 -3
  1239. package/dist/stats-growth-timeline.d.ts +3 -3
  1240. package/dist/stats-icon-cards.d.cts +3 -3
  1241. package/dist/stats-icon-cards.d.ts +3 -3
  1242. package/dist/stats-impact-grid.cjs +5 -3
  1243. package/dist/stats-impact-grid.d.cts +3 -3
  1244. package/dist/stats-impact-grid.d.ts +3 -3
  1245. package/dist/stats-impact-grid.js +5 -3
  1246. package/dist/stats-milestone-sidebar.d.cts +3 -3
  1247. package/dist/stats-milestone-sidebar.d.ts +3 -3
  1248. package/dist/stats-number-ticker.d.cts +3 -3
  1249. package/dist/stats-number-ticker.d.ts +3 -3
  1250. package/dist/stats-primary-secondary.d.cts +3 -3
  1251. package/dist/stats-primary-secondary.d.ts +3 -3
  1252. package/dist/stats-simple-grid.d.cts +3 -3
  1253. package/dist/stats-simple-grid.d.ts +3 -3
  1254. package/dist/stats-timeline-tabs.d.cts +3 -3
  1255. package/dist/stats-timeline-tabs.d.ts +3 -3
  1256. package/dist/team-alternating-bios.d.cts +3 -3
  1257. package/dist/team-alternating-bios.d.ts +3 -3
  1258. package/dist/team-avatar-social.d.cts +3 -3
  1259. package/dist/team-avatar-social.d.ts +3 -3
  1260. package/dist/team-bio-badges.d.cts +3 -3
  1261. package/dist/team-bio-badges.d.ts +3 -3
  1262. package/dist/team-carousel-experience.d.cts +3 -3
  1263. package/dist/team-carousel-experience.d.ts +3 -3
  1264. package/dist/team-compact-cta.d.cts +3 -3
  1265. package/dist/team-compact-cta.d.ts +3 -3
  1266. package/dist/team-compact-grid.d.cts +3 -3
  1267. package/dist/team-compact-grid.d.ts +3 -3
  1268. package/dist/team-contact-cards.d.cts +3 -3
  1269. package/dist/team-contact-cards.d.ts +3 -3
  1270. package/dist/team-department-sections.d.cts +3 -3
  1271. package/dist/team-department-sections.d.ts +3 -3
  1272. package/dist/team-expertise-cards.d.cts +3 -3
  1273. package/dist/team-expertise-cards.d.ts +3 -3
  1274. package/dist/team-filterable-search.d.cts +3 -3
  1275. package/dist/team-filterable-search.d.ts +3 -3
  1276. package/dist/team-gradient-cards.d.cts +3 -3
  1277. package/dist/team-gradient-cards.d.ts +3 -3
  1278. package/dist/team-grid-animated.d.cts +3 -3
  1279. package/dist/team-grid-animated.d.ts +3 -3
  1280. package/dist/team-hover-highlight.d.cts +3 -3
  1281. package/dist/team-hover-highlight.d.ts +3 -3
  1282. package/dist/team-hover-overlay.d.cts +3 -3
  1283. package/dist/team-hover-overlay.d.ts +3 -3
  1284. package/dist/team-investor-showcase.d.cts +3 -3
  1285. package/dist/team-investor-showcase.d.ts +3 -3
  1286. package/dist/team-large-images.d.cts +3 -3
  1287. package/dist/team-large-images.d.ts +3 -3
  1288. package/dist/team-media-showcase.d.cts +3 -3
  1289. package/dist/team-media-showcase.d.ts +3 -3
  1290. package/dist/team-role-filter.d.cts +3 -3
  1291. package/dist/team-role-filter.d.ts +3 -3
  1292. package/dist/team-simple-grid.d.cts +3 -3
  1293. package/dist/team-simple-grid.d.ts +3 -3
  1294. package/dist/team-skill-badges.d.cts +3 -3
  1295. package/dist/team-skill-badges.d.ts +3 -3
  1296. package/dist/team-social-cards.d.cts +3 -3
  1297. package/dist/team-social-cards.d.ts +3 -3
  1298. package/dist/team-social-grid.d.cts +3 -3
  1299. package/dist/team-social-grid.d.ts +3 -3
  1300. package/dist/team-testimonial-stats.d.cts +3 -3
  1301. package/dist/team-testimonial-stats.d.ts +3 -3
  1302. package/dist/testimonial-carousel-cards.d.cts +3 -3
  1303. package/dist/testimonial-carousel-cards.d.ts +3 -3
  1304. package/dist/testimonials-animated-split.d.cts +3 -3
  1305. package/dist/testimonials-animated-split.d.ts +3 -3
  1306. package/dist/testimonials-bento-grid.d.cts +3 -3
  1307. package/dist/testimonials-bento-grid.d.ts +3 -3
  1308. package/dist/testimonials-carousel-image.d.cts +3 -3
  1309. package/dist/testimonials-carousel-image.d.ts +3 -3
  1310. package/dist/testimonials-centered-avatars.d.cts +3 -3
  1311. package/dist/testimonials-centered-avatars.d.ts +3 -3
  1312. package/dist/testimonials-company-logo.d.cts +3 -3
  1313. package/dist/testimonials-company-logo.d.ts +3 -3
  1314. package/dist/testimonials-grid-add-review.d.cts +4 -4
  1315. package/dist/testimonials-grid-add-review.d.ts +4 -4
  1316. package/dist/testimonials-images-helpful.d.cts +3 -3
  1317. package/dist/testimonials-images-helpful.d.ts +3 -3
  1318. package/dist/testimonials-large-quote.d.cts +3 -3
  1319. package/dist/testimonials-large-quote.d.ts +3 -3
  1320. package/dist/testimonials-list-verified.d.cts +4 -4
  1321. package/dist/testimonials-list-verified.d.ts +4 -4
  1322. package/dist/testimonials-logo-cards.d.cts +3 -3
  1323. package/dist/testimonials-logo-cards.d.ts +3 -3
  1324. package/dist/testimonials-marquee.d.cts +3 -3
  1325. package/dist/testimonials-marquee.d.ts +3 -3
  1326. package/dist/testimonials-masonry-grid.d.cts +3 -3
  1327. package/dist/testimonials-masonry-grid.d.ts +3 -3
  1328. package/dist/testimonials-mini-dividers.d.cts +3 -3
  1329. package/dist/testimonials-mini-dividers.d.ts +3 -3
  1330. package/dist/testimonials-minimal-numbered.d.cts +3 -3
  1331. package/dist/testimonials-minimal-numbered.d.ts +3 -3
  1332. package/dist/testimonials-parallax-number.d.cts +3 -3
  1333. package/dist/testimonials-parallax-number.d.ts +3 -3
  1334. package/dist/testimonials-quote-carousel.d.cts +3 -3
  1335. package/dist/testimonials-quote-carousel.d.ts +3 -3
  1336. package/dist/testimonials-scrolling-columns.d.cts +3 -3
  1337. package/dist/testimonials-scrolling-columns.d.ts +3 -3
  1338. package/dist/testimonials-simple-grid.d.cts +3 -3
  1339. package/dist/testimonials-simple-grid.d.ts +3 -3
  1340. package/dist/testimonials-slider-minimal.d.cts +3 -3
  1341. package/dist/testimonials-slider-minimal.d.ts +3 -3
  1342. package/dist/testimonials-split-image.d.cts +3 -3
  1343. package/dist/testimonials-split-image.d.ts +3 -3
  1344. package/dist/testimonials-stats-header.d.cts +3 -3
  1345. package/dist/testimonials-stats-header.d.ts +3 -3
  1346. package/dist/testimonials-twitter-cards.d.cts +4 -4
  1347. package/dist/testimonials-twitter-cards.d.ts +4 -4
  1348. package/dist/testimonials-wall-compact.d.cts +3 -3
  1349. package/dist/testimonials-wall-compact.d.ts +3 -3
  1350. package/dist/timeline-ai-workflow-cards.d.cts +3 -3
  1351. package/dist/timeline-ai-workflow-cards.d.ts +3 -3
  1352. package/dist/timeline-alternating-diagonal.d.cts +3 -3
  1353. package/dist/timeline-alternating-diagonal.d.ts +3 -3
  1354. package/dist/timeline-changelog-badges.d.cts +3 -3
  1355. package/dist/timeline-changelog-badges.d.ts +3 -3
  1356. package/dist/timeline-history-prose.d.cts +3 -3
  1357. package/dist/timeline-history-prose.d.ts +3 -3
  1358. package/dist/timeline-horizontal-icons.d.cts +3 -3
  1359. package/dist/timeline-horizontal-icons.d.ts +3 -3
  1360. package/dist/timeline-horizontal-phases.d.cts +3 -3
  1361. package/dist/timeline-horizontal-phases.d.ts +3 -3
  1362. package/dist/timeline-product-launch.d.cts +3 -3
  1363. package/dist/timeline-product-launch.d.ts +3 -3
  1364. package/dist/timeline-productivity-list.d.cts +3 -3
  1365. package/dist/timeline-productivity-list.d.ts +3 -3
  1366. package/dist/timeline-scroll-highlight.d.cts +3 -3
  1367. package/dist/timeline-scroll-highlight.d.ts +3 -3
  1368. package/dist/timeline-scroll-sticky-image.d.cts +3 -3
  1369. package/dist/timeline-scroll-sticky-image.d.ts +3 -3
  1370. package/dist/timeline-stepper-animated.d.cts +3 -3
  1371. package/dist/timeline-stepper-animated.d.ts +3 -3
  1372. package/dist/timeline-tabbed-phases.d.cts +3 -3
  1373. package/dist/timeline-tabbed-phases.d.ts +3 -3
  1374. package/dist/timeline-two-column-featured.d.cts +3 -3
  1375. package/dist/timeline-two-column-featured.d.ts +3 -3
  1376. package/dist/timeline-vertical-icon-dashed.d.cts +3 -3
  1377. package/dist/timeline-vertical-icon-dashed.d.ts +3 -3
  1378. package/dist/types.d.cts +3 -3
  1379. package/dist/types.d.ts +3 -3
  1380. package/dist/use-responsive-layout.cjs +17 -0
  1381. package/dist/use-responsive-layout.d.cts +24 -0
  1382. package/dist/use-responsive-layout.d.ts +24 -0
  1383. package/dist/use-responsive-layout.js +15 -0
  1384. package/dist/utils.d.cts +4 -4
  1385. package/dist/utils.d.ts +4 -4
  1386. package/package.json +9 -4
package/dist/index.js CHANGED
@@ -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';
@@ -120,7 +121,7 @@ var maxWidthStyles = {
120
121
  "4xl": "max-w-[1536px]",
121
122
  full: "max-w-full"
122
123
  };
123
- var Container = React4__default.forwardRef(
124
+ var Container = React5__default.forwardRef(
124
125
  ({ children, maxWidth = "xl", className, as = "div", ...props }, ref) => {
125
126
  const Component = as;
126
127
  return /* @__PURE__ */ jsx(
@@ -426,7 +427,7 @@ var spacingStyles = {
426
427
  };
427
428
  var predefinedSpacings = ["none", "sm", "md", "lg", "xl", "hero"];
428
429
  var isPredefinedSpacing = (spacing) => predefinedSpacings.includes(spacing);
429
- var Section = React4__default.forwardRef(
430
+ var Section = React5__default.forwardRef(
430
431
  ({
431
432
  id,
432
433
  title,
@@ -487,125 +488,1116 @@ var Section = React4__default.forwardRef(
487
488
  }
488
489
  );
489
490
  Section.displayName = "Section";
490
- var sizeStyles = {
491
- sm: "max-w-md",
492
- md: "max-w-2xl",
493
- lg: "max-w-4xl",
494
- xl: "max-w-5xl",
495
- full: "max-w-7xl",
496
- compact: "max-w-[700px]"
497
- };
498
- var dialogTransition = {
499
- duration: 0.35,
500
- ease: [0.16, 1, 0.3, 1]
501
- };
502
- function AnimatedDialog({
503
- open,
504
- onOpenChange,
505
- title,
506
- eyebrow,
507
- description,
508
- children,
509
- header,
510
- footer,
511
- size = "lg",
512
- className,
513
- contentClassName,
514
- featuredMediaHeader
515
- }) {
516
- const titleId = useId();
517
- const descriptionId = useId();
518
- const containerRef = useRef(null);
519
- useOnClickOutside(containerRef, () => {
520
- if (open) {
521
- onOpenChange(false);
491
+ function normalizePhoneNumber(input) {
492
+ const trimmed = input.trim();
493
+ if (trimmed.toLowerCase().startsWith("tel:")) {
494
+ return trimmed;
495
+ }
496
+ const match = trimmed.match(/^[\s\+\-\(\)]*(\d[\d\s\-\(\)\.]*\d)[\s\-]*(x|ext\.?|extension)?[\s\-]*(\d+)?$/i);
497
+ if (match) {
498
+ const mainNumber = match[1].replace(/[\s\-\(\)\.]/g, "");
499
+ const extension = match[3];
500
+ const normalized = mainNumber.length >= 10 && !trimmed.startsWith("+") ? `+${mainNumber}` : mainNumber;
501
+ const withExtension = extension ? `${normalized};ext=${extension}` : normalized;
502
+ return `tel:${withExtension}`;
503
+ }
504
+ const cleaned = trimmed.replace(/[\s\-\(\)\.]/g, "");
505
+ return `tel:${cleaned}`;
506
+ }
507
+ function normalizeEmail(input) {
508
+ const trimmed = input.trim();
509
+ if (trimmed.toLowerCase().startsWith("mailto:")) {
510
+ return trimmed;
511
+ }
512
+ return `mailto:${trimmed}`;
513
+ }
514
+ function isEmail(input) {
515
+ const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
516
+ return emailRegex.test(input.trim());
517
+ }
518
+ function isPhoneNumber(input) {
519
+ const trimmed = input.trim();
520
+ if (trimmed.toLowerCase().startsWith("tel:")) {
521
+ return true;
522
+ }
523
+ const phoneRegex = /^[\s\+\-\(\)]*\d[\d\s\-\(\)\.]*\d[\s\-]*(x|ext\.?|extension)?[\s\-]*\d*$/i;
524
+ return phoneRegex.test(trimmed);
525
+ }
526
+ function isInternalUrl(href) {
527
+ if (typeof window === "undefined") {
528
+ return href.startsWith("/") && !href.startsWith("//");
529
+ }
530
+ const trimmed = href.trim();
531
+ if (trimmed.startsWith("/") && !trimmed.startsWith("//")) {
532
+ return true;
533
+ }
534
+ try {
535
+ const url = new URL(trimmed, window.location.href);
536
+ const currentOrigin = window.location.origin;
537
+ const normalizeOrigin = (origin) => origin.replace(/^(https?:\/\/)(www\.)?/, "$1");
538
+ return normalizeOrigin(url.origin) === normalizeOrigin(currentOrigin);
539
+ } catch {
540
+ return false;
541
+ }
542
+ }
543
+ function toRelativePath(href) {
544
+ if (typeof window === "undefined") {
545
+ return href;
546
+ }
547
+ const trimmed = href.trim();
548
+ if (trimmed.startsWith("/") && !trimmed.startsWith("//")) {
549
+ return trimmed;
550
+ }
551
+ try {
552
+ const url = new URL(trimmed, window.location.href);
553
+ const currentOrigin = window.location.origin;
554
+ const normalizeOrigin = (origin) => origin.replace(/^(https?:\/\/)(www\.)?/, "$1");
555
+ if (normalizeOrigin(url.origin) === normalizeOrigin(currentOrigin)) {
556
+ return url.pathname + url.search + url.hash;
522
557
  }
523
- });
524
- useEffect(() => {
525
- if (!open) {
526
- return;
558
+ } catch {
559
+ }
560
+ return trimmed;
561
+ }
562
+ function useNavigation({
563
+ href,
564
+ onClick
565
+ } = {}) {
566
+ const linkType = React5.useMemo(() => {
567
+ if (!href || href.trim() === "") {
568
+ return onClick ? "none" : "none";
527
569
  }
528
- const onKeyDown = (event) => {
529
- if (event.key === "Escape") {
530
- onOpenChange(false);
570
+ const trimmed = href.trim();
571
+ if (trimmed.toLowerCase().startsWith("mailto:") || isEmail(trimmed)) {
572
+ return "mailto";
573
+ }
574
+ if (trimmed.toLowerCase().startsWith("tel:") || isPhoneNumber(trimmed)) {
575
+ return "tel";
576
+ }
577
+ if (isInternalUrl(trimmed)) {
578
+ return "internal";
579
+ }
580
+ try {
581
+ new URL(trimmed, typeof window !== "undefined" ? window.location.href : "http://localhost");
582
+ return "external";
583
+ } catch {
584
+ return "internal";
585
+ }
586
+ }, [href, onClick]);
587
+ const normalizedHref = React5.useMemo(() => {
588
+ if (!href || href.trim() === "") {
589
+ return void 0;
590
+ }
591
+ const trimmed = href.trim();
592
+ switch (linkType) {
593
+ case "tel":
594
+ return normalizePhoneNumber(trimmed);
595
+ case "mailto":
596
+ return normalizeEmail(trimmed);
597
+ case "internal":
598
+ return toRelativePath(trimmed);
599
+ case "external":
600
+ return trimmed;
601
+ default:
602
+ return trimmed;
603
+ }
604
+ }, [href, linkType]);
605
+ const target = React5.useMemo(() => {
606
+ switch (linkType) {
607
+ case "external":
608
+ return "_blank";
609
+ case "internal":
610
+ return "_self";
611
+ case "mailto":
612
+ case "tel":
613
+ return void 0;
614
+ default:
615
+ return void 0;
616
+ }
617
+ }, [linkType]);
618
+ const rel = React5.useMemo(() => {
619
+ if (linkType === "external") {
620
+ return "noopener noreferrer";
621
+ }
622
+ return void 0;
623
+ }, [linkType]);
624
+ const isExternal = linkType === "external";
625
+ const isInternal = linkType === "internal";
626
+ const shouldUseRouter = isInternal && typeof normalizedHref === "string" && normalizedHref.startsWith("/");
627
+ const handleClick = React5.useCallback(
628
+ (event) => {
629
+ if (onClick) {
630
+ try {
631
+ onClick(event);
632
+ } catch (error) {
633
+ console.error("Error in user onClick handler:", error);
634
+ }
531
635
  }
532
- };
533
- const previousOverflow = document.body.style.overflow;
534
- document.body.style.overflow = "hidden";
535
- window.addEventListener("keydown", onKeyDown);
536
- return () => {
537
- document.body.style.overflow = previousOverflow;
538
- window.removeEventListener("keydown", onKeyDown);
539
- };
540
- }, [open, onOpenChange]);
541
- return /* @__PURE__ */ jsx(AnimatePresence, { children: open ? /* @__PURE__ */ jsxs("div", { className: "fixed inset-0 z-50 h-screen overflow-y-auto", children: [
542
- /* @__PURE__ */ jsx(
543
- motion.div,
544
- {
545
- initial: { opacity: 0 },
546
- animate: { opacity: 1, transition: dialogTransition },
547
- exit: { opacity: 0, transition: dialogTransition },
548
- className: "fixed inset-0 h-full w-full bg-foreground/80 backdrop-blur-lg"
636
+ if (event.defaultPrevented) {
637
+ return;
549
638
  }
550
- ),
551
- /* @__PURE__ */ jsxs(
552
- motion.div,
553
- {
554
- initial: { opacity: 0, y: 24, scale: 0.98 },
555
- animate: {
556
- opacity: 1,
557
- y: 0,
558
- scale: 1,
559
- transition: dialogTransition
560
- },
561
- exit: {
562
- opacity: 0,
563
- y: 12,
564
- scale: 0.98,
565
- transition: dialogTransition
566
- },
567
- ref: containerRef,
568
- role: "dialog",
569
- "aria-modal": "true",
570
- "aria-labelledby": title ? titleId : void 0,
571
- "aria-describedby": description ? descriptionId : void 0,
572
- className: cn(
573
- "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",
574
- size === "compact" ? "p-0 md:my-20" : "p-6 md:my-20 md:p-12",
575
- sizeStyles[size],
576
- className
577
- ),
578
- children: [
579
- featuredMediaHeader ? /* @__PURE__ */ jsxs("div", { className: "relative overflow-hidden", children: [
580
- featuredMediaHeader,
581
- /* @__PURE__ */ jsx(
582
- "button",
583
- {
584
- type: "button",
585
- "aria-label": "Close dialog",
586
- 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",
587
- onClick: () => onOpenChange(false),
588
- children: /* @__PURE__ */ jsx(
589
- "svg",
590
- {
591
- xmlns: "http://www.w3.org/2000/svg",
592
- width: "24",
593
- height: "24",
594
- viewBox: "0 0 24 24",
595
- children: /* @__PURE__ */ jsx(
596
- "path",
597
- {
598
- fill: "none",
599
- stroke: "currentColor",
600
- strokeLinecap: "round",
601
- strokeLinejoin: "round",
602
- strokeWidth: "2",
603
- d: "M18 6L6 18M6 6l12 12"
604
- }
605
- )
606
- }
607
- )
608
- }
639
+ if (shouldUseRouter && normalizedHref && event.button === 0 && // left-click only
640
+ !event.metaKey && !event.altKey && !event.ctrlKey && !event.shiftKey) {
641
+ if (typeof window !== "undefined") {
642
+ const handler = window.__opensiteNavigationHandler;
643
+ if (typeof handler === "function") {
644
+ try {
645
+ const handled = handler(normalizedHref, event.nativeEvent || event);
646
+ if (handled !== false) {
647
+ event.preventDefault();
648
+ }
649
+ } catch (error) {
650
+ console.error("Error in navigation handler:", error);
651
+ }
652
+ }
653
+ }
654
+ }
655
+ },
656
+ [onClick, shouldUseRouter, normalizedHref]
657
+ );
658
+ return {
659
+ linkType,
660
+ normalizedHref,
661
+ target,
662
+ rel,
663
+ isExternal,
664
+ isInternal,
665
+ shouldUseRouter,
666
+ handleClick
667
+ };
668
+ }
669
+ var baseStyles = [
670
+ // Layout
671
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap shrink-0",
672
+ // Typography - using CSS variables with sensible defaults
673
+ "font-[var(--button-font-family,inherit)]",
674
+ "font-[var(--button-font-weight,500)]",
675
+ "tracking-[var(--button-letter-spacing,0)]",
676
+ "leading-[var(--button-line-height,1.25)]",
677
+ "[text-transform:var(--button-text-transform,none)]",
678
+ "text-sm",
679
+ // Border radius
680
+ "rounded-[var(--button-radius,var(--radius,0.375rem))]",
681
+ // Smooth transition - using [transition:...] to set full shorthand property (not just transition-property)
682
+ "[transition:var(--button-transition,all_250ms_cubic-bezier(0.4,0,0.2,1))]",
683
+ // Box shadow (master level) - using [box-shadow:...] for complex multi-value shadows
684
+ "[box-shadow:var(--button-shadow,none)]",
685
+ "hover:[box-shadow:var(--button-shadow-hover,var(--button-shadow,none))]",
686
+ // Disabled state
687
+ "disabled:pointer-events-none disabled:opacity-50",
688
+ // SVG handling
689
+ "[&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0",
690
+ // Focus styles
691
+ "outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
692
+ // Invalid state
693
+ "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive"
694
+ ].join(" ");
695
+ var buttonVariants = cva(baseStyles, {
696
+ variants: {
697
+ variant: {
698
+ // Default (Primary) variant - full customization
699
+ default: [
700
+ "bg-[var(--button-default-bg,hsl(var(--primary)))]",
701
+ "text-[var(--button-default-fg,hsl(var(--primary-foreground)))]",
702
+ "border-[length:var(--button-default-border-width,0px)]",
703
+ "border-[color:var(--button-default-border,transparent)]",
704
+ "[box-shadow:var(--button-default-shadow,var(--button-shadow,none))]",
705
+ "hover:bg-[var(--button-default-hover-bg,hsl(var(--primary)/0.9))]",
706
+ "hover:text-[var(--button-default-hover-fg,var(--button-default-fg,hsl(var(--primary-foreground))))]",
707
+ "hover:border-[color:var(--button-default-hover-border,var(--button-default-border,transparent))]",
708
+ "hover:[box-shadow:var(--button-default-shadow-hover,var(--button-shadow-hover,var(--button-default-shadow,var(--button-shadow,none))))]"
709
+ ].join(" "),
710
+ // Destructive variant - full customization
711
+ destructive: [
712
+ "bg-[var(--button-destructive-bg,hsl(var(--destructive)))]",
713
+ "text-[var(--button-destructive-fg,white)]",
714
+ "border-[length:var(--button-destructive-border-width,0px)]",
715
+ "border-[color:var(--button-destructive-border,transparent)]",
716
+ "[box-shadow:var(--button-destructive-shadow,var(--button-shadow,none))]",
717
+ "hover:bg-[var(--button-destructive-hover-bg,hsl(var(--destructive)/0.9))]",
718
+ "hover:text-[var(--button-destructive-hover-fg,var(--button-destructive-fg,white))]",
719
+ "hover:border-[color:var(--button-destructive-hover-border,var(--button-destructive-border,transparent))]",
720
+ "hover:[box-shadow:var(--button-destructive-shadow-hover,var(--button-shadow-hover,var(--button-destructive-shadow,var(--button-shadow,none))))]",
721
+ "focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40",
722
+ "dark:bg-destructive/60"
723
+ ].join(" "),
724
+ // Outline variant - full customization with proper border handling
725
+ outline: [
726
+ "bg-[var(--button-outline-bg,hsl(var(--background)))]",
727
+ "text-[var(--button-outline-fg,inherit)]",
728
+ "border-[length:var(--button-outline-border-width,1px)]",
729
+ "border-[color:var(--button-outline-border,hsl(var(--border)))]",
730
+ "[box-shadow:var(--button-outline-shadow,var(--button-shadow,0_1px_2px_0_rgb(0_0_0/0.05)))]",
731
+ "hover:bg-[var(--button-outline-hover-bg,hsl(var(--accent)))]",
732
+ "hover:text-[var(--button-outline-hover-fg,hsl(var(--accent-foreground)))]",
733
+ "hover:border-[color:var(--button-outline-hover-border,var(--button-outline-border,hsl(var(--border))))]",
734
+ "hover:[box-shadow:var(--button-outline-shadow-hover,var(--button-shadow-hover,var(--button-outline-shadow,var(--button-shadow,none))))]",
735
+ "dark:bg-input/30 dark:border-input dark:hover:bg-input/50"
736
+ ].join(" "),
737
+ // Secondary variant - full customization
738
+ secondary: [
739
+ "bg-[var(--button-secondary-bg,hsl(var(--secondary)))]",
740
+ "text-[var(--button-secondary-fg,hsl(var(--secondary-foreground)))]",
741
+ "border-[length:var(--button-secondary-border-width,0px)]",
742
+ "border-[color:var(--button-secondary-border,transparent)]",
743
+ "[box-shadow:var(--button-secondary-shadow,var(--button-shadow,none))]",
744
+ "hover:bg-[var(--button-secondary-hover-bg,hsl(var(--secondary)/0.8))]",
745
+ "hover:text-[var(--button-secondary-hover-fg,var(--button-secondary-fg,hsl(var(--secondary-foreground))))]",
746
+ "hover:border-[color:var(--button-secondary-hover-border,var(--button-secondary-border,transparent))]",
747
+ "hover:[box-shadow:var(--button-secondary-shadow-hover,var(--button-shadow-hover,var(--button-secondary-shadow,var(--button-shadow,none))))]"
748
+ ].join(" "),
749
+ // Ghost variant - full customization
750
+ ghost: [
751
+ "bg-[var(--button-ghost-bg,transparent)]",
752
+ "text-[var(--button-ghost-fg,inherit)]",
753
+ "border-[length:var(--button-ghost-border-width,0px)]",
754
+ "border-[color:var(--button-ghost-border,transparent)]",
755
+ "[box-shadow:var(--button-ghost-shadow,var(--button-shadow,none))]",
756
+ "hover:bg-[var(--button-ghost-hover-bg,hsl(var(--accent)))]",
757
+ "hover:text-[var(--button-ghost-hover-fg,hsl(var(--accent-foreground)))]",
758
+ "hover:border-[color:var(--button-ghost-hover-border,var(--button-ghost-border,transparent))]",
759
+ "hover:[box-shadow:var(--button-ghost-shadow-hover,var(--button-shadow-hover,var(--button-ghost-shadow,var(--button-shadow,none))))]",
760
+ "dark:hover:bg-accent/50"
761
+ ].join(" "),
762
+ // Link variant - full customization
763
+ link: [
764
+ "bg-[var(--button-link-bg,transparent)]",
765
+ "text-[var(--button-link-fg,hsl(var(--primary)))]",
766
+ "border-[length:var(--button-link-border-width,0px)]",
767
+ "border-[color:var(--button-link-border,transparent)]",
768
+ "[box-shadow:var(--button-link-shadow,none)]",
769
+ "hover:bg-[var(--button-link-hover-bg,transparent)]",
770
+ "hover:text-[var(--button-link-hover-fg,var(--button-link-fg,hsl(var(--primary))))]",
771
+ "hover:[box-shadow:var(--button-link-shadow-hover,none)]",
772
+ "underline-offset-4 hover:underline"
773
+ ].join(" ")
774
+ },
775
+ size: {
776
+ default: [
777
+ "h-[var(--button-height-md,2.25rem)]",
778
+ "px-[var(--button-padding-x-md,1rem)]",
779
+ "py-[var(--button-padding-y-md,0.5rem)]",
780
+ "has-[>svg]:px-[calc(var(--button-padding-x-md,1rem)*0.75)]"
781
+ ].join(" "),
782
+ sm: [
783
+ "h-[var(--button-height-sm,2rem)]",
784
+ "px-[var(--button-padding-x-sm,0.75rem)]",
785
+ "py-[var(--button-padding-y-sm,0.25rem)]",
786
+ "gap-1.5",
787
+ "has-[>svg]:px-[calc(var(--button-padding-x-sm,0.75rem)*0.83)]"
788
+ ].join(" "),
789
+ md: [
790
+ "h-[var(--button-height-md,2.25rem)]",
791
+ "px-[var(--button-padding-x-md,1rem)]",
792
+ "py-[var(--button-padding-y-md,0.5rem)]",
793
+ "has-[>svg]:px-[calc(var(--button-padding-x-md,1rem)*0.75)]"
794
+ ].join(" "),
795
+ lg: [
796
+ "h-[var(--button-height-lg,2.5rem)]",
797
+ "px-[var(--button-padding-x-lg,1.5rem)]",
798
+ "py-[var(--button-padding-y-lg,0.5rem)]",
799
+ "has-[>svg]:px-[calc(var(--button-padding-x-lg,1.5rem)*0.67)]"
800
+ ].join(" "),
801
+ icon: "size-[var(--button-height-md,2.25rem)]",
802
+ "icon-sm": "size-[var(--button-height-sm,2rem)]",
803
+ "icon-lg": "size-[var(--button-height-lg,2.5rem)]"
804
+ }
805
+ },
806
+ defaultVariants: {
807
+ variant: "default",
808
+ size: "default"
809
+ }
810
+ });
811
+ var Pressable = React5.forwardRef(
812
+ ({
813
+ children,
814
+ className,
815
+ href,
816
+ onClick,
817
+ variant,
818
+ size,
819
+ asButton = false,
820
+ fallbackComponentType = "span",
821
+ componentType,
822
+ "aria-label": ariaLabel,
823
+ "aria-describedby": ariaDescribedby,
824
+ id,
825
+ ...props
826
+ }, ref) => {
827
+ const navigation = useNavigation({ href, onClick });
828
+ const {
829
+ normalizedHref,
830
+ target,
831
+ rel,
832
+ linkType,
833
+ isInternal,
834
+ isExternal,
835
+ handleClick
836
+ } = navigation;
837
+ const shouldRenderLink = normalizedHref && linkType !== "none";
838
+ const shouldRenderButton = !shouldRenderLink && onClick;
839
+ const effectiveComponentType = componentType || (shouldRenderLink ? "a" : shouldRenderButton ? "button" : fallbackComponentType);
840
+ const finalComponentType = isInternal && shouldRenderLink ? "a" : effectiveComponentType;
841
+ const shouldApplyButtonStyles = asButton || variant || size;
842
+ const combinedClassName = cn(
843
+ shouldApplyButtonStyles && buttonVariants({ variant, size }),
844
+ className
845
+ );
846
+ const dataProps = Object.fromEntries(
847
+ Object.entries(props).filter(([key]) => key.startsWith("data-"))
848
+ );
849
+ const buttonDataAttributes = shouldApplyButtonStyles ? {
850
+ "data-slot": "button",
851
+ "data-variant": variant ?? "default",
852
+ "data-size": size ?? "default"
853
+ } : {};
854
+ const commonProps = {
855
+ className: combinedClassName,
856
+ onClick: handleClick,
857
+ "aria-label": ariaLabel,
858
+ "aria-describedby": ariaDescribedby,
859
+ id,
860
+ ...dataProps,
861
+ ...buttonDataAttributes
862
+ };
863
+ if (finalComponentType === "a" && shouldRenderLink) {
864
+ return /* @__PURE__ */ jsx(
865
+ "a",
866
+ {
867
+ ref,
868
+ href: normalizedHref,
869
+ target,
870
+ rel,
871
+ ...commonProps,
872
+ ...props,
873
+ children
874
+ }
875
+ );
876
+ }
877
+ if (finalComponentType === "button") {
878
+ return /* @__PURE__ */ jsx(
879
+ "button",
880
+ {
881
+ ref,
882
+ type: props.type || "button",
883
+ ...commonProps,
884
+ ...props,
885
+ children
886
+ }
887
+ );
888
+ }
889
+ if (finalComponentType === "div") {
890
+ return /* @__PURE__ */ jsx(
891
+ "div",
892
+ {
893
+ ref,
894
+ ...commonProps,
895
+ children
896
+ }
897
+ );
898
+ }
899
+ return /* @__PURE__ */ jsx(
900
+ "span",
901
+ {
902
+ ref,
903
+ ...commonProps,
904
+ children
905
+ }
906
+ );
907
+ }
908
+ );
909
+ Pressable.displayName = "Pressable";
910
+ var PANEL_POSITION_CLASS = {
911
+ "top-left": "left-4 top-4",
912
+ "top-right": "right-4 top-4",
913
+ "bottom-left": "bottom-4 left-4",
914
+ "bottom-right": "bottom-4 right-4"
915
+ };
916
+ var DEFAULT_VIEW_STATE = {
917
+ latitude: 39.5,
918
+ longitude: -98.35,
919
+ zoom: 3
920
+ };
921
+ var VIDEO_FILE_EXTENSION_REGEX = /\.(mp4|webm|ogg|mov|m4v|m3u8)(\?.*)?$/i;
922
+ function resolveMediaType(item) {
923
+ if (item.type) {
924
+ return item.type;
925
+ }
926
+ return VIDEO_FILE_EXTENSION_REGEX.test(item.src) ? "video" : "image";
927
+ }
928
+ function normalizeId(value, fallback) {
929
+ if (value === null || value === void 0 || value === "") {
930
+ return fallback;
931
+ }
932
+ return String(value);
933
+ }
934
+ function buildClusterCenter(markers) {
935
+ if (!markers.length) {
936
+ return null;
937
+ }
938
+ const total = markers.reduce(
939
+ (accumulator, marker) => ({
940
+ latitude: accumulator.latitude + marker.latitude,
941
+ longitude: accumulator.longitude + marker.longitude
942
+ }),
943
+ { latitude: 0, longitude: 0 }
944
+ );
945
+ return {
946
+ latitude: total.latitude / markers.length,
947
+ longitude: total.longitude / markers.length
948
+ };
949
+ }
950
+ function resolveActionKey(action, index) {
951
+ if (typeof action.label === "string" && action.label.trim().length > 0) {
952
+ return `label:${action.label}:${index}`;
953
+ }
954
+ if (action.href) {
955
+ return `href:${action.href}:${index}`;
956
+ }
957
+ return `action:${index}`;
958
+ }
959
+ function MarkerActions({ actions }) {
960
+ if (!actions || actions.length === 0) {
961
+ return null;
962
+ }
963
+ return /* @__PURE__ */ jsx("div", { className: "mt-4 flex flex-wrap gap-2", children: actions.map((action, index) => {
964
+ const {
965
+ label,
966
+ icon,
967
+ iconAfter,
968
+ children,
969
+ href,
970
+ onClick,
971
+ className: actionClassName,
972
+ variant,
973
+ size,
974
+ asButton,
975
+ ...rest
976
+ } = action;
977
+ return /* @__PURE__ */ jsx(
978
+ Pressable,
979
+ {
980
+ href,
981
+ onClick,
982
+ variant: variant ?? (index === 0 ? "default" : "outline"),
983
+ size: size ?? "sm",
984
+ asButton: asButton ?? true,
985
+ className: cn("inline-flex items-center gap-2", actionClassName),
986
+ ...rest,
987
+ children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
988
+ icon,
989
+ label,
990
+ iconAfter
991
+ ] })
992
+ },
993
+ resolveActionKey(action, index)
994
+ );
995
+ }) });
996
+ }
997
+ function MarkerMediaCarousel({ mediaItems }) {
998
+ const [activeIndex, setActiveIndex] = React5.useState(0);
999
+ const totalItems = mediaItems.length;
1000
+ React5.useEffect(() => {
1001
+ setActiveIndex(0);
1002
+ }, [mediaItems]);
1003
+ const activeMediaItem = mediaItems[activeIndex];
1004
+ const mediaType = resolveMediaType(activeMediaItem);
1005
+ return /* @__PURE__ */ jsxs("div", { className: "relative border-b border-border/60 bg-muted/40", children: [
1006
+ /* @__PURE__ */ jsx("div", { className: "relative h-44 w-full overflow-hidden", children: mediaType === "video" ? /* @__PURE__ */ jsx(
1007
+ "video",
1008
+ {
1009
+ className: "h-full w-full object-cover",
1010
+ controls: true,
1011
+ preload: "metadata",
1012
+ poster: activeMediaItem.poster,
1013
+ children: /* @__PURE__ */ jsx("source", { src: activeMediaItem.src })
1014
+ }
1015
+ ) : /* @__PURE__ */ jsx(
1016
+ "img",
1017
+ {
1018
+ src: activeMediaItem.src,
1019
+ alt: activeMediaItem.alt ?? "Map marker media",
1020
+ className: "h-full w-full object-cover",
1021
+ loading: "lazy"
1022
+ }
1023
+ ) }),
1024
+ totalItems > 1 ? /* @__PURE__ */ jsxs(Fragment, { children: [
1025
+ /* @__PURE__ */ jsx(
1026
+ "button",
1027
+ {
1028
+ type: "button",
1029
+ "aria-label": "Show previous media",
1030
+ 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",
1031
+ onClick: () => {
1032
+ setActiveIndex((current) => (current - 1 + totalItems) % totalItems);
1033
+ },
1034
+ children: "<"
1035
+ }
1036
+ ),
1037
+ /* @__PURE__ */ jsx(
1038
+ "button",
1039
+ {
1040
+ type: "button",
1041
+ "aria-label": "Show next media",
1042
+ 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",
1043
+ onClick: () => {
1044
+ setActiveIndex((current) => (current + 1) % totalItems);
1045
+ },
1046
+ children: ">"
1047
+ }
1048
+ ),
1049
+ /* @__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(
1050
+ "button",
1051
+ {
1052
+ type: "button",
1053
+ "aria-label": `Show media item ${index + 1}`,
1054
+ className: cn(
1055
+ "h-2 rounded-full transition-all",
1056
+ index === activeIndex ? "w-6 bg-white" : "w-2 bg-white/70 hover:bg-white/90"
1057
+ ),
1058
+ onClick: () => setActiveIndex(index)
1059
+ },
1060
+ normalizeId(item.id, `media-dot-${index}`)
1061
+ )) })
1062
+ ] }) : null
1063
+ ] });
1064
+ }
1065
+ function getMarkerTitle(marker, markerIndex) {
1066
+ if (marker.title !== void 0 && marker.title !== null) {
1067
+ return marker.title;
1068
+ }
1069
+ if (marker.label !== void 0 && marker.label !== null) {
1070
+ return marker.label;
1071
+ }
1072
+ return `Location ${markerIndex + 1}`;
1073
+ }
1074
+ function GeoMap({
1075
+ className,
1076
+ mapWrapperClassName,
1077
+ mapClassName,
1078
+ panelClassName,
1079
+ panelPosition = "top-left",
1080
+ stadiaApiKey = "",
1081
+ mapStyle = "osm-bright",
1082
+ styleUrl,
1083
+ mapLibreCssHref,
1084
+ markers = [],
1085
+ clusters = [],
1086
+ viewState,
1087
+ defaultViewState,
1088
+ onViewStateChange,
1089
+ onMapClick,
1090
+ onMarkerDrag,
1091
+ showNavigationControl = true,
1092
+ showGeolocateControl = false,
1093
+ navigationControlPosition = "top-right",
1094
+ geolocateControlPosition = "top-left",
1095
+ flyToOptions,
1096
+ markerFocusZoom = 14,
1097
+ clusterFocusZoom = 5,
1098
+ selectedMarkerId,
1099
+ initialSelectedMarkerId,
1100
+ onSelectionChange,
1101
+ clearSelectionOnMapClick = true,
1102
+ mapChildren
1103
+ }) {
1104
+ const normalizedStandaloneMarkers = React5.useMemo(
1105
+ () => markers.map((marker, index) => ({
1106
+ ...marker,
1107
+ id: normalizeId(marker.id, `marker-${index}`)
1108
+ })),
1109
+ [markers]
1110
+ );
1111
+ const normalizedClusters = React5.useMemo(() => {
1112
+ const results = [];
1113
+ clusters.forEach((cluster, clusterIndex) => {
1114
+ const clusterId = normalizeId(cluster.id, `cluster-${clusterIndex}`);
1115
+ const normalizedClusterMarkers = cluster.markers.map(
1116
+ (marker, markerIndex) => ({
1117
+ ...marker,
1118
+ id: normalizeId(marker.id, `${clusterId}-marker-${markerIndex}`),
1119
+ clusterId
1120
+ })
1121
+ );
1122
+ const clusterCenter = cluster.latitude !== void 0 && cluster.longitude !== void 0 ? { latitude: cluster.latitude, longitude: cluster.longitude } : buildClusterCenter(normalizedClusterMarkers);
1123
+ if (!clusterCenter) {
1124
+ return;
1125
+ }
1126
+ results.push({
1127
+ ...cluster,
1128
+ id: clusterId,
1129
+ latitude: clusterCenter.latitude,
1130
+ longitude: clusterCenter.longitude,
1131
+ markers: normalizedClusterMarkers
1132
+ });
1133
+ });
1134
+ return results;
1135
+ }, [clusters]);
1136
+ const markerLookup = React5.useMemo(() => {
1137
+ const lookup = /* @__PURE__ */ new Map();
1138
+ normalizedStandaloneMarkers.forEach((marker) => {
1139
+ lookup.set(marker.id, marker);
1140
+ });
1141
+ normalizedClusters.forEach((cluster) => {
1142
+ cluster.markers.forEach((marker) => {
1143
+ lookup.set(marker.id, marker);
1144
+ });
1145
+ });
1146
+ return lookup;
1147
+ }, [normalizedClusters, normalizedStandaloneMarkers]);
1148
+ const clusterLookup = React5.useMemo(() => {
1149
+ const lookup = /* @__PURE__ */ new Map();
1150
+ normalizedClusters.forEach((cluster) => {
1151
+ lookup.set(cluster.id, cluster);
1152
+ });
1153
+ return lookup;
1154
+ }, [normalizedClusters]);
1155
+ const firstCoordinate = React5.useMemo(() => {
1156
+ if (normalizedStandaloneMarkers.length > 0) {
1157
+ const firstStandaloneMarker = normalizedStandaloneMarkers[0];
1158
+ return {
1159
+ latitude: firstStandaloneMarker.latitude,
1160
+ longitude: firstStandaloneMarker.longitude
1161
+ };
1162
+ }
1163
+ if (normalizedClusters.length > 0) {
1164
+ const firstCluster = normalizedClusters[0];
1165
+ return {
1166
+ latitude: firstCluster.latitude,
1167
+ longitude: firstCluster.longitude
1168
+ };
1169
+ }
1170
+ return {
1171
+ latitude: DEFAULT_VIEW_STATE.latitude,
1172
+ longitude: DEFAULT_VIEW_STATE.longitude
1173
+ };
1174
+ }, [normalizedClusters, normalizedStandaloneMarkers]);
1175
+ const [uncontrolledViewState, setUncontrolledViewState] = React5.useState({
1176
+ latitude: defaultViewState?.latitude ?? firstCoordinate.latitude,
1177
+ longitude: defaultViewState?.longitude ?? firstCoordinate.longitude,
1178
+ zoom: defaultViewState?.zoom ?? DEFAULT_VIEW_STATE.zoom
1179
+ });
1180
+ const isControlledViewState = viewState !== void 0;
1181
+ const resolvedViewState = isControlledViewState ? viewState : uncontrolledViewState;
1182
+ const applyViewState = React5.useCallback(
1183
+ (nextState) => {
1184
+ if (!isControlledViewState) {
1185
+ setUncontrolledViewState((current) => ({ ...current, ...nextState }));
1186
+ }
1187
+ onViewStateChange?.(nextState);
1188
+ },
1189
+ [isControlledViewState, onViewStateChange]
1190
+ );
1191
+ const [selection, setSelection] = React5.useState(() => {
1192
+ if (initialSelectedMarkerId !== void 0 && initialSelectedMarkerId !== null) {
1193
+ return {
1194
+ type: "marker",
1195
+ markerId: String(initialSelectedMarkerId)
1196
+ };
1197
+ }
1198
+ return { type: "none" };
1199
+ });
1200
+ React5.useEffect(() => {
1201
+ if (selectedMarkerId === void 0 || selectedMarkerId === null) {
1202
+ return;
1203
+ }
1204
+ setSelection({
1205
+ type: "marker",
1206
+ markerId: String(selectedMarkerId)
1207
+ });
1208
+ }, [selectedMarkerId]);
1209
+ const selectedMarker = selection.markerId ? markerLookup.get(selection.markerId) : void 0;
1210
+ const selectedCluster = selection.clusterId ? clusterLookup.get(selection.clusterId) : void 0;
1211
+ React5.useEffect(() => {
1212
+ if (selection.type === "marker" && selection.markerId && !selectedMarker) {
1213
+ setSelection({ type: "none" });
1214
+ onSelectionChange?.({ type: "none" });
1215
+ }
1216
+ }, [onSelectionChange, selectedMarker, selection]);
1217
+ const emitSelectionChange = React5.useCallback(
1218
+ (nextSelection) => {
1219
+ if (nextSelection.type === "none") {
1220
+ onSelectionChange?.({ type: "none" });
1221
+ return;
1222
+ }
1223
+ if (nextSelection.type === "marker") {
1224
+ const parentCluster = nextSelection.marker.clusterId ? clusterLookup.get(nextSelection.marker.clusterId) : void 0;
1225
+ onSelectionChange?.({
1226
+ type: "marker",
1227
+ marker: nextSelection.marker,
1228
+ cluster: parentCluster
1229
+ });
1230
+ return;
1231
+ }
1232
+ onSelectionChange?.({
1233
+ type: "cluster",
1234
+ cluster: nextSelection.cluster
1235
+ });
1236
+ },
1237
+ [clusterLookup, onSelectionChange]
1238
+ );
1239
+ const selectMarker = React5.useCallback(
1240
+ (marker) => {
1241
+ setSelection({
1242
+ type: "marker",
1243
+ markerId: marker.id,
1244
+ clusterId: marker.clusterId
1245
+ });
1246
+ applyViewState({
1247
+ latitude: marker.latitude,
1248
+ longitude: marker.longitude,
1249
+ zoom: markerFocusZoom
1250
+ });
1251
+ emitSelectionChange({ type: "marker", marker });
1252
+ },
1253
+ [applyViewState, emitSelectionChange, markerFocusZoom]
1254
+ );
1255
+ const selectCluster = React5.useCallback(
1256
+ (cluster) => {
1257
+ setSelection({
1258
+ type: "cluster",
1259
+ clusterId: cluster.id
1260
+ });
1261
+ applyViewState({
1262
+ latitude: cluster.latitude,
1263
+ longitude: cluster.longitude,
1264
+ zoom: clusterFocusZoom
1265
+ });
1266
+ emitSelectionChange({ type: "cluster", cluster });
1267
+ },
1268
+ [applyViewState, clusterFocusZoom, emitSelectionChange]
1269
+ );
1270
+ const clearSelection = React5.useCallback(() => {
1271
+ setSelection({ type: "none" });
1272
+ emitSelectionChange({ type: "none" });
1273
+ }, [emitSelectionChange]);
1274
+ const mapMarkers = React5.useMemo(() => {
1275
+ const resolvedMarkers = [];
1276
+ normalizedClusters.forEach((cluster) => {
1277
+ const isSelected = selection.type === "cluster" && selection.clusterId === cluster.id;
1278
+ resolvedMarkers.push({
1279
+ id: `cluster-pin:${cluster.id}`,
1280
+ latitude: cluster.latitude,
1281
+ longitude: cluster.longitude,
1282
+ element: () => {
1283
+ const customMarkerElement = cluster.markerElement;
1284
+ const markerBody = typeof customMarkerElement === "function" ? customMarkerElement({
1285
+ isSelected,
1286
+ count: cluster.markers.length
1287
+ }) : customMarkerElement;
1288
+ return /* @__PURE__ */ jsx(
1289
+ "button",
1290
+ {
1291
+ type: "button",
1292
+ className: "group cursor-pointer",
1293
+ onClick: (event) => {
1294
+ event.preventDefault();
1295
+ event.stopPropagation();
1296
+ selectCluster(cluster);
1297
+ },
1298
+ "aria-label": `View ${cluster.markers.length} clustered locations`,
1299
+ children: markerBody ?? /* @__PURE__ */ jsx(
1300
+ "span",
1301
+ {
1302
+ className: cn(
1303
+ "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",
1304
+ isSelected && "ring-4 ring-primary/30",
1305
+ cluster.pinClassName
1306
+ ),
1307
+ style: {
1308
+ backgroundColor: cluster.pinColor ?? "var(--foreground)"
1309
+ },
1310
+ children: cluster.markers.length
1311
+ }
1312
+ )
1313
+ }
1314
+ );
1315
+ }
1316
+ });
1317
+ });
1318
+ normalizedStandaloneMarkers.forEach((marker) => {
1319
+ const isSelected = selection.type === "marker" && selection.markerId === marker.id;
1320
+ const customMarkerElement = marker.markerElement;
1321
+ resolvedMarkers.push({
1322
+ id: marker.id,
1323
+ latitude: marker.latitude,
1324
+ longitude: marker.longitude,
1325
+ draggable: marker.draggable,
1326
+ element: () => {
1327
+ const markerBody = typeof customMarkerElement === "function" ? customMarkerElement({ isSelected }) : customMarkerElement;
1328
+ return /* @__PURE__ */ jsx(
1329
+ "button",
1330
+ {
1331
+ type: "button",
1332
+ className: "group cursor-pointer",
1333
+ onClick: (event) => {
1334
+ event.preventDefault();
1335
+ event.stopPropagation();
1336
+ selectMarker(marker);
1337
+ },
1338
+ "aria-label": typeof marker.title === "string" ? `View ${marker.title}` : "View location details",
1339
+ children: markerBody ?? /* @__PURE__ */ jsx(
1340
+ "span",
1341
+ {
1342
+ className: cn(
1343
+ "inline-flex h-4 w-4 rounded-full border-2 border-white shadow-md transition-transform duration-200 group-hover:scale-110",
1344
+ isSelected && "h-5 w-5 ring-4 ring-primary/30",
1345
+ marker.pinClassName
1346
+ ),
1347
+ style: {
1348
+ backgroundColor: marker.pinColor ?? "#f43f5e"
1349
+ }
1350
+ }
1351
+ )
1352
+ }
1353
+ );
1354
+ }
1355
+ });
1356
+ });
1357
+ return resolvedMarkers;
1358
+ }, [normalizedClusters, normalizedStandaloneMarkers, selectCluster, selectMarker, selection]);
1359
+ const renderMarkerPanel = () => {
1360
+ if (selectedMarker) {
1361
+ const markerMediaItems = selectedMarker.mediaItems ?? [];
1362
+ return /* @__PURE__ */ jsxs(
1363
+ "div",
1364
+ {
1365
+ className: cn(
1366
+ "w-[min(24rem,calc(100vw-2rem))] overflow-hidden rounded-xl border border-border bg-background shadow-2xl",
1367
+ panelClassName
1368
+ ),
1369
+ children: [
1370
+ markerMediaItems.length > 0 ? /* @__PURE__ */ jsx(MarkerMediaCarousel, { mediaItems: markerMediaItems }) : null,
1371
+ /* @__PURE__ */ jsxs("div", { className: "space-y-2 p-4", children: [
1372
+ /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between gap-3", children: [
1373
+ /* @__PURE__ */ jsxs("div", { className: "min-w-0 space-y-1", children: [
1374
+ selectedMarker.eyebrow ? /* @__PURE__ */ jsx("p", { className: "text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: selectedMarker.eyebrow }) : null,
1375
+ /* @__PURE__ */ jsx("div", { className: "text-base font-semibold leading-tight text-foreground", children: selectedMarker.title ?? selectedMarker.label ?? "Location" })
1376
+ ] }),
1377
+ /* @__PURE__ */ jsx(
1378
+ "button",
1379
+ {
1380
+ type: "button",
1381
+ "aria-label": "Close marker details",
1382
+ 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",
1383
+ onClick: clearSelection,
1384
+ children: "x"
1385
+ }
1386
+ )
1387
+ ] }),
1388
+ selectedMarker.summary ? /* @__PURE__ */ jsx("div", { className: "text-sm leading-relaxed text-muted-foreground", children: selectedMarker.summary }) : null,
1389
+ selectedMarker.locationLine ? /* @__PURE__ */ jsx("div", { className: "text-sm font-medium text-foreground", children: selectedMarker.locationLine }) : null,
1390
+ selectedMarker.hoursLine ? /* @__PURE__ */ jsx("div", { className: "text-sm text-muted-foreground", children: selectedMarker.hoursLine }) : null,
1391
+ selectedMarker.markerContentComponent ? /* @__PURE__ */ jsx("div", { className: "text-sm", children: selectedMarker.markerContentComponent }) : null,
1392
+ /* @__PURE__ */ jsx(MarkerActions, { actions: selectedMarker.actions })
1393
+ ] })
1394
+ ]
1395
+ }
1396
+ );
1397
+ }
1398
+ if (selectedCluster) {
1399
+ return /* @__PURE__ */ jsxs(
1400
+ "div",
1401
+ {
1402
+ className: cn(
1403
+ "w-[min(24rem,calc(100vw-2rem))] overflow-hidden rounded-xl border border-border bg-background p-4 shadow-2xl",
1404
+ panelClassName
1405
+ ),
1406
+ children: [
1407
+ /* @__PURE__ */ jsxs("div", { className: "mb-3 flex items-start justify-between gap-3", children: [
1408
+ /* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
1409
+ selectedCluster.label ? /* @__PURE__ */ jsx("p", { className: "text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: selectedCluster.label }) : null,
1410
+ /* @__PURE__ */ jsx("div", { className: "text-base font-semibold leading-tight text-foreground", children: selectedCluster.title ?? "Clustered Locations" }),
1411
+ /* @__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.` })
1412
+ ] }),
1413
+ /* @__PURE__ */ jsx(
1414
+ "button",
1415
+ {
1416
+ type: "button",
1417
+ "aria-label": "Close cluster details",
1418
+ 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",
1419
+ onClick: clearSelection,
1420
+ children: "x"
1421
+ }
1422
+ )
1423
+ ] }),
1424
+ /* @__PURE__ */ jsx("div", { className: "max-h-56 space-y-2 overflow-y-auto pr-1", children: selectedCluster.markers.map((marker, markerIndex) => /* @__PURE__ */ jsxs(
1425
+ "button",
1426
+ {
1427
+ type: "button",
1428
+ className: "w-full rounded-lg border border-border/60 p-3 text-left transition hover:border-border hover:bg-muted/50",
1429
+ onClick: () => selectMarker(marker),
1430
+ children: [
1431
+ /* @__PURE__ */ jsx("div", { className: "line-clamp-1 text-sm font-semibold text-foreground", children: getMarkerTitle(marker, markerIndex) }),
1432
+ marker.summary ? /* @__PURE__ */ jsx("div", { className: "mt-1 line-clamp-2 text-xs text-muted-foreground", children: marker.summary }) : null
1433
+ ]
1434
+ },
1435
+ marker.id
1436
+ )) })
1437
+ ]
1438
+ }
1439
+ );
1440
+ }
1441
+ return null;
1442
+ };
1443
+ return /* @__PURE__ */ jsxs(
1444
+ "div",
1445
+ {
1446
+ className: cn(
1447
+ "relative overflow-hidden rounded-2xl border border-border bg-background",
1448
+ className
1449
+ ),
1450
+ children: [
1451
+ /* @__PURE__ */ jsx("div", { className: cn("h-[520px] w-full", mapWrapperClassName), children: /* @__PURE__ */ jsx(
1452
+ MapLibre,
1453
+ {
1454
+ stadiaApiKey,
1455
+ mapStyle,
1456
+ styleUrl,
1457
+ mapLibreCssHref,
1458
+ viewState: resolvedViewState,
1459
+ onViewStateChange: applyViewState,
1460
+ markers: mapMarkers,
1461
+ onClick: (coord) => {
1462
+ onMapClick?.(coord);
1463
+ if (clearSelectionOnMapClick) {
1464
+ clearSelection();
1465
+ }
1466
+ },
1467
+ onMarkerDrag,
1468
+ showNavigationControl,
1469
+ showGeolocateControl,
1470
+ navigationControlPosition,
1471
+ geolocateControlPosition,
1472
+ flyToOptions,
1473
+ className: cn("h-full w-full", mapClassName),
1474
+ children: mapChildren
1475
+ }
1476
+ ) }),
1477
+ 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
1478
+ ]
1479
+ }
1480
+ );
1481
+ }
1482
+ var sizeStyles = {
1483
+ sm: "max-w-md",
1484
+ md: "max-w-2xl",
1485
+ lg: "max-w-4xl",
1486
+ xl: "max-w-5xl",
1487
+ full: "max-w-7xl",
1488
+ compact: "max-w-[700px]"
1489
+ };
1490
+ var dialogTransition = {
1491
+ duration: 0.35,
1492
+ ease: [0.16, 1, 0.3, 1]
1493
+ };
1494
+ function AnimatedDialog({
1495
+ open,
1496
+ onOpenChange,
1497
+ title,
1498
+ eyebrow,
1499
+ description,
1500
+ children,
1501
+ header,
1502
+ footer,
1503
+ size = "lg",
1504
+ className,
1505
+ contentClassName,
1506
+ featuredMediaHeader
1507
+ }) {
1508
+ const titleId = useId();
1509
+ const descriptionId = useId();
1510
+ const containerRef = useRef(null);
1511
+ useOnClickOutside(containerRef, () => {
1512
+ if (open) {
1513
+ onOpenChange(false);
1514
+ }
1515
+ });
1516
+ useEffect(() => {
1517
+ if (!open) {
1518
+ return;
1519
+ }
1520
+ const onKeyDown = (event) => {
1521
+ if (event.key === "Escape") {
1522
+ onOpenChange(false);
1523
+ }
1524
+ };
1525
+ const previousOverflow = document.body.style.overflow;
1526
+ document.body.style.overflow = "hidden";
1527
+ window.addEventListener("keydown", onKeyDown);
1528
+ return () => {
1529
+ document.body.style.overflow = previousOverflow;
1530
+ window.removeEventListener("keydown", onKeyDown);
1531
+ };
1532
+ }, [open, onOpenChange]);
1533
+ return /* @__PURE__ */ jsx(AnimatePresence, { children: open ? /* @__PURE__ */ jsxs("div", { className: "fixed inset-0 z-50 h-screen overflow-y-auto", children: [
1534
+ /* @__PURE__ */ jsx(
1535
+ motion.div,
1536
+ {
1537
+ initial: { opacity: 0 },
1538
+ animate: { opacity: 1, transition: dialogTransition },
1539
+ exit: { opacity: 0, transition: dialogTransition },
1540
+ className: "fixed inset-0 h-full w-full bg-foreground/80 backdrop-blur-lg"
1541
+ }
1542
+ ),
1543
+ /* @__PURE__ */ jsxs(
1544
+ motion.div,
1545
+ {
1546
+ initial: { opacity: 0, y: 24, scale: 0.98 },
1547
+ animate: {
1548
+ opacity: 1,
1549
+ y: 0,
1550
+ scale: 1,
1551
+ transition: dialogTransition
1552
+ },
1553
+ exit: {
1554
+ opacity: 0,
1555
+ y: 12,
1556
+ scale: 0.98,
1557
+ transition: dialogTransition
1558
+ },
1559
+ ref: containerRef,
1560
+ role: "dialog",
1561
+ "aria-modal": "true",
1562
+ "aria-labelledby": title ? titleId : void 0,
1563
+ "aria-describedby": description ? descriptionId : void 0,
1564
+ className: cn(
1565
+ "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",
1566
+ size === "compact" ? "p-0 md:my-20" : "p-6 md:my-20 md:p-12",
1567
+ sizeStyles[size],
1568
+ className
1569
+ ),
1570
+ children: [
1571
+ featuredMediaHeader ? /* @__PURE__ */ jsxs("div", { className: "relative overflow-hidden", children: [
1572
+ featuredMediaHeader,
1573
+ /* @__PURE__ */ jsx(
1574
+ "button",
1575
+ {
1576
+ type: "button",
1577
+ "aria-label": "Close dialog",
1578
+ 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",
1579
+ onClick: () => onOpenChange(false),
1580
+ children: /* @__PURE__ */ jsx(
1581
+ "svg",
1582
+ {
1583
+ xmlns: "http://www.w3.org/2000/svg",
1584
+ width: "24",
1585
+ height: "24",
1586
+ viewBox: "0 0 24 24",
1587
+ children: /* @__PURE__ */ jsx(
1588
+ "path",
1589
+ {
1590
+ fill: "none",
1591
+ stroke: "currentColor",
1592
+ strokeLinecap: "round",
1593
+ strokeLinejoin: "round",
1594
+ strokeWidth: "2",
1595
+ d: "M18 6L6 18M6 6l12 12"
1596
+ }
1597
+ )
1598
+ }
1599
+ )
1600
+ }
609
1601
  )
610
1602
  ] }) : null,
611
1603
  /* @__PURE__ */ jsxs(
@@ -844,10 +1836,10 @@ var ImageSlider = ({
844
1836
  optixFlowConfig
845
1837
  }) => {
846
1838
  const hasImages = images.length > 0;
847
- const [currentIndex, setCurrentIndex] = React4.useState(
1839
+ const [currentIndex, setCurrentIndex] = React5.useState(
848
1840
  () => normalizeIndex(startIndex, images.length)
849
1841
  );
850
- const handleNext = React4.useCallback(() => {
1842
+ const handleNext = React5.useCallback(() => {
851
1843
  if (!hasImages) return;
852
1844
  setCurrentIndex((prevIndex) => {
853
1845
  const nextIndex = prevIndex + 1 >= images.length ? 0 : prevIndex + 1;
@@ -855,7 +1847,7 @@ var ImageSlider = ({
855
1847
  return nextIndex;
856
1848
  });
857
1849
  }, [hasImages, images.length, onSlideChange]);
858
- const handlePrevious = React4.useCallback(() => {
1850
+ const handlePrevious = React5.useCallback(() => {
859
1851
  if (!hasImages) return;
860
1852
  setCurrentIndex((prevIndex) => {
861
1853
  const nextIndex = prevIndex - 1 < 0 ? images.length - 1 : prevIndex - 1;
@@ -863,11 +1855,11 @@ var ImageSlider = ({
863
1855
  return nextIndex;
864
1856
  });
865
1857
  }, [hasImages, images.length, onSlideChange]);
866
- React4.useEffect(() => {
1858
+ React5.useEffect(() => {
867
1859
  if (!hasImages) return;
868
1860
  setCurrentIndex(normalizeIndex(startIndex, images.length));
869
1861
  }, [startIndex, images.length, hasImages]);
870
- React4.useEffect(() => {
1862
+ React5.useEffect(() => {
871
1863
  if (!enableKeyboard || !hasImages) return;
872
1864
  const handleKeyDown = (event) => {
873
1865
  if (event.key === "ArrowRight") {
@@ -881,7 +1873,7 @@ var ImageSlider = ({
881
1873
  window.removeEventListener("keydown", handleKeyDown);
882
1874
  };
883
1875
  }, [enableKeyboard, handleNext, handlePrevious, hasImages]);
884
- React4.useEffect(() => {
1876
+ React5.useEffect(() => {
885
1877
  if (!autoplay || images.length < 2) return;
886
1878
  const interval = window.setInterval(handleNext, autoplayIntervalMs);
887
1879
  return () => window.clearInterval(interval);
@@ -949,153 +1941,11 @@ var ImageSlider = ({
949
1941
  ),
950
1942
  children
951
1943
  }
952
- ) : null
953
- ]
954
- }
955
- );
956
- };
957
- var baseStyles = [
958
- // Layout
959
- "inline-flex items-center justify-center gap-2 whitespace-nowrap shrink-0",
960
- // Typography - using CSS variables with sensible defaults
961
- "font-[var(--button-font-family,inherit)]",
962
- "font-[var(--button-font-weight,500)]",
963
- "tracking-[var(--button-letter-spacing,0)]",
964
- "leading-[var(--button-line-height,1.25)]",
965
- "[text-transform:var(--button-text-transform,none)]",
966
- "text-sm",
967
- // Border radius
968
- "rounded-[var(--button-radius,var(--radius,0.375rem))]",
969
- // Smooth transition - using [transition:...] to set full shorthand property (not just transition-property)
970
- "[transition:var(--button-transition,all_250ms_cubic-bezier(0.4,0,0.2,1))]",
971
- // Box shadow (master level) - using [box-shadow:...] for complex multi-value shadows
972
- "[box-shadow:var(--button-shadow,none)]",
973
- "hover:[box-shadow:var(--button-shadow-hover,var(--button-shadow,none))]",
974
- // Disabled state
975
- "disabled:pointer-events-none disabled:opacity-50",
976
- // SVG handling
977
- "[&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0",
978
- // Focus styles
979
- "outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
980
- // Invalid state
981
- "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive"
982
- ].join(" ");
983
- var buttonVariants = cva(baseStyles, {
984
- variants: {
985
- variant: {
986
- // Default (Primary) variant - full customization
987
- default: [
988
- "bg-[var(--button-default-bg,hsl(var(--primary)))]",
989
- "text-[var(--button-default-fg,hsl(var(--primary-foreground)))]",
990
- "border-[length:var(--button-default-border-width,0px)]",
991
- "border-[color:var(--button-default-border,transparent)]",
992
- "[box-shadow:var(--button-default-shadow,var(--button-shadow,none))]",
993
- "hover:bg-[var(--button-default-hover-bg,hsl(var(--primary)/0.9))]",
994
- "hover:text-[var(--button-default-hover-fg,var(--button-default-fg,hsl(var(--primary-foreground))))]",
995
- "hover:border-[color:var(--button-default-hover-border,var(--button-default-border,transparent))]",
996
- "hover:[box-shadow:var(--button-default-shadow-hover,var(--button-shadow-hover,var(--button-default-shadow,var(--button-shadow,none))))]"
997
- ].join(" "),
998
- // Destructive variant - full customization
999
- destructive: [
1000
- "bg-[var(--button-destructive-bg,hsl(var(--destructive)))]",
1001
- "text-[var(--button-destructive-fg,white)]",
1002
- "border-[length:var(--button-destructive-border-width,0px)]",
1003
- "border-[color:var(--button-destructive-border,transparent)]",
1004
- "[box-shadow:var(--button-destructive-shadow,var(--button-shadow,none))]",
1005
- "hover:bg-[var(--button-destructive-hover-bg,hsl(var(--destructive)/0.9))]",
1006
- "hover:text-[var(--button-destructive-hover-fg,var(--button-destructive-fg,white))]",
1007
- "hover:border-[color:var(--button-destructive-hover-border,var(--button-destructive-border,transparent))]",
1008
- "hover:[box-shadow:var(--button-destructive-shadow-hover,var(--button-shadow-hover,var(--button-destructive-shadow,var(--button-shadow,none))))]",
1009
- "focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40",
1010
- "dark:bg-destructive/60"
1011
- ].join(" "),
1012
- // Outline variant - full customization with proper border handling
1013
- outline: [
1014
- "bg-[var(--button-outline-bg,hsl(var(--background)))]",
1015
- "text-[var(--button-outline-fg,inherit)]",
1016
- "border-[length:var(--button-outline-border-width,1px)]",
1017
- "border-[color:var(--button-outline-border,hsl(var(--border)))]",
1018
- "[box-shadow:var(--button-outline-shadow,var(--button-shadow,0_1px_2px_0_rgb(0_0_0/0.05)))]",
1019
- "hover:bg-[var(--button-outline-hover-bg,hsl(var(--accent)))]",
1020
- "hover:text-[var(--button-outline-hover-fg,hsl(var(--accent-foreground)))]",
1021
- "hover:border-[color:var(--button-outline-hover-border,var(--button-outline-border,hsl(var(--border))))]",
1022
- "hover:[box-shadow:var(--button-outline-shadow-hover,var(--button-shadow-hover,var(--button-outline-shadow,var(--button-shadow,none))))]",
1023
- "dark:bg-input/30 dark:border-input dark:hover:bg-input/50"
1024
- ].join(" "),
1025
- // Secondary variant - full customization
1026
- secondary: [
1027
- "bg-[var(--button-secondary-bg,hsl(var(--secondary)))]",
1028
- "text-[var(--button-secondary-fg,hsl(var(--secondary-foreground)))]",
1029
- "border-[length:var(--button-secondary-border-width,0px)]",
1030
- "border-[color:var(--button-secondary-border,transparent)]",
1031
- "[box-shadow:var(--button-secondary-shadow,var(--button-shadow,none))]",
1032
- "hover:bg-[var(--button-secondary-hover-bg,hsl(var(--secondary)/0.8))]",
1033
- "hover:text-[var(--button-secondary-hover-fg,var(--button-secondary-fg,hsl(var(--secondary-foreground))))]",
1034
- "hover:border-[color:var(--button-secondary-hover-border,var(--button-secondary-border,transparent))]",
1035
- "hover:[box-shadow:var(--button-secondary-shadow-hover,var(--button-shadow-hover,var(--button-secondary-shadow,var(--button-shadow,none))))]"
1036
- ].join(" "),
1037
- // Ghost variant - full customization
1038
- ghost: [
1039
- "bg-[var(--button-ghost-bg,transparent)]",
1040
- "text-[var(--button-ghost-fg,inherit)]",
1041
- "border-[length:var(--button-ghost-border-width,0px)]",
1042
- "border-[color:var(--button-ghost-border,transparent)]",
1043
- "[box-shadow:var(--button-ghost-shadow,var(--button-shadow,none))]",
1044
- "hover:bg-[var(--button-ghost-hover-bg,hsl(var(--accent)))]",
1045
- "hover:text-[var(--button-ghost-hover-fg,hsl(var(--accent-foreground)))]",
1046
- "hover:border-[color:var(--button-ghost-hover-border,var(--button-ghost-border,transparent))]",
1047
- "hover:[box-shadow:var(--button-ghost-shadow-hover,var(--button-shadow-hover,var(--button-ghost-shadow,var(--button-shadow,none))))]",
1048
- "dark:hover:bg-accent/50"
1049
- ].join(" "),
1050
- // Link variant - full customization
1051
- link: [
1052
- "bg-[var(--button-link-bg,transparent)]",
1053
- "text-[var(--button-link-fg,hsl(var(--primary)))]",
1054
- "border-[length:var(--button-link-border-width,0px)]",
1055
- "border-[color:var(--button-link-border,transparent)]",
1056
- "[box-shadow:var(--button-link-shadow,none)]",
1057
- "hover:bg-[var(--button-link-hover-bg,transparent)]",
1058
- "hover:text-[var(--button-link-hover-fg,var(--button-link-fg,hsl(var(--primary))))]",
1059
- "hover:[box-shadow:var(--button-link-shadow-hover,none)]",
1060
- "underline-offset-4 hover:underline"
1061
- ].join(" ")
1062
- },
1063
- size: {
1064
- default: [
1065
- "h-[var(--button-height-md,2.25rem)]",
1066
- "px-[var(--button-padding-x-md,1rem)]",
1067
- "py-[var(--button-padding-y-md,0.5rem)]",
1068
- "has-[>svg]:px-[calc(var(--button-padding-x-md,1rem)*0.75)]"
1069
- ].join(" "),
1070
- sm: [
1071
- "h-[var(--button-height-sm,2rem)]",
1072
- "px-[var(--button-padding-x-sm,0.75rem)]",
1073
- "py-[var(--button-padding-y-sm,0.25rem)]",
1074
- "gap-1.5",
1075
- "has-[>svg]:px-[calc(var(--button-padding-x-sm,0.75rem)*0.83)]"
1076
- ].join(" "),
1077
- md: [
1078
- "h-[var(--button-height-md,2.25rem)]",
1079
- "px-[var(--button-padding-x-md,1rem)]",
1080
- "py-[var(--button-padding-y-md,0.5rem)]",
1081
- "has-[>svg]:px-[calc(var(--button-padding-x-md,1rem)*0.75)]"
1082
- ].join(" "),
1083
- lg: [
1084
- "h-[var(--button-height-lg,2.5rem)]",
1085
- "px-[var(--button-padding-x-lg,1.5rem)]",
1086
- "py-[var(--button-padding-y-lg,0.5rem)]",
1087
- "has-[>svg]:px-[calc(var(--button-padding-x-lg,1.5rem)*0.67)]"
1088
- ].join(" "),
1089
- icon: "size-[var(--button-height-md,2.25rem)]",
1090
- "icon-sm": "size-[var(--button-height-sm,2rem)]",
1091
- "icon-lg": "size-[var(--button-height-lg,2.5rem)]"
1944
+ ) : null
1945
+ ]
1092
1946
  }
1093
- },
1094
- defaultVariants: {
1095
- variant: "default",
1096
- size: "default"
1097
- }
1098
- });
1947
+ );
1948
+ };
1099
1949
  function Button({
1100
1950
  className,
1101
1951
  variant = "default",
@@ -1123,407 +1973,130 @@ function Card({ className, ...props }) {
1123
1973
  className: cn(
1124
1974
  "bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",
1125
1975
  className
1126
- ),
1127
- ...props
1128
- }
1129
- );
1130
- }
1131
- function CardHeader({ className, ...props }) {
1132
- return /* @__PURE__ */ jsx(
1133
- "div",
1134
- {
1135
- "data-slot": "card-header",
1136
- className: cn(
1137
- "@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",
1138
- className
1139
- ),
1140
- ...props
1141
- }
1142
- );
1143
- }
1144
- function CardTitle({ className, ...props }) {
1145
- return /* @__PURE__ */ jsx(
1146
- "div",
1147
- {
1148
- "data-slot": "card-title",
1149
- className: cn("leading-none font-semibold", className),
1150
- ...props
1151
- }
1152
- );
1153
- }
1154
- function CardDescription({ className, ...props }) {
1155
- return /* @__PURE__ */ jsx(
1156
- "div",
1157
- {
1158
- "data-slot": "card-description",
1159
- className: cn("text-muted-foreground text-sm", className),
1160
- ...props
1161
- }
1162
- );
1163
- }
1164
- function CardContent({ className, ...props }) {
1165
- return /* @__PURE__ */ jsx(
1166
- "div",
1167
- {
1168
- "data-slot": "card-content",
1169
- className: cn("px-6", className),
1170
- ...props
1171
- }
1172
- );
1173
- }
1174
- function CardFooter({ className, ...props }) {
1175
- return /* @__PURE__ */ jsx(
1176
- "div",
1177
- {
1178
- "data-slot": "card-footer",
1179
- className: cn("flex items-center px-6 [.border-t]:pt-6", className),
1180
- ...props
1181
- }
1182
- );
1183
- }
1184
- var badgeVariants = cva(
1185
- "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",
1186
- {
1187
- variants: {
1188
- variant: {
1189
- default: "border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",
1190
- secondary: "border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",
1191
- 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",
1192
- outline: "text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"
1193
- }
1194
- },
1195
- defaultVariants: {
1196
- variant: "default"
1197
- }
1198
- }
1199
- );
1200
- function Badge({
1201
- className,
1202
- variant,
1203
- asChild = false,
1204
- ...props
1205
- }) {
1206
- const Comp = asChild ? Slot : "span";
1207
- return /* @__PURE__ */ jsx(
1208
- Comp,
1209
- {
1210
- "data-slot": "badge",
1211
- className: cn(badgeVariants({ variant }), className),
1212
- ...props
1213
- }
1214
- );
1215
- }
1216
- function Popover({
1217
- ...props
1218
- }) {
1219
- return /* @__PURE__ */ jsx(PopoverPrimitive.Root, { "data-slot": "popover", ...props });
1220
- }
1221
- function PopoverTrigger({
1222
- ...props
1223
- }) {
1224
- return /* @__PURE__ */ jsx(PopoverPrimitive.Trigger, { "data-slot": "popover-trigger", ...props });
1225
- }
1226
- function PopoverContent({
1227
- className,
1228
- align = "center",
1229
- sideOffset = 4,
1230
- ...props
1231
- }) {
1232
- return /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx(
1233
- PopoverPrimitive.Content,
1234
- {
1235
- "data-slot": "popover-content",
1236
- align,
1237
- sideOffset,
1238
- className: cn(
1239
- "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",
1240
- className
1241
- ),
1242
- ...props
1243
- }
1244
- ) });
1245
- }
1246
- var DEFAULT_ICON_API_KEY = "au382bi7fsh96w9h9xlrnat2jglx";
1247
- function DynamicIcon({ apiKey, ...props }) {
1248
- return /* @__PURE__ */ jsx(Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
1249
- }
1250
- function normalizePhoneNumber(input) {
1251
- const trimmed = input.trim();
1252
- if (trimmed.toLowerCase().startsWith("tel:")) {
1253
- return trimmed;
1254
- }
1255
- const match = trimmed.match(/^[\s\+\-\(\)]*(\d[\d\s\-\(\)\.]*\d)[\s\-]*(x|ext\.?|extension)?[\s\-]*(\d+)?$/i);
1256
- if (match) {
1257
- const mainNumber = match[1].replace(/[\s\-\(\)\.]/g, "");
1258
- const extension = match[3];
1259
- const normalized = mainNumber.length >= 10 && !trimmed.startsWith("+") ? `+${mainNumber}` : mainNumber;
1260
- const withExtension = extension ? `${normalized};ext=${extension}` : normalized;
1261
- return `tel:${withExtension}`;
1262
- }
1263
- const cleaned = trimmed.replace(/[\s\-\(\)\.]/g, "");
1264
- return `tel:${cleaned}`;
1265
- }
1266
- function normalizeEmail(input) {
1267
- const trimmed = input.trim();
1268
- if (trimmed.toLowerCase().startsWith("mailto:")) {
1269
- return trimmed;
1270
- }
1271
- return `mailto:${trimmed}`;
1272
- }
1273
- function isEmail(input) {
1274
- const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
1275
- return emailRegex.test(input.trim());
1276
- }
1277
- function isPhoneNumber(input) {
1278
- const trimmed = input.trim();
1279
- if (trimmed.toLowerCase().startsWith("tel:")) {
1280
- return true;
1281
- }
1282
- const phoneRegex = /^[\s\+\-\(\)]*\d[\d\s\-\(\)\.]*\d[\s\-]*(x|ext\.?|extension)?[\s\-]*\d*$/i;
1283
- return phoneRegex.test(trimmed);
1284
- }
1285
- function isInternalUrl(href) {
1286
- if (typeof window === "undefined") {
1287
- return href.startsWith("/") && !href.startsWith("//");
1288
- }
1289
- const trimmed = href.trim();
1290
- if (trimmed.startsWith("/") && !trimmed.startsWith("//")) {
1291
- return true;
1292
- }
1293
- try {
1294
- const url = new URL(trimmed, window.location.href);
1295
- const currentOrigin = window.location.origin;
1296
- const normalizeOrigin = (origin) => origin.replace(/^(https?:\/\/)(www\.)?/, "$1");
1297
- return normalizeOrigin(url.origin) === normalizeOrigin(currentOrigin);
1298
- } catch {
1299
- return false;
1300
- }
1301
- }
1302
- function toRelativePath(href) {
1303
- if (typeof window === "undefined") {
1304
- return href;
1305
- }
1306
- const trimmed = href.trim();
1307
- if (trimmed.startsWith("/") && !trimmed.startsWith("//")) {
1308
- return trimmed;
1309
- }
1310
- try {
1311
- const url = new URL(trimmed, window.location.href);
1312
- const currentOrigin = window.location.origin;
1313
- const normalizeOrigin = (origin) => origin.replace(/^(https?:\/\/)(www\.)?/, "$1");
1314
- if (normalizeOrigin(url.origin) === normalizeOrigin(currentOrigin)) {
1315
- return url.pathname + url.search + url.hash;
1316
- }
1317
- } catch {
1318
- }
1319
- return trimmed;
1320
- }
1321
- function useNavigation({
1322
- href,
1323
- onClick
1324
- } = {}) {
1325
- const linkType = React4.useMemo(() => {
1326
- if (!href || href.trim() === "") {
1327
- return onClick ? "none" : "none";
1328
- }
1329
- const trimmed = href.trim();
1330
- if (trimmed.toLowerCase().startsWith("mailto:") || isEmail(trimmed)) {
1331
- return "mailto";
1332
- }
1333
- if (trimmed.toLowerCase().startsWith("tel:") || isPhoneNumber(trimmed)) {
1334
- return "tel";
1335
- }
1336
- if (isInternalUrl(trimmed)) {
1337
- return "internal";
1338
- }
1339
- try {
1340
- new URL(trimmed, typeof window !== "undefined" ? window.location.href : "http://localhost");
1341
- return "external";
1342
- } catch {
1343
- return "internal";
1344
- }
1345
- }, [href, onClick]);
1346
- const normalizedHref = React4.useMemo(() => {
1347
- if (!href || href.trim() === "") {
1348
- return void 0;
1349
- }
1350
- const trimmed = href.trim();
1351
- switch (linkType) {
1352
- case "tel":
1353
- return normalizePhoneNumber(trimmed);
1354
- case "mailto":
1355
- return normalizeEmail(trimmed);
1356
- case "internal":
1357
- return toRelativePath(trimmed);
1358
- case "external":
1359
- return trimmed;
1360
- default:
1361
- return trimmed;
1362
- }
1363
- }, [href, linkType]);
1364
- const target = React4.useMemo(() => {
1365
- switch (linkType) {
1366
- case "external":
1367
- return "_blank";
1368
- case "internal":
1369
- return "_self";
1370
- case "mailto":
1371
- case "tel":
1372
- return void 0;
1373
- default:
1374
- return void 0;
1976
+ ),
1977
+ ...props
1375
1978
  }
1376
- }, [linkType]);
1377
- const rel = React4.useMemo(() => {
1378
- if (linkType === "external") {
1379
- return "noopener noreferrer";
1979
+ );
1980
+ }
1981
+ function CardHeader({ className, ...props }) {
1982
+ return /* @__PURE__ */ jsx(
1983
+ "div",
1984
+ {
1985
+ "data-slot": "card-header",
1986
+ className: cn(
1987
+ "@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",
1988
+ className
1989
+ ),
1990
+ ...props
1380
1991
  }
1381
- return void 0;
1382
- }, [linkType]);
1383
- const isExternal = linkType === "external";
1384
- const isInternal = linkType === "internal";
1385
- const shouldUseRouter = isInternal && typeof normalizedHref === "string" && normalizedHref.startsWith("/");
1386
- const handleClick = React4.useCallback(
1387
- (event) => {
1388
- if (onClick) {
1389
- try {
1390
- onClick(event);
1391
- } catch (error) {
1392
- console.error("Error in user onClick handler:", error);
1393
- }
1394
- }
1395
- if (event.defaultPrevented) {
1396
- return;
1397
- }
1398
- if (shouldUseRouter && normalizedHref && event.button === 0 && // left-click only
1399
- !event.metaKey && !event.altKey && !event.ctrlKey && !event.shiftKey) {
1400
- if (typeof window !== "undefined") {
1401
- const handler = window.__opensiteNavigationHandler;
1402
- if (typeof handler === "function") {
1403
- try {
1404
- const handled = handler(normalizedHref, event.nativeEvent || event);
1405
- if (handled !== false) {
1406
- event.preventDefault();
1407
- }
1408
- } catch (error) {
1409
- console.error("Error in navigation handler:", error);
1410
- }
1411
- }
1412
- }
1413
- }
1414
- },
1415
- [onClick, shouldUseRouter, normalizedHref]
1416
1992
  );
1417
- return {
1418
- linkType,
1419
- normalizedHref,
1420
- target,
1421
- rel,
1422
- isExternal,
1423
- isInternal,
1424
- shouldUseRouter,
1425
- handleClick
1426
- };
1427
1993
  }
1428
- var Pressable = React4.forwardRef(
1429
- ({
1430
- children,
1431
- className,
1432
- href,
1433
- onClick,
1434
- variant,
1435
- size,
1436
- asButton = false,
1437
- fallbackComponentType = "span",
1438
- componentType,
1439
- "aria-label": ariaLabel,
1440
- "aria-describedby": ariaDescribedby,
1441
- id,
1442
- ...props
1443
- }, ref) => {
1444
- const navigation = useNavigation({ href, onClick });
1445
- const {
1446
- normalizedHref,
1447
- target,
1448
- rel,
1449
- linkType,
1450
- isInternal,
1451
- isExternal,
1452
- handleClick
1453
- } = navigation;
1454
- const shouldRenderLink = normalizedHref && linkType !== "none";
1455
- const shouldRenderButton = !shouldRenderLink && onClick;
1456
- const effectiveComponentType = componentType || (shouldRenderLink ? "a" : shouldRenderButton ? "button" : fallbackComponentType);
1457
- const finalComponentType = isInternal && shouldRenderLink ? "a" : effectiveComponentType;
1458
- const shouldApplyButtonStyles = asButton || variant || size;
1459
- const combinedClassName = cn(
1460
- shouldApplyButtonStyles && buttonVariants({ variant, size }),
1461
- className
1462
- );
1463
- const dataProps = Object.fromEntries(
1464
- Object.entries(props).filter(([key]) => key.startsWith("data-"))
1465
- );
1466
- const buttonDataAttributes = shouldApplyButtonStyles ? {
1467
- "data-slot": "button",
1468
- "data-variant": variant ?? "default",
1469
- "data-size": size ?? "default"
1470
- } : {};
1471
- const commonProps = {
1472
- className: combinedClassName,
1473
- onClick: handleClick,
1474
- "aria-label": ariaLabel,
1475
- "aria-describedby": ariaDescribedby,
1476
- id,
1477
- ...dataProps,
1478
- ...buttonDataAttributes
1479
- };
1480
- if (finalComponentType === "a" && shouldRenderLink) {
1481
- return /* @__PURE__ */ jsx(
1482
- "a",
1483
- {
1484
- ref,
1485
- href: normalizedHref,
1486
- target,
1487
- rel,
1488
- ...commonProps,
1489
- ...props,
1490
- children
1491
- }
1492
- );
1994
+ function CardTitle({ className, ...props }) {
1995
+ return /* @__PURE__ */ jsx(
1996
+ "div",
1997
+ {
1998
+ "data-slot": "card-title",
1999
+ className: cn("leading-none font-semibold", className),
2000
+ ...props
1493
2001
  }
1494
- if (finalComponentType === "button") {
1495
- return /* @__PURE__ */ jsx(
1496
- "button",
1497
- {
1498
- ref,
1499
- type: props.type || "button",
1500
- ...commonProps,
1501
- ...props,
1502
- children
1503
- }
1504
- );
2002
+ );
2003
+ }
2004
+ function CardDescription({ className, ...props }) {
2005
+ return /* @__PURE__ */ jsx(
2006
+ "div",
2007
+ {
2008
+ "data-slot": "card-description",
2009
+ className: cn("text-muted-foreground text-sm", className),
2010
+ ...props
1505
2011
  }
1506
- if (finalComponentType === "div") {
1507
- return /* @__PURE__ */ jsx(
1508
- "div",
1509
- {
1510
- ref,
1511
- ...commonProps,
1512
- children
1513
- }
1514
- );
2012
+ );
2013
+ }
2014
+ function CardContent({ className, ...props }) {
2015
+ return /* @__PURE__ */ jsx(
2016
+ "div",
2017
+ {
2018
+ "data-slot": "card-content",
2019
+ className: cn("px-6", className),
2020
+ ...props
1515
2021
  }
1516
- return /* @__PURE__ */ jsx(
1517
- "span",
1518
- {
1519
- ref,
1520
- ...commonProps,
1521
- children
2022
+ );
2023
+ }
2024
+ function CardFooter({ className, ...props }) {
2025
+ return /* @__PURE__ */ jsx(
2026
+ "div",
2027
+ {
2028
+ "data-slot": "card-footer",
2029
+ className: cn("flex items-center px-6 [.border-t]:pt-6", className),
2030
+ ...props
2031
+ }
2032
+ );
2033
+ }
2034
+ var badgeVariants = cva(
2035
+ "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",
2036
+ {
2037
+ variants: {
2038
+ variant: {
2039
+ default: "border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",
2040
+ secondary: "border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",
2041
+ 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",
2042
+ outline: "text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"
1522
2043
  }
1523
- );
2044
+ },
2045
+ defaultVariants: {
2046
+ variant: "default"
2047
+ }
1524
2048
  }
1525
2049
  );
1526
- Pressable.displayName = "Pressable";
2050
+ function Badge({
2051
+ className,
2052
+ variant,
2053
+ asChild = false,
2054
+ ...props
2055
+ }) {
2056
+ const Comp = asChild ? Slot : "span";
2057
+ return /* @__PURE__ */ jsx(
2058
+ Comp,
2059
+ {
2060
+ "data-slot": "badge",
2061
+ className: cn(badgeVariants({ variant }), className),
2062
+ ...props
2063
+ }
2064
+ );
2065
+ }
2066
+ function Popover({
2067
+ ...props
2068
+ }) {
2069
+ return /* @__PURE__ */ jsx(PopoverPrimitive.Root, { "data-slot": "popover", ...props });
2070
+ }
2071
+ function PopoverTrigger({
2072
+ ...props
2073
+ }) {
2074
+ return /* @__PURE__ */ jsx(PopoverPrimitive.Trigger, { "data-slot": "popover-trigger", ...props });
2075
+ }
2076
+ function PopoverContent({
2077
+ className,
2078
+ align = "center",
2079
+ sideOffset = 4,
2080
+ ...props
2081
+ }) {
2082
+ return /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx(
2083
+ PopoverPrimitive.Content,
2084
+ {
2085
+ "data-slot": "popover-content",
2086
+ align,
2087
+ sideOffset,
2088
+ className: cn(
2089
+ "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",
2090
+ className
2091
+ ),
2092
+ ...props
2093
+ }
2094
+ ) });
2095
+ }
2096
+ var DEFAULT_ICON_API_KEY = "au382bi7fsh96w9h9xlrnat2jglx";
2097
+ function DynamicIcon({ apiKey, ...props }) {
2098
+ return /* @__PURE__ */ jsx(Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
2099
+ }
1527
2100
  var BUTTON_SIZES = {
1528
2101
  sm: { buttonSize: "size-8", iconSize: 16 },
1529
2102
  md: { buttonSize: "size-10", iconSize: 20 },
@@ -1615,7 +2188,7 @@ var platformIconMap = {
1615
2188
  dribbble: "cib/dribbble",
1616
2189
  unknown: "icon-park-solid/circular-connection"
1617
2190
  };
1618
- var SocialLinkIcon = React4.forwardRef(
2191
+ var SocialLinkIcon = React5.forwardRef(
1619
2192
  ({
1620
2193
  platformName,
1621
2194
  label,
@@ -1628,13 +2201,13 @@ var SocialLinkIcon = React4.forwardRef(
1628
2201
  ...pressableProps
1629
2202
  }, ref) => {
1630
2203
  const platform = usePlatformFromUrl(href);
1631
- const smartPlatformName = React4.useMemo(() => {
2204
+ const smartPlatformName = React5.useMemo(() => {
1632
2205
  return platform || platformName;
1633
2206
  }, [platform, platformName]);
1634
- const iconName = React4.useMemo(() => {
2207
+ const iconName = React5.useMemo(() => {
1635
2208
  return iconNameOverride || platformIconMap[smartPlatformName];
1636
2209
  }, [iconNameOverride, smartPlatformName]);
1637
- const accessibleLabel = React4.useMemo(() => {
2210
+ const accessibleLabel = React5.useMemo(() => {
1638
2211
  return label || platformName;
1639
2212
  }, [label, platformName]);
1640
2213
  return /* @__PURE__ */ jsx(
@@ -1711,12 +2284,12 @@ function TextInner({ as, className, children, ...props }, ref) {
1711
2284
  const Component = as || "span";
1712
2285
  return /* @__PURE__ */ jsx(Component, { ref, className: cn(className), ...props, children });
1713
2286
  }
1714
- var Text = React4.forwardRef(TextInner);
2287
+ var Text = React5.forwardRef(TextInner);
1715
2288
  Text.displayName = "Text";
1716
2289
  function isContentTextItem(item) {
1717
- return item !== null && typeof item === "object" && !React4.isValidElement(item) && "_type" in item && item._type === "text";
2290
+ return item !== null && typeof item === "object" && !React5.isValidElement(item) && "_type" in item && item._type === "text";
1718
2291
  }
1719
- var ContentGroup = React4.forwardRef(
2292
+ var ContentGroup = React5.forwardRef(
1720
2293
  ({ items, className, children, ...props }, ref) => {
1721
2294
  const hasContent = items && items.length > 0;
1722
2295
  if (!hasContent) {
@@ -1729,10 +2302,10 @@ var ContentGroup = React4.forwardRef(
1729
2302
  return /* @__PURE__ */ jsx(Text, { ...textProps }, idx);
1730
2303
  }
1731
2304
  const reactNode = item;
1732
- if (React4.isValidElement(reactNode)) {
1733
- return React4.cloneElement(reactNode, { key: reactNode.key ?? idx });
2305
+ if (React5.isValidElement(reactNode)) {
2306
+ return React5.cloneElement(reactNode, { key: reactNode.key ?? idx });
1734
2307
  }
1735
- return /* @__PURE__ */ jsx(React4.Fragment, { children: reactNode }, idx);
2308
+ return /* @__PURE__ */ jsx(React5.Fragment, { children: reactNode }, idx);
1736
2309
  }),
1737
2310
  children
1738
2311
  ] });
@@ -2257,7 +2830,7 @@ function AboutExpandableValues({
2257
2830
  pattern,
2258
2831
  patternOpacity
2259
2832
  }) {
2260
- const [expandedValue, setExpandedValue] = React4.useState(null);
2833
+ const [expandedValue, setExpandedValue] = React5.useState(null);
2261
2834
  const toggleExpand = useCallback((id) => {
2262
2835
  setExpandedValue((prev) => prev === id ? null : id);
2263
2836
  }, []);
@@ -2493,7 +3066,7 @@ function CommunityInitiatives({
2493
3066
  pattern,
2494
3067
  patternOpacity
2495
3068
  }) {
2496
- const [activeCategory, setActiveCategory] = React4.useState(
3069
+ const [activeCategory, setActiveCategory] = React5.useState(
2497
3070
  categories?.[0]?.id || ""
2498
3071
  );
2499
3072
  const currentCategory = categories?.find((category) => category.id === activeCategory) || categories?.[0];
@@ -2757,7 +3330,7 @@ function AboutCultureTabs({
2757
3330
  patternOpacity
2758
3331
  }) {
2759
3332
  const resolvedAspects = aspects ?? [];
2760
- const [activeTab, setActiveTab] = React4.useState(
3333
+ const [activeTab, setActiveTab] = React5.useState(
2761
3334
  resolvedAspects[0]?.id || ""
2762
3335
  );
2763
3336
  const headerItems = useMemo(() => {
@@ -3290,7 +3863,7 @@ function BannerDeliveryCountdown({
3290
3863
  }, [prefixText, timerContent, middleText, deliveryDateContent]);
3291
3864
  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: [
3292
3865
  iconContent,
3293
- messageParts.length > 0 && /* @__PURE__ */ jsx("span", { children: messageParts.map((part, index) => /* @__PURE__ */ jsxs(React4.Fragment, { children: [
3866
+ messageParts.length > 0 && /* @__PURE__ */ jsx("span", { children: messageParts.map((part, index) => /* @__PURE__ */ jsxs(React5.Fragment, { children: [
3294
3867
  index > 0 ? " " : null,
3295
3868
  part
3296
3869
  ] }, index)) })
@@ -4561,8 +5134,8 @@ var BrandAttribution = ({
4561
5134
  }
4562
5135
  const { prefix = "", anchorText, href, suffix = "" } = options[optionIndex];
4563
5136
  const ContainerEl = variant;
4564
- const [trackedHref, setTrackedHref] = React4.useState(href);
4565
- React4.useEffect(() => {
5137
+ const [trackedHref, setTrackedHref] = React5.useState(href);
5138
+ React5.useEffect(() => {
4566
5139
  setTrackedHref(buildTrackedHref(href));
4567
5140
  }, [href]);
4568
5141
  return /* @__PURE__ */ jsxs(ContainerEl, { className: containerClassName, children: [
@@ -4682,7 +5255,7 @@ function FooterSocialNewsletter({
4682
5255
  patternOpacity,
4683
5256
  optixFlowConfig
4684
5257
  }) {
4685
- const renderForm = React4.useMemo(() => {
5258
+ const renderForm = React5.useMemo(() => {
4686
5259
  if (!formEngineSetup) return null;
4687
5260
  const action = {
4688
5261
  variant: "default",
@@ -4971,7 +5544,7 @@ function FooterSimpleCentered({
4971
5544
  ]);
4972
5545
  const bottomLinksContent = useMemo(() => {
4973
5546
  if (!bottomLinks || bottomLinks.length === 0) return null;
4974
- return bottomLinks.map((link, idx) => /* @__PURE__ */ jsx(React4.Fragment, { children: /* @__PURE__ */ jsx(
5547
+ return bottomLinks.map((link, idx) => /* @__PURE__ */ jsx(React5.Fragment, { children: /* @__PURE__ */ jsx(
4975
5548
  Pressable,
4976
5549
  {
4977
5550
  href: link.href,
@@ -6318,7 +6891,7 @@ function FooterNewsletterMinimal({
6318
6891
  buttonAction,
6319
6892
  formSlot
6320
6893
  }) {
6321
- const navLinksContent = React4.useMemo(() => {
6894
+ const navLinksContent = React5.useMemo(() => {
6322
6895
  if (!navLinks || navLinks.length === 0) return null;
6323
6896
  return navLinks.map((item, idx) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
6324
6897
  Pressable,
@@ -6329,7 +6902,7 @@ function FooterNewsletterMinimal({
6329
6902
  }
6330
6903
  ) }, idx));
6331
6904
  }, [navLinks, navLinkClassName]);
6332
- const socialLinksContent = React4.useMemo(() => {
6905
+ const socialLinksContent = React5.useMemo(() => {
6333
6906
  if (!socialLinks || socialLinks.length === 0) return null;
6334
6907
  return socialLinks.map((item, idx) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
6335
6908
  SocialLinkIcon,
@@ -6345,7 +6918,7 @@ function FooterNewsletterMinimal({
6345
6918
  }
6346
6919
  ) }, idx));
6347
6920
  }, [socialLinks, socialLinkClassName]);
6348
- const footerLinksContent = React4.useMemo(() => {
6921
+ const footerLinksContent = React5.useMemo(() => {
6349
6922
  if (!footerLinks || footerLinks.length === 0) return null;
6350
6923
  return footerLinks.map((item) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
6351
6924
  Pressable,
@@ -6359,7 +6932,7 @@ function FooterNewsletterMinimal({
6359
6932
  }
6360
6933
  ) }, item.label));
6361
6934
  }, [footerLinks, footerLinkClassName]);
6362
- const renderForm = React4.useMemo(() => {
6935
+ const renderForm = React5.useMemo(() => {
6363
6936
  if (formSlot) return formSlot;
6364
6937
  if (!formEngineSetup) return null;
6365
6938
  const defaultButtonAction = {
@@ -6905,5 +7478,15 @@ function FooterNavSocial({
6905
7478
  }
6906
7479
  );
6907
7480
  }
7481
+ var useResponsiveLayout = ({
7482
+ directionConfig = { desktop: "mediaRight", mobile: "mediaTop" }
7483
+ }) => {
7484
+ const responsiveClassName = useMemo(() => {
7485
+ const desktopOrder = directionConfig.desktop === "mediaRight" ? "lg:flex-row" : "lg:flex-row-reverse";
7486
+ const mobileOrder = directionConfig.mobile === "mediaTop" ? "flex-col-reverse" : "flex-col";
7487
+ return `${mobileOrder} ${desktopOrder}`;
7488
+ }, [directionConfig.desktop, directionConfig.mobile]);
7489
+ return { responsiveClassName };
7490
+ };
6908
7491
 
6909
- 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, cn, getAccentColor, getBorderColor, getNestedCardBg, getNestedCardTextColor, getTextColor, useNavigation };
7492
+ 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, cn, getAccentColor, getBorderColor, getNestedCardBg, getNestedCardTextColor, getTextColor, useNavigation, useResponsiveLayout };