@opensite/ui 2.8.0 → 2.8.2

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 (719) 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-simple-centered-image.cjs +5 -5
  340. package/dist/hero-simple-centered-image.js +5 -5
  341. package/dist/hero-software-growth-video-dialog.cjs +19 -15
  342. package/dist/hero-software-growth-video-dialog.js +16 -12
  343. package/dist/hero-split-icon-cards.cjs +18 -14
  344. package/dist/hero-split-icon-cards.js +16 -12
  345. package/dist/hero-video-dialog-gradient.cjs +19 -15
  346. package/dist/hero-video-dialog-gradient.js +16 -12
  347. package/dist/hero-video-overlay-stars.cjs +18 -14
  348. package/dist/hero-video-overlay-stars.js +16 -12
  349. package/dist/index.cjs +200 -180
  350. package/dist/index.js +104 -84
  351. package/dist/industries-expandable-showcase.cjs +6 -2
  352. package/dist/industries-expandable-showcase.js +6 -2
  353. package/dist/industries-hover-reveal-grid.cjs +6 -2
  354. package/dist/industries-hover-reveal-grid.js +6 -2
  355. package/dist/industries-timeline-table.cjs +6 -2
  356. package/dist/industries-timeline-table.js +6 -2
  357. package/dist/interior-carousel.cjs +33 -29
  358. package/dist/interior-carousel.js +26 -22
  359. package/dist/link-page-bento-layout.cjs +6 -2
  360. package/dist/link-page-bento-layout.js +6 -2
  361. package/dist/link-page-grid-cards.cjs +6 -2
  362. package/dist/link-page-grid-cards.js +6 -2
  363. package/dist/link-page-minimal-profile.cjs +6 -2
  364. package/dist/link-page-minimal-profile.js +6 -2
  365. package/dist/link-page-newsletter-social.cjs +6 -2
  366. package/dist/link-page-newsletter-social.js +6 -2
  367. package/dist/link-tree-block.cjs +30 -26
  368. package/dist/link-tree-block.js +30 -26
  369. package/dist/list-achievements-showcase.cjs +6 -2
  370. package/dist/list-achievements-showcase.js +6 -2
  371. package/dist/list-feature-comparison.cjs +6 -2
  372. package/dist/list-feature-comparison.js +6 -2
  373. package/dist/list-metrics-dashboard.cjs +6 -2
  374. package/dist/list-metrics-dashboard.js +6 -2
  375. package/dist/list-searchable-grid.cjs +19 -15
  376. package/dist/list-searchable-grid.js +18 -14
  377. package/dist/list-service-category-table.cjs +26 -6
  378. package/dist/list-service-category-table.js +10 -5
  379. package/dist/navbar-animated-preview.cjs +6 -2
  380. package/dist/navbar-animated-preview.js +6 -2
  381. package/dist/navbar-centered-menu.cjs +6 -2
  382. package/dist/navbar-centered-menu.js +6 -2
  383. package/dist/navbar-dark-icons.cjs +6 -2
  384. package/dist/navbar-dark-icons.js +6 -2
  385. package/dist/navbar-dropdown-menu.cjs +6 -2
  386. package/dist/navbar-dropdown-menu.js +6 -2
  387. package/dist/navbar-education-platform.cjs +6 -2
  388. package/dist/navbar-education-platform.js +6 -2
  389. package/dist/navbar-enterprise-mega.cjs +6 -2
  390. package/dist/navbar-enterprise-mega.js +6 -2
  391. package/dist/navbar-feature-grid.cjs +6 -2
  392. package/dist/navbar-feature-grid.js +6 -2
  393. package/dist/navbar-floating-pill.cjs +6 -2
  394. package/dist/navbar-floating-pill.js +6 -2
  395. package/dist/navbar-fullscreen-menu.cjs +6 -2
  396. package/dist/navbar-fullscreen-menu.js +6 -2
  397. package/dist/navbar-icon-links.cjs +6 -2
  398. package/dist/navbar-icon-links.js +6 -2
  399. package/dist/navbar-image-preview.cjs +6 -2
  400. package/dist/navbar-image-preview.js +6 -2
  401. package/dist/navbar-mega-menu.cjs +6 -2
  402. package/dist/navbar-mega-menu.js +6 -2
  403. package/dist/navbar-multi-column-groups.cjs +6 -2
  404. package/dist/navbar-multi-column-groups.js +6 -2
  405. package/dist/navbar-platform-resources.cjs +6 -2
  406. package/dist/navbar-platform-resources.js +6 -2
  407. package/dist/navbar-search-focused.cjs +6 -2
  408. package/dist/navbar-search-focused.js +6 -2
  409. package/dist/navbar-sidebar-mobile.cjs +6 -2
  410. package/dist/navbar-sidebar-mobile.js +6 -2
  411. package/dist/navbar-simple-links.cjs +6 -2
  412. package/dist/navbar-simple-links.js +6 -2
  413. package/dist/navbar-split-cta.cjs +6 -2
  414. package/dist/navbar-split-cta.js +6 -2
  415. package/dist/navbar-sticky-compact.cjs +6 -2
  416. package/dist/navbar-sticky-compact.js +6 -2
  417. package/dist/navbar-tabbed-sections.cjs +6 -2
  418. package/dist/navbar-tabbed-sections.js +6 -2
  419. package/dist/navbar-transparent-overlay.cjs +6 -2
  420. package/dist/navbar-transparent-overlay.js +6 -2
  421. package/dist/offer-modal-membership-image.cjs +6 -2
  422. package/dist/offer-modal-membership-image.js +6 -2
  423. package/dist/offer-modal-newsletter-discount.cjs +6 -2
  424. package/dist/offer-modal-newsletter-discount.js +6 -2
  425. package/dist/offer-modal-sheet-newsletter.cjs +6 -2
  426. package/dist/offer-modal-sheet-newsletter.js +6 -2
  427. package/dist/payment-platform-icon.cjs +27 -2
  428. package/dist/payment-platform-icon.js +7 -2
  429. package/dist/pricing-addons-cards.cjs +19 -15
  430. package/dist/pricing-addons-cards.js +16 -12
  431. package/dist/pricing-addons-featured.cjs +20 -16
  432. package/dist/pricing-addons-featured.js +16 -12
  433. package/dist/pricing-collapsible-plans.cjs +19 -15
  434. package/dist/pricing-collapsible-plans.js +16 -12
  435. package/dist/pricing-columns-toggle.cjs +20 -16
  436. package/dist/pricing-columns-toggle.js +16 -12
  437. package/dist/pricing-comparison-headers.cjs +21 -17
  438. package/dist/pricing-comparison-headers.js +16 -12
  439. package/dist/pricing-comparison-table.cjs +21 -17
  440. package/dist/pricing-comparison-table.js +16 -12
  441. package/dist/pricing-discount-card.cjs +18 -14
  442. package/dist/pricing-discount-card.js +16 -12
  443. package/dist/pricing-enterprise-contact.cjs +18 -14
  444. package/dist/pricing-enterprise-contact.js +16 -12
  445. package/dist/pricing-feature-matrix.cjs +19 -15
  446. package/dist/pricing-feature-matrix.js +16 -12
  447. package/dist/pricing-four-tier-toggle.cjs +20 -16
  448. package/dist/pricing-four-tier-toggle.js +16 -12
  449. package/dist/pricing-full-comparison.cjs +19 -15
  450. package/dist/pricing-full-comparison.js +17 -13
  451. package/dist/pricing-gradient-cards.cjs +20 -16
  452. package/dist/pricing-gradient-cards.js +16 -12
  453. package/dist/pricing-icon-headers.cjs +19 -15
  454. package/dist/pricing-icon-headers.js +16 -12
  455. package/dist/pricing-minimal-cards.cjs +19 -15
  456. package/dist/pricing-minimal-cards.js +16 -12
  457. package/dist/pricing-packages-radio.cjs +18 -14
  458. package/dist/pricing-packages-radio.js +16 -12
  459. package/dist/pricing-popular-highlight.cjs +20 -16
  460. package/dist/pricing-popular-highlight.js +16 -12
  461. package/dist/pricing-radio-toggle.cjs +20 -16
  462. package/dist/pricing-radio-toggle.js +16 -12
  463. package/dist/pricing-responsive-table.cjs +18 -14
  464. package/dist/pricing-responsive-table.js +16 -12
  465. package/dist/pricing-services-cards.cjs +19 -15
  466. package/dist/pricing-services-cards.js +16 -12
  467. package/dist/pricing-simple-card.cjs +18 -14
  468. package/dist/pricing-simple-card.js +16 -12
  469. package/dist/pricing-single-card.cjs +19 -15
  470. package/dist/pricing-single-card.js +16 -12
  471. package/dist/pricing-split-layout.cjs +16 -12
  472. package/dist/pricing-split-layout.js +16 -12
  473. package/dist/pricing-spotlight-card.cjs +18 -14
  474. package/dist/pricing-spotlight-card.js +16 -12
  475. package/dist/pricing-switch-cards.cjs +20 -16
  476. package/dist/pricing-switch-cards.js +16 -12
  477. package/dist/pricing-tabs-toggle.cjs +20 -16
  478. package/dist/pricing-tabs-toggle.js +16 -12
  479. package/dist/pricing-tier-grid.cjs +19 -15
  480. package/dist/pricing-tier-grid.js +16 -12
  481. package/dist/pricing-toggle-cards.cjs +20 -16
  482. package/dist/pricing-toggle-cards.js +16 -12
  483. package/dist/pricing-toggle-period.cjs +18 -14
  484. package/dist/pricing-toggle-period.js +16 -12
  485. package/dist/pricing-two-column-basic.cjs +20 -16
  486. package/dist/pricing-two-column-basic.js +16 -12
  487. package/dist/process-expandable-timeline.cjs +6 -2
  488. package/dist/process-expandable-timeline.js +6 -2
  489. package/dist/process-icon-timeline.cjs +26 -6
  490. package/dist/process-icon-timeline.js +10 -5
  491. package/dist/process-numbered-services.cjs +6 -2
  492. package/dist/process-numbered-services.js +6 -2
  493. package/dist/process-roadmap-timeline.cjs +26 -6
  494. package/dist/process-roadmap-timeline.js +10 -5
  495. package/dist/process-scroll-image.cjs +24 -20
  496. package/dist/process-scroll-image.js +22 -18
  497. package/dist/process-steps-grid.cjs +26 -6
  498. package/dist/process-steps-grid.js +10 -5
  499. package/dist/process-sticky-steps.cjs +6 -2
  500. package/dist/process-sticky-steps.js +6 -2
  501. package/dist/project-background-reveal.cjs +17 -13
  502. package/dist/project-background-reveal.js +16 -12
  503. package/dist/project-card-overlay.cjs +26 -6
  504. package/dist/project-card-overlay.js +10 -5
  505. package/dist/project-carousel-cinematic.cjs +31 -27
  506. package/dist/project-carousel-cinematic.js +26 -22
  507. package/dist/project-carousel-detail-cards.cjs +31 -27
  508. package/dist/project-carousel-detail-cards.js +26 -22
  509. package/dist/project-carousel-minimal.cjs +31 -27
  510. package/dist/project-carousel-minimal.js +26 -22
  511. package/dist/project-detail-architecture-carousel.cjs +6 -2
  512. package/dist/project-detail-architecture-carousel.js +6 -2
  513. package/dist/project-detail-list-related.cjs +6 -2
  514. package/dist/project-detail-list-related.js +6 -2
  515. package/dist/project-detail-photography-breadcrumb.cjs +6 -2
  516. package/dist/project-detail-photography-breadcrumb.js +6 -2
  517. package/dist/project-detail-tabbed-case-study.cjs +6 -2
  518. package/dist/project-detail-tabbed-case-study.js +6 -2
  519. package/dist/project-experience-quote.cjs +17 -13
  520. package/dist/project-experience-quote.js +16 -12
  521. package/dist/project-featured-carousel.cjs +27 -23
  522. package/dist/project-featured-carousel.js +26 -22
  523. package/dist/project-horizontal-cards.cjs +17 -13
  524. package/dist/project-horizontal-cards.js +16 -12
  525. package/dist/project-interactive-hover-reveal.cjs +18 -14
  526. package/dist/project-interactive-hover-reveal.js +16 -12
  527. package/dist/project-scroll-reveal.cjs +26 -6
  528. package/dist/project-scroll-reveal.js +10 -5
  529. package/dist/project-video-carousel.cjs +31 -27
  530. package/dist/project-video-carousel.js +26 -22
  531. package/dist/project-video-hover-bento.cjs +26 -6
  532. package/dist/project-video-hover-bento.js +10 -5
  533. package/dist/project-video-hover-grid.cjs +26 -6
  534. package/dist/project-video-hover-grid.js +10 -5
  535. package/dist/project-video-hover-rounded.cjs +26 -6
  536. package/dist/project-video-hover-rounded.js +10 -5
  537. package/dist/project-video-hover-stack.cjs +26 -6
  538. package/dist/project-video-hover-stack.js +10 -5
  539. package/dist/project-video-hover-two-by-two.cjs +26 -6
  540. package/dist/project-video-hover-two-by-two.js +10 -5
  541. package/dist/project-work-showcase.cjs +17 -13
  542. package/dist/project-work-showcase.js +16 -12
  543. package/dist/project-zigzag-layout.cjs +16 -12
  544. package/dist/project-zigzag-layout.js +16 -12
  545. package/dist/registry.cjs +1742 -1722
  546. package/dist/registry.js +512 -492
  547. package/dist/resource-detail-document-sidebar.cjs +6 -2
  548. package/dist/resource-detail-document-sidebar.js +6 -2
  549. package/dist/resource-detail-whitepaper-sidebar.cjs +6 -2
  550. package/dist/resource-detail-whitepaper-sidebar.js +6 -2
  551. package/dist/resource-list-course-cards.cjs +6 -2
  552. package/dist/resource-list-course-cards.js +6 -2
  553. package/dist/resource-list-featured-articles.cjs +6 -2
  554. package/dist/resource-list-featured-articles.js +6 -2
  555. package/dist/resource-list-featured-grid.cjs +6 -2
  556. package/dist/resource-list-featured-grid.js +6 -2
  557. package/dist/resource-list-hero-filter.cjs +6 -2
  558. package/dist/resource-list-hero-filter.js +6 -2
  559. package/dist/resource-list-news-updates.cjs +6 -2
  560. package/dist/resource-list-news-updates.js +6 -2
  561. package/dist/service-detail-centered-expertise.cjs +16 -12
  562. package/dist/service-detail-centered-expertise.js +16 -12
  563. package/dist/service-detail-compact-cards.cjs +16 -12
  564. package/dist/service-detail-compact-cards.js +16 -12
  565. package/dist/service-detail-sidebar-related.cjs +16 -12
  566. package/dist/service-detail-sidebar-related.js +16 -12
  567. package/dist/service-detail-sidebar-stats.cjs +27 -7
  568. package/dist/service-detail-sidebar-stats.js +10 -5
  569. package/dist/service-hover-carousel.cjs +38 -34
  570. package/dist/service-hover-carousel.js +26 -22
  571. package/dist/services-list-accordion-benefits.cjs +16 -12
  572. package/dist/services-list-accordion-benefits.js +16 -12
  573. package/dist/services-list-accordion.cjs +10 -8
  574. package/dist/services-list-accordion.js +10 -5
  575. package/dist/services-list-cards-hover.cjs +16 -12
  576. package/dist/services-list-cards-hover.js +16 -12
  577. package/dist/services-list-category-accordion.cjs +10 -8
  578. package/dist/services-list-category-accordion.js +10 -5
  579. package/dist/services-list-centered-icons.cjs +27 -7
  580. package/dist/services-list-centered-icons.js +10 -5
  581. package/dist/services-list-culture-tabs.cjs +16 -12
  582. package/dist/services-list-culture-tabs.js +16 -12
  583. package/dist/services-list-feature-spotlight.cjs +27 -7
  584. package/dist/services-list-feature-spotlight.js +10 -5
  585. package/dist/services-list-featured-highlight.cjs +16 -12
  586. package/dist/services-list-featured-highlight.js +16 -12
  587. package/dist/services-list-hero-cards.cjs +6 -2
  588. package/dist/services-list-hero-cards.js +6 -2
  589. package/dist/services-list-icon-grid.cjs +27 -7
  590. package/dist/services-list-icon-grid.js +10 -5
  591. package/dist/services-list-image-cards.cjs +6 -2
  592. package/dist/services-list-image-cards.js +6 -2
  593. package/dist/services-list-image-overlay-grid.cjs +6 -2
  594. package/dist/services-list-image-overlay-grid.js +6 -2
  595. package/dist/services-list-masonry.cjs +16 -12
  596. package/dist/services-list-masonry.js +16 -12
  597. package/dist/services-list-methodology-steps.cjs +16 -12
  598. package/dist/services-list-methodology-steps.js +16 -12
  599. package/dist/services-list-minimal-grid.cjs +16 -12
  600. package/dist/services-list-minimal-grid.js +16 -12
  601. package/dist/services-list-muted-cards.cjs +27 -7
  602. package/dist/services-list-muted-cards.js +10 -5
  603. package/dist/services-list-numbered-steps.cjs +16 -12
  604. package/dist/services-list-numbered-steps.js +16 -12
  605. package/dist/services-list-pricing-grid.cjs +16 -12
  606. package/dist/services-list-pricing-grid.js +16 -12
  607. package/dist/services-list-progress-sidebar.cjs +16 -12
  608. package/dist/services-list-progress-sidebar.js +16 -12
  609. package/dist/services-list-split-checklist.cjs +16 -12
  610. package/dist/services-list-split-checklist.js +16 -12
  611. package/dist/services-list-sticky-image.cjs +6 -2
  612. package/dist/services-list-sticky-image.js +6 -2
  613. package/dist/services-list-table-hover.cjs +6 -2
  614. package/dist/services-list-table-hover.js +6 -2
  615. package/dist/services-list-tabs-features.cjs +10 -8
  616. package/dist/services-list-tabs-features.js +10 -5
  617. package/dist/services-list-timeline.cjs +16 -12
  618. package/dist/services-list-timeline.js +16 -12
  619. package/dist/services-list-two-column-grid.cjs +16 -12
  620. package/dist/services-list-two-column-grid.js +16 -12
  621. package/dist/services-list-vertical-tags.cjs +27 -7
  622. package/dist/services-list-vertical-tags.js +10 -5
  623. package/dist/services-list-video-showcase.cjs +18 -14
  624. package/dist/services-list-video-showcase.js +18 -14
  625. package/dist/social-link-icon.cjs +6 -2
  626. package/dist/social-link-icon.js +6 -2
  627. package/dist/stats-animated-counter.cjs +17 -13
  628. package/dist/stats-animated-counter.js +15 -11
  629. package/dist/stats-card-group.cjs +26 -6
  630. package/dist/stats-card-group.js +10 -5
  631. package/dist/stats-growth-timeline.cjs +22 -18
  632. package/dist/stats-growth-timeline.js +16 -12
  633. package/dist/stats-icon-cards.cjs +26 -6
  634. package/dist/stats-icon-cards.js +10 -5
  635. package/dist/stats-impact-grid.cjs +23 -19
  636. package/dist/stats-impact-grid.js +16 -12
  637. package/dist/stats-primary-secondary.cjs +26 -6
  638. package/dist/stats-primary-secondary.js +10 -5
  639. package/dist/stats-timeline-tabs.cjs +9 -7
  640. package/dist/stats-timeline-tabs.js +10 -5
  641. package/dist/team-alternating-bios.cjs +17 -13
  642. package/dist/team-alternating-bios.js +17 -13
  643. package/dist/team-avatar-social.cjs +17 -13
  644. package/dist/team-avatar-social.js +17 -13
  645. package/dist/team-bio-badges.cjs +17 -13
  646. package/dist/team-bio-badges.js +17 -13
  647. package/dist/team-carousel-experience.cjs +27 -23
  648. package/dist/team-carousel-experience.js +27 -23
  649. package/dist/team-contact-cards.cjs +18 -14
  650. package/dist/team-contact-cards.js +18 -14
  651. package/dist/team-filterable-search.cjs +22 -18
  652. package/dist/team-filterable-search.js +22 -18
  653. package/dist/team-gradient-cards.cjs +17 -13
  654. package/dist/team-gradient-cards.js +17 -13
  655. package/dist/team-grid-animated.cjs +18 -14
  656. package/dist/team-grid-animated.js +18 -14
  657. package/dist/team-hover-highlight.cjs +17 -13
  658. package/dist/team-hover-highlight.js +17 -13
  659. package/dist/team-hover-overlay.cjs +17 -13
  660. package/dist/team-hover-overlay.js +17 -13
  661. package/dist/team-large-images.cjs +17 -13
  662. package/dist/team-large-images.js +17 -13
  663. package/dist/team-role-filter.cjs +20 -16
  664. package/dist/team-role-filter.js +20 -16
  665. package/dist/team-skill-badges.cjs +17 -13
  666. package/dist/team-skill-badges.js +17 -13
  667. package/dist/team-social-cards.cjs +17 -13
  668. package/dist/team-social-cards.js +17 -13
  669. package/dist/team-social-grid.cjs +17 -13
  670. package/dist/team-social-grid.js +17 -13
  671. package/dist/team-testimonial-stats.cjs +17 -13
  672. package/dist/team-testimonial-stats.js +17 -13
  673. package/dist/testimonial-carousel-cards.cjs +33 -29
  674. package/dist/testimonial-carousel-cards.js +26 -22
  675. package/dist/testimonials-animated-split.cjs +9 -7
  676. package/dist/testimonials-animated-split.js +10 -5
  677. package/dist/testimonials-bento-grid.cjs +9 -7
  678. package/dist/testimonials-bento-grid.js +10 -5
  679. package/dist/testimonials-carousel-image.cjs +18 -14
  680. package/dist/testimonials-carousel-image.js +13 -9
  681. package/dist/testimonials-company-logo.cjs +26 -6
  682. package/dist/testimonials-company-logo.js +10 -5
  683. package/dist/testimonials-grid-add-review.cjs +9 -7
  684. package/dist/testimonials-grid-add-review.js +10 -5
  685. package/dist/testimonials-images-helpful.cjs +21 -17
  686. package/dist/testimonials-images-helpful.js +16 -12
  687. package/dist/testimonials-large-quote.cjs +9 -7
  688. package/dist/testimonials-large-quote.js +10 -5
  689. package/dist/testimonials-list-verified.cjs +9 -7
  690. package/dist/testimonials-list-verified.js +10 -5
  691. package/dist/testimonials-mini-dividers.cjs +9 -7
  692. package/dist/testimonials-mini-dividers.js +10 -5
  693. package/dist/testimonials-minimal-numbered.cjs +9 -7
  694. package/dist/testimonials-minimal-numbered.js +10 -5
  695. package/dist/testimonials-quote-carousel.cjs +31 -27
  696. package/dist/testimonials-quote-carousel.js +26 -22
  697. package/dist/testimonials-scrolling-columns.cjs +26 -6
  698. package/dist/testimonials-scrolling-columns.js +10 -5
  699. package/dist/testimonials-split-image.cjs +9 -7
  700. package/dist/testimonials-split-image.js +10 -5
  701. package/dist/testimonials-stats-header.cjs +9 -7
  702. package/dist/testimonials-stats-header.js +10 -5
  703. package/dist/testimonials-twitter-cards.cjs +19 -15
  704. package/dist/testimonials-twitter-cards.js +16 -12
  705. package/dist/timeline-ai-workflow-cards.cjs +27 -7
  706. package/dist/timeline-ai-workflow-cards.js +10 -5
  707. package/dist/timeline-alternating-diagonal.cjs +12 -8
  708. package/dist/timeline-alternating-diagonal.js +12 -8
  709. package/dist/timeline-horizontal-icons.cjs +10 -8
  710. package/dist/timeline-horizontal-icons.js +10 -5
  711. package/dist/timeline-productivity-list.cjs +27 -7
  712. package/dist/timeline-productivity-list.js +10 -5
  713. package/dist/timeline-stepper-animated.cjs +22 -18
  714. package/dist/timeline-stepper-animated.js +21 -17
  715. package/dist/timeline-tabbed-phases.cjs +6 -2
  716. package/dist/timeline-tabbed-phases.js +6 -2
  717. package/dist/timeline-vertical-icon-dashed.cjs +6 -2
  718. package/dist/timeline-vertical-icon-dashed.js +6 -2
  719. package/package.json +3 -3
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import * as React6 from 'react';
3
- import React6__default from 'react';
2
+ import * as React7 from 'react';
3
+ import React7__default from 'react';
4
4
  import { clsx } from 'clsx';
