@opensite/ui 2.8.0 → 2.8.1

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 (717) hide show
  1. package/dist/about-culture-tabs.cjs +25 -21
  2. package/dist/about-culture-tabs.js +23 -19
  3. package/dist/about-developer-profile.cjs +6 -2
  4. package/dist/about-developer-profile.js +6 -2
  5. package/dist/about-expandable-values.cjs +6 -2
  6. package/dist/about-expandable-values.js +6 -2
  7. package/dist/about-location-info-hero.cjs +6 -2
  8. package/dist/about-location-info-hero.js +6 -2
  9. package/dist/about-mission-principles.cjs +6 -2
  10. package/dist/about-mission-principles.js +6 -2
  11. package/dist/about-network-spotlight.cjs +18 -14
  12. package/dist/about-network-spotlight.js +16 -12
  13. package/dist/about-split-hero.cjs +6 -2
  14. package/dist/about-split-hero.js +6 -2
  15. package/dist/about-startup-team.cjs +6 -2
  16. package/dist/about-startup-team.js +6 -2
  17. package/dist/article-breadcrumb-social.cjs +27 -23
  18. package/dist/article-breadcrumb-social.js +27 -23
  19. package/dist/article-chapters-author.cjs +29 -25
  20. package/dist/article-chapters-author.js +29 -25
  21. package/dist/article-compact-toc.cjs +26 -22
  22. package/dist/article-compact-toc.js +26 -22
  23. package/dist/article-sidebar-sticky.cjs +6 -2
  24. package/dist/article-sidebar-sticky.js +6 -2
  25. package/dist/auto-scroll-carousel.cjs +28 -24
  26. package/dist/auto-scroll-carousel.js +26 -22
  27. package/dist/banner-announcement-dismissible.cjs +6 -2
  28. package/dist/banner-announcement-dismissible.js +6 -2
  29. package/dist/banner-delivery-countdown.cjs +6 -2
  30. package/dist/banner-delivery-countdown.js +6 -2
  31. package/dist/banner-floating-offer.cjs +6 -2
  32. package/dist/banner-floating-offer.js +6 -2
  33. package/dist/banner-gdpr-rights.cjs +6 -2
  34. package/dist/banner-gdpr-rights.js +6 -2
  35. package/dist/banner-privacy-notice.cjs +6 -2
  36. package/dist/banner-privacy-notice.js +6 -2
  37. package/dist/banner-social-follow.cjs +6 -2
  38. package/dist/banner-social-follow.js +6 -2
  39. package/dist/banner-survey-incentive.cjs +6 -2
  40. package/dist/banner-survey-incentive.js +6 -2
  41. package/dist/blog-cards-read-time.cjs +6 -2
  42. package/dist/blog-cards-read-time.js +6 -2
  43. package/dist/blog-cards-tagline-cta.cjs +6 -2
  44. package/dist/blog-cards-tagline-cta.js +6 -2
  45. package/dist/blog-carousel-apple.cjs +25 -21
  46. package/dist/blog-carousel-apple.js +21 -17
  47. package/dist/blog-category-overlay.cjs +6 -2
  48. package/dist/blog-category-overlay.js +6 -2
  49. package/dist/blog-filtered-results.cjs +30 -26
  50. package/dist/blog-filtered-results.js +24 -20
  51. package/dist/blog-horizontal-cards.cjs +6 -2
  52. package/dist/blog-horizontal-cards.js +6 -2
  53. package/dist/blog-horizontal-timeline.cjs +6 -2
  54. package/dist/blog-horizontal-timeline.js +6 -2
  55. package/dist/carousel-animated-sections.cjs +23 -19
  56. package/dist/carousel-animated-sections.js +23 -19
  57. package/dist/carousel-auto-progress-slides.cjs +6 -2
  58. package/dist/carousel-auto-progress-slides.js +6 -2
  59. package/dist/carousel-autoplay-progress.cjs +34 -30
  60. package/dist/carousel-autoplay-progress.js +34 -30
  61. package/dist/carousel-badge-cards.cjs +31 -27
  62. package/dist/carousel-badge-cards.js +26 -22
  63. package/dist/carousel-demo-link.cjs +32 -28
  64. package/dist/carousel-demo-link.js +26 -22
  65. package/dist/carousel-feature-badge.cjs +22 -18
  66. package/dist/carousel-feature-badge.js +22 -18
  67. package/dist/carousel-gallery-thumbnails.cjs +6 -2
  68. package/dist/carousel-gallery-thumbnails.js +6 -2
  69. package/dist/carousel-gradient-overlay.cjs +32 -28
  70. package/dist/carousel-gradient-overlay.js +26 -22
  71. package/dist/carousel-gradient-text.cjs +32 -28
  72. package/dist/carousel-gradient-text.js +26 -22
  73. package/dist/carousel-horizontal-cards.cjs +20 -16
  74. package/dist/carousel-horizontal-cards.js +20 -16
  75. package/dist/carousel-icon-sidebar.cjs +38 -34
  76. package/dist/carousel-icon-sidebar.js +26 -22
  77. package/dist/carousel-icon-tabs.cjs +39 -35
  78. package/dist/carousel-icon-tabs.js +26 -22
  79. package/dist/carousel-image-hero.cjs +22 -18
  80. package/dist/carousel-image-hero.js +22 -18
  81. package/dist/carousel-multi-step-showcase.cjs +6 -2
  82. package/dist/carousel-multi-step-showcase.js +6 -2
  83. package/dist/carousel-pagination.cjs +6 -2
  84. package/dist/carousel-pagination.js +6 -2
  85. package/dist/carousel-portfolio-hero.cjs +22 -18
  86. package/dist/carousel-portfolio-hero.js +22 -18
  87. package/dist/carousel-product-feature-showcase.cjs +6 -2
  88. package/dist/carousel-product-feature-showcase.js +6 -2
  89. package/dist/carousel-progress-slider.cjs +28 -24
  90. package/dist/carousel-progress-slider.js +28 -24
  91. package/dist/carousel-scale-focus.cjs +41 -37
  92. package/dist/carousel-scale-focus.js +26 -22
  93. package/dist/carousel-sidebar-resources.cjs +34 -30
  94. package/dist/carousel-sidebar-resources.js +26 -22
  95. package/dist/carousel-tabs-content.cjs +39 -35
  96. package/dist/carousel-tabs-content.js +26 -22
  97. package/dist/case-studies-featured-border.cjs +6 -2
  98. package/dist/case-studies-featured-border.js +6 -2
  99. package/dist/case-study-stats-metrics.cjs +6 -2
  100. package/dist/case-study-stats-metrics.js +6 -2
  101. package/dist/case-study-toc-social-sidebar.cjs +6 -2
  102. package/dist/case-study-toc-social-sidebar.js +6 -2
  103. package/dist/community-initiatives.cjs +19 -15
  104. package/dist/community-initiatives.js +17 -13
  105. package/dist/comparison-ai-models.cjs +18 -14
  106. package/dist/comparison-ai-models.js +17 -13
  107. package/dist/comparison-feature-cards.cjs +16 -12
  108. package/dist/comparison-feature-cards.js +16 -12
  109. package/dist/comparison-feature-grid.cjs +14 -10
  110. package/dist/comparison-feature-grid.js +14 -10
  111. package/dist/comparison-grid-badges.cjs +13 -9
  112. package/dist/comparison-grid-badges.js +13 -9
  113. package/dist/comparison-legacy-modern.cjs +15 -11
  114. package/dist/comparison-legacy-modern.js +15 -11
  115. package/dist/comparison-table-tabs.cjs +15 -11
  116. package/dist/comparison-table-tabs.js +14 -10
  117. package/dist/comparison-table-two-column.cjs +14 -10
  118. package/dist/comparison-table-two-column.js +14 -10
  119. package/dist/components.cjs +199 -179
  120. package/dist/components.js +104 -84
  121. package/dist/contact-callback.cjs +27 -7
  122. package/dist/contact-callback.js +10 -5
  123. package/dist/contact-card.cjs +6 -2
  124. package/dist/contact-card.js +6 -2
  125. package/dist/contact-careers.cjs +18 -14
  126. package/dist/contact-careers.js +16 -12
  127. package/dist/contact-dark.cjs +6 -2
  128. package/dist/contact-dark.js +6 -2
  129. package/dist/contact-emergency.cjs +6 -2
  130. package/dist/contact-emergency.js +6 -2
  131. package/dist/contact-faq.cjs +9 -7
  132. package/dist/contact-faq.js +10 -5
  133. package/dist/contact-floating-banner.cjs +6 -2
  134. package/dist/contact-floating-banner.js +6 -2
  135. package/dist/contact-help-center.cjs +16 -12
  136. package/dist/contact-help-center.js +16 -12
  137. package/dist/contact-image.cjs +18 -14
  138. package/dist/contact-image.js +17 -13
  139. package/dist/contact-map.cjs +78 -58
  140. package/dist/contact-map.js +78 -58
  141. package/dist/cta-app-download-newsletter.cjs +6 -2
  142. package/dist/cta-app-download-newsletter.js +6 -2
  143. package/dist/cta-background-icon-badge.cjs +6 -2
  144. package/dist/cta-background-icon-badge.js +6 -2
  145. package/dist/cta-case-study-testimonial.cjs +6 -2
  146. package/dist/cta-case-study-testimonial.js +6 -2
  147. package/dist/cta-documentation-links.cjs +6 -2
  148. package/dist/cta-documentation-links.js +6 -2
  149. package/dist/cta-enterprise-dark-features.cjs +6 -2
  150. package/dist/cta-enterprise-dark-features.js +6 -2
  151. package/dist/cta-enterprise-split.cjs +6 -2
  152. package/dist/cta-enterprise-split.js +6 -2
  153. package/dist/cta-feature-cards-grid.cjs +6 -2
  154. package/dist/cta-feature-cards-grid.js +6 -2
  155. package/dist/cta-feature-checklist.cjs +17 -13
  156. package/dist/cta-feature-checklist.js +16 -12
  157. package/dist/cta-feature-list.cjs +6 -2
  158. package/dist/cta-feature-list.js +6 -2
  159. package/dist/cta-gradient-logos-floating.cjs +6 -2
  160. package/dist/cta-gradient-logos-floating.js +6 -2
  161. package/dist/cta-gradient-stats-hero.cjs +6 -2
  162. package/dist/cta-gradient-stats-hero.js +6 -2
  163. package/dist/cta-hero-feature-cards.cjs +6 -2
  164. package/dist/cta-hero-feature-cards.js +6 -2
  165. package/dist/cta-image-overlay-arrow.cjs +6 -2
  166. package/dist/cta-image-overlay-arrow.js +6 -2
  167. package/dist/cta-newsletter-features.cjs +12 -8
  168. package/dist/cta-newsletter-features.js +12 -8
  169. package/dist/cta-platform-demo.cjs +6 -2
  170. package/dist/cta-platform-demo.js +6 -2
  171. package/dist/cta-simple-centered.cjs +6 -2
  172. package/dist/cta-simple-centered.js +6 -2
  173. package/dist/cta-split-image-logos.cjs +6 -2
  174. package/dist/cta-split-image-logos.js +6 -2
  175. package/dist/cta-video-background-hero.cjs +6 -2
  176. package/dist/cta-video-background-hero.js +6 -2
  177. package/dist/cta-workflow-tabs.cjs +6 -2
  178. package/dist/cta-workflow-tabs.js +6 -2
  179. package/dist/dynamic-icon.cjs +27 -2
  180. package/dist/dynamic-icon.d.cts +2 -2
  181. package/dist/dynamic-icon.d.ts +2 -2
  182. package/dist/dynamic-icon.js +7 -2
  183. package/dist/expandable-case-study-cards.cjs +26 -6
  184. package/dist/expandable-case-study-cards.js +10 -5
  185. package/dist/faq-badge-support.cjs +25 -21
  186. package/dist/faq-badge-support.js +22 -18
  187. package/dist/faq-bordered-badge.cjs +9 -7
  188. package/dist/faq-bordered-badge.js +10 -5
  189. package/dist/faq-card-categories.cjs +18 -14
  190. package/dist/faq-card-categories.js +16 -12
  191. package/dist/faq-categorized-sections.cjs +9 -7
  192. package/dist/faq-categorized-sections.js +10 -5
  193. package/dist/faq-centered-accordion.cjs +9 -7
  194. package/dist/faq-centered-accordion.js +10 -5
  195. package/dist/faq-gradient-categories.cjs +18 -14
  196. package/dist/faq-gradient-categories.js +16 -12
  197. package/dist/faq-icon-benefits.cjs +18 -14
  198. package/dist/faq-icon-benefits.js +16 -12
  199. package/dist/faq-muted-cards.cjs +18 -14
  200. package/dist/faq-muted-cards.js +16 -12
  201. package/dist/faq-profile-sidebar.cjs +25 -21
  202. package/dist/faq-profile-sidebar.js +22 -18
  203. package/dist/faq-rounded-cards.cjs +18 -14
  204. package/dist/faq-rounded-cards.js +16 -12
  205. package/dist/faq-sidebar-navigation.cjs +20 -16
  206. package/dist/faq-sidebar-navigation.js +17 -13
  207. package/dist/faq-simple-accordion.cjs +18 -14
  208. package/dist/faq-simple-accordion.js +16 -12
  209. package/dist/faq-split-help.cjs +25 -21
  210. package/dist/faq-split-help.js +22 -18
  211. package/dist/faq-split-hero.cjs +9 -7
  212. package/dist/faq-split-hero.js +10 -5
  213. package/dist/feature-accordion-image.cjs +20 -16
  214. package/dist/feature-accordion-image.js +17 -13
  215. package/dist/feature-animated-carousel.cjs +35 -31
  216. package/dist/feature-animated-carousel.js +28 -24
  217. package/dist/feature-badge-grid-six.cjs +20 -16
  218. package/dist/feature-badge-grid-six.js +16 -12
  219. package/dist/feature-bento-image-grid.cjs +21 -17
  220. package/dist/feature-bento-image-grid.js +20 -16
  221. package/dist/feature-bento-utilities.cjs +19 -15
  222. package/dist/feature-bento-utilities.js +18 -14
  223. package/dist/feature-capabilities-grid.cjs +18 -14
  224. package/dist/feature-capabilities-grid.js +17 -13
  225. package/dist/feature-carousel-progress.cjs +31 -27
  226. package/dist/feature-carousel-progress.js +26 -22
  227. package/dist/feature-checklist-image.cjs +6 -2
  228. package/dist/feature-checklist-image.js +6 -2
  229. package/dist/feature-checklist-three-column.cjs +22 -18
  230. package/dist/feature-checklist-three-column.js +16 -12
  231. package/dist/feature-icon-grid-accent.cjs +26 -6
  232. package/dist/feature-icon-grid-accent.js +10 -5
  233. package/dist/feature-icon-grid-bordered.cjs +18 -14
  234. package/dist/feature-icon-grid-bordered.js +16 -12
  235. package/dist/feature-icon-grid-muted.cjs +18 -14
  236. package/dist/feature-icon-grid-muted.js +16 -12
  237. package/dist/feature-icon-tabs-content.cjs +20 -16
  238. package/dist/feature-icon-tabs-content.js +16 -12
  239. package/dist/feature-image-cards-three-column.cjs +29 -25
  240. package/dist/feature-image-cards-three-column.js +22 -18
  241. package/dist/feature-image-overlay-badge.cjs +18 -14
  242. package/dist/feature-image-overlay-badge.js +16 -12
  243. package/dist/feature-numbered-cards.cjs +20 -16
  244. package/dist/feature-numbered-cards.js +16 -12
  245. package/dist/feature-pattern-grid-links.cjs +19 -15
  246. package/dist/feature-pattern-grid-links.js +16 -12
  247. package/dist/feature-showcase.cjs +6 -2
  248. package/dist/feature-showcase.js +6 -2
  249. package/dist/feature-tabbed-content-image.cjs +21 -17
  250. package/dist/feature-tabbed-content-image.js +19 -15
  251. package/dist/feature-three-column-values.cjs +18 -14
  252. package/dist/feature-three-column-values.js +17 -13
  253. package/dist/feature-utility-cards-grid.cjs +20 -16
  254. package/dist/feature-utility-cards-grid.js +17 -13
  255. package/dist/footer-accordion-social.cjs +6 -2
  256. package/dist/footer-accordion-social.js +6 -2
  257. package/dist/footer-animated-social.cjs +6 -2
  258. package/dist/footer-animated-social.js +6 -2
  259. package/dist/footer-background-card.cjs +6 -2
  260. package/dist/footer-background-card.js +6 -2
  261. package/dist/footer-brand-description.cjs +6 -2
  262. package/dist/footer-brand-description.js +6 -2
  263. package/dist/footer-brand-links-contact.cjs +6 -2
  264. package/dist/footer-brand-links-contact.js +6 -2
  265. package/dist/footer-comprehensive-links.cjs +6 -2
  266. package/dist/footer-comprehensive-links.js +6 -2
  267. package/dist/footer-contact-card.cjs +6 -2
  268. package/dist/footer-contact-card.js +6 -2
  269. package/dist/footer-cta-banner.cjs +6 -2
  270. package/dist/footer-cta-banner.js +6 -2
  271. package/dist/footer-cta-social.cjs +24 -20
  272. package/dist/footer-cta-social.js +22 -18
  273. package/dist/footer-info-cards-accordion.cjs +24 -20
  274. package/dist/footer-info-cards-accordion.js +23 -19
  275. package/dist/footer-nav-social.cjs +6 -2
  276. package/dist/footer-nav-social.js +6 -2
  277. package/dist/footer-newsletter-contact.cjs +6 -2
  278. package/dist/footer-newsletter-contact.js +6 -2
  279. package/dist/footer-newsletter-grid.cjs +6 -2
  280. package/dist/footer-newsletter-grid.js +6 -2
  281. package/dist/footer-newsletter-minimal.cjs +27 -23
  282. package/dist/footer-newsletter-minimal.js +26 -22
  283. package/dist/footer-social-apps.cjs +26 -22
  284. package/dist/footer-social-apps.js +22 -18
  285. package/dist/footer-social-newsletter.cjs +6 -2
  286. package/dist/footer-social-newsletter.js +6 -2
  287. package/dist/footer-split-image-accordion.cjs +24 -20
  288. package/dist/footer-split-image-accordion.js +23 -19
  289. package/dist/geo-map.cjs +74 -54
  290. package/dist/geo-map.js +73 -53
  291. package/dist/hero-badge-shadow-overlay.cjs +6 -2
  292. package/dist/hero-badge-shadow-overlay.js +6 -2
  293. package/dist/hero-coming-soon-countdown.cjs +6 -2
  294. package/dist/hero-coming-soon-countdown.js +6 -2
  295. package/dist/hero-conversion-video-play.cjs +29 -25
  296. package/dist/hero-conversion-video-play.js +26 -22
  297. package/dist/hero-creative-studio-stacked.cjs +19 -15
  298. package/dist/hero-creative-studio-stacked.js +16 -12
  299. package/dist/hero-dashed-border-features.cjs +6 -2
  300. package/dist/hero-dashed-border-features.js +6 -2
  301. package/dist/hero-design-carousel-portfolio.cjs +29 -25
  302. package/dist/hero-design-carousel-portfolio.js +26 -22
  303. package/dist/hero-design-system-3d.cjs +18 -14
  304. package/dist/hero-design-system-3d.js +16 -12
  305. package/dist/hero-developer-tools-code.cjs +18 -14
  306. package/dist/hero-developer-tools-code.js +16 -12
  307. package/dist/hero-ecommerce-product-showcase.cjs +20 -16
  308. package/dist/hero-ecommerce-product-showcase.js +17 -13
  309. package/dist/hero-enterprise-security.cjs +6 -2
  310. package/dist/hero-enterprise-security.js +6 -2
  311. package/dist/hero-event-registration.cjs +21 -17
  312. package/dist/hero-event-registration.js +17 -13
  313. package/dist/hero-feature-cards-grid.cjs +6 -2
  314. package/dist/hero-feature-cards-grid.js +6 -2
  315. package/dist/hero-floating-images.cjs +26 -6
  316. package/dist/hero-floating-images.js +10 -5
  317. package/dist/hero-gradient-avatars-rating.cjs +19 -15
  318. package/dist/hero-gradient-avatars-rating.js +16 -12
  319. package/dist/hero-grid-pattern-solutions.cjs +6 -2
  320. package/dist/hero-grid-pattern-solutions.js +6 -2
  321. package/dist/hero-marketplace-scattered-images.cjs +6 -2
  322. package/dist/hero-marketplace-scattered-images.js +6 -2
  323. package/dist/hero-mentorship-video-split.cjs +6 -2
  324. package/dist/hero-mentorship-video-split.js +6 -2
  325. package/dist/hero-mobile-app-download.cjs +6 -2
  326. package/dist/hero-mobile-app-download.js +6 -2
  327. package/dist/hero-overlay-cta-grid.cjs +20 -16
  328. package/dist/hero-overlay-cta-grid.js +16 -12
  329. package/dist/hero-platform-features-grid.cjs +6 -2
  330. package/dist/hero-platform-features-grid.js +6 -2
  331. package/dist/hero-portfolio-creative.cjs +6 -2
  332. package/dist/hero-portfolio-creative.js +6 -2
  333. package/dist/hero-pricing-comparison.cjs +6 -2
  334. package/dist/hero-pricing-comparison.js +6 -2
  335. package/dist/hero-product-showcase-floating.cjs +27 -23
  336. package/dist/hero-product-showcase-floating.js +22 -18
  337. package/dist/hero-saas-dashboard-preview.cjs +6 -2
  338. package/dist/hero-saas-dashboard-preview.js +6 -2
  339. package/dist/hero-software-growth-video-dialog.cjs +19 -15
  340. package/dist/hero-software-growth-video-dialog.js +16 -12
  341. package/dist/hero-split-icon-cards.cjs +18 -14
  342. package/dist/hero-split-icon-cards.js +16 -12
  343. package/dist/hero-video-dialog-gradient.cjs +19 -15
  344. package/dist/hero-video-dialog-gradient.js +16 -12
  345. package/dist/hero-video-overlay-stars.cjs +18 -14
  346. package/dist/hero-video-overlay-stars.js +16 -12
  347. package/dist/index.cjs +200 -180
  348. package/dist/index.js +104 -84
  349. package/dist/industries-expandable-showcase.cjs +6 -2
  350. package/dist/industries-expandable-showcase.js +6 -2
  351. package/dist/industries-hover-reveal-grid.cjs +6 -2
  352. package/dist/industries-hover-reveal-grid.js +6 -2
  353. package/dist/industries-timeline-table.cjs +6 -2
  354. package/dist/industries-timeline-table.js +6 -2
  355. package/dist/interior-carousel.cjs +33 -29
  356. package/dist/interior-carousel.js +26 -22
  357. package/dist/link-page-bento-layout.cjs +6 -2
  358. package/dist/link-page-bento-layout.js +6 -2
  359. package/dist/link-page-grid-cards.cjs +6 -2
  360. package/dist/link-page-grid-cards.js +6 -2
  361. package/dist/link-page-minimal-profile.cjs +6 -2
  362. package/dist/link-page-minimal-profile.js +6 -2
  363. package/dist/link-page-newsletter-social.cjs +6 -2
  364. package/dist/link-page-newsletter-social.js +6 -2
  365. package/dist/link-tree-block.cjs +30 -26
  366. package/dist/link-tree-block.js +30 -26
  367. package/dist/list-achievements-showcase.cjs +6 -2
  368. package/dist/list-achievements-showcase.js +6 -2
  369. package/dist/list-feature-comparison.cjs +6 -2
  370. package/dist/list-feature-comparison.js +6 -2
  371. package/dist/list-metrics-dashboard.cjs +6 -2
  372. package/dist/list-metrics-dashboard.js +6 -2
  373. package/dist/list-searchable-grid.cjs +19 -15
  374. package/dist/list-searchable-grid.js +18 -14
  375. package/dist/list-service-category-table.cjs +26 -6
  376. package/dist/list-service-category-table.js +10 -5
  377. package/dist/navbar-animated-preview.cjs +6 -2
  378. package/dist/navbar-animated-preview.js +6 -2
  379. package/dist/navbar-centered-menu.cjs +6 -2
  380. package/dist/navbar-centered-menu.js +6 -2
  381. package/dist/navbar-dark-icons.cjs +6 -2
  382. package/dist/navbar-dark-icons.js +6 -2
  383. package/dist/navbar-dropdown-menu.cjs +6 -2
  384. package/dist/navbar-dropdown-menu.js +6 -2
  385. package/dist/navbar-education-platform.cjs +6 -2
  386. package/dist/navbar-education-platform.js +6 -2
  387. package/dist/navbar-enterprise-mega.cjs +6 -2
  388. package/dist/navbar-enterprise-mega.js +6 -2
  389. package/dist/navbar-feature-grid.cjs +6 -2
  390. package/dist/navbar-feature-grid.js +6 -2
  391. package/dist/navbar-floating-pill.cjs +6 -2
  392. package/dist/navbar-floating-pill.js +6 -2
  393. package/dist/navbar-fullscreen-menu.cjs +6 -2
  394. package/dist/navbar-fullscreen-menu.js +6 -2
  395. package/dist/navbar-icon-links.cjs +6 -2
  396. package/dist/navbar-icon-links.js +6 -2
  397. package/dist/navbar-image-preview.cjs +6 -2
  398. package/dist/navbar-image-preview.js +6 -2
  399. package/dist/navbar-mega-menu.cjs +6 -2
  400. package/dist/navbar-mega-menu.js +6 -2
  401. package/dist/navbar-multi-column-groups.cjs +6 -2
  402. package/dist/navbar-multi-column-groups.js +6 -2
  403. package/dist/navbar-platform-resources.cjs +6 -2
  404. package/dist/navbar-platform-resources.js +6 -2
  405. package/dist/navbar-search-focused.cjs +6 -2
  406. package/dist/navbar-search-focused.js +6 -2
  407. package/dist/navbar-sidebar-mobile.cjs +6 -2
  408. package/dist/navbar-sidebar-mobile.js +6 -2
  409. package/dist/navbar-simple-links.cjs +6 -2
  410. package/dist/navbar-simple-links.js +6 -2
  411. package/dist/navbar-split-cta.cjs +6 -2
  412. package/dist/navbar-split-cta.js +6 -2
  413. package/dist/navbar-sticky-compact.cjs +6 -2
  414. package/dist/navbar-sticky-compact.js +6 -2
  415. package/dist/navbar-tabbed-sections.cjs +6 -2
  416. package/dist/navbar-tabbed-sections.js +6 -2
  417. package/dist/navbar-transparent-overlay.cjs +6 -2
  418. package/dist/navbar-transparent-overlay.js +6 -2
  419. package/dist/offer-modal-membership-image.cjs +6 -2
  420. package/dist/offer-modal-membership-image.js +6 -2
  421. package/dist/offer-modal-newsletter-discount.cjs +6 -2
  422. package/dist/offer-modal-newsletter-discount.js +6 -2
  423. package/dist/offer-modal-sheet-newsletter.cjs +6 -2
  424. package/dist/offer-modal-sheet-newsletter.js +6 -2
  425. package/dist/payment-platform-icon.cjs +27 -2
  426. package/dist/payment-platform-icon.js +7 -2
  427. package/dist/pricing-addons-cards.cjs +19 -15
  428. package/dist/pricing-addons-cards.js +16 -12
  429. package/dist/pricing-addons-featured.cjs +20 -16
  430. package/dist/pricing-addons-featured.js +16 -12
  431. package/dist/pricing-collapsible-plans.cjs +19 -15
  432. package/dist/pricing-collapsible-plans.js +16 -12
  433. package/dist/pricing-columns-toggle.cjs +20 -16
  434. package/dist/pricing-columns-toggle.js +16 -12
  435. package/dist/pricing-comparison-headers.cjs +21 -17
  436. package/dist/pricing-comparison-headers.js +16 -12
  437. package/dist/pricing-comparison-table.cjs +21 -17
  438. package/dist/pricing-comparison-table.js +16 -12
  439. package/dist/pricing-discount-card.cjs +18 -14
  440. package/dist/pricing-discount-card.js +16 -12
  441. package/dist/pricing-enterprise-contact.cjs +18 -14
  442. package/dist/pricing-enterprise-contact.js +16 -12
  443. package/dist/pricing-feature-matrix.cjs +19 -15
  444. package/dist/pricing-feature-matrix.js +16 -12
  445. package/dist/pricing-four-tier-toggle.cjs +20 -16
  446. package/dist/pricing-four-tier-toggle.js +16 -12
  447. package/dist/pricing-full-comparison.cjs +19 -15
  448. package/dist/pricing-full-comparison.js +17 -13
  449. package/dist/pricing-gradient-cards.cjs +20 -16
  450. package/dist/pricing-gradient-cards.js +16 -12
  451. package/dist/pricing-icon-headers.cjs +19 -15
  452. package/dist/pricing-icon-headers.js +16 -12
  453. package/dist/pricing-minimal-cards.cjs +19 -15
  454. package/dist/pricing-minimal-cards.js +16 -12
  455. package/dist/pricing-packages-radio.cjs +18 -14
  456. package/dist/pricing-packages-radio.js +16 -12
  457. package/dist/pricing-popular-highlight.cjs +20 -16
  458. package/dist/pricing-popular-highlight.js +16 -12
  459. package/dist/pricing-radio-toggle.cjs +20 -16
  460. package/dist/pricing-radio-toggle.js +16 -12
  461. package/dist/pricing-responsive-table.cjs +18 -14
  462. package/dist/pricing-responsive-table.js +16 -12
  463. package/dist/pricing-services-cards.cjs +19 -15
  464. package/dist/pricing-services-cards.js +16 -12
  465. package/dist/pricing-simple-card.cjs +18 -14
  466. package/dist/pricing-simple-card.js +16 -12
  467. package/dist/pricing-single-card.cjs +19 -15
  468. package/dist/pricing-single-card.js +16 -12
  469. package/dist/pricing-split-layout.cjs +16 -12
  470. package/dist/pricing-split-layout.js +16 -12
  471. package/dist/pricing-spotlight-card.cjs +18 -14
  472. package/dist/pricing-spotlight-card.js +16 -12
  473. package/dist/pricing-switch-cards.cjs +20 -16
  474. package/dist/pricing-switch-cards.js +16 -12
  475. package/dist/pricing-tabs-toggle.cjs +20 -16
  476. package/dist/pricing-tabs-toggle.js +16 -12
  477. package/dist/pricing-tier-grid.cjs +19 -15
  478. package/dist/pricing-tier-grid.js +16 -12
  479. package/dist/pricing-toggle-cards.cjs +20 -16
  480. package/dist/pricing-toggle-cards.js +16 -12
  481. package/dist/pricing-toggle-period.cjs +18 -14
  482. package/dist/pricing-toggle-period.js +16 -12
  483. package/dist/pricing-two-column-basic.cjs +20 -16
  484. package/dist/pricing-two-column-basic.js +16 -12
  485. package/dist/process-expandable-timeline.cjs +6 -2
  486. package/dist/process-expandable-timeline.js +6 -2
  487. package/dist/process-icon-timeline.cjs +26 -6
  488. package/dist/process-icon-timeline.js +10 -5
  489. package/dist/process-numbered-services.cjs +6 -2
  490. package/dist/process-numbered-services.js +6 -2
  491. package/dist/process-roadmap-timeline.cjs +26 -6
  492. package/dist/process-roadmap-timeline.js +10 -5
  493. package/dist/process-scroll-image.cjs +24 -20
  494. package/dist/process-scroll-image.js +22 -18
  495. package/dist/process-steps-grid.cjs +26 -6
  496. package/dist/process-steps-grid.js +10 -5
  497. package/dist/process-sticky-steps.cjs +6 -2
  498. package/dist/process-sticky-steps.js +6 -2
  499. package/dist/project-background-reveal.cjs +17 -13
  500. package/dist/project-background-reveal.js +16 -12
  501. package/dist/project-card-overlay.cjs +26 -6
  502. package/dist/project-card-overlay.js +10 -5
  503. package/dist/project-carousel-cinematic.cjs +31 -27
  504. package/dist/project-carousel-cinematic.js +26 -22
  505. package/dist/project-carousel-detail-cards.cjs +31 -27
  506. package/dist/project-carousel-detail-cards.js +26 -22
  507. package/dist/project-carousel-minimal.cjs +31 -27
  508. package/dist/project-carousel-minimal.js +26 -22
  509. package/dist/project-detail-architecture-carousel.cjs +6 -2
  510. package/dist/project-detail-architecture-carousel.js +6 -2
  511. package/dist/project-detail-list-related.cjs +6 -2
  512. package/dist/project-detail-list-related.js +6 -2
  513. package/dist/project-detail-photography-breadcrumb.cjs +6 -2
  514. package/dist/project-detail-photography-breadcrumb.js +6 -2
  515. package/dist/project-detail-tabbed-case-study.cjs +6 -2
  516. package/dist/project-detail-tabbed-case-study.js +6 -2
  517. package/dist/project-experience-quote.cjs +17 -13
  518. package/dist/project-experience-quote.js +16 -12
  519. package/dist/project-featured-carousel.cjs +27 -23
  520. package/dist/project-featured-carousel.js +26 -22
  521. package/dist/project-horizontal-cards.cjs +17 -13
  522. package/dist/project-horizontal-cards.js +16 -12
  523. package/dist/project-interactive-hover-reveal.cjs +18 -14
  524. package/dist/project-interactive-hover-reveal.js +16 -12
  525. package/dist/project-scroll-reveal.cjs +26 -6
  526. package/dist/project-scroll-reveal.js +10 -5
  527. package/dist/project-video-carousel.cjs +31 -27
  528. package/dist/project-video-carousel.js +26 -22
  529. package/dist/project-video-hover-bento.cjs +26 -6
  530. package/dist/project-video-hover-bento.js +10 -5
  531. package/dist/project-video-hover-grid.cjs +26 -6
  532. package/dist/project-video-hover-grid.js +10 -5
  533. package/dist/project-video-hover-rounded.cjs +26 -6
  534. package/dist/project-video-hover-rounded.js +10 -5
  535. package/dist/project-video-hover-stack.cjs +26 -6
  536. package/dist/project-video-hover-stack.js +10 -5
  537. package/dist/project-video-hover-two-by-two.cjs +26 -6
  538. package/dist/project-video-hover-two-by-two.js +10 -5
  539. package/dist/project-work-showcase.cjs +17 -13
  540. package/dist/project-work-showcase.js +16 -12
  541. package/dist/project-zigzag-layout.cjs +16 -12
  542. package/dist/project-zigzag-layout.js +16 -12
  543. package/dist/registry.cjs +1737 -1717
  544. package/dist/registry.js +507 -487
  545. package/dist/resource-detail-document-sidebar.cjs +6 -2
  546. package/dist/resource-detail-document-sidebar.js +6 -2
  547. package/dist/resource-detail-whitepaper-sidebar.cjs +6 -2
  548. package/dist/resource-detail-whitepaper-sidebar.js +6 -2
  549. package/dist/resource-list-course-cards.cjs +6 -2
  550. package/dist/resource-list-course-cards.js +6 -2
  551. package/dist/resource-list-featured-articles.cjs +6 -2
  552. package/dist/resource-list-featured-articles.js +6 -2
  553. package/dist/resource-list-featured-grid.cjs +6 -2
  554. package/dist/resource-list-featured-grid.js +6 -2
  555. package/dist/resource-list-hero-filter.cjs +6 -2
  556. package/dist/resource-list-hero-filter.js +6 -2
  557. package/dist/resource-list-news-updates.cjs +6 -2
  558. package/dist/resource-list-news-updates.js +6 -2
  559. package/dist/service-detail-centered-expertise.cjs +16 -12
  560. package/dist/service-detail-centered-expertise.js +16 -12
  561. package/dist/service-detail-compact-cards.cjs +16 -12
  562. package/dist/service-detail-compact-cards.js +16 -12
  563. package/dist/service-detail-sidebar-related.cjs +16 -12
  564. package/dist/service-detail-sidebar-related.js +16 -12
  565. package/dist/service-detail-sidebar-stats.cjs +27 -7
  566. package/dist/service-detail-sidebar-stats.js +10 -5
  567. package/dist/service-hover-carousel.cjs +38 -34
  568. package/dist/service-hover-carousel.js +26 -22
  569. package/dist/services-list-accordion-benefits.cjs +16 -12
  570. package/dist/services-list-accordion-benefits.js +16 -12
  571. package/dist/services-list-accordion.cjs +10 -8
  572. package/dist/services-list-accordion.js +10 -5
  573. package/dist/services-list-cards-hover.cjs +16 -12
  574. package/dist/services-list-cards-hover.js +16 -12
  575. package/dist/services-list-category-accordion.cjs +10 -8
  576. package/dist/services-list-category-accordion.js +10 -5
  577. package/dist/services-list-centered-icons.cjs +27 -7
  578. package/dist/services-list-centered-icons.js +10 -5
  579. package/dist/services-list-culture-tabs.cjs +16 -12
  580. package/dist/services-list-culture-tabs.js +16 -12
  581. package/dist/services-list-feature-spotlight.cjs +27 -7
  582. package/dist/services-list-feature-spotlight.js +10 -5
  583. package/dist/services-list-featured-highlight.cjs +16 -12
  584. package/dist/services-list-featured-highlight.js +16 -12
  585. package/dist/services-list-hero-cards.cjs +6 -2
  586. package/dist/services-list-hero-cards.js +6 -2
  587. package/dist/services-list-icon-grid.cjs +27 -7
  588. package/dist/services-list-icon-grid.js +10 -5
  589. package/dist/services-list-image-cards.cjs +6 -2
  590. package/dist/services-list-image-cards.js +6 -2
  591. package/dist/services-list-image-overlay-grid.cjs +6 -2
  592. package/dist/services-list-image-overlay-grid.js +6 -2
  593. package/dist/services-list-masonry.cjs +16 -12
  594. package/dist/services-list-masonry.js +16 -12
  595. package/dist/services-list-methodology-steps.cjs +16 -12
  596. package/dist/services-list-methodology-steps.js +16 -12
  597. package/dist/services-list-minimal-grid.cjs +16 -12
  598. package/dist/services-list-minimal-grid.js +16 -12
  599. package/dist/services-list-muted-cards.cjs +27 -7
  600. package/dist/services-list-muted-cards.js +10 -5
  601. package/dist/services-list-numbered-steps.cjs +16 -12
  602. package/dist/services-list-numbered-steps.js +16 -12
  603. package/dist/services-list-pricing-grid.cjs +16 -12
  604. package/dist/services-list-pricing-grid.js +16 -12
  605. package/dist/services-list-progress-sidebar.cjs +16 -12
  606. package/dist/services-list-progress-sidebar.js +16 -12
  607. package/dist/services-list-split-checklist.cjs +16 -12
  608. package/dist/services-list-split-checklist.js +16 -12
  609. package/dist/services-list-sticky-image.cjs +6 -2
  610. package/dist/services-list-sticky-image.js +6 -2
  611. package/dist/services-list-table-hover.cjs +6 -2
  612. package/dist/services-list-table-hover.js +6 -2
  613. package/dist/services-list-tabs-features.cjs +10 -8
  614. package/dist/services-list-tabs-features.js +10 -5
  615. package/dist/services-list-timeline.cjs +16 -12
  616. package/dist/services-list-timeline.js +16 -12
  617. package/dist/services-list-two-column-grid.cjs +16 -12
  618. package/dist/services-list-two-column-grid.js +16 -12
  619. package/dist/services-list-vertical-tags.cjs +27 -7
  620. package/dist/services-list-vertical-tags.js +10 -5
  621. package/dist/services-list-video-showcase.cjs +18 -14
  622. package/dist/services-list-video-showcase.js +18 -14
  623. package/dist/social-link-icon.cjs +6 -2
  624. package/dist/social-link-icon.js +6 -2
  625. package/dist/stats-animated-counter.cjs +17 -13
  626. package/dist/stats-animated-counter.js +15 -11
  627. package/dist/stats-card-group.cjs +26 -6
  628. package/dist/stats-card-group.js +10 -5
  629. package/dist/stats-growth-timeline.cjs +22 -18
  630. package/dist/stats-growth-timeline.js +16 -12
  631. package/dist/stats-icon-cards.cjs +26 -6
  632. package/dist/stats-icon-cards.js +10 -5
  633. package/dist/stats-impact-grid.cjs +23 -19
  634. package/dist/stats-impact-grid.js +16 -12
  635. package/dist/stats-primary-secondary.cjs +26 -6
  636. package/dist/stats-primary-secondary.js +10 -5
  637. package/dist/stats-timeline-tabs.cjs +9 -7
  638. package/dist/stats-timeline-tabs.js +10 -5
  639. package/dist/team-alternating-bios.cjs +17 -13
  640. package/dist/team-alternating-bios.js +17 -13
  641. package/dist/team-avatar-social.cjs +17 -13
  642. package/dist/team-avatar-social.js +17 -13
  643. package/dist/team-bio-badges.cjs +17 -13
  644. package/dist/team-bio-badges.js +17 -13
  645. package/dist/team-carousel-experience.cjs +27 -23
  646. package/dist/team-carousel-experience.js +27 -23
  647. package/dist/team-contact-cards.cjs +18 -14
  648. package/dist/team-contact-cards.js +18 -14
  649. package/dist/team-filterable-search.cjs +22 -18
  650. package/dist/team-filterable-search.js +22 -18
  651. package/dist/team-gradient-cards.cjs +17 -13
  652. package/dist/team-gradient-cards.js +17 -13
  653. package/dist/team-grid-animated.cjs +18 -14
  654. package/dist/team-grid-animated.js +18 -14
  655. package/dist/team-hover-highlight.cjs +17 -13
  656. package/dist/team-hover-highlight.js +17 -13
  657. package/dist/team-hover-overlay.cjs +17 -13
  658. package/dist/team-hover-overlay.js +17 -13
  659. package/dist/team-large-images.cjs +17 -13
  660. package/dist/team-large-images.js +17 -13
  661. package/dist/team-role-filter.cjs +20 -16
  662. package/dist/team-role-filter.js +20 -16
  663. package/dist/team-skill-badges.cjs +17 -13
  664. package/dist/team-skill-badges.js +17 -13
  665. package/dist/team-social-cards.cjs +17 -13
  666. package/dist/team-social-cards.js +17 -13
  667. package/dist/team-social-grid.cjs +17 -13
  668. package/dist/team-social-grid.js +17 -13
  669. package/dist/team-testimonial-stats.cjs +17 -13
  670. package/dist/team-testimonial-stats.js +17 -13
  671. package/dist/testimonial-carousel-cards.cjs +33 -29
  672. package/dist/testimonial-carousel-cards.js +26 -22
  673. package/dist/testimonials-animated-split.cjs +9 -7
  674. package/dist/testimonials-animated-split.js +10 -5
  675. package/dist/testimonials-bento-grid.cjs +9 -7
  676. package/dist/testimonials-bento-grid.js +10 -5
  677. package/dist/testimonials-carousel-image.cjs +18 -14
  678. package/dist/testimonials-carousel-image.js +13 -9
  679. package/dist/testimonials-company-logo.cjs +26 -6
  680. package/dist/testimonials-company-logo.js +10 -5
  681. package/dist/testimonials-grid-add-review.cjs +9 -7
  682. package/dist/testimonials-grid-add-review.js +10 -5
  683. package/dist/testimonials-images-helpful.cjs +21 -17
  684. package/dist/testimonials-images-helpful.js +16 -12
  685. package/dist/testimonials-large-quote.cjs +9 -7
  686. package/dist/testimonials-large-quote.js +10 -5
  687. package/dist/testimonials-list-verified.cjs +9 -7
  688. package/dist/testimonials-list-verified.js +10 -5
  689. package/dist/testimonials-mini-dividers.cjs +9 -7
  690. package/dist/testimonials-mini-dividers.js +10 -5
  691. package/dist/testimonials-minimal-numbered.cjs +9 -7
  692. package/dist/testimonials-minimal-numbered.js +10 -5
  693. package/dist/testimonials-quote-carousel.cjs +31 -27
  694. package/dist/testimonials-quote-carousel.js +26 -22
  695. package/dist/testimonials-scrolling-columns.cjs +26 -6
  696. package/dist/testimonials-scrolling-columns.js +10 -5
  697. package/dist/testimonials-split-image.cjs +9 -7
  698. package/dist/testimonials-split-image.js +10 -5
  699. package/dist/testimonials-stats-header.cjs +9 -7
  700. package/dist/testimonials-stats-header.js +10 -5
  701. package/dist/testimonials-twitter-cards.cjs +19 -15
  702. package/dist/testimonials-twitter-cards.js +16 -12
  703. package/dist/timeline-ai-workflow-cards.cjs +27 -7
  704. package/dist/timeline-ai-workflow-cards.js +10 -5
  705. package/dist/timeline-alternating-diagonal.cjs +12 -8
  706. package/dist/timeline-alternating-diagonal.js +12 -8
  707. package/dist/timeline-horizontal-icons.cjs +10 -8
  708. package/dist/timeline-horizontal-icons.js +10 -5
  709. package/dist/timeline-productivity-list.cjs +27 -7
  710. package/dist/timeline-productivity-list.js +10 -5
  711. package/dist/timeline-stepper-animated.cjs +22 -18
  712. package/dist/timeline-stepper-animated.js +21 -17
  713. package/dist/timeline-tabbed-phases.cjs +6 -2
  714. package/dist/timeline-tabbed-phases.js +6 -2
  715. package/dist/timeline-vertical-icon-dashed.cjs +6 -2
  716. package/dist/timeline-vertical-icon-dashed.js +6 -2
  717. package/package.json +3 -3
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var React = require('react');
4
+ var React2 = require('react');
5
5
  var framerMotion = require('framer-motion');
