@opensite/ui 0.5.3 → 0.5.5

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 (585) hide show
  1. package/dist/about-company-profile.cjs +11 -11
  2. package/dist/about-company-profile.js +12 -11
  3. package/dist/about-developer-profile.cjs +11 -11
  4. package/dist/about-developer-profile.js +12 -11
  5. package/dist/about-developer-story.cjs +11 -11
  6. package/dist/about-developer-story.js +12 -11
  7. package/dist/about-interactive-tabs.cjs +10 -5
  8. package/dist/about-interactive-tabs.js +12 -6
  9. package/dist/about-location-info-hero.cjs +14 -14
  10. package/dist/about-location-info-hero.js +15 -15
  11. package/dist/about-minimal-story.cjs +5 -4
  12. package/dist/about-minimal-story.js +6 -5
  13. package/dist/about-mission-dual-image.cjs +5 -5
  14. package/dist/about-mission-dual-image.js +6 -5
  15. package/dist/about-mission-features.cjs +5 -4
  16. package/dist/about-mission-features.js +6 -5
  17. package/dist/about-network-spotlight.cjs +12 -134
  18. package/dist/about-network-spotlight.js +13 -135
  19. package/dist/about-startup-team.cjs +10 -12
  20. package/dist/about-startup-team.js +11 -12
  21. package/dist/about-stats-showcase.cjs +17 -16
  22. package/dist/about-stats-showcase.js +17 -16
  23. package/dist/about-stats-sidebar.cjs +8 -7
  24. package/dist/about-stats-sidebar.js +8 -7
  25. package/dist/about-story-expertise.cjs +17 -139
  26. package/dist/about-story-expertise.js +18 -140
  27. package/dist/about-story-gallery.cjs +6 -9
  28. package/dist/about-story-gallery.js +6 -9
  29. package/dist/about-story-hero.cjs +6 -9
  30. package/dist/about-story-hero.js +7 -10
  31. package/dist/about-streamline-team.cjs +10 -10
  32. package/dist/about-streamline-team.js +11 -10
  33. package/dist/about-vision-gallery.cjs +33 -40
  34. package/dist/about-vision-gallery.d.cts +44 -24
  35. package/dist/about-vision-gallery.d.ts +44 -24
  36. package/dist/about-vision-gallery.js +34 -40
  37. package/dist/alternating-blocks.cjs +5 -5
  38. package/dist/alternating-blocks.js +5 -5
  39. package/dist/article-breadcrumb-social.cjs +35 -41
  40. package/dist/article-breadcrumb-social.d.cts +0 -2
  41. package/dist/article-breadcrumb-social.d.ts +0 -2
  42. package/dist/article-breadcrumb-social.js +35 -41
  43. package/dist/article-chapters-author.cjs +80 -80
  44. package/dist/article-chapters-author.js +79 -79
  45. package/dist/article-compact-toc.cjs +31 -30
  46. package/dist/article-compact-toc.js +30 -29
  47. package/dist/article-hero-prose.cjs +9 -9
  48. package/dist/article-hero-prose.d.cts +5 -5
  49. package/dist/article-hero-prose.d.ts +5 -5
  50. package/dist/article-hero-prose.js +9 -9
  51. package/dist/article-sidebar-sticky.cjs +12 -11
  52. package/dist/article-sidebar-sticky.js +12 -11
  53. package/dist/article-split-animated.cjs +23 -142
  54. package/dist/article-split-animated.js +23 -142
  55. package/dist/article-toc-sidebar.cjs +31 -31
  56. package/dist/article-toc-sidebar.js +30 -30
  57. package/dist/banner-announcement-dismissible.cjs +37 -17
  58. package/dist/banner-announcement-dismissible.d.cts +0 -2
  59. package/dist/banner-announcement-dismissible.d.ts +0 -2
  60. package/dist/banner-announcement-dismissible.js +38 -18
  61. package/dist/banner-countdown-sale.cjs +19 -11
  62. package/dist/banner-countdown-sale.d.cts +0 -1
  63. package/dist/banner-countdown-sale.d.ts +0 -1
  64. package/dist/banner-countdown-sale.js +21 -13
  65. package/dist/banner-delivery-countdown.cjs +29 -24
  66. package/dist/banner-delivery-countdown.d.cts +0 -2
  67. package/dist/banner-delivery-countdown.d.ts +0 -2
  68. package/dist/banner-delivery-countdown.js +30 -25
  69. package/dist/banner-event-promo.cjs +28 -13
  70. package/dist/banner-event-promo.js +29 -13
  71. package/dist/banner-floating-offer.cjs +42 -24
  72. package/dist/banner-floating-offer.d.cts +0 -3
  73. package/dist/banner-floating-offer.d.ts +0 -3
  74. package/dist/banner-floating-offer.js +43 -25
  75. package/dist/banner-gdpr-rights.cjs +36 -19
  76. package/dist/banner-gdpr-rights.d.cts +3 -5
  77. package/dist/banner-gdpr-rights.d.ts +3 -5
  78. package/dist/banner-gdpr-rights.js +37 -20
  79. package/dist/banner-privacy-notice.cjs +34 -17
  80. package/dist/banner-privacy-notice.d.cts +0 -2
  81. package/dist/banner-privacy-notice.d.ts +0 -2
  82. package/dist/banner-privacy-notice.js +35 -18
  83. package/dist/banner-promo-cta.cjs +27 -12
  84. package/dist/banner-promo-cta.js +28 -12
  85. package/dist/banner-social-follow.cjs +37 -17
  86. package/dist/banner-social-follow.d.cts +0 -2
  87. package/dist/banner-social-follow.d.ts +0 -2
  88. package/dist/banner-social-follow.js +38 -18
  89. package/dist/banner-survey-incentive.cjs +34 -17
  90. package/dist/banner-survey-incentive.d.cts +0 -2
  91. package/dist/banner-survey-incentive.d.ts +0 -2
  92. package/dist/banner-survey-incentive.js +35 -18
  93. package/dist/blog-cards-read-time.cjs +408 -24
  94. package/dist/blog-cards-read-time.d.cts +20 -1
  95. package/dist/blog-cards-read-time.d.ts +20 -1
  96. package/dist/blog-cards-read-time.js +409 -24
  97. package/dist/blog-cards-tagline-cta.cjs +406 -19
  98. package/dist/blog-cards-tagline-cta.d.cts +20 -1
  99. package/dist/blog-cards-tagline-cta.d.ts +20 -1
  100. package/dist/blog-cards-tagline-cta.js +407 -19
  101. package/dist/blog-category-overlay.cjs +407 -20
  102. package/dist/blog-category-overlay.d.cts +27 -8
  103. package/dist/blog-category-overlay.d.ts +27 -8
  104. package/dist/blog-category-overlay.js +408 -20
  105. package/dist/blog-featured-popular.cjs +406 -19
  106. package/dist/blog-featured-popular.d.cts +20 -1
  107. package/dist/blog-featured-popular.d.ts +20 -1
  108. package/dist/blog-featured-popular.js +407 -19
  109. package/dist/blog-filtered-results.cjs +457 -71
  110. package/dist/blog-filtered-results.d.cts +38 -19
  111. package/dist/blog-filtered-results.d.ts +38 -19
  112. package/dist/blog-filtered-results.js +455 -69
  113. package/dist/blog-grid-author-cards.cjs +408 -20
  114. package/dist/blog-grid-author-cards.d.cts +28 -9
  115. package/dist/blog-grid-author-cards.d.ts +28 -9
  116. package/dist/blog-grid-author-cards.js +409 -20
  117. package/dist/blog-grid-nine-posts.cjs +403 -16
  118. package/dist/blog-grid-nine-posts.d.cts +24 -5
  119. package/dist/blog-grid-nine-posts.d.ts +24 -5
  120. package/dist/blog-grid-nine-posts.js +404 -16
  121. package/dist/blog-horizontal-cards.cjs +407 -20
  122. package/dist/blog-horizontal-cards.d.cts +21 -2
  123. package/dist/blog-horizontal-cards.d.ts +21 -2
  124. package/dist/blog-horizontal-cards.js +408 -20
  125. package/dist/blog-horizontal-timeline.cjs +401 -14
  126. package/dist/blog-horizontal-timeline.d.cts +28 -9
  127. package/dist/blog-horizontal-timeline.d.ts +28 -9
  128. package/dist/blog-horizontal-timeline.js +402 -14
  129. package/dist/blog-masonry-featured.cjs +405 -18
  130. package/dist/blog-masonry-featured.d.cts +28 -9
  131. package/dist/blog-masonry-featured.d.ts +28 -9
  132. package/dist/blog-masonry-featured.js +406 -18
  133. package/dist/blog-related-articles.cjs +401 -14
  134. package/dist/blog-related-articles.d.cts +20 -1
  135. package/dist/blog-related-articles.d.ts +20 -1
  136. package/dist/blog-related-articles.js +402 -14
  137. package/dist/blog-tech-insights.cjs +410 -23
  138. package/dist/blog-tech-insights.d.cts +31 -12
  139. package/dist/blog-tech-insights.d.ts +31 -12
  140. package/dist/blog-tech-insights.js +411 -23
  141. package/dist/case-studies-featured-border.cjs +423 -14
  142. package/dist/case-studies-featured-border.d.cts +20 -1
  143. package/dist/case-studies-featured-border.d.ts +20 -1
  144. package/dist/case-studies-featured-border.js +424 -14
  145. package/dist/case-studies-image-grid.cjs +404 -7
  146. package/dist/case-studies-image-grid.d.cts +20 -1
  147. package/dist/case-studies-image-grid.d.ts +20 -1
  148. package/dist/case-studies-image-grid.js +405 -7
  149. package/dist/case-studies-stats-card.cjs +416 -29
  150. package/dist/case-studies-stats-card.d.cts +20 -1
  151. package/dist/case-studies-stats-card.d.ts +20 -1
  152. package/dist/case-studies-stats-card.js +417 -29
  153. package/dist/case-studies-testimonial-stats.cjs +409 -10
  154. package/dist/case-studies-testimonial-stats.d.cts +20 -1
  155. package/dist/case-studies-testimonial-stats.d.ts +20 -1
  156. package/dist/case-studies-testimonial-stats.js +409 -10
  157. package/dist/case-study-prose-sidebar.cjs +414 -23
  158. package/dist/case-study-prose-sidebar.d.cts +34 -15
  159. package/dist/case-study-prose-sidebar.d.ts +34 -15
  160. package/dist/case-study-prose-sidebar.js +415 -23
  161. package/dist/case-study-stats-metrics.cjs +443 -43
  162. package/dist/case-study-stats-metrics.d.cts +39 -20
  163. package/dist/case-study-stats-metrics.d.ts +39 -20
  164. package/dist/case-study-stats-metrics.js +444 -43
  165. package/dist/case-study-toc-social-sidebar.cjs +436 -46
  166. package/dist/case-study-toc-social-sidebar.d.cts +36 -17
  167. package/dist/case-study-toc-social-sidebar.d.ts +36 -17
  168. package/dist/case-study-toc-social-sidebar.js +437 -47
  169. package/dist/comparison-ai-models.cjs +498 -77
  170. package/dist/comparison-ai-models.d.cts +25 -7
  171. package/dist/comparison-ai-models.d.ts +25 -7
  172. package/dist/comparison-ai-models.js +497 -76
  173. package/dist/comparison-feature-cards.cjs +492 -80
  174. package/dist/comparison-feature-cards.d.cts +25 -6
  175. package/dist/comparison-feature-cards.d.ts +25 -6
  176. package/dist/comparison-feature-cards.js +492 -79
  177. package/dist/comparison-feature-grid.cjs +475 -47
  178. package/dist/comparison-feature-grid.d.cts +24 -1
  179. package/dist/comparison-feature-grid.d.ts +24 -1
  180. package/dist/comparison-feature-grid.js +476 -47
  181. package/dist/comparison-grid-badges.cjs +422 -25
  182. package/dist/comparison-grid-badges.d.cts +26 -3
  183. package/dist/comparison-grid-badges.d.ts +26 -3
  184. package/dist/comparison-grid-badges.js +423 -25
  185. package/dist/comparison-image-cards.cjs +450 -36
  186. package/dist/comparison-image-cards.d.cts +23 -4
  187. package/dist/comparison-image-cards.d.ts +23 -4
  188. package/dist/comparison-image-cards.js +451 -36
  189. package/dist/comparison-legacy-modern.cjs +442 -41
  190. package/dist/comparison-legacy-modern.d.cts +29 -6
  191. package/dist/comparison-legacy-modern.d.ts +29 -6
  192. package/dist/comparison-legacy-modern.js +443 -41
  193. package/dist/comparison-metrics-rows.cjs +478 -47
  194. package/dist/comparison-metrics-rows.d.cts +20 -1
  195. package/dist/comparison-metrics-rows.d.ts +20 -1
  196. package/dist/comparison-metrics-rows.js +479 -47
  197. package/dist/comparison-table-tabs.cjs +423 -13
  198. package/dist/comparison-table-tabs.d.cts +25 -2
  199. package/dist/comparison-table-tabs.d.ts +25 -2
  200. package/dist/comparison-table-tabs.js +424 -14
  201. package/dist/comparison-table-tooltips.cjs +443 -37
  202. package/dist/comparison-table-tooltips.d.cts +24 -1
  203. package/dist/comparison-table-tooltips.d.ts +24 -1
  204. package/dist/comparison-table-tooltips.js +443 -37
  205. package/dist/comparison-table-two-column.cjs +463 -53
  206. package/dist/comparison-table-two-column.d.cts +24 -6
  207. package/dist/comparison-table-two-column.d.ts +24 -6
  208. package/dist/comparison-table-two-column.js +464 -53
  209. package/dist/components.cjs +8 -8
  210. package/dist/components.js +9 -9
  211. package/dist/contact-callback.cjs +577 -190
  212. package/dist/contact-callback.d.cts +35 -1
  213. package/dist/contact-callback.d.ts +35 -1
  214. package/dist/contact-callback.js +578 -190
  215. package/dist/contact-card.cjs +502 -115
  216. package/dist/contact-card.d.cts +20 -1
  217. package/dist/contact-card.d.ts +20 -1
  218. package/dist/contact-card.js +503 -115
  219. package/dist/contact-careers.cjs +628 -241
  220. package/dist/contact-careers.d.cts +20 -2
  221. package/dist/contact-careers.d.ts +20 -2
  222. package/dist/contact-careers.js +629 -242
  223. package/dist/contact-catering.cjs +664 -277
  224. package/dist/contact-catering.d.cts +20 -1
  225. package/dist/contact-catering.d.ts +20 -1
  226. package/dist/contact-catering.js +665 -277
  227. package/dist/contact-consultation.cjs +567 -180
  228. package/dist/contact-consultation.d.cts +20 -2
  229. package/dist/contact-consultation.d.ts +20 -2
  230. package/dist/contact-consultation.js +568 -180
  231. package/dist/contact-dark.cjs +486 -99
  232. package/dist/contact-dark.d.cts +20 -2
  233. package/dist/contact-dark.d.ts +20 -2
  234. package/dist/contact-dark.js +487 -99
  235. package/dist/contact-demo.cjs +558 -171
  236. package/dist/contact-demo.d.cts +20 -2
  237. package/dist/contact-demo.d.ts +20 -2
  238. package/dist/contact-demo.js +559 -171
  239. package/dist/contact-emergency.cjs +571 -184
  240. package/dist/contact-emergency.d.cts +20 -2
  241. package/dist/contact-emergency.d.ts +20 -2
  242. package/dist/contact-emergency.js +572 -184
  243. package/dist/contact-event.cjs +489 -102
  244. package/dist/contact-event.d.cts +20 -2
  245. package/dist/contact-event.d.ts +20 -2
  246. package/dist/contact-event.js +490 -102
  247. package/dist/contact-faq.cjs +478 -91
  248. package/dist/contact-faq.d.cts +20 -2
  249. package/dist/contact-faq.d.ts +20 -2
  250. package/dist/contact-faq.js +479 -91
  251. package/dist/contact-feedback.cjs +450 -63
  252. package/dist/contact-feedback.d.cts +20 -2
  253. package/dist/contact-feedback.d.ts +20 -2
  254. package/dist/contact-feedback.js +451 -63
  255. package/dist/contact-fitness.cjs +489 -102
  256. package/dist/contact-fitness.d.cts +20 -2
  257. package/dist/contact-fitness.d.ts +20 -2
  258. package/dist/contact-fitness.js +490 -102
  259. package/dist/contact-floating-banner.cjs +5 -5
  260. package/dist/contact-floating-banner.js +5 -5
  261. package/dist/contact-guest.cjs +489 -102
  262. package/dist/contact-guest.d.cts +20 -2
  263. package/dist/contact-guest.d.ts +20 -2
  264. package/dist/contact-guest.js +490 -102
  265. package/dist/contact-image.cjs +489 -102
  266. package/dist/contact-image.d.cts +20 -2
  267. package/dist/contact-image.d.ts +20 -2
  268. package/dist/contact-image.js +490 -102
  269. package/dist/contact-insurance.cjs +489 -102
  270. package/dist/contact-insurance.d.cts +20 -2
  271. package/dist/contact-insurance.d.ts +20 -2
  272. package/dist/contact-insurance.js +490 -102
  273. package/dist/contact-interview.cjs +489 -102
  274. package/dist/contact-interview.d.cts +20 -2
  275. package/dist/contact-interview.d.ts +20 -2
  276. package/dist/contact-interview.js +490 -102
  277. package/dist/contact-locations.cjs +489 -102
  278. package/dist/contact-locations.d.cts +20 -2
  279. package/dist/contact-locations.d.ts +20 -2
  280. package/dist/contact-locations.js +490 -102
  281. package/dist/contact-maintenance.cjs +489 -102
  282. package/dist/contact-maintenance.d.cts +20 -2
  283. package/dist/contact-maintenance.d.ts +20 -2
  284. package/dist/contact-maintenance.js +490 -102
  285. package/dist/contact-map.cjs +489 -102
  286. package/dist/contact-map.d.cts +20 -2
  287. package/dist/contact-map.d.ts +20 -2
  288. package/dist/contact-map.js +490 -102
  289. package/dist/contact-minimal.cjs +466 -79
  290. package/dist/contact-minimal.d.cts +32 -1
  291. package/dist/contact-minimal.d.ts +32 -1
  292. package/dist/contact-minimal.js +467 -79
  293. package/dist/contact-moving.cjs +489 -102
  294. package/dist/contact-moving.d.cts +20 -2
  295. package/dist/contact-moving.d.ts +20 -2
  296. package/dist/contact-moving.js +490 -102
  297. package/dist/contact-multistep.cjs +489 -102
  298. package/dist/contact-multistep.d.cts +20 -2
  299. package/dist/contact-multistep.d.ts +20 -2
  300. package/dist/contact-multistep.js +490 -102
  301. package/dist/contact-partnership.cjs +489 -102
  302. package/dist/contact-partnership.d.cts +20 -2
  303. package/dist/contact-partnership.d.ts +20 -2
  304. package/dist/contact-partnership.js +490 -102
  305. package/dist/contact-photography.cjs +489 -102
  306. package/dist/contact-photography.d.cts +20 -2
  307. package/dist/contact-photography.d.ts +20 -2
  308. package/dist/contact-photography.js +490 -102
  309. package/dist/contact-press.cjs +489 -102
  310. package/dist/contact-press.d.cts +20 -2
  311. package/dist/contact-press.d.ts +20 -2
  312. package/dist/contact-press.js +490 -102
  313. package/dist/contact-quote.cjs +489 -102
  314. package/dist/contact-quote.d.cts +20 -2
  315. package/dist/contact-quote.d.ts +20 -2
  316. package/dist/contact-quote.js +490 -102
  317. package/dist/contact-referral.cjs +489 -102
  318. package/dist/contact-referral.d.cts +20 -2
  319. package/dist/contact-referral.d.ts +20 -2
  320. package/dist/contact-referral.js +490 -102
  321. package/dist/contact-report.cjs +489 -102
  322. package/dist/contact-report.d.cts +20 -2
  323. package/dist/contact-report.d.ts +20 -2
  324. package/dist/contact-report.js +490 -102
  325. package/dist/contact-reservation.cjs +489 -102
  326. package/dist/contact-reservation.d.cts +20 -2
  327. package/dist/contact-reservation.d.ts +20 -2
  328. package/dist/contact-reservation.js +490 -102
  329. package/dist/contact-retreat.cjs +489 -102
  330. package/dist/contact-retreat.d.cts +20 -2
  331. package/dist/contact-retreat.d.ts +20 -2
  332. package/dist/contact-retreat.js +490 -102
  333. package/dist/contact-rsvp.cjs +489 -102
  334. package/dist/contact-rsvp.d.cts +20 -2
  335. package/dist/contact-rsvp.d.ts +20 -2
  336. package/dist/contact-rsvp.js +490 -102
  337. package/dist/contact-sales.cjs +489 -102
  338. package/dist/contact-sales.d.cts +20 -1
  339. package/dist/contact-sales.d.ts +20 -1
  340. package/dist/contact-sales.js +490 -102
  341. package/dist/contact-schedule.cjs +489 -102
  342. package/dist/contact-schedule.d.cts +20 -2
  343. package/dist/contact-schedule.d.ts +20 -2
  344. package/dist/contact-schedule.js +490 -102
  345. package/dist/contact-sponsorship.cjs +489 -102
  346. package/dist/contact-sponsorship.d.cts +20 -2
  347. package/dist/contact-sponsorship.d.ts +20 -2
  348. package/dist/contact-sponsorship.js +490 -102
  349. package/dist/contact-support.cjs +463 -76
  350. package/dist/contact-support.d.cts +20 -2
  351. package/dist/contact-support.d.ts +20 -2
  352. package/dist/contact-support.js +464 -76
  353. package/dist/contact-tenant.cjs +489 -102
  354. package/dist/contact-tenant.d.cts +20 -2
  355. package/dist/contact-tenant.d.ts +20 -2
  356. package/dist/contact-tenant.js +490 -102
  357. package/dist/contact-vendor.cjs +489 -102
  358. package/dist/contact-vendor.d.cts +20 -2
  359. package/dist/contact-vendor.d.ts +20 -2
  360. package/dist/contact-vendor.js +490 -102
  361. package/dist/contact-volunteer.cjs +489 -102
  362. package/dist/contact-volunteer.d.cts +20 -2
  363. package/dist/contact-volunteer.d.ts +20 -2
  364. package/dist/contact-volunteer.js +490 -102
  365. package/dist/contact-warranty.cjs +489 -102
  366. package/dist/contact-warranty.d.cts +20 -2
  367. package/dist/contact-warranty.d.ts +20 -2
  368. package/dist/contact-warranty.js +490 -102
  369. package/dist/contact-wedding.cjs +489 -102
  370. package/dist/contact-wedding.d.cts +20 -2
  371. package/dist/contact-wedding.d.ts +20 -2
  372. package/dist/contact-wedding.js +490 -102
  373. package/dist/cta-accent-background.cjs +11 -11
  374. package/dist/cta-accent-background.js +12 -12
  375. package/dist/cta-app-download-newsletter.cjs +16 -135
  376. package/dist/cta-app-download-newsletter.js +17 -136
  377. package/dist/cta-background-icon-badge.cjs +12 -131
  378. package/dist/cta-background-icon-badge.js +13 -132
  379. package/dist/cta-case-study-testimonial.cjs +31 -154
  380. package/dist/cta-case-study-testimonial.js +32 -155
  381. package/dist/cta-documentation-links.cjs +15 -15
  382. package/dist/cta-documentation-links.js +16 -16
  383. package/dist/cta-enterprise-dark-features.cjs +21 -21
  384. package/dist/cta-enterprise-dark-features.js +22 -22
  385. package/dist/cta-enterprise-split.cjs +14 -14
  386. package/dist/cta-enterprise-split.js +15 -15
  387. package/dist/cta-feature-cards-grid.cjs +16 -16
  388. package/dist/cta-feature-cards-grid.js +17 -17
  389. package/dist/cta-feature-checklist.cjs +14 -14
  390. package/dist/cta-feature-checklist.js +15 -15
  391. package/dist/cta-feature-list.cjs +16 -135
  392. package/dist/cta-feature-list.js +17 -136
  393. package/dist/cta-fullwidth-background.cjs +14 -133
  394. package/dist/cta-fullwidth-background.js +15 -134
  395. package/dist/cta-gradient-logos-floating.cjs +17 -17
  396. package/dist/cta-gradient-logos-floating.js +18 -18
  397. package/dist/cta-gradient-stats-hero.cjs +16 -16
  398. package/dist/cta-gradient-stats-hero.js +17 -17
  399. package/dist/cta-hero-feature-cards.cjs +36 -136
  400. package/dist/cta-hero-feature-cards.js +37 -137
  401. package/dist/cta-image-overlay-arrow.cjs +12 -131
  402. package/dist/cta-image-overlay-arrow.js +13 -132
  403. package/dist/cta-image-overlay-centered.cjs +12 -131
  404. package/dist/cta-image-overlay-centered.js +13 -132
  405. package/dist/cta-minimal-separator.cjs +8 -8
  406. package/dist/cta-minimal-separator.js +9 -9
  407. package/dist/cta-newsletter-features.cjs +14 -14
  408. package/dist/cta-newsletter-features.js +15 -15
  409. package/dist/cta-pattern-background.cjs +11 -11
  410. package/dist/cta-pattern-background.js +12 -12
  411. package/dist/cta-platform-demo.cjs +16 -139
  412. package/dist/cta-platform-demo.js +17 -140
  413. package/dist/cta-simple-centered.cjs +11 -11
  414. package/dist/cta-simple-centered.js +12 -12
  415. package/dist/cta-split-gradient-image.cjs +14 -133
  416. package/dist/cta-split-gradient-image.js +15 -134
  417. package/dist/cta-split-image-logos.cjs +17 -136
  418. package/dist/cta-split-image-logos.js +18 -137
  419. package/dist/cta-split-image.cjs +60 -174
  420. package/dist/cta-split-image.js +61 -175
  421. package/dist/cta-stacked-cards.cjs +11 -11
  422. package/dist/cta-stacked-cards.js +12 -12
  423. package/dist/cta-video-background-hero.cjs +16 -100
  424. package/dist/cta-video-background-hero.js +17 -101
  425. package/dist/cta-workflow-tabs.cjs +18 -137
  426. package/dist/cta-workflow-tabs.js +19 -138
  427. package/dist/hero-ad-campaign-expert.cjs +2 -2
  428. package/dist/hero-ad-campaign-expert.js +2 -2
  429. package/dist/hero-adaptable-product-grid.cjs +2 -2
  430. package/dist/hero-adaptable-product-grid.js +2 -2
  431. package/dist/hero-agency-animated-images.cjs +2 -2
  432. package/dist/hero-agency-animated-images.js +2 -2
  433. package/dist/hero-ai-powered-carousel.cjs +2 -2
  434. package/dist/hero-ai-powered-carousel.js +2 -2
  435. package/dist/hero-announcement-badge.cjs +2 -2
  436. package/dist/hero-announcement-badge.js +2 -2
  437. package/dist/hero-architecture-fullscreen.cjs +2 -2
  438. package/dist/hero-architecture-fullscreen.js +2 -2
  439. package/dist/hero-badge-image-split.cjs +2 -2
  440. package/dist/hero-badge-image-split.js +2 -2
  441. package/dist/hero-badge-shadow-overlay.cjs +2 -2
  442. package/dist/hero-badge-shadow-overlay.js +2 -2
  443. package/dist/hero-billing-platform-logos.cjs +2 -2
  444. package/dist/hero-billing-platform-logos.js +2 -2
  445. package/dist/hero-business-carousel-dots.cjs +2 -2
  446. package/dist/hero-business-carousel-dots.js +2 -2
  447. package/dist/hero-business-operations-mosaic.cjs +2 -2
  448. package/dist/hero-business-operations-mosaic.js +2 -2
  449. package/dist/hero-centered-gradient-cta.cjs +2 -2
  450. package/dist/hero-centered-gradient-cta.js +2 -2
  451. package/dist/hero-centered-image-grid.cjs +2 -2
  452. package/dist/hero-centered-image-grid.js +2 -2
  453. package/dist/hero-centered-screenshot.cjs +2 -2
  454. package/dist/hero-centered-screenshot.js +2 -2
  455. package/dist/hero-coming-soon-countdown.cjs +2 -2
  456. package/dist/hero-coming-soon-countdown.js +2 -2
  457. package/dist/hero-community-survey-cta.cjs +2 -2
  458. package/dist/hero-community-survey-cta.js +2 -2
  459. package/dist/hero-conversation-intelligence.cjs +2 -2
  460. package/dist/hero-conversation-intelligence.js +2 -2
  461. package/dist/hero-conversion-video-play.cjs +2 -2
  462. package/dist/hero-conversion-video-play.js +2 -2
  463. package/dist/hero-creative-studio-stacked.cjs +2 -2
  464. package/dist/hero-creative-studio-stacked.js +2 -2
  465. package/dist/hero-crm-streamlined.cjs +2 -2
  466. package/dist/hero-crm-streamlined.js +2 -2
  467. package/dist/hero-customer-support-layered.cjs +2 -2
  468. package/dist/hero-customer-support-layered.js +2 -2
  469. package/dist/hero-dashed-border-features.cjs +2 -2
  470. package/dist/hero-dashed-border-features.js +2 -2
  471. package/dist/hero-design-carousel-portfolio.cjs +2 -2
  472. package/dist/hero-design-carousel-portfolio.js +2 -2
  473. package/dist/hero-design-showcase-logos.cjs +2 -2
  474. package/dist/hero-design-showcase-logos.js +2 -2
  475. package/dist/hero-design-system-3d.cjs +2 -2
  476. package/dist/hero-design-system-3d.js +2 -2
  477. package/dist/hero-developer-tools-code.cjs +2 -2
  478. package/dist/hero-developer-tools-code.js +2 -2
  479. package/dist/hero-digital-agency-fullscreen.cjs +2 -2
  480. package/dist/hero-digital-agency-fullscreen.js +2 -2
  481. package/dist/hero-ecommerce-product-showcase.cjs +2 -2
  482. package/dist/hero-ecommerce-product-showcase.js +2 -2
  483. package/dist/hero-enterprise-security.cjs +2 -2
  484. package/dist/hero-enterprise-security.js +2 -2
  485. package/dist/hero-event-registration.cjs +2 -2
  486. package/dist/hero-event-registration.js +2 -2
  487. package/dist/hero-feature-cards-grid.cjs +2 -2
  488. package/dist/hero-feature-cards-grid.js +2 -2
  489. package/dist/hero-fullscreen-background-image.cjs +2 -2
  490. package/dist/hero-fullscreen-background-image.js +2 -2
  491. package/dist/hero-fullscreen-logo-cta.cjs +2 -2
  492. package/dist/hero-fullscreen-logo-cta.js +2 -2
  493. package/dist/hero-gradient-avatars-rating.cjs +2 -2
  494. package/dist/hero-gradient-avatars-rating.js +2 -2
  495. package/dist/hero-gradient-client-focused.cjs +2 -2
  496. package/dist/hero-gradient-client-focused.js +2 -2
  497. package/dist/hero-grid-pattern-efficiency.cjs +2 -2
  498. package/dist/hero-grid-pattern-efficiency.js +2 -2
  499. package/dist/hero-grid-pattern-solutions.cjs +2 -2
  500. package/dist/hero-grid-pattern-solutions.js +2 -2
  501. package/dist/hero-hiring-animated-text.cjs +2 -2
  502. package/dist/hero-hiring-animated-text.js +2 -2
  503. package/dist/hero-image-left-content.cjs +2 -2
  504. package/dist/hero-image-left-content.js +2 -2
  505. package/dist/hero-image-slider.cjs +2 -2
  506. package/dist/hero-image-slider.js +2 -2
  507. package/dist/hero-innovation-image-grid.cjs +2 -2
  508. package/dist/hero-innovation-image-grid.js +2 -2
  509. package/dist/hero-logo-centered-screenshot.cjs +2 -2
  510. package/dist/hero-logo-centered-screenshot.js +2 -2
  511. package/dist/hero-marketplace-scattered-images.cjs +2 -2
  512. package/dist/hero-marketplace-scattered-images.js +2 -2
  513. package/dist/hero-mental-health-team.cjs +2 -2
  514. package/dist/hero-mental-health-team.js +2 -2
  515. package/dist/hero-mentorship-video-split.cjs +2 -2
  516. package/dist/hero-mentorship-video-split.js +2 -2
  517. package/dist/hero-minimal-centered-dark.cjs +2 -2
  518. package/dist/hero-minimal-centered-dark.js +2 -2
  519. package/dist/hero-mobile-app-download.cjs +2 -2
  520. package/dist/hero-mobile-app-download.js +2 -2
  521. package/dist/hero-newsletter-minimal.cjs +2 -2
  522. package/dist/hero-newsletter-minimal.js +2 -2
  523. package/dist/hero-pattern-badge-logos.cjs +2 -2
  524. package/dist/hero-pattern-badge-logos.js +2 -2
  525. package/dist/hero-pattern-logo-tech-stack.cjs +2 -2
  526. package/dist/hero-pattern-logo-tech-stack.js +2 -2
  527. package/dist/hero-platform-features-grid.cjs +2 -2
  528. package/dist/hero-platform-features-grid.js +2 -2
  529. package/dist/hero-portfolio-creative.cjs +2 -2
  530. package/dist/hero-portfolio-creative.js +2 -2
  531. package/dist/hero-premium-split-avatars.cjs +2 -2
  532. package/dist/hero-premium-split-avatars.js +2 -2
  533. package/dist/hero-presentation-platform-video.cjs +2 -2
  534. package/dist/hero-presentation-platform-video.js +2 -2
  535. package/dist/hero-pricing-comparison.cjs +2 -2
  536. package/dist/hero-pricing-comparison.js +2 -2
  537. package/dist/hero-product-showcase-floating.cjs +2 -2
  538. package/dist/hero-product-showcase-floating.js +2 -2
  539. package/dist/hero-productivity-launcher-video.cjs +2 -2
  540. package/dist/hero-productivity-launcher-video.js +2 -2
  541. package/dist/hero-saas-dashboard-preview.cjs +2 -2
  542. package/dist/hero-saas-dashboard-preview.js +2 -2
  543. package/dist/hero-shared-inbox-layered.cjs +2 -2
  544. package/dist/hero-shared-inbox-layered.js +2 -2
  545. package/dist/hero-simple-centered-image.cjs +2 -2
  546. package/dist/hero-simple-centered-image.js +2 -2
  547. package/dist/hero-software-growth-video-dialog.cjs +2 -2
  548. package/dist/hero-software-growth-video-dialog.js +2 -2
  549. package/dist/hero-spiral-pattern-cards.cjs +2 -2
  550. package/dist/hero-spiral-pattern-cards.js +2 -2
  551. package/dist/hero-split-geometric-shapes.cjs +2 -2
  552. package/dist/hero-split-geometric-shapes.js +2 -2
  553. package/dist/hero-split-icon-cards.cjs +1 -1
  554. package/dist/hero-split-icon-cards.js +1 -1
  555. package/dist/hero-split-image-newsletter.cjs +2 -2
  556. package/dist/hero-split-image-newsletter.js +2 -2
  557. package/dist/hero-split-spiral-shapes.cjs +2 -2
  558. package/dist/hero-split-spiral-shapes.js +2 -2
  559. package/dist/hero-startup-launch-cta.cjs +2 -2
  560. package/dist/hero-startup-launch-cta.js +2 -2
  561. package/dist/hero-stats-social-proof.cjs +2 -2
  562. package/dist/hero-stats-social-proof.js +2 -2
  563. package/dist/hero-task-timer-animated.cjs +2 -2
  564. package/dist/hero-task-timer-animated.js +2 -2
  565. package/dist/hero-tech-carousel.cjs +2 -2
  566. package/dist/hero-tech-carousel.js +2 -2
  567. package/dist/hero-therapy-testimonial-grid.cjs +2 -2
  568. package/dist/hero-therapy-testimonial-grid.js +2 -2
  569. package/dist/hero-ui-library-showcase.cjs +2 -2
  570. package/dist/hero-ui-library-showcase.js +2 -2
  571. package/dist/hero-video-background-dark.cjs +2 -2
  572. package/dist/hero-video-background-dark.js +2 -2
  573. package/dist/hero-video-dialog-gradient.cjs +2 -2
  574. package/dist/hero-video-dialog-gradient.js +2 -2
  575. package/dist/hero-video-overlay-stars.cjs +2 -2
  576. package/dist/hero-video-overlay-stars.js +2 -2
  577. package/dist/hero-welcome-asymmetric-images.cjs +2 -2
  578. package/dist/hero-welcome-asymmetric-images.js +2 -2
  579. package/dist/index.cjs +8 -8
  580. package/dist/index.js +9 -9
  581. package/dist/media-hover-ctas.cjs +7 -7
  582. package/dist/media-hover-ctas.js +7 -7
  583. package/dist/registry.cjs +10071 -8111
  584. package/dist/registry.js +10033 -8073
  585. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import * as React from 'react';