5
5
  import { twMerge } from 'tailwind-merge';
6
6
  import { Img } from '@page-speed/img';
@@ -97,7 +97,7 @@ function useNavigation({
97
97
  href,
98
98
  onClick
99
99
  } = {}) {
100
- const linkType = React6.useMemo(() => {
100
+ const linkType = React7.useMemo(() => {
101
101
  if (!href || href.trim() === "") {
102
102
  return onClick ? "none" : "none";
103
103
  }
@@ -118,7 +118,7 @@ function useNavigation({
118
118
  return "internal";
119
119
  }
120
120
  }, [href, onClick]);
121
- const normalizedHref = React6.useMemo(() => {
121
+ const normalizedHref = React7.useMemo(() => {
122
122
  if (!href || href.trim() === "") {
123
123
  return void 0;
124
124
  }
@@ -136,7 +136,7 @@ function useNavigation({
136
136
  return trimmed;
137
137
  }
138
138
  }, [href, linkType]);
139
- const target = React6.useMemo(() => {
139
+ const target = React7.useMemo(() => {
140
140
  switch (linkType) {
141
141
  case "external":
142
142
  return "_blank";
@@ -149,7 +149,7 @@ function useNavigation({
149
149
  return void 0;
150
150
  }
151
151
  }, [linkType]);
152
- const rel = React6.useMemo(() => {
152
+ const rel = React7.useMemo(() => {
153
153
  if (linkType === "external") {
154
154
  return "noopener noreferrer";
155
155
  }
@@ -158,7 +158,7 @@ function useNavigation({
158
158
  const isExternal = linkType === "external";
159
159
  const isInternal = linkType === "internal";
160
160
  const shouldUseRouter = isInternal && typeof normalizedHref === "string" && normalizedHref.startsWith("/");
161
- const handleClick = React6.useCallback(
161
+ const handleClick = React7.useCallback(
162
162
  (event) => {
163
163
  if (onClick) {
164
164
  try {
@@ -342,7 +342,7 @@ var buttonVariants = cva(baseStyles, {
342
342
  size: "default"
343
343
  }
344
344
  });
345
- var Pressable = React6.forwardRef(
345
+ var Pressable = React7.forwardRef(
346
346
  ({
347
347
  children,
348
348
  className,
@@ -441,9 +441,13 @@ var Pressable = React6.forwardRef(
441
441
  );
442
442
  Pressable.displayName = "Pressable";
443
443
  var DEFAULT_ICON_API_KEY = "au382bi7fsh96w9h9xlrnat2jglx";
444
- function DynamicIcon({ apiKey, ...props }) {
444
+ var DynamicIcon = React7.memo(function DynamicIcon2({
445
+ apiKey,
446
+ ...props
447
+ }) {
445
448
  return /* @__PURE__ */ jsx(Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
446
- }
449
+ });
450
+ DynamicIcon.displayName = "DynamicIcon";
447
451
  function Avatar({
448
452
  className,
449
453
  ...props
@@ -569,7 +573,7 @@ var maxWidthStyles = {
569
573
  "4xl": "max-w-[1536px]",
570
574
  full: "max-w-full"
571
575
  };
572
- var Container = React6__default.forwardRef(
576
+ var Container = React7__default.forwardRef(
573
577
  ({ children, maxWidth = "xl", className, as = "div", ...props }, ref) => {
574
578
  const Component = as;
575
579
  return /* @__PURE__ */ jsx(
@@ -875,7 +879,7 @@ var spacingStyles = {
875
879
  };
876
880
  var predefinedSpacings = ["none", "sm", "md", "lg", "xl", "hero"];
877
881
  var isPredefinedSpacing = (spacing) => predefinedSpacings.includes(spacing);
878
- var Section = React6__default.forwardRef(
882
+ var Section = React7__default.forwardRef(
879
883
  ({
880
884
  id,
881
885
  title,
@@ -969,7 +973,7 @@ var platformIconMap = {
969
973
  dribbble: "cib/dribbble",
970
974
  unknown: "icon-park-solid/circular-connection"
971
975
  };
972
- var SocialLinkIcon = React6.forwardRef(
976
+ var SocialLinkIcon = React7.forwardRef(
973
977
  ({
974
978
  platformName,
975
979
  label,
@@ -982,13 +986,13 @@ var SocialLinkIcon = React6.forwardRef(
982
986
  ...pressableProps
983
987
  }, ref) => {
984
988
  const platform = usePlatformFromUrl(href);
985
- const smartPlatformName = React6.useMemo(() => {
989
+ const smartPlatformName = React7.useMemo(() => {
986
990
  return platform || platformName;
987
991
  }, [platform, platformName]);
988
- const iconName = React6.useMemo(() => {
992
+ const iconName = React7.useMemo(() => {
989
993
  return iconNameOverride || platformIconMap[smartPlatformName];
990
994
  }, [iconNameOverride, smartPlatformName]);
991
- const accessibleLabel = React6.useMemo(() => {
995
+ const accessibleLabel = React7.useMemo(() => {
992
996
  return label || platformName;
993
997
  }, [label, platformName]);
994
998
  return /* @__PURE__ */ jsx(
@@ -1056,10 +1060,10 @@ function ArticleChaptersAuthorComponent({
1056
1060
  pattern,
1057
1061
  patternOpacity
1058
1062
  }) {
1059
- const [activeChapter, setActiveChapter] = React6.useState(
1063
+ const [activeChapter, setActiveChapter] = React7.useState(
1060
1064
  chapters?.[0]?.id || ""
1061
1065
  );
1062
- React6.useEffect(() => {
1066
+ React7.useEffect(() => {
1063
1067
  if (!enableChapterTracking || !chapters || chapters.length === 0) return;
1064
1068
  const observer = new IntersectionObserver(
1065
1069
  (entries) => {
@@ -1077,12 +1081,12 @@ function ArticleChaptersAuthorComponent({
1077
1081
  });
1078
1082
  return () => observer.disconnect();
1079
1083
  }, [chapters, enableChapterTracking]);
1080
- const breadcrumbsContent = React6.useMemo(() => {
1084
+ const breadcrumbsContent = React7.useMemo(() => {
1081
1085
  if (breadcrumbsSlot) return breadcrumbsSlot;
1082
1086
  if (!breadcrumbs || breadcrumbs.length === 0) return null;
1083
1087
  return /* @__PURE__ */ jsx(Breadcrumb, { className: cn("mb-8 md:mb-20", breadcrumbClassName), children: /* @__PURE__ */ jsxs(BreadcrumbList, { children: [
1084
1088
  /* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: "#", children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/home", size: 16 }) }) }) }),
1085
- breadcrumbs.map((crumb, index) => /* @__PURE__ */ jsxs(React6.Fragment, { children: [
1089
+ breadcrumbs.map((crumb, index) => /* @__PURE__ */ jsxs(React7.Fragment, { children: [
1086
1090
  /* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
1087
1091
  /* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: crumb.href, children: crumb.label }) }) })
1088
1092
  ] }, index)),
@@ -1090,7 +1094,7 @@ function ArticleChaptersAuthorComponent({
1090
1094
  /* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbPage, { children: typeof currentPage === "string" ? currentPage : currentPage }) })
1091
1095
  ] }) });
1092
1096
  }, [breadcrumbsSlot, breadcrumbs, currentPage, breadcrumbClassName]);
1093
- const chaptersNavContent = React6.useMemo(() => {
1097
+ const chaptersNavContent = React7.useMemo(() => {
1094
1098
  if (chaptersSlot) return chaptersSlot;
1095
1099
  if (!chapters || chapters.length === 0) return null;
1096
1100
  return /* @__PURE__ */ jsxs("div", { className: cn("rounded-lg border p-4", chaptersClassName), children: [
@@ -1098,7 +1102,7 @@ function ArticleChaptersAuthorComponent({
1098
1102
  /* @__PURE__ */ jsx("nav", { className: "space-y-2", children: chapters.map((chapter) => {
1099
1103
  const isActive = activeChapter === chapter.id;
1100
1104
  if (renderChapterLink) {
1101
- return /* @__PURE__ */ jsx(React6.Fragment, { children: renderChapterLink(chapter, isActive) }, chapter.id);
1105
+ return /* @__PURE__ */ jsx(React7.Fragment, { children: renderChapterLink(chapter, isActive) }, chapter.id);
1102
1106
  }
1103
1107
  return /* @__PURE__ */ jsxs(
1104
1108
  Pressable,
@@ -1132,7 +1136,7 @@ function ArticleChaptersAuthorComponent({
1132
1136
  renderChapterLink,
1133
1137
  chaptersClassName
1134
1138
  ]);
1135
- const authorCardContent = React6.useMemo(() => {
1139
+ const authorCardContent = React7.useMemo(() => {
1136
1140
  if (authorSlot) return authorSlot;
1137
1141
  if (!author) return null;
1138
1142
  let socialLinksContent = null;
@@ -1181,7 +1185,7 @@ function ArticleChaptersAuthorComponent({
1181
1185
  socialLinksContent
1182
1186
  ] });
1183
1187
  }, [authorSlot, author, authorClassName]);
1184
- const heroMediaContent = React6.useMemo(() => {
1188
+ const heroMediaContent = React7.useMemo(() => {
1185
1189
  if (heroMediaSlot) return heroMediaSlot;
1186
1190
  if (!heroImageSrc) return null;
1187
1191
  return /* @__PURE__ */ jsx(
@@ -1203,7 +1207,7 @@ function ArticleChaptersAuthorComponent({
1203
1207
  heroImageClassName,
1204
1208
  optixFlowConfig
1205
1209
  ]);
1206
- const conclusionContent = React6.useMemo(() => {
1210
+ const conclusionContent = React7.useMemo(() => {
1207
1211
  if (conclusionSlot) return conclusionSlot;
1208
1212
  if (!conclusionTitle && !conclusionDescription && (!conclusionActions || conclusionActions.length === 0))
1209
1213
  return null;
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var React5 = require('react');
4
+ var React6 = require('react');
5
5
  var clsx = require('clsx');
6
6
  var tailwindMerge = require('tailwind-merge');
7
7
  var img = require('@page-speed/img');
@@ -30,7 +30,7 @@ function _interopNamespace(e) {
30
30
  return Object.freeze(n);
31
31
  }
32
32
 
33
- var React5__namespace = /*#__PURE__*/_interopNamespace(React5);
33
+ var React6__namespace = /*#__PURE__*/_interopNamespace(React6);
34
34
  var SeparatorPrimitive__namespace = /*#__PURE__*/_interopNamespace(SeparatorPrimitive);
35
35
  var PopoverPrimitive__namespace = /*#__PURE__*/_interopNamespace(PopoverPrimitive);
36
36
 
@@ -120,7 +120,7 @@ function useNavigation({
120
120
  href,
121
121
  onClick
122
122
  } = {}) {
123
- const linkType = React5__namespace.useMemo(() => {
123
+ const linkType = React6__namespace.useMemo(() => {
124
124
  if (!href || href.trim() === "") {
125
125
  return onClick ? "none" : "none";
126
126
  }
@@ -141,7 +141,7 @@ function useNavigation({
141
141
  return "internal";
142
142
  }
143
143
  }, [href, onClick]);
144
- const normalizedHref = React5__namespace.useMemo(() => {
144
+ const normalizedHref = React6__namespace.useMemo(() => {
145
145
  if (!href || href.trim() === "") {
146
146
  return void 0;
147
147
  }
@@ -159,7 +159,7 @@ function useNavigation({
159
159
  return trimmed;
160
160
  }
161
161
  }, [href, linkType]);
162
- const target = React5__namespace.useMemo(() => {
162
+ const target = React6__namespace.useMemo(() => {
163
163
  switch (linkType) {
164
164
  case "external":
165
165
  return "_blank";
@@ -172,7 +172,7 @@ function useNavigation({
172
172
  return void 0;
173
173
  }
174
174
  }, [linkType]);
175
- const rel = React5__namespace.useMemo(() => {
175
+ const rel = React6__namespace.useMemo(() => {
176
176
  if (linkType === "external") {
177
177
  return "noopener noreferrer";
178
178
  }
@@ -181,7 +181,7 @@ function useNavigation({
181
181
  const isExternal = linkType === "external";
182
182
  const isInternal = linkType === "internal";
183
183
  const shouldUseRouter = isInternal && typeof normalizedHref === "string" && normalizedHref.startsWith("/");
184
- const handleClick = React5__namespace.useCallback(
184
+ const handleClick = React6__namespace.useCallback(
185
185
  (event) => {
186
186
  if (onClick) {
187
187
  try {
@@ -365,7 +365,7 @@ var buttonVariants = classVarianceAuthority.cva(baseStyles, {
365
365
  size: "default"
366
366
  }
367
367
  });
368
- var Pressable = React5__namespace.forwardRef(
368
+ var Pressable = React6__namespace.forwardRef(
369
369
  ({
370
370
  children,
371
371
  className,
@@ -464,9 +464,13 @@ var Pressable = React5__namespace.forwardRef(
464
464
  );
465
465
  Pressable.displayName = "Pressable";
466
466
  var DEFAULT_ICON_API_KEY = "au382bi7fsh96w9h9xlrnat2jglx";
467
- function DynamicIcon({ apiKey, ...props }) {
467
+ var DynamicIcon = React6__namespace.memo(function DynamicIcon2({
468
+ apiKey,
469
+ ...props
470
+ }) {
468
471
  return /* @__PURE__ */ jsxRuntime.jsx(icon.Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
469
- }
472
+ });
473
+ DynamicIcon.displayName = "DynamicIcon";
470
474
  function Breadcrumb({ ...props }) {
471
475
  return /* @__PURE__ */ jsxRuntime.jsx("nav", { "aria-label": "breadcrumb", "data-slot": "breadcrumb", ...props });
472
476
  }
@@ -567,7 +571,7 @@ var maxWidthStyles = {
567
571
  "4xl": "max-w-[1536px]",
568
572
  full: "max-w-full"
569
573
  };
570
- var Container = React5__namespace.default.forwardRef(
574
+ var Container = React6__namespace.default.forwardRef(
571
575
  ({ children, maxWidth = "xl", className, as = "div", ...props }, ref) => {
572
576
  const Component = as;
573
577
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -873,7 +877,7 @@ var spacingStyles = {
873
877
  };
874
878
  var predefinedSpacings = ["none", "sm", "md", "lg", "xl", "hero"];
875
879
  var isPredefinedSpacing = (spacing) => predefinedSpacings.includes(spacing);
876
- var Section = React5__namespace.default.forwardRef(
880
+ var Section = React6__namespace.default.forwardRef(
877
881
  ({
878
882
  id,
879
883
  title,
@@ -1000,11 +1004,11 @@ function ArticleCompactTocComponent({
1000
1004
  patternOpacity,
1001
1005
  patternClassName
1002
1006
  }) {
1003
- const [activeSection, setActiveSection] = React5__namespace.useState(
1007
+ const [activeSection, setActiveSection] = React6__namespace.useState(
1004
1008
  sections?.[0]?.id || ""
1005
1009
  );
1006
- const [isTocOpen, setIsTocOpen] = React5__namespace.useState(false);
1007
- React5__namespace.useEffect(() => {
1010
+ const [isTocOpen, setIsTocOpen] = React6__namespace.useState(false);
1011
+ React6__namespace.useEffect(() => {
1008
1012
  if (!enableTocTracking) return;
1009
1013
  const observer = new IntersectionObserver(
1010
1014
  (entries) => {
@@ -1022,12 +1026,12 @@ function ArticleCompactTocComponent({
1022
1026
  });
1023
1027
  return () => observer.disconnect();
1024
1028
  }, [sections, enableTocTracking]);
1025
- const breadcrumbsContent = React5__namespace.useMemo(() => {
1029
+ const breadcrumbsContent = React6__namespace.useMemo(() => {
1026
1030
  if (breadcrumbsSlot) return breadcrumbsSlot;
1027
1031
  if (!breadcrumbs && !currentPage) return null;
1028
1032
  return /* @__PURE__ */ jsxRuntime.jsx(Breadcrumb, { className: cn("mb-6 md:mb-20", breadcrumbClassName), children: /* @__PURE__ */ jsxRuntime.jsxs(BreadcrumbList, { children: [
1029
1033
  /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: "#", children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/home", size: 16 }) }) }) }),
1030
- breadcrumbs?.map((crumb, index) => /* @__PURE__ */ jsxRuntime.jsxs(React5__namespace.Fragment, { children: [
1034
+ breadcrumbs?.map((crumb, index) => /* @__PURE__ */ jsxRuntime.jsxs(React6__namespace.Fragment, { children: [
1031
1035
  /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbSeparator, {}),
1032
1036
  /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: crumb.href, children: crumb.label }) }) })
1033
1037
  ] }, index)),
@@ -1035,13 +1039,13 @@ function ArticleCompactTocComponent({
1035
1039
  /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbPage, { children: currentPage }) })
1036
1040
  ] }) });
1037
1041
  }, [breadcrumbsSlot, breadcrumbs, currentPage, breadcrumbClassName]);
1038
- const renderTocLinks = React5__namespace.useCallback(
1042
+ const renderTocLinks = React6__namespace.useCallback(
1039
1043
  (onLinkClick) => {
1040
1044
  if (!sections) return null;
1041
1045
  return sections.map((section) => {
1042
1046
  const isActive = activeSection === section.id;
1043
1047
  if (renderSectionLink) {
1044
- return /* @__PURE__ */ jsxRuntime.jsx(React5__namespace.Fragment, { children: renderSectionLink(section, isActive) }, section.id);
1048
+ return /* @__PURE__ */ jsxRuntime.jsx(React6__namespace.Fragment, { children: renderSectionLink(section, isActive) }, section.id);
1045
1049
  }
1046
1050
  return /* @__PURE__ */ jsxRuntime.jsx(
1047
1051
  Pressable,
@@ -1060,7 +1064,7 @@ function ArticleCompactTocComponent({
1060
1064
  },
1061
1065
  [sections, activeSection, renderSectionLink]
1062
1066
  );
1063
- const tocContent = React5__namespace.useMemo(() => {
1067
+ const tocContent = React6__namespace.useMemo(() => {
1064
1068
  if (tocSlot) return tocSlot;
1065
1069
  if (!sections || sections.length === 0) return null;
1066
1070
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-8 lg:hidden", children: /* @__PURE__ */ jsxRuntime.jsxs(Popover, { open: isTocOpen, onOpenChange: setIsTocOpen, children: [
@@ -1094,14 +1098,14 @@ function ArticleCompactTocComponent({
1094
1098
  ] }) });
1095
1099
  }, [tocSlot, sections, isTocOpen, tocClassName, renderTocLinks]);
1096
1100
  const hasDesktopToc = !tocSlot && sections && sections.length > 0;
1097
- const desktopTocContent = React5__namespace.useMemo(() => {
1101
+ const desktopTocContent = React6__namespace.useMemo(() => {
1098
1102
  if (!hasDesktopToc) return null;
1099
1103
  return /* @__PURE__ */ jsxRuntime.jsx("aside", { className: cn("hidden lg:block w-64 shrink-0", tocClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("nav", { className: "sticky top-24 max-h-[calc(100vh-8rem)] overflow-y-auto space-y-2 rounded-lg border p-4", children: [
1100
1104
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "mb-3 block text-sm font-semibold", children: "Table of Contents" }),
1101
1105
  renderTocLinks()
1102
1106
  ] }) });
1103
1107
  }, [hasDesktopToc, tocClassName, renderTocLinks]);
1104
- const heroMediaContent = React5__namespace.useMemo(() => {
1108
+ const heroMediaContent = React6__namespace.useMemo(() => {
1105
1109
  if (heroMediaSlot) return heroMediaSlot;
1106
1110
  if (!heroImageSrc) return null;
1107
1111
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import * as React5 from 'react';
3
- import React5__default from 'react';
2
+ import * as React6 from 'react';
3
+ import React6__default from 'react';
4
4
  import { clsx } from 'clsx';
5
5
  import { twMerge } from 'tailwind-merge';
6
6
  import { Img } from '@page-speed/img';
@@ -97,7 +97,7 @@ function useNavigation({
97
97
  href,
98
98
  onClick
99
99
  } = {}) {
100
- const linkType = React5.useMemo(() => {
100
+ const linkType = React6.useMemo(() => {
101
101
  if (!href || href.trim() === "") {
102
102
  return onClick ? "none" : "none";
103
103
  }
@@ -118,7 +118,7 @@ function useNavigation({
118
118
  return "internal";
119
119
  }
120
120
  }, [href, onClick]);
121
- const normalizedHref = React5.useMemo(() => {
121
+ const normalizedHref = React6.useMemo(() => {
122
122
  if (!href || href.trim() === "") {
123
123
  return void 0;
124
124
  }
@@ -136,7 +136,7 @@ function useNavigation({
136
136
  return trimmed;
137
137
  }
138
138
  }, [href, linkType]);
139
- const target = React5.useMemo(() => {
139
+ const target = React6.useMemo(() => {
140
140
  switch (linkType) {
141
141
  case "external":
142
142
  return "_blank";
@@ -149,7 +149,7 @@ function useNavigation({
149
149
  return void 0;
150
150
  }
151
151
  }, [linkType]);
152
- const rel = React5.useMemo(() => {
152
+ const rel = React6.useMemo(() => {
153
153
  if (linkType === "external") {
154
154
  return "noopener noreferrer";
155
155
  }
@@ -158,7 +158,7 @@ function useNavigation({
158
158
  const isExternal = linkType === "external";
159
159
  const isInternal = linkType === "internal";
160
160
  const shouldUseRouter = isInternal && typeof normalizedHref === "string" && normalizedHref.startsWith("/");
161
- const handleClick = React5.useCallback(
161
+ const handleClick = React6.useCallback(
162
162
  (event) => {
163
163
  if (onClick) {
164
164
  try {
@@ -342,7 +342,7 @@ var buttonVariants = cva(baseStyles, {
342
342
  size: "default"
343
343
  }
344
344
  });
345
- var Pressable = React5.forwardRef(
345
+ var Pressable = React6.forwardRef(
346
346
  ({
347
347
  children,
348
348
  className,
@@ -441,9 +441,13 @@ var Pressable = React5.forwardRef(
441
441
  );
442
442
  Pressable.displayName = "Pressable";
443
443
  var DEFAULT_ICON_API_KEY = "au382bi7fsh96w9h9xlrnat2jglx";
444
- function DynamicIcon({ apiKey, ...props }) {
444
+ var DynamicIcon = React6.memo(function DynamicIcon2({
445
+ apiKey,
446
+ ...props
447
+ }) {
445
448
  return /* @__PURE__ */ jsx(Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
446
- }
449
+ });
450
+ DynamicIcon.displayName = "DynamicIcon";
447
451
  function Breadcrumb({ ...props }) {
448
452
  return /* @__PURE__ */ jsx("nav", { "aria-label": "breadcrumb", "data-slot": "breadcrumb", ...props });
449
453
  }
@@ -544,7 +548,7 @@ var maxWidthStyles = {
544
548
  "4xl": "max-w-[1536px]",
545
549
  full: "max-w-full"
546
550
  };
547
- var Container = React5__default.forwardRef(
551
+ var Container = React6__default.forwardRef(
548
552
  ({ children, maxWidth = "xl", className, as = "div", ...props }, ref) => {
549
553
  const Component = as;
550
554
  return /* @__PURE__ */ jsx(
@@ -850,7 +854,7 @@ var spacingStyles = {
850
854
  };
851
855
  var predefinedSpacings = ["none", "sm", "md", "lg", "xl", "hero"];
852
856
  var isPredefinedSpacing = (spacing) => predefinedSpacings.includes(spacing);
853
- var Section = React5__default.forwardRef(
857
+ var Section = React6__default.forwardRef(
854
858
  ({
855
859
  id,
856
860
  title,
@@ -977,11 +981,11 @@ function ArticleCompactTocComponent({
977
981
  patternOpacity,
978
982
  patternClassName
979
983
  }) {
980
- const [activeSection, setActiveSection] = React5.useState(
984
+ const [activeSection, setActiveSection] = React6.useState(
981
985
  sections?.[0]?.id || ""
982
986
  );
983
- const [isTocOpen, setIsTocOpen] = React5.useState(false);
984
- React5.useEffect(() => {
987
+ const [isTocOpen, setIsTocOpen] = React6.useState(false);
988
+ React6.useEffect(() => {
985
989
  if (!enableTocTracking) return;
986
990
  const observer = new IntersectionObserver(
987
991
  (entries) => {
@@ -999,12 +1003,12 @@ function ArticleCompactTocComponent({
999
1003
  });
1000
1004
  return () => observer.disconnect();
1001
1005
  }, [sections, enableTocTracking]);
1002
- const breadcrumbsContent = React5.useMemo(() => {
1006
+ const breadcrumbsContent = React6.useMemo(() => {
1003
1007
  if (breadcrumbsSlot) return breadcrumbsSlot;
1004
1008
  if (!breadcrumbs && !currentPage) return null;
1005
1009
  return /* @__PURE__ */ jsx(Breadcrumb, { className: cn("mb-6 md:mb-20", breadcrumbClassName), children: /* @__PURE__ */ jsxs(BreadcrumbList, { children: [
1006
1010
  /* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: "#", children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/home", size: 16 }) }) }) }),
1007
- breadcrumbs?.map((crumb, index) => /* @__PURE__ */ jsxs(React5.Fragment, { children: [
1011
+ breadcrumbs?.map((crumb, index) => /* @__PURE__ */ jsxs(React6.Fragment, { children: [
1008
1012
  /* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
1009
1013
  /* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: crumb.href, children: crumb.label }) }) })
1010
1014
  ] }, index)),
@@ -1012,13 +1016,13 @@ function ArticleCompactTocComponent({
1012
1016
  /* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbPage, { children: currentPage }) })
1013
1017
  ] }) });
1014
1018
  }, [breadcrumbsSlot, breadcrumbs, currentPage, breadcrumbClassName]);
1015
- const renderTocLinks = React5.useCallback(
1019
+ const renderTocLinks = React6.useCallback(
1016
1020
  (onLinkClick) => {
1017
1021
  if (!sections) return null;
1018
1022
  return sections.map((section) => {
1019
1023
  const isActive = activeSection === section.id;
1020
1024
  if (renderSectionLink) {
1021
- return /* @__PURE__ */ jsx(React5.Fragment, { children: renderSectionLink(section, isActive) }, section.id);
1025
+ return /* @__PURE__ */ jsx(React6.Fragment, { children: renderSectionLink(section, isActive) }, section.id);
1022
1026
  }
1023
1027
  return /* @__PURE__ */ jsx(
1024
1028
  Pressable,
@@ -1037,7 +1041,7 @@ function ArticleCompactTocComponent({
1037
1041
  },
1038
1042
  [sections, activeSection, renderSectionLink]
1039
1043
  );
1040
- const tocContent = React5.useMemo(() => {
1044
+ const tocContent = React6.useMemo(() => {
1041
1045
  if (tocSlot) return tocSlot;
1042
1046
  if (!sections || sections.length === 0) return null;
1043
1047
  return /* @__PURE__ */ jsx("div", { className: "mb-8 lg:hidden", children: /* @__PURE__ */ jsxs(Popover, { open: isTocOpen, onOpenChange: setIsTocOpen, children: [
@@ -1071,14 +1075,14 @@ function ArticleCompactTocComponent({
1071
1075
  ] }) });
1072
1076
  }, [tocSlot, sections, isTocOpen, tocClassName, renderTocLinks]);
1073
1077
  const hasDesktopToc = !tocSlot && sections && sections.length > 0;
1074
- const desktopTocContent = React5.useMemo(() => {
1078
+ const desktopTocContent = React6.useMemo(() => {
1075
1079
  if (!hasDesktopToc) return null;
1076
1080
  return /* @__PURE__ */ jsx("aside", { className: cn("hidden lg:block w-64 shrink-0", tocClassName), children: /* @__PURE__ */ jsxs("nav", { className: "sticky top-24 max-h-[calc(100vh-8rem)] overflow-y-auto space-y-2 rounded-lg border p-4", children: [
1077
1081
  /* @__PURE__ */ jsx("span", { className: "mb-3 block text-sm font-semibold", children: "Table of Contents" }),
1078
1082
  renderTocLinks()
1079
1083
  ] }) });
1080
1084
  }, [hasDesktopToc, tocClassName, renderTocLinks]);
1081
- const heroMediaContent = React5.useMemo(() => {
1085
+ const heroMediaContent = React6.useMemo(() => {
1082
1086
  if (heroMediaSlot) return heroMediaSlot;
1083
1087
  if (!heroImageSrc) return null;
1084
1088
  return /* @__PURE__ */ jsx(
@@ -461,9 +461,13 @@ var Pressable = React__namespace.forwardRef(
461
461
  );
462
462
  Pressable.displayName = "Pressable";
463
463
  var DEFAULT_ICON_API_KEY = "au382bi7fsh96w9h9xlrnat2jglx";
464
- function DynamicIcon({ apiKey, ...props }) {
464
+ var DynamicIcon = React__namespace.memo(function DynamicIcon2({
465
+ apiKey,
466
+ ...props
467
+ }) {
465
468
  return /* @__PURE__ */ jsxRuntime.jsx(icon.Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
466
- }
469
+ });
470
+ DynamicIcon.displayName = "DynamicIcon";
467
471
  function Avatar({
468
472
  className,
469
473
  ...props
@@ -439,9 +439,13 @@ var Pressable = React.forwardRef(
439
439
  );
440
440
  Pressable.displayName = "Pressable";
441
441
  var DEFAULT_ICON_API_KEY = "au382bi7fsh96w9h9xlrnat2jglx";
442
- function DynamicIcon({ apiKey, ...props }) {
442
+ var DynamicIcon = React.memo(function DynamicIcon2({
443
+ apiKey,
444
+ ...props
445
+ }) {
443
446
  return /* @__PURE__ */ jsx(Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
444
- }
447
+ });
448
+ DynamicIcon.displayName = "DynamicIcon";
445
449
  function Avatar({
446
450
  className,
447
451
  ...props