6
6
  var clsx = require('clsx');
7
7
  var tailwindMerge = require('tailwind-merge');
@@ -28,7 +28,7 @@ function _interopNamespace(e) {
28
28
  return Object.freeze(n);
29
29
  }
30
30
 
31
- var React__namespace = /*#__PURE__*/_interopNamespace(React);
31
+ var React2__namespace = /*#__PURE__*/_interopNamespace(React2);
32
32
 
33
33
  // components/blocks/carousel/carousel-horizontal-cards.tsx
34
34
  function cn(...inputs) {
@@ -65,9 +65,13 @@ function getNestedCardTextColor(parentBg, options) {
65
65
  return isDark ? "text-foreground" : "";
66
66
  }
67
67
  var DEFAULT_ICON_API_KEY = "au382bi7fsh96w9h9xlrnat2jglx";
68
- function DynamicIcon({ apiKey, ...props }) {
68
+ var DynamicIcon = React2__namespace.memo(function DynamicIcon2({
69
+ apiKey,
70
+ ...props
71
+ }) {
69
72
  return /* @__PURE__ */ jsxRuntime.jsx(icon.Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
70
- }
73
+ });
74
+ DynamicIcon.displayName = "DynamicIcon";
71
75
  function normalizePhoneNumber(input) {
72
76
  const trimmed = input.trim();
73
77
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -143,7 +147,7 @@ function useNavigation({
143
147
  href,
144
148
  onClick
145
149
  } = {}) {
146
- const linkType = React__namespace.useMemo(() => {
150
+ const linkType = React2__namespace.useMemo(() => {
147
151
  if (!href || href.trim() === "") {
148
152
  return onClick ? "none" : "none";
149
153
  }
@@ -164,7 +168,7 @@ function useNavigation({
164
168
  return "internal";
165
169
  }
166
170
  }, [href, onClick]);
167
- const normalizedHref = React__namespace.useMemo(() => {
171
+ const normalizedHref = React2__namespace.useMemo(() => {
168
172
  if (!href || href.trim() === "") {
169
173
  return void 0;
170
174
  }
@@ -182,7 +186,7 @@ function useNavigation({
182
186
  return trimmed;
183
187
  }
184
188
  }, [href, linkType]);
185
- const target = React__namespace.useMemo(() => {
189
+ const target = React2__namespace.useMemo(() => {
186
190
  switch (linkType) {
187
191
  case "external":
188
192
  return "_blank";
@@ -195,7 +199,7 @@ function useNavigation({
195
199
  return void 0;
196
200
  }
197
201
  }, [linkType]);
198
- const rel = React__namespace.useMemo(() => {
202
+ const rel = React2__namespace.useMemo(() => {
199
203
  if (linkType === "external") {
200
204
  return "noopener noreferrer";
201
205
  }
@@ -204,7 +208,7 @@ function useNavigation({
204
208
  const isExternal = linkType === "external";
205
209
  const isInternal = linkType === "internal";
206
210
  const shouldUseRouter = isInternal && typeof normalizedHref === "string" && normalizedHref.startsWith("/");
207
- const handleClick = React__namespace.useCallback(
211
+ const handleClick = React2__namespace.useCallback(
208
212
  (event) => {
209
213
  if (onClick) {
210
214
  try {
@@ -388,7 +392,7 @@ var buttonVariants = classVarianceAuthority.cva(baseStyles, {
388
392
  size: "default"
389
393
  }
390
394
  });
391
- var Pressable = React__namespace.forwardRef(
395
+ var Pressable = React2__namespace.forwardRef(
392
396
  ({
393
397
  children,
394
398
  className,
@@ -553,7 +557,7 @@ var maxWidthStyles = {
553
557
  "4xl": "max-w-[1536px]",
554
558
  full: "max-w-full"
555
559
  };
556
- var Container = React__namespace.default.forwardRef(
560
+ var Container = React2__namespace.default.forwardRef(
557
561
  ({ children, maxWidth = "xl", className, as = "div", ...props }, ref) => {
558
562
  const Component = as;
559
563
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -859,7 +863,7 @@ var spacingStyles = {
859
863
  };
860
864
  var predefinedSpacings = ["none", "sm", "md", "lg", "xl", "hero"];
861
865
  var isPredefinedSpacing = (spacing) => predefinedSpacings.includes(spacing);
862
- var Section = React__namespace.default.forwardRef(
866
+ var Section = React2__namespace.default.forwardRef(
863
867
  ({
864
868
  id,
865
869
  title,
@@ -939,9 +943,9 @@ function CarouselHorizontalCards({
939
943
  pattern,
940
944
  patternOpacity
941
945
  }) {
942
- const carouselRef = React__namespace.useRef(null);
943
- const [isAtStart, setIsAtStart] = React__namespace.useState(true);
944
- const [isAtEnd, setIsAtEnd] = React__namespace.useState(false);
946
+ const carouselRef = React2__namespace.useRef(null);
947
+ const [isAtStart, setIsAtStart] = React2__namespace.useState(true);
948
+ const [isAtEnd, setIsAtEnd] = React2__namespace.useState(false);
945
949
  const scrollLeft = () => {
946
950
  if (carouselRef.current) {
947
951
  carouselRef.current.scrollBy({ left: -300, behavior: "smooth" });
@@ -952,7 +956,7 @@ function CarouselHorizontalCards({
952
956
  carouselRef.current.scrollBy({ left: 300, behavior: "smooth" });
953
957
  }
954
958
  };
955
- React__namespace.useEffect(() => {
959
+ React2__namespace.useEffect(() => {
956
960
  const checkScrollPosition = () => {
957
961
  if (carouselRef.current) {
958
962
  const { scrollLeft: scrollLeft2, scrollWidth, clientWidth } = carouselRef.current;
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import * as React from 'react';
3
- import React__default from 'react';
2
+ import * as React2 from 'react';
3
+ import React2__default from 'react';
4
4
  import { motion } from 'framer-motion';
5
5
  import { clsx } from 'clsx';
6
6
  import { twMerge } from 'tailwind-merge';
@@ -44,9 +44,13 @@ function getNestedCardTextColor(parentBg, options) {
44
44
  return isDark ? "text-foreground" : "";
45
45
  }
46
46
  var DEFAULT_ICON_API_KEY = "au382bi7fsh96w9h9xlrnat2jglx";
47
- function DynamicIcon({ apiKey, ...props }) {
47
+ var DynamicIcon = React2.memo(function DynamicIcon2({
48
+ apiKey,
49
+ ...props
50
+ }) {
48
51
  return /* @__PURE__ */ jsx(Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
49
- }
52
+ });
53
+ DynamicIcon.displayName = "DynamicIcon";
50
54
  function normalizePhoneNumber(input) {
51
55
  const trimmed = input.trim();
52
56
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -122,7 +126,7 @@ function useNavigation({
122
126
  href,
123
127
  onClick
124
128
  } = {}) {
125
- const linkType = React.useMemo(() => {
129
+ const linkType = React2.useMemo(() => {
126
130
  if (!href || href.trim() === "") {
127
131
  return onClick ? "none" : "none";
128
132
  }
@@ -143,7 +147,7 @@ function useNavigation({
143
147
  return "internal";
144
148
  }
145
149
  }, [href, onClick]);
146
- const normalizedHref = React.useMemo(() => {
150
+ const normalizedHref = React2.useMemo(() => {
147
151
  if (!href || href.trim() === "") {
148
152
  return void 0;
149
153
  }
@@ -161,7 +165,7 @@ function useNavigation({
161
165
  return trimmed;
162
166
  }
163
167
  }, [href, linkType]);
164
- const target = React.useMemo(() => {
168
+ const target = React2.useMemo(() => {
165
169
  switch (linkType) {
166
170
  case "external":
167
171
  return "_blank";
@@ -174,7 +178,7 @@ function useNavigation({
174
178
  return void 0;
175
179
  }
176
180
  }, [linkType]);
177
- const rel = React.useMemo(() => {
181
+ const rel = React2.useMemo(() => {
178
182
  if (linkType === "external") {
179
183
  return "noopener noreferrer";
180
184
  }
@@ -183,7 +187,7 @@ function useNavigation({
183
187
  const isExternal = linkType === "external";
184
188
  const isInternal = linkType === "internal";
185
189
  const shouldUseRouter = isInternal && typeof normalizedHref === "string" && normalizedHref.startsWith("/");
186
- const handleClick = React.useCallback(
190
+ const handleClick = React2.useCallback(
187
191
  (event) => {
188
192
  if (onClick) {
189
193
  try {
@@ -367,7 +371,7 @@ var buttonVariants = cva(baseStyles, {
367
371
  size: "default"
368
372
  }
369
373
  });
370
- var Pressable = React.forwardRef(
374
+ var Pressable = React2.forwardRef(
371
375
  ({
372
376
  children,
373
377
  className,
@@ -532,7 +536,7 @@ var maxWidthStyles = {
532
536
  "4xl": "max-w-[1536px]",
533
537
  full: "max-w-full"
534
538
  };
535
- var Container = React__default.forwardRef(
539
+ var Container = React2__default.forwardRef(
536
540
  ({ children, maxWidth = "xl", className, as = "div", ...props }, ref) => {
537
541
  const Component = as;
538
542
  return /* @__PURE__ */ jsx(
@@ -838,7 +842,7 @@ var spacingStyles = {
838
842
  };
839
843
  var predefinedSpacings = ["none", "sm", "md", "lg", "xl", "hero"];
840
844
  var isPredefinedSpacing = (spacing) => predefinedSpacings.includes(spacing);
841
- var Section = React__default.forwardRef(
845
+ var Section = React2__default.forwardRef(
842
846
  ({
843
847
  id,
844
848
  title,
@@ -918,9 +922,9 @@ function CarouselHorizontalCards({
918
922
  pattern,
919
923
  patternOpacity
920
924
  }) {
921
- const carouselRef = React.useRef(null);
922
- const [isAtStart, setIsAtStart] = React.useState(true);
923
- const [isAtEnd, setIsAtEnd] = React.useState(false);
925
+ const carouselRef = React2.useRef(null);
926
+ const [isAtStart, setIsAtStart] = React2.useState(true);
927
+ const [isAtEnd, setIsAtEnd] = React2.useState(false);
924
928
  const scrollLeft = () => {
925
929
  if (carouselRef.current) {
926
930
  carouselRef.current.scrollBy({ left: -300, behavior: "smooth" });
@@ -931,7 +935,7 @@ function CarouselHorizontalCards({
931
935
  carouselRef.current.scrollBy({ left: 300, behavior: "smooth" });
932
936
  }
933
937
  };
934
- React.useEffect(() => {
938
+ React2.useEffect(() => {
935
939
  const checkScrollPosition = () => {
936
940
  if (carouselRef.current) {
937
941
  const { scrollLeft: scrollLeft2, scrollWidth, clientWidth } = carouselRef.current;
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var React3 = require('react');
4
+ var React4 = require('react');
5
5
  var clsx = require('clsx');
6
6
  var tailwindMerge = require('tailwind-merge');
7
7
  var icon = require('@page-speed/icon');
@@ -31,7 +31,7 @@ function _interopNamespace(e) {
31
31
  return Object.freeze(n);
32
32
  }
33
33
 
34
- var React3__namespace = /*#__PURE__*/_interopNamespace(React3);
34
+ var React4__namespace = /*#__PURE__*/_interopNamespace(React4);
35
35
  var useEmblaCarousel__default = /*#__PURE__*/_interopDefault(useEmblaCarousel);
36
36
 
37
37
  // components/blocks/gallery/carousel-icon-sidebar.tsx
@@ -69,9 +69,13 @@ function getNestedCardTextColor(parentBg, options) {
69
69
  return isDark ? "text-foreground" : "";
70
70
  }
71
71
  var DEFAULT_ICON_API_KEY = "au382bi7fsh96w9h9xlrnat2jglx";
72
- function DynamicIcon({ apiKey, ...props }) {
72
+ var DynamicIcon = React4__namespace.memo(function DynamicIcon2({
73
+ apiKey,
74
+ ...props
75
+ }) {
73
76
  return /* @__PURE__ */ jsxRuntime.jsx(icon.Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
74
- }
77
+ });
78
+ DynamicIcon.displayName = "DynamicIcon";
75
79
  function normalizePhoneNumber(input) {
76
80
  const trimmed = input.trim();
77
81
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -147,7 +151,7 @@ function useNavigation({
147
151
  href,
148
152
  onClick
149
153
  } = {}) {
150
- const linkType = React3__namespace.useMemo(() => {
154
+ const linkType = React4__namespace.useMemo(() => {
151
155
  if (!href || href.trim() === "") {
152
156
  return onClick ? "none" : "none";
153
157
  }
@@ -168,7 +172,7 @@ function useNavigation({
168
172
  return "internal";
169
173
  }
170
174
  }, [href, onClick]);
171
- const normalizedHref = React3__namespace.useMemo(() => {
175
+ const normalizedHref = React4__namespace.useMemo(() => {
172
176
  if (!href || href.trim() === "") {
173
177
  return void 0;
174
178
  }
@@ -186,7 +190,7 @@ function useNavigation({
186
190
  return trimmed;
187
191
  }
188
192
  }, [href, linkType]);
189
- const target = React3__namespace.useMemo(() => {
193
+ const target = React4__namespace.useMemo(() => {
190
194
  switch (linkType) {
191
195
  case "external":
192
196
  return "_blank";
@@ -199,7 +203,7 @@ function useNavigation({
199
203
  return void 0;
200
204
  }
201
205
  }, [linkType]);
202
- const rel = React3__namespace.useMemo(() => {
206
+ const rel = React4__namespace.useMemo(() => {
203
207
  if (linkType === "external") {
204
208
  return "noopener noreferrer";
205
209
  }
@@ -208,7 +212,7 @@ function useNavigation({
208
212
  const isExternal = linkType === "external";
209
213
  const isInternal = linkType === "internal";
210
214
  const shouldUseRouter = isInternal && typeof normalizedHref === "string" && normalizedHref.startsWith("/");
211
- const handleClick = React3__namespace.useCallback(
215
+ const handleClick = React4__namespace.useCallback(
212
216
  (event) => {
213
217
  if (onClick) {
214
218
  try {
@@ -392,7 +396,7 @@ var buttonVariants = classVarianceAuthority.cva(baseStyles, {
392
396
  size: "default"
393
397
  }
394
398
  });
395
- var Pressable = React3__namespace.forwardRef(
399
+ var Pressable = React4__namespace.forwardRef(
396
400
  ({
397
401
  children,
398
402
  className,
@@ -490,9 +494,9 @@ var Pressable = React3__namespace.forwardRef(
490
494
  }
491
495
  );
492
496
  Pressable.displayName = "Pressable";
493
- var CarouselContext = React3__namespace.createContext(null);
497
+ var CarouselContext = React4__namespace.createContext(null);
494
498
  function useCarousel() {
495
- const context = React3__namespace.useContext(CarouselContext);
499
+ const context = React4__namespace.useContext(CarouselContext);
496
500
  if (!context) {
497
501
  throw new Error("useCarousel must be used within a <Carousel />");
498
502
  }
@@ -514,20 +518,20 @@ function Carousel({
514
518
  },
515
519
  plugins
516
520
  );
517
- const [canScrollPrev, setCanScrollPrev] = React3__namespace.useState(false);
518
- const [canScrollNext, setCanScrollNext] = React3__namespace.useState(false);
519
- const onSelect = React3__namespace.useCallback((api2) => {
521
+ const [canScrollPrev, setCanScrollPrev] = React4__namespace.useState(false);
522
+ const [canScrollNext, setCanScrollNext] = React4__namespace.useState(false);
523
+ const onSelect = React4__namespace.useCallback((api2) => {
520
524
  if (!api2) return;
521
525
  setCanScrollPrev(api2.canScrollPrev());
522
526
  setCanScrollNext(api2.canScrollNext());
523
527
  }, []);
524
- const scrollPrev = React3__namespace.useCallback(() => {
528
+ const scrollPrev = React4__namespace.useCallback(() => {
525
529
  api?.scrollPrev();
526
530
  }, [api]);
527
- const scrollNext = React3__namespace.useCallback(() => {
531
+ const scrollNext = React4__namespace.useCallback(() => {
528
532
  api?.scrollNext();
529
533
  }, [api]);
530
- const handleKeyDown = React3__namespace.useCallback(
534
+ const handleKeyDown = React4__namespace.useCallback(
531
535
  (event) => {
532
536
  if (event.key === "ArrowLeft") {
533
537
  event.preventDefault();
@@ -539,11 +543,11 @@ function Carousel({
539
543
  },
540
544
  [scrollPrev, scrollNext]
541
545
  );
542
- React3__namespace.useEffect(() => {
546
+ React4__namespace.useEffect(() => {
543
547
  if (!api || !setApi) return;
544
548
  setApi(api);
545
549
  }, [api, setApi]);
546
- React3__namespace.useEffect(() => {
550
+ React4__namespace.useEffect(() => {
547
551
  if (!api) return;
548
552
  onSelect(api);
549
553
  api.on("reInit", onSelect);
@@ -686,7 +690,7 @@ var maxWidthStyles = {
686
690
  "4xl": "max-w-[1536px]",
687
691
  full: "max-w-full"
688
692
  };
689
- var Container = React3__namespace.default.forwardRef(
693
+ var Container = React4__namespace.default.forwardRef(
690
694
  ({ children, maxWidth = "xl", className, as = "div", ...props }, ref) => {
691
695
  const Component = as;
692
696
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -992,7 +996,7 @@ var spacingStyles = {
992
996
  };
993
997
  var predefinedSpacings = ["none", "sm", "md", "lg", "xl", "hero"];
994
998
  var isPredefinedSpacing = (spacing) => predefinedSpacings.includes(spacing);
995
- var Section = React3__namespace.default.forwardRef(
999
+ var Section = React4__namespace.default.forwardRef(
996
1000
  ({
997
1001
  id,
998
1002
  title,
@@ -1078,25 +1082,25 @@ function CarouselIconSidebar({
1078
1082
  patternClassName,
1079
1083
  optixFlowConfig
1080
1084
  }) {
1081
- const [api, setApi] = React3.useState();
1082
- const [activeIndex, setActiveIndex] = React3.useState(0);
1083
- const [lightboxOpen, setLightboxOpen] = React3.useState(false);
1084
- const [lightboxIndex, setLightboxIndex] = React3.useState(0);
1085
- React3.useEffect(() => {
1085
+ const [api, setApi] = React4.useState();
1086
+ const [activeIndex, setActiveIndex] = React4.useState(0);
1087
+ const [lightboxOpen, setLightboxOpen] = React4.useState(false);
1088
+ const [lightboxIndex, setLightboxIndex] = React4.useState(0);
1089
+ React4.useEffect(() => {
1086
1090
  if (!api) {
1087
1091
  return;
1088
1092
  }
1089
- React3.startTransition(() => {
1093
+ React4.startTransition(() => {
1090
1094
  setActiveIndex(api.selectedScrollSnap());
1091
1095
  });
1092
1096
  api.on("select", () => {
1093
- React3.startTransition(() => {
1097
+ React4.startTransition(() => {
1094
1098
  setActiveIndex(api.selectedScrollSnap());
1095
1099
  });
1096
1100
  });
1097
1101
  }, [api]);
1098
1102
  const activeItem = items?.[activeIndex];
1099
- const lightboxItems = React3.useMemo(
1103
+ const lightboxItems = React4.useMemo(
1100
1104
  () => (items ?? []).map((item, idx) => ({
1101
1105
  id: `carousel-sidebar-image-${idx}`,
1102
1106
  type: "image",
@@ -1107,14 +1111,14 @@ function CarouselIconSidebar({
1107
1111
  })),
1108
1112
  [items]
1109
1113
  );
1110
- const handleImageClick = React3.useCallback((index) => {
1114
+ const handleImageClick = React4.useCallback((index) => {
1111
1115
  setLightboxIndex(index);
1112
1116
  setLightboxOpen(true);
1113
1117
  }, []);
1114
- const handleLightboxClose = React3.useCallback(() => {
1118
+ const handleLightboxClose = React4.useCallback(() => {
1115
1119
  setLightboxOpen(false);
1116
1120
  }, []);
1117
- const sidebarContent = React3.useMemo(() => {
1121
+ const sidebarContent = React4.useMemo(() => {
1118
1122
  if (sidebarSlot) return sidebarSlot;
1119
1123
  if (!activeItem) return null;
1120
1124
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -1196,7 +1200,7 @@ function CarouselIconSidebar({
1196
1200
  descriptionClassName,
1197
1201
  controlsClassName
1198
1202
  ]);
1199
- const itemsContent = React3.useMemo(() => {
1203
+ const itemsContent = React4.useMemo(() => {
1200
1204
  if (itemsSlot) return itemsSlot;
1201
1205
  if (!items || items.length === 0) return null;
1202
1206
  return items.map((image, index) => /* @__PURE__ */ jsxRuntime.jsx(CarouselItem, { className: cn("h-full", itemClassName), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("h-full w-full", image.className), children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import * as React3 from 'react';
3
- import React3__default, { useState, useEffect, startTransition, useMemo, useCallback } from 'react';
2
+ import * as React4 from 'react';
3
+ import React4__default, { useState, useEffect, startTransition, useMemo, useCallback } from 'react';
4
4
  import { clsx } from 'clsx';
5
5
  import { twMerge } from 'tailwind-merge';
6
6
  import { Icon } from '@page-speed/icon';
@@ -45,9 +45,13 @@ function getNestedCardTextColor(parentBg, options) {
45
45
  return isDark ? "text-foreground" : "";
46
46
  }
47
47
  var DEFAULT_ICON_API_KEY = "au382bi7fsh96w9h9xlrnat2jglx";
48
- function DynamicIcon({ apiKey, ...props }) {
48
+ var DynamicIcon = React4.memo(function DynamicIcon2({
49
+ apiKey,
50
+ ...props
51
+ }) {
49
52
  return /* @__PURE__ */ jsx(Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
50
- }
53
+ });
54
+ DynamicIcon.displayName = "DynamicIcon";
51
55
  function normalizePhoneNumber(input) {
52
56
  const trimmed = input.trim();
53
57
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -123,7 +127,7 @@ function useNavigation({
123
127
  href,
124
128
  onClick
125
129
  } = {}) {
126
- const linkType = React3.useMemo(() => {
130
+ const linkType = React4.useMemo(() => {
127
131
  if (!href || href.trim() === "") {
128
132
  return onClick ? "none" : "none";
129
133
  }
@@ -144,7 +148,7 @@ function useNavigation({
144
148
  return "internal";
145
149
  }
146
150
  }, [href, onClick]);
147
- const normalizedHref = React3.useMemo(() => {
151
+ const normalizedHref = React4.useMemo(() => {
148
152
  if (!href || href.trim() === "") {
149
153
  return void 0;
150
154
  }
@@ -162,7 +166,7 @@ function useNavigation({
162
166
  return trimmed;
163
167
  }
164
168
  }, [href, linkType]);
165
- const target = React3.useMemo(() => {
169
+ const target = React4.useMemo(() => {
166
170
  switch (linkType) {
167
171
  case "external":
168
172
  return "_blank";
@@ -175,7 +179,7 @@ function useNavigation({
175
179
  return void 0;
176
180
  }
177
181
  }, [linkType]);
178
- const rel = React3.useMemo(() => {
182
+ const rel = React4.useMemo(() => {
179
183
  if (linkType === "external") {
180
184
  return "noopener noreferrer";
181
185
  }
@@ -184,7 +188,7 @@ function useNavigation({
184
188
  const isExternal = linkType === "external";
185
189
  const isInternal = linkType === "internal";
186
190
  const shouldUseRouter = isInternal && typeof normalizedHref === "string" && normalizedHref.startsWith("/");
187
- const handleClick = React3.useCallback(
191
+ const handleClick = React4.useCallback(
188
192
  (event) => {
189
193
  if (onClick) {
190
194
  try {
@@ -368,7 +372,7 @@ var buttonVariants = cva(baseStyles, {
368
372
  size: "default"
369
373
  }
370
374
  });
371
- var Pressable = React3.forwardRef(
375
+ var Pressable = React4.forwardRef(
372
376
  ({
373
377
  children,
374
378
  className,
@@ -466,9 +470,9 @@ var Pressable = React3.forwardRef(
466
470
  }
467
471
  );
468
472
  Pressable.displayName = "Pressable";
469
- var CarouselContext = React3.createContext(null);
473
+ var CarouselContext = React4.createContext(null);
470
474
  function useCarousel() {
471
- const context = React3.useContext(CarouselContext);
475
+ const context = React4.useContext(CarouselContext);
472
476
  if (!context) {
473
477
  throw new Error("useCarousel must be used within a <Carousel />");
474
478
  }
@@ -490,20 +494,20 @@ function Carousel({
490
494
  },
491
495
  plugins
492
496
  );
493
- const [canScrollPrev, setCanScrollPrev] = React3.useState(false);
494
- const [canScrollNext, setCanScrollNext] = React3.useState(false);
495
- const onSelect = React3.useCallback((api2) => {
497
+ const [canScrollPrev, setCanScrollPrev] = React4.useState(false);
498
+ const [canScrollNext, setCanScrollNext] = React4.useState(false);
499
+ const onSelect = React4.useCallback((api2) => {
496
500
  if (!api2) return;
497
501
  setCanScrollPrev(api2.canScrollPrev());
498
502
  setCanScrollNext(api2.canScrollNext());
499
503
  }, []);
500
- const scrollPrev = React3.useCallback(() => {
504
+ const scrollPrev = React4.useCallback(() => {
501
505
  api?.scrollPrev();
502
506
  }, [api]);
503
- const scrollNext = React3.useCallback(() => {
507
+ const scrollNext = React4.useCallback(() => {
504
508
  api?.scrollNext();
505
509
  }, [api]);
506
- const handleKeyDown = React3.useCallback(
510
+ const handleKeyDown = React4.useCallback(
507
511
  (event) => {
508
512
  if (event.key === "ArrowLeft") {
509
513
  event.preventDefault();
@@ -515,11 +519,11 @@ function Carousel({
515
519
  },
516
520
  [scrollPrev, scrollNext]
517
521
  );
518
- React3.useEffect(() => {
522
+ React4.useEffect(() => {
519
523
  if (!api || !setApi) return;
520
524
  setApi(api);
521
525
  }, [api, setApi]);
522
- React3.useEffect(() => {
526
+ React4.useEffect(() => {
523
527
  if (!api) return;
524
528
  onSelect(api);
525
529
  api.on("reInit", onSelect);
@@ -662,7 +666,7 @@ var maxWidthStyles = {
662
666
  "4xl": "max-w-[1536px]",
663
667
  full: "max-w-full"
664
668
  };
665
- var Container = React3__default.forwardRef(
669
+ var Container = React4__default.forwardRef(
666
670
  ({ children, maxWidth = "xl", className, as = "div", ...props }, ref) => {
667
671
  const Component = as;
668
672
  return /* @__PURE__ */ jsx(
@@ -968,7 +972,7 @@ var spacingStyles = {
968
972
  };
969
973
  var predefinedSpacings = ["none", "sm", "md", "lg", "xl", "hero"];
970
974
  var isPredefinedSpacing = (spacing) => predefinedSpacings.includes(spacing);
971
- var Section = React3__default.forwardRef(
975
+ var Section = React4__default.forwardRef(
972
976
  ({
973
977
  id,
974
978
  title,