2
+ import * as React4 from 'react';
3
3
  import { clsx } from 'clsx';
4
4
  import { twMerge } from 'tailwind-merge';
5
5
  import { Img } from '@page-speed/img';
@@ -87,7 +87,7 @@ function useNavigation({
87
87
  href,
88
88
  onClick
89
89
  } = {}) {
90
- const linkType = React.useMemo(() => {
90
+ const linkType = React4.useMemo(() => {
91
91
  if (!href || href.trim() === "") {
92
92
  return onClick ? "none" : "none";
93
93
  }
@@ -108,7 +108,7 @@ function useNavigation({
108
108
  return "internal";
109
109
  }
110
110
  }, [href, onClick]);
111
- const normalizedHref = React.useMemo(() => {
111
+ const normalizedHref = React4.useMemo(() => {
112
112
  if (!href || href.trim() === "") {
113
113
  return void 0;
114
114
  }
@@ -126,7 +126,7 @@ function useNavigation({
126
126
  return trimmed;
127
127
  }
128
128
  }, [href, linkType]);
129
- const target = React.useMemo(() => {
129
+ const target = React4.useMemo(() => {
130
130
  switch (linkType) {
131
131
  case "external":
132
132
  return "_blank";
@@ -139,7 +139,7 @@ function useNavigation({
139
139
  return void 0;
140
140
  }
141
141
  }, [linkType]);
142
- const rel = React.useMemo(() => {
142
+ const rel = React4.useMemo(() => {
143
143
  if (linkType === "external") {
144
144
  return "noopener noreferrer";
145
145
  }
@@ -148,7 +148,7 @@ function useNavigation({
148
148
  const isExternal = linkType === "external";
149
149
  const isInternal = linkType === "internal";
150
150
  const shouldUseRouter = isInternal && typeof normalizedHref === "string" && normalizedHref.startsWith("/");
151
- const handleClick = React.useCallback(
151
+ const handleClick = React4.useCallback(
152
152
  (event) => {
153
153
  if (onClick) {
154
154
  try {
@@ -332,7 +332,7 @@ var buttonVariants = cva(baseStyles, {
332
332
  size: "default"
333
333
  }
334
334
  });
335
- var Pressable = React.forwardRef(
335
+ var Pressable = React4.forwardRef(
336
336
  ({
337
337
  children,
338
338
  className,
@@ -438,10 +438,10 @@ function DynamicIcon({
438
438
  className,
439
439
  alt
440
440
  }) {
441
- const [svgContent, setSvgContent] = React.useState(null);
442
- const [isLoading, setIsLoading] = React.useState(true);
443
- const [error, setError] = React.useState(null);
444
- const { url, iconName } = React.useMemo(() => {
441
+ const [svgContent, setSvgContent] = React4.useState(null);
442
+ const [isLoading, setIsLoading] = React4.useState(true);
443
+ const [error, setError] = React4.useState(null);
444
+ const { url, iconName } = React4.useMemo(() => {
445
445
  const separator = name.includes("/") ? "/" : ":";
446
446
  const [prefix, iconName2] = name.split(separator);
447
447
  const baseUrl = `https://icons.opensite.ai/api/icon/${prefix}/${iconName2}?format=svg&width=${size}&height=${size}`;
@@ -450,7 +450,7 @@ function DynamicIcon({
450
450
  iconName: iconName2
451
451
  };
452
452
  }, [name, size]);
453
- React.useEffect(() => {
453
+ React4.useEffect(() => {
454
454
  let isMounted = true;
455
455
  const fetchSvg = async () => {
456
456
  const cached = svgCache.get(url);
@@ -857,10 +857,10 @@ function ArticleChaptersAuthorComponent({
857
857
  optixFlowConfig
858
858
  }) {
859
859
  const conclusionActions = conclusionActionsProp ?? (conclusionButtonText ? [{ label: conclusionButtonText, href: conclusionButtonHref || "#", variant: "default" }] : []);
860
- const [activeChapter, setActiveChapter] = React.useState(
860
+ const [activeChapter, setActiveChapter] = React4.useState(
861
861
  chapters?.[0]?.id || ""
862
862
  );
863
- React.useEffect(() => {
863
+ React4.useEffect(() => {
864
864
  if (!enableChapterTracking || !chapters || chapters.length === 0) return;
865
865
  const observer = new IntersectionObserver(
866
866
  (entries) => {
@@ -878,20 +878,20 @@ function ArticleChaptersAuthorComponent({
878
878
  });
879
879
  return () => observer.disconnect();
880
880
  }, [chapters, enableChapterTracking]);
881
- const renderBreadcrumbs = () => {
881
+ const breadcrumbsContent = React4.useMemo(() => {
882
882
  if (breadcrumbsSlot) return breadcrumbsSlot;
883
883
  if (!breadcrumbs || breadcrumbs.length === 0) return null;
884
884
  return /* @__PURE__ */ jsx(Breadcrumb, { className: cn("mb-8", breadcrumbClassName), children: /* @__PURE__ */ jsxs(BreadcrumbList, { children: [
885
885
  /* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: "#", children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/home", size: 16 }) }) }) }),
886
- breadcrumbs.map((crumb, index) => /* @__PURE__ */ jsxs(React.Fragment, { children: [
886
+ breadcrumbs.map((crumb, index) => /* @__PURE__ */ jsxs(React4.Fragment, { children: [
887
887
  /* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
888
888
  /* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: crumb.href, children: crumb.label }) }) })
889
889
  ] }, index)),
890
890
  /* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
891
891
  /* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbPage, { children: typeof currentPage === "string" ? currentPage : currentPage }) })
892
892
  ] }) });
893
- };
894
- const renderChaptersNav = () => {
893
+ }, [breadcrumbsSlot, breadcrumbs, currentPage, breadcrumbClassName]);
894
+ const chaptersNavContent = React4.useMemo(() => {
895
895
  if (chaptersSlot) return chaptersSlot;
896
896
  if (!chapters || chapters.length === 0) return null;
897
897
  return /* @__PURE__ */ jsxs("div", { className: cn("rounded-lg border p-4", chaptersClassName), children: [
@@ -899,7 +899,7 @@ function ArticleChaptersAuthorComponent({
899
899
  /* @__PURE__ */ jsx("nav", { className: "space-y-2", children: chapters.map((chapter) => {
900
900
  const isActive = activeChapter === chapter.id;
901
901
  if (renderChapterLink) {
902
- return /* @__PURE__ */ jsx(React.Fragment, { children: renderChapterLink(chapter, isActive) }, chapter.id);
902
+ return /* @__PURE__ */ jsx(React4.Fragment, { children: renderChapterLink(chapter, isActive) }, chapter.id);
903
903
  }
904
904
  return /* @__PURE__ */ jsxs(
905
905
  Pressable,
@@ -918,50 +918,52 @@ function ArticleChaptersAuthorComponent({
918
918
  );
919
919
  }) })
920
920
  ] });
921
- };
922
- const renderAuthorCard = () => {
921
+ }, [chaptersSlot, chapters, activeChapter, renderChapterLink, chaptersClassName]);
922
+ const authorCardContent = React4.useMemo(() => {
923
923
  if (authorSlot) return authorSlot;
924
924
  if (!author) return null;
925
- const renderSocialLinks = () => {
926
- if (!author.socialLinks) return null;
925
+ let socialLinksContent = null;
926
+ if (author.socialLinks) {
927
927
  if (Array.isArray(author.socialLinks)) {
928
- if (author.socialLinks.length === 0) return null;
929
- return /* @__PURE__ */ jsx("div", { className: "mt-4 flex gap-2", children: author.socialLinks.map((link, index) => /* @__PURE__ */ jsx(
930
- Pressable,
931
- {
932
- href: link.href,
933
- className: cn(
934
- "flex h-8 w-8 items-center justify-center rounded-md border hover:bg-muted",
935
- link.className
936
- ),
937
- "aria-label": link["aria-label"],
938
- children: link.icon ?? /* @__PURE__ */ jsx(DynamicIcon, { name: `lucide/${link.platform}`, size: 14 })
939
- },
940
- index
941
- )) });
928
+ if (author.socialLinks.length > 0) {
929
+ socialLinksContent = /* @__PURE__ */ jsx("div", { className: "mt-4 flex gap-2", children: author.socialLinks.map((link, index) => /* @__PURE__ */ jsx(
930
+ Pressable,
931
+ {
932
+ href: link.href,
933
+ className: cn(
934
+ "flex h-8 w-8 items-center justify-center rounded-md border hover:bg-muted",
935
+ link.className
936
+ ),
937
+ "aria-label": link["aria-label"],
938
+ children: link.icon ?? /* @__PURE__ */ jsx(DynamicIcon, { name: `lucide/${link.platform}`, size: 14 })
939
+ },
940
+ index
941
+ )) });
942
+ }
942
943
  } else {
943
944
  const links = author.socialLinks;
944
945
  const socialEntries = Object.entries(links).filter(([, href]) => href);
945
- if (socialEntries.length === 0) return null;
946
- const platformLabels = {
947
- twitter: "Twitter",
948
- linkedin: "LinkedIn",
949
- github: "GitHub",
950
- facebook: "Facebook",
951
- instagram: "Instagram"
952
- };
953
- return /* @__PURE__ */ jsx("div", { className: "mt-4 flex gap-2", children: socialEntries.map(([platform, href]) => /* @__PURE__ */ jsx(
954
- Pressable,
955
- {
956
- href,
957
- className: "flex h-8 w-8 items-center justify-center rounded-md border hover:bg-muted",
958
- "aria-label": platformLabels[platform] || platform.charAt(0).toUpperCase() + platform.slice(1),
959
- children: /* @__PURE__ */ jsx(DynamicIcon, { name: `lucide/${platform}`, size: 14 })
960
- },
961
- platform
962
- )) });
946
+ if (socialEntries.length > 0) {
947
+ const platformLabels = {
948
+ twitter: "Twitter",
949
+ linkedin: "LinkedIn",
950
+ github: "GitHub",
951
+ facebook: "Facebook",
952
+ instagram: "Instagram"
953
+ };
954
+ socialLinksContent = /* @__PURE__ */ jsx("div", { className: "mt-4 flex gap-2", children: socialEntries.map(([platform, href]) => /* @__PURE__ */ jsx(
955
+ Pressable,
956
+ {
957
+ href,
958
+ className: "flex h-8 w-8 items-center justify-center rounded-md border hover:bg-muted",
959
+ "aria-label": platformLabels[platform] || platform.charAt(0).toUpperCase() + platform.slice(1),
960
+ children: /* @__PURE__ */ jsx(DynamicIcon, { name: `lucide/${platform}`, size: 14 })
961
+ },
962
+ platform
963
+ )) });
964
+ }
963
965
  }
964
- };
966
+ }
965
967
  return /* @__PURE__ */ jsxs("div", { className: cn("rounded-lg border p-4", authorClassName), children: [
966
968
  /* @__PURE__ */ jsx("h3", { className: "mb-4 text-sm font-semibold", children: "About the Author" }),
967
969
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
@@ -975,25 +977,23 @@ function ArticleChaptersAuthorComponent({
975
977
  ] })
976
978
  ] }),
977
979
  author.bio && /* @__PURE__ */ jsx("p", { className: "mt-3 text-sm text-muted-foreground", children: author.bio }),
978
- renderSocialLinks()
980
+ socialLinksContent
979
981
  ] });
980
- };
981
- const renderHeroMedia = () => {
982
+ }, [authorSlot, author, authorClassName]);
983
+ const heroMediaContent = React4.useMemo(() => {
982
984
  if (heroMediaSlot) return heroMediaSlot;
983
- if (heroImageSrc) {
984
- return /* @__PURE__ */ jsx(
985
- Img,
986
- {
987
- src: heroImageSrc,
988
- alt: heroImageAlt,
989
- className: cn("my-8 aspect-video w-full rounded-lg object-cover", heroImageClassName),
990
- optixFlowConfig
991
- }
992
- );
993
- }
994
- return null;
995
- };
996
- const renderConclusion = () => {
985
+ if (!heroImageSrc) return null;
986
+ return /* @__PURE__ */ jsx(
987
+ Img,
988
+ {
989
+ src: heroImageSrc,
990
+ alt: heroImageAlt,
991
+ className: cn("my-8 aspect-video w-full rounded-lg object-cover", heroImageClassName),
992
+ optixFlowConfig
993
+ }
994
+ );
995
+ }, [heroMediaSlot, heroImageSrc, heroImageAlt, heroImageClassName, optixFlowConfig]);
996
+ const conclusionContent = React4.useMemo(() => {
997
997
  if (conclusionSlot) return conclusionSlot;
998
998
  if (!conclusionTitle && !conclusionDescription && (!conclusionActions || conclusionActions.length === 0)) return null;
999
999
  return /* @__PURE__ */ jsxs("div", { className: cn("mt-12 rounded-lg border bg-muted/50 p-6 not-prose", conclusionClassName), children: [
@@ -1017,22 +1017,22 @@ function ArticleChaptersAuthorComponent({
1017
1017
  );
1018
1018
  }) })
1019
1019
  ] });
1020
- };
1020
+ }, [conclusionSlot, conclusionTitle, conclusionDescription, conclusionActions, conclusionClassName]);
1021
1021
  return /* @__PURE__ */ jsx("section", { className: cn("py-32", className), children: /* @__PURE__ */ jsxs("div", { className: cn("container", containerClassName), children: [
1022
- renderBreadcrumbs(),
1022
+ breadcrumbsContent,
1023
1023
  /* @__PURE__ */ jsxs("div", { className: cn("mb-12 text-center", headerClassName), children: [
1024
1024
  title && (typeof title === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl", titleClassName), children: title }) : /* @__PURE__ */ jsx("div", { className: titleClassName, children: title })),
1025
1025
  subtitle && (typeof subtitle === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-4 text-lg text-muted-foreground md:text-xl", subtitleClassName), children: subtitle }) : /* @__PURE__ */ jsx("div", { className: cn("mt-4", subtitleClassName), children: subtitle }))
1026
1026
  ] }),
1027
1027
  /* @__PURE__ */ jsxs("div", { className: "grid gap-10 lg:grid-cols-[280px_minmax(0,1fr)]", children: [
1028
1028
  /* @__PURE__ */ jsx("aside", { className: cn("hidden lg:block", sidebarClassName), children: /* @__PURE__ */ jsxs("div", { className: "sticky top-8 space-y-6", children: [
1029
- renderChaptersNav(),
1030
- renderAuthorCard()
1029
+ chaptersNavContent,
1030
+ authorCardContent
1031
1031
  ] }) }),
1032
1032
  /* @__PURE__ */ jsxs("article", { className: cn("prose max-w-none dark:prose-invert", articleClassName), children: [
1033
- renderHeroMedia(),
1033
+ heroMediaContent,
1034
1034
  children || defaultArticleContent(optixFlowConfig),
1035
- renderConclusion()
1035
+ conclusionContent
1036
1036
  ] })
1037
1037
  ] })
1038
1038
  ] }) });
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var React = require('react');
4
+ var React4 = require('react');
5
5
  var clsx = require('clsx');
6
6
  var tailwindMerge = require('tailwind-merge');
7
7
  var img = require('@page-speed/img');
@@ -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 React4__namespace = /*#__PURE__*/_interopNamespace(React4);
32
32
  var SeparatorPrimitive__namespace = /*#__PURE__*/_interopNamespace(SeparatorPrimitive);
33
33
 
34
34
  // components/blocks/article/article-compact-toc.tsx
@@ -110,7 +110,7 @@ function useNavigation({
110
110
  href,
111
111
  onClick
112
112
  } = {}) {
113
- const linkType = React__namespace.useMemo(() => {
113
+ const linkType = React4__namespace.useMemo(() => {
114
114
  if (!href || href.trim() === "") {
115
115
  return onClick ? "none" : "none";
116
116
  }
@@ -131,7 +131,7 @@ function useNavigation({
131
131
  return "internal";
132
132
  }
133
133
  }, [href, onClick]);
134
- const normalizedHref = React__namespace.useMemo(() => {
134
+ const normalizedHref = React4__namespace.useMemo(() => {
135
135
  if (!href || href.trim() === "") {
136
136
  return void 0;
137
137
  }
@@ -149,7 +149,7 @@ function useNavigation({
149
149
  return trimmed;
150
150
  }
151
151
  }, [href, linkType]);
152
- const target = React__namespace.useMemo(() => {
152
+ const target = React4__namespace.useMemo(() => {
153
153
  switch (linkType) {
154
154
  case "external":
155
155
  return "_blank";
@@ -162,7 +162,7 @@ function useNavigation({
162
162
  return void 0;
163
163
  }
164
164
  }, [linkType]);
165
- const rel = React__namespace.useMemo(() => {
165
+ const rel = React4__namespace.useMemo(() => {
166
166
  if (linkType === "external") {
167
167
  return "noopener noreferrer";
168
168
  }
@@ -171,7 +171,7 @@ function useNavigation({
171
171
  const isExternal = linkType === "external";
172
172
  const isInternal = linkType === "internal";
173
173
  const shouldUseRouter = isInternal && typeof normalizedHref === "string" && normalizedHref.startsWith("/");
174
- const handleClick = React__namespace.useCallback(
174
+ const handleClick = React4__namespace.useCallback(
175
175
  (event) => {
176
176
  if (onClick) {
177
177
  try {
@@ -355,7 +355,7 @@ var buttonVariants = classVarianceAuthority.cva(baseStyles, {
355
355
  size: "default"
356
356
  }
357
357
  });
358
- var Pressable = React__namespace.forwardRef(
358
+ var Pressable = React4__namespace.forwardRef(
359
359
  ({
360
360
  children,
361
361
  className,
@@ -461,10 +461,10 @@ function DynamicIcon({
461
461
  className,
462
462
  alt
463
463
  }) {
464
- const [svgContent, setSvgContent] = React__namespace.useState(null);
465
- const [isLoading, setIsLoading] = React__namespace.useState(true);
466
- const [error, setError] = React__namespace.useState(null);
467
- const { url, iconName } = React__namespace.useMemo(() => {
464
+ const [svgContent, setSvgContent] = React4__namespace.useState(null);
465
+ const [isLoading, setIsLoading] = React4__namespace.useState(true);
466
+ const [error, setError] = React4__namespace.useState(null);
467
+ const { url, iconName } = React4__namespace.useMemo(() => {
468
468
  const separator = name.includes("/") ? "/" : ":";
469
469
  const [prefix, iconName2] = name.split(separator);
470
470
  const baseUrl = `https://icons.opensite.ai/api/icon/${prefix}/${iconName2}?format=svg&width=${size}&height=${size}`;
@@ -473,7 +473,7 @@ function DynamicIcon({
473
473
  iconName: iconName2
474
474
  };
475
475
  }, [name, size]);
476
- React__namespace.useEffect(() => {
476
+ React4__namespace.useEffect(() => {
477
477
  let isMounted = true;
478
478
  const fetchSvg = async () => {
479
479
  const cached = svgCache.get(url);
@@ -711,11 +711,11 @@ function ArticleCompactTocComponent({
711
711
  enableTocTracking = true,
712
712
  optixFlowConfig
713
713
  }) {
714
- const [activeSection, setActiveSection] = React__namespace.useState(
714
+ const [activeSection, setActiveSection] = React4__namespace.useState(
715
715
  sections?.[0]?.id || ""
716
716
  );
717
- const [isTocOpen, setIsTocOpen] = React__namespace.useState(false);
718
- React__namespace.useEffect(() => {
717
+ const [isTocOpen, setIsTocOpen] = React4__namespace.useState(false);
718
+ React4__namespace.useEffect(() => {
719
719
  if (!enableTocTracking) return;
720
720
  const observer = new IntersectionObserver(
721
721
  (entries) => {
@@ -733,19 +733,20 @@ function ArticleCompactTocComponent({
733
733
  });
734
734
  return () => observer.disconnect();
735
735
  }, [sections, enableTocTracking]);
736
- const renderBreadcrumbs = () => {
736
+ const breadcrumbsContent = React4__namespace.useMemo(() => {
737
737
  if (breadcrumbsSlot) return breadcrumbsSlot;
738
+ if (!breadcrumbs && !currentPage) return null;
738
739
  return /* @__PURE__ */ jsxRuntime.jsx(Breadcrumb, { className: cn("mb-6", breadcrumbClassName), children: /* @__PURE__ */ jsxRuntime.jsxs(BreadcrumbList, { children: [
739
740
  /* @__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 }) }) }) }),
740
- breadcrumbs?.map((crumb, index) => /* @__PURE__ */ jsxRuntime.jsxs(React__namespace.Fragment, { children: [
741
+ breadcrumbs?.map((crumb, index) => /* @__PURE__ */ jsxRuntime.jsxs(React4__namespace.Fragment, { children: [
741
742
  /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbSeparator, {}),
742
743
  /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: crumb.href, children: crumb.label }) }) })
743
744
  ] }, index)),
744
745
  /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbSeparator, {}),
745
746
  /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbPage, { children: currentPage }) })
746
747
  ] }) });
747
- };
748
- const renderShare = () => {
748
+ }, [breadcrumbsSlot, breadcrumbs, currentPage, breadcrumbClassName]);
749
+ const shareContent = React4__namespace.useMemo(() => {
749
750
  if (shareSlot) return shareSlot;
750
751
  if (!socialLinks || socialLinks.length === 0) return null;
751
752
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mt-6 flex items-center gap-2", shareClassName), children: [
@@ -761,8 +762,8 @@ function ArticleCompactTocComponent({
761
762
  index
762
763
  ))
763
764
  ] });
764
- };
765
- const renderToc = () => {
765
+ }, [shareSlot, socialLinks, shareClassName]);
766
+ const tocContent = React4__namespace.useMemo(() => {
766
767
  if (tocSlot) return tocSlot;
767
768
  if (!sections || sections.length === 0) return null;
768
769
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-8 lg:hidden", children: [
@@ -789,7 +790,7 @@ function ArticleCompactTocComponent({
789
790
  isTocOpen && /* @__PURE__ */ jsxRuntime.jsx("nav", { className: "mt-2 space-y-2 rounded-lg border p-4", children: sections.map((section) => {
790
791
  const isActive = activeSection === section.id;
791
792
  if (renderSectionLink) {
792
- return /* @__PURE__ */ jsxRuntime.jsx(React__namespace.Fragment, { children: renderSectionLink(section, isActive) }, section.id);
793
+ return /* @__PURE__ */ jsxRuntime.jsx(React4__namespace.Fragment, { children: renderSectionLink(section, isActive) }, section.id);
793
794
  }
794
795
  return /* @__PURE__ */ jsxRuntime.jsx(
795
796
  Pressable,
@@ -806,8 +807,8 @@ function ArticleCompactTocComponent({
806
807
  );
807
808
  }) })
808
809
  ] });
809
- };
810
- const renderHeroMedia = () => {
810
+ }, [tocSlot, sections, isTocOpen, activeSection, renderSectionLink, tocClassName]);
811
+ const heroMediaContent = React4__namespace.useMemo(() => {
811
812
  if (heroMediaSlot) return heroMediaSlot;
812
813
  if (!heroImageSrc) return null;
813
814
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -819,9 +820,9 @@ function ArticleCompactTocComponent({
819
820
  optixFlowConfig
820
821
  }
821
822
  );
822
- };
823
+ }, [heroMediaSlot, heroImageSrc, heroImageAlt, heroImageClassName, optixFlowConfig]);
823
824
  return /* @__PURE__ */ jsxRuntime.jsx("section", { className: cn("py-32", className), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("container", containerClassName), children: [
824
- renderBreadcrumbs(),
825
+ breadcrumbsContent,
825
826
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mx-auto max-w-3xl", contentClassName), children: [
826
827
  title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("text-3xl font-bold tracking-tight md:text-4xl lg:text-5xl", titleClassName), children: title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: titleClassName, children: title })),
827
828
  (authorName || publishDate || readTime) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mt-4 flex flex-wrap items-center gap-4 text-sm text-muted-foreground", metaClassName), children: [
@@ -831,11 +832,11 @@ function ArticleCompactTocComponent({
831
832
  publishDate && readTime && /* @__PURE__ */ jsxRuntime.jsx(Separator, { orientation: "vertical", className: "h-4" }),
832
833
  readTime && /* @__PURE__ */ jsxRuntime.jsx("span", { children: readTime })
833
834
  ] }),
834
- renderShare(),
835
+ shareContent,
835
836
  /* @__PURE__ */ jsxRuntime.jsx(Separator, { className: "my-8" }),
836
- renderToc(),
837
+ tocContent,
837
838
  /* @__PURE__ */ jsxRuntime.jsxs("article", { className: cn("prose max-w-none dark:prose-invert", articleClassName), children: [
838
- renderHeroMedia(),
839
+ heroMediaContent,
839
840
  children ?? defaultArticleContent()
840
841
  ] })
841
842
  ] })
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import * as React from 'react';
2
+ import * as React4 from 'react';
3
3
  import { clsx } from 'clsx';
4
4
  import { twMerge } from 'tailwind-merge';
5
5
  import { Img } from '@page-speed/img';
@@ -87,7 +87,7 @@ function useNavigation({
87
87
  href,
88
88
  onClick
89
89
  } = {}) {
90
- const linkType = React.useMemo(() => {
90
+ const linkType = React4.useMemo(() => {
91
91
  if (!href || href.trim() === "") {
92
92
  return onClick ? "none" : "none";
93
93
  }
@@ -108,7 +108,7 @@ function useNavigation({
108
108
  return "internal";
109
109
  }
110
110
  }, [href, onClick]);
111
- const normalizedHref = React.useMemo(() => {
111
+ const normalizedHref = React4.useMemo(() => {
112
112
  if (!href || href.trim() === "") {
113
113
  return void 0;
114
114
  }
@@ -126,7 +126,7 @@ function useNavigation({
126
126
  return trimmed;
127
127
  }
128
128
  }, [href, linkType]);
129
- const target = React.useMemo(() => {
129
+ const target = React4.useMemo(() => {
130
130
  switch (linkType) {
131
131
  case "external":
132
132
  return "_blank";
@@ -139,7 +139,7 @@ function useNavigation({
139
139
  return void 0;
140
140
  }
141
141
  }, [linkType]);
142
- const rel = React.useMemo(() => {
142
+ const rel = React4.useMemo(() => {
143
143
  if (linkType === "external") {
144
144
  return "noopener noreferrer";
145
145
  }
@@ -148,7 +148,7 @@ function useNavigation({
148
148
  const isExternal = linkType === "external";
149
149
  const isInternal = linkType === "internal";
150
150
  const shouldUseRouter = isInternal && typeof normalizedHref === "string" && normalizedHref.startsWith("/");
151
- const handleClick = React.useCallback(
151
+ const handleClick = React4.useCallback(
152
152
  (event) => {
153
153
  if (onClick) {
154
154
  try {
@@ -332,7 +332,7 @@ var buttonVariants = cva(baseStyles, {
332
332
  size: "default"
333
333
  }
334
334
  });
335
- var Pressable = React.forwardRef(
335
+ var Pressable = React4.forwardRef(
336
336
  ({
337
337
  children,
338
338
  className,
@@ -438,10 +438,10 @@ function DynamicIcon({
438
438
  className,
439
439
  alt
440
440
  }) {
441
- const [svgContent, setSvgContent] = React.useState(null);
442
- const [isLoading, setIsLoading] = React.useState(true);
443
- const [error, setError] = React.useState(null);
444
- const { url, iconName } = React.useMemo(() => {
441
+ const [svgContent, setSvgContent] = React4.useState(null);
442
+ const [isLoading, setIsLoading] = React4.useState(true);
443
+ const [error, setError] = React4.useState(null);
444
+ const { url, iconName } = React4.useMemo(() => {
445
445
  const separator = name.includes("/") ? "/" : ":";
446
446
  const [prefix, iconName2] = name.split(separator);
447
447
  const baseUrl = `https://icons.opensite.ai/api/icon/${prefix}/${iconName2}?format=svg&width=${size}&height=${size}`;
@@ -450,7 +450,7 @@ function DynamicIcon({
450
450
  iconName: iconName2
451
451
  };
452
452
  }, [name, size]);
453
- React.useEffect(() => {
453
+ React4.useEffect(() => {
454
454
  let isMounted = true;
455
455
  const fetchSvg = async () => {
456
456
  const cached = svgCache.get(url);
@@ -688,11 +688,11 @@ function ArticleCompactTocComponent({
688
688
  enableTocTracking = true,
689
689
  optixFlowConfig
690
690
  }) {
691
- const [activeSection, setActiveSection] = React.useState(
691
+ const [activeSection, setActiveSection] = React4.useState(
692
692
  sections?.[0]?.id || ""
693
693
  );
694
- const [isTocOpen, setIsTocOpen] = React.useState(false);
695
- React.useEffect(() => {
694
+ const [isTocOpen, setIsTocOpen] = React4.useState(false);
695
+ React4.useEffect(() => {
696
696
  if (!enableTocTracking) return;
697
697
  const observer = new IntersectionObserver(
698
698
  (entries) => {
@@ -710,19 +710,20 @@ function ArticleCompactTocComponent({
710
710
  });
711
711
  return () => observer.disconnect();
712
712
  }, [sections, enableTocTracking]);
713
- const renderBreadcrumbs = () => {
713
+ const breadcrumbsContent = React4.useMemo(() => {
714
714
  if (breadcrumbsSlot) return breadcrumbsSlot;
715
+ if (!breadcrumbs && !currentPage) return null;
715
716
  return /* @__PURE__ */ jsx(Breadcrumb, { className: cn("mb-6", breadcrumbClassName), children: /* @__PURE__ */ jsxs(BreadcrumbList, { children: [
716
717
  /* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: "#", children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/home", size: 16 }) }) }) }),
717
- breadcrumbs?.map((crumb, index) => /* @__PURE__ */ jsxs(React.Fragment, { children: [
718
+ breadcrumbs?.map((crumb, index) => /* @__PURE__ */ jsxs(React4.Fragment, { children: [
718
719
  /* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
719
720
  /* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: crumb.href, children: crumb.label }) }) })
720
721
  ] }, index)),
721
722
  /* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
722
723
  /* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbPage, { children: currentPage }) })
723
724
  ] }) });
724
- };
725
- const renderShare = () => {
725
+ }, [breadcrumbsSlot, breadcrumbs, currentPage, breadcrumbClassName]);
726
+ const shareContent = React4.useMemo(() => {
726
727
  if (shareSlot) return shareSlot;
727
728
  if (!socialLinks || socialLinks.length === 0) return null;
728
729
  return /* @__PURE__ */ jsxs("div", { className: cn("mt-6 flex items-center gap-2", shareClassName), children: [
@@ -738,8 +739,8 @@ function ArticleCompactTocComponent({
738
739
  index
739
740
  ))
740
741
  ] });
741
- };
742
- const renderToc = () => {
742
+ }, [shareSlot, socialLinks, shareClassName]);
743
+ const tocContent = React4.useMemo(() => {
743
744
  if (tocSlot) return tocSlot;
744
745
  if (!sections || sections.length === 0) return null;
745
746
  return /* @__PURE__ */ jsxs("div", { className: "mb-8 lg:hidden", children: [
@@ -766,7 +767,7 @@ function ArticleCompactTocComponent({
766
767
  isTocOpen && /* @__PURE__ */ jsx("nav", { className: "mt-2 space-y-2 rounded-lg border p-4", children: sections.map((section) => {
767
768
  const isActive = activeSection === section.id;
768
769
  if (renderSectionLink) {
769
- return /* @__PURE__ */ jsx(React.Fragment, { children: renderSectionLink(section, isActive) }, section.id);
770
+ return /* @__PURE__ */ jsx(React4.Fragment, { children: renderSectionLink(section, isActive) }, section.id);
770
771
  }
771
772
  return /* @__PURE__ */ jsx(
772
773
  Pressable,
@@ -783,8 +784,8 @@ function ArticleCompactTocComponent({
783
784
  );
784
785
  }) })
785
786
  ] });
786
- };
787
- const renderHeroMedia = () => {
787
+ }, [tocSlot, sections, isTocOpen, activeSection, renderSectionLink, tocClassName]);
788
+ const heroMediaContent = React4.useMemo(() => {
788
789
  if (heroMediaSlot) return heroMediaSlot;
789
790
  if (!heroImageSrc) return null;
790
791
  return /* @__PURE__ */ jsx(
@@ -796,9 +797,9 @@ function ArticleCompactTocComponent({
796
797
  optixFlowConfig
797
798
  }
798
799
  );
799
- };
800
+ }, [heroMediaSlot, heroImageSrc, heroImageAlt, heroImageClassName, optixFlowConfig]);
800
801
  return /* @__PURE__ */ jsx("section", { className: cn("py-32", className), children: /* @__PURE__ */ jsxs("div", { className: cn("container", containerClassName), children: [
801
- renderBreadcrumbs(),
802
+ breadcrumbsContent,
802
803
  /* @__PURE__ */ jsxs("div", { className: cn("mx-auto max-w-3xl", contentClassName), children: [
803
804
  title && (typeof title === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("text-3xl font-bold tracking-tight md:text-4xl lg:text-5xl", titleClassName), children: title }) : /* @__PURE__ */ jsx("div", { className: titleClassName, children: title })),
804
805
  (authorName || publishDate || readTime) && /* @__PURE__ */ jsxs("div", { className: cn("mt-4 flex flex-wrap items-center gap-4 text-sm text-muted-foreground", metaClassName), children: [
@@ -808,11 +809,11 @@ function ArticleCompactTocComponent({
808
809
  publishDate && readTime && /* @__PURE__ */ jsx(Separator, { orientation: "vertical", className: "h-4" }),
809
810
  readTime && /* @__PURE__ */ jsx("span", { children: readTime })
810
811
  ] }),
811
- renderShare(),
812
+ shareContent,
812
813
  /* @__PURE__ */ jsx(Separator, { className: "my-8" }),
813
- renderToc(),
814
+ tocContent,
814
815
  /* @__PURE__ */ jsxs("article", { className: cn("prose max-w-none dark:prose-invert", articleClassName), children: [
815
- renderHeroMedia(),
816
+ heroMediaContent,
816
817
  children ?? defaultArticleContent()
817
818
  ] })
818
819
  ] })