@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
@@ -896,8 +896,8 @@ function ArticleBreadcrumbSocialComponent({
896
896
  heroImageAlt,
897
897
  heroMediaSlot,
898
898
  children,
899
- enableTocTracking = true,
900
- enableBackToTop = true,
899
+ enableTocTracking,
900
+ enableBackToTop,
901
901
  optixFlowConfig
902
902
  }) {
903
903
  const author = authorProp ?? (authorName ? { name: authorName, image: authorImage, role: authorRole } : void 0);
@@ -945,10 +945,10 @@ function ArticleBreadcrumbSocialComponent({
945
945
  window.addEventListener("scroll", handleScroll);
946
946
  return () => window.removeEventListener("scroll", handleScroll);
947
947
  }, [enableBackToTop]);
948
- const scrollToTop = () => {
948
+ const scrollToTop = React4__namespace.useCallback(() => {
949
949
  window.scrollTo({ top: 0, behavior: "smooth" });
950
- };
951
- const renderBreadcrumbs = () => {
950
+ }, []);
951
+ const breadcrumbsContent = React4__namespace.useMemo(() => {
952
952
  if (breadcrumbsSlot) return breadcrumbsSlot;
953
953
  if (!breadcrumbs || breadcrumbs.length === 0) return null;
954
954
  return /* @__PURE__ */ jsxRuntime.jsx(Breadcrumb, { className: cn("mb-8", breadcrumbClassName), children: /* @__PURE__ */ jsxRuntime.jsxs(BreadcrumbList, { children: [
@@ -957,11 +957,13 @@ function ArticleBreadcrumbSocialComponent({
957
957
  /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbSeparator, {}),
958
958
  /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: crumb.href, children: crumb.label }) }) })
959
959
  ] }, index)),
960
- /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbSeparator, {}),
961
- /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbPage, { children: typeof currentPage === "string" ? currentPage : currentPage }) })
960
+ currentPage && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
961
+ /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbSeparator, {}),
962
+ /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbPage, { children: typeof currentPage === "string" ? currentPage : currentPage }) })
963
+ ] })
962
964
  ] }) });
963
- };
964
- const renderAuthor = () => {
965
+ }, [breadcrumbsSlot, breadcrumbs, currentPage, breadcrumbClassName]);
966
+ const authorContent = React4__namespace.useMemo(() => {
965
967
  if (authorSlot) return authorSlot;
966
968
  if (!author) return null;
967
969
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mt-6 flex items-center gap-4 not-prose", authorClassName), children: [
@@ -970,33 +972,25 @@ function ArticleBreadcrumbSocialComponent({
970
972
  /* @__PURE__ */ jsxRuntime.jsx(AvatarFallback, { children: author.name?.charAt(0) || "A" })
971
973
  ] }),
972
974
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
973
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium", children: author.name }),
974
- /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm text-muted-foreground", children: [
975
- author.role,
976
- " \xB7 ",
977
- publishDate,
978
- " \xB7 ",
979
- readTime
980
- ] })
975
+ author.name && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium", children: author.name }),
976
+ (author.role || publishDate || readTime) && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: [author.role, publishDate, readTime].filter(Boolean).join(" \xB7 ") })
981
977
  ] })
982
978
  ] });
983
- };
984
- const renderHeroMedia = () => {
979
+ }, [authorSlot, author, publishDate, readTime, authorClassName]);
980
+ const heroMediaContent = React4__namespace.useMemo(() => {
985
981
  if (heroMediaSlot) return heroMediaSlot;
986
- if (heroImageSrc) {
987
- return /* @__PURE__ */ jsxRuntime.jsx(
988
- img.Img,
989
- {
990
- src: heroImageSrc,
991
- alt: heroImageAlt,
992
- className: cn("my-8 aspect-video w-full rounded-lg object-cover", heroImageClassName),
993
- optixFlowConfig
994
- }
995
- );
996
- }
997
- return null;
998
- };
999
- const renderToc = () => {
982
+ if (!heroImageSrc) return null;
983
+ return /* @__PURE__ */ jsxRuntime.jsx(
984
+ img.Img,
985
+ {
986
+ src: heroImageSrc,
987
+ alt: heroImageAlt,
988
+ className: cn("my-8 aspect-video w-full rounded-lg object-cover", heroImageClassName),
989
+ optixFlowConfig
990
+ }
991
+ );
992
+ }, [heroMediaSlot, heroImageSrc, heroImageAlt, heroImageClassName, optixFlowConfig]);
993
+ const tocContent = React4__namespace.useMemo(() => {
1000
994
  if (tocSlot) return tocSlot;
1001
995
  if (!sections || sections.length === 0) return null;
1002
996
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("rounded-lg border p-4", tocClassName), children: [
@@ -1020,8 +1014,8 @@ function ArticleBreadcrumbSocialComponent({
1020
1014
  );
1021
1015
  }) })
1022
1016
  ] });
1023
- };
1024
- const renderShareButtons = () => {
1017
+ }, [tocSlot, sections, activeSection, renderSectionLink, tocClassName]);
1018
+ const shareButtonsContent = React4__namespace.useMemo(() => {
1025
1019
  if (shareSlot) return shareSlot;
1026
1020
  if (!socialLinks || socialLinks.length === 0) return null;
1027
1021
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("rounded-lg border p-4", shareClassName), children: [
@@ -1040,21 +1034,21 @@ function ArticleBreadcrumbSocialComponent({
1040
1034
  index
1041
1035
  )) })
1042
1036
  ] });
1043
- };
1037
+ }, [shareSlot, socialLinks, shareClassName]);
1044
1038
  return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: cn("py-32", className), children: [
1045
1039
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("container", containerClassName), children: [
1046
- renderBreadcrumbs(),
1040
+ breadcrumbsContent,
1047
1041
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-10 lg:grid-cols-[minmax(0,1fr)_280px]", children: [
1048
1042
  /* @__PURE__ */ jsxRuntime.jsxs("article", { className: cn("prose max-w-none dark:prose-invert", articleClassName), children: [
1049
1043
  title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("text-4xl font-bold tracking-tight md:text-5xl", titleClassName), children: title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: titleClassName, children: title })),
1050
- renderAuthor(),
1044
+ authorContent,
1051
1045
  /* @__PURE__ */ jsxRuntime.jsx(Separator, { className: "my-8" }),
1052
- renderHeroMedia(),
1046
+ heroMediaContent,
1053
1047
  children || defaultArticleContent(optixFlowConfig)
1054
1048
  ] }),
1055
1049
  /* @__PURE__ */ jsxRuntime.jsx("aside", { className: cn("hidden lg:block", sidebarClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "sticky top-8 space-y-6", children: [
1056
- renderToc(),
1057
- renderShareButtons()
1050
+ tocContent,
1051
+ shareButtonsContent
1058
1052
  ] }) })
1059
1053
  ] })
1060
1054
  ] }),
@@ -154,12 +154,10 @@ interface ArticleBreadcrumbSocialProps {
154
154
  children?: React.ReactNode;
155
155
  /**
156
156
  * Enable scroll-based TOC tracking
157
- * @default true
158
157
  */
159
158
  enableTocTracking?: boolean;
160
159
  /**
161
160
  * Enable back to top button
162
- * @default true
163
161
  */
164
162
  enableBackToTop?: boolean;
165
163
  /**
@@ -154,12 +154,10 @@ interface ArticleBreadcrumbSocialProps {
154
154
  children?: React.ReactNode;
155
155
  /**
156
156
  * Enable scroll-based TOC tracking
157
- * @default true
158
157
  */
159
158
  enableTocTracking?: boolean;
160
159
  /**
161
160
  * Enable back to top button
162
- * @default true
163
161
  */
164
162
  enableBackToTop?: boolean;
165
163
  /**
@@ -872,8 +872,8 @@ function ArticleBreadcrumbSocialComponent({
872
872
  heroImageAlt,
873
873
  heroMediaSlot,
874
874
  children,
875
- enableTocTracking = true,
876
- enableBackToTop = true,
875
+ enableTocTracking,
876
+ enableBackToTop,
877
877
  optixFlowConfig
878
878
  }) {
879
879
  const author = authorProp ?? (authorName ? { name: authorName, image: authorImage, role: authorRole } : void 0);
@@ -921,10 +921,10 @@ function ArticleBreadcrumbSocialComponent({
921
921
  window.addEventListener("scroll", handleScroll);
922
922
  return () => window.removeEventListener("scroll", handleScroll);
923
923
  }, [enableBackToTop]);
924
- const scrollToTop = () => {
924
+ const scrollToTop = React4.useCallback(() => {
925
925
  window.scrollTo({ top: 0, behavior: "smooth" });
926
- };
927
- const renderBreadcrumbs = () => {
926
+ }, []);
927
+ const breadcrumbsContent = React4.useMemo(() => {
928
928
  if (breadcrumbsSlot) return breadcrumbsSlot;
929
929
  if (!breadcrumbs || breadcrumbs.length === 0) return null;
930
930
  return /* @__PURE__ */ jsx(Breadcrumb, { className: cn("mb-8", breadcrumbClassName), children: /* @__PURE__ */ jsxs(BreadcrumbList, { children: [
@@ -933,11 +933,13 @@ function ArticleBreadcrumbSocialComponent({
933
933
  /* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
934
934
  /* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: crumb.href, children: crumb.label }) }) })
935
935
  ] }, index)),
936
- /* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
937
- /* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbPage, { children: typeof currentPage === "string" ? currentPage : currentPage }) })
936
+ currentPage && /* @__PURE__ */ jsxs(Fragment, { children: [
937
+ /* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
938
+ /* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbPage, { children: typeof currentPage === "string" ? currentPage : currentPage }) })
939
+ ] })
938
940
  ] }) });
939
- };
940
- const renderAuthor = () => {
941
+ }, [breadcrumbsSlot, breadcrumbs, currentPage, breadcrumbClassName]);
942
+ const authorContent = React4.useMemo(() => {
941
943
  if (authorSlot) return authorSlot;
942
944
  if (!author) return null;
943
945
  return /* @__PURE__ */ jsxs("div", { className: cn("mt-6 flex items-center gap-4 not-prose", authorClassName), children: [
@@ -946,33 +948,25 @@ function ArticleBreadcrumbSocialComponent({
946
948
  /* @__PURE__ */ jsx(AvatarFallback, { children: author.name?.charAt(0) || "A" })
947
949
  ] }),
948
950
  /* @__PURE__ */ jsxs("div", { children: [
949
- /* @__PURE__ */ jsx("p", { className: "font-medium", children: author.name }),
950
- /* @__PURE__ */ jsxs("p", { className: "text-sm text-muted-foreground", children: [
951
- author.role,
952
- " \xB7 ",
953
- publishDate,
954
- " \xB7 ",
955
- readTime
956
- ] })
951
+ author.name && /* @__PURE__ */ jsx("p", { className: "font-medium", children: author.name }),
952
+ (author.role || publishDate || readTime) && /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: [author.role, publishDate, readTime].filter(Boolean).join(" \xB7 ") })
957
953
  ] })
958
954
  ] });
959
- };
960
- const renderHeroMedia = () => {
955
+ }, [authorSlot, author, publishDate, readTime, authorClassName]);
956
+ const heroMediaContent = React4.useMemo(() => {
961
957
  if (heroMediaSlot) return heroMediaSlot;
962
- if (heroImageSrc) {
963
- return /* @__PURE__ */ jsx(
964
- Img,
965
- {
966
- src: heroImageSrc,
967
- alt: heroImageAlt,
968
- className: cn("my-8 aspect-video w-full rounded-lg object-cover", heroImageClassName),
969
- optixFlowConfig
970
- }
971
- );
972
- }
973
- return null;
974
- };
975
- const renderToc = () => {
958
+ if (!heroImageSrc) return null;
959
+ return /* @__PURE__ */ jsx(
960
+ Img,
961
+ {
962
+ src: heroImageSrc,
963
+ alt: heroImageAlt,
964
+ className: cn("my-8 aspect-video w-full rounded-lg object-cover", heroImageClassName),
965
+ optixFlowConfig
966
+ }
967
+ );
968
+ }, [heroMediaSlot, heroImageSrc, heroImageAlt, heroImageClassName, optixFlowConfig]);
969
+ const tocContent = React4.useMemo(() => {
976
970
  if (tocSlot) return tocSlot;
977
971
  if (!sections || sections.length === 0) return null;
978
972
  return /* @__PURE__ */ jsxs("div", { className: cn("rounded-lg border p-4", tocClassName), children: [
@@ -996,8 +990,8 @@ function ArticleBreadcrumbSocialComponent({
996
990
  );
997
991
  }) })
998
992
  ] });
999
- };
1000
- const renderShareButtons = () => {
993
+ }, [tocSlot, sections, activeSection, renderSectionLink, tocClassName]);
994
+ const shareButtonsContent = React4.useMemo(() => {
1001
995
  if (shareSlot) return shareSlot;
1002
996
  if (!socialLinks || socialLinks.length === 0) return null;
1003
997
  return /* @__PURE__ */ jsxs("div", { className: cn("rounded-lg border p-4", shareClassName), children: [
@@ -1016,21 +1010,21 @@ function ArticleBreadcrumbSocialComponent({
1016
1010
  index
1017
1011
  )) })
1018
1012
  ] });
1019
- };
1013
+ }, [shareSlot, socialLinks, shareClassName]);
1020
1014
  return /* @__PURE__ */ jsxs("section", { className: cn("py-32", className), children: [
1021
1015
  /* @__PURE__ */ jsxs("div", { className: cn("container", containerClassName), children: [
1022
- renderBreadcrumbs(),
1016
+ breadcrumbsContent,
1023
1017
  /* @__PURE__ */ jsxs("div", { className: "grid gap-10 lg:grid-cols-[minmax(0,1fr)_280px]", children: [
1024
1018
  /* @__PURE__ */ jsxs("article", { className: cn("prose max-w-none dark:prose-invert", articleClassName), children: [
1025
1019
  title && (typeof title === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("text-4xl font-bold tracking-tight md:text-5xl", titleClassName), children: title }) : /* @__PURE__ */ jsx("div", { className: titleClassName, children: title })),
1026
- renderAuthor(),
1020
+ authorContent,
1027
1021
  /* @__PURE__ */ jsx(Separator, { className: "my-8" }),
1028
- renderHeroMedia(),
1022
+ heroMediaContent,
1029
1023
  children || defaultArticleContent(optixFlowConfig)
1030
1024
  ] }),
1031
1025
  /* @__PURE__ */ jsx("aside", { className: cn("hidden lg:block", sidebarClassName), children: /* @__PURE__ */ jsxs("div", { className: "sticky top-8 space-y-6", children: [
1032
- renderToc(),
1033
- renderShareButtons()
1026
+ tocContent,
1027
+ shareButtonsContent
1034
1028
  ] }) })
1035
1029
  ] })
1036
1030
  ] }),
@@ -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 AvatarPrimitive__namespace = /*#__PURE__*/_interopNamespace(AvatarPrimitive);
33
33
 
34
34
  // components/blocks/article/article-chapters-author.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);
@@ -880,10 +880,10 @@ function ArticleChaptersAuthorComponent({
880
880
  optixFlowConfig
881
881
  }) {
882
882
  const conclusionActions = conclusionActionsProp ?? (conclusionButtonText ? [{ label: conclusionButtonText, href: conclusionButtonHref || "#", variant: "default" }] : []);
883
- const [activeChapter, setActiveChapter] = React__namespace.useState(
883
+ const [activeChapter, setActiveChapter] = React4__namespace.useState(
884
884
  chapters?.[0]?.id || ""
885
885
  );
886
- React__namespace.useEffect(() => {
886
+ React4__namespace.useEffect(() => {
887
887
  if (!enableChapterTracking || !chapters || chapters.length === 0) return;
888
888
  const observer = new IntersectionObserver(
889
889
  (entries) => {
@@ -901,20 +901,20 @@ function ArticleChaptersAuthorComponent({
901
901
  });
902
902
  return () => observer.disconnect();
903
903
  }, [chapters, enableChapterTracking]);
904
- const renderBreadcrumbs = () => {
904
+ const breadcrumbsContent = React4__namespace.useMemo(() => {
905
905
  if (breadcrumbsSlot) return breadcrumbsSlot;
906
906
  if (!breadcrumbs || breadcrumbs.length === 0) return null;
907
907
  return /* @__PURE__ */ jsxRuntime.jsx(Breadcrumb, { className: cn("mb-8", breadcrumbClassName), children: /* @__PURE__ */ jsxRuntime.jsxs(BreadcrumbList, { children: [
908
908
  /* @__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 }) }) }) }),
909
- breadcrumbs.map((crumb, index) => /* @__PURE__ */ jsxRuntime.jsxs(React__namespace.Fragment, { children: [
909
+ breadcrumbs.map((crumb, index) => /* @__PURE__ */ jsxRuntime.jsxs(React4__namespace.Fragment, { children: [
910
910
  /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbSeparator, {}),
911
911
  /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: crumb.href, children: crumb.label }) }) })
912
912
  ] }, index)),
913
913
  /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbSeparator, {}),
914
914
  /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbPage, { children: typeof currentPage === "string" ? currentPage : currentPage }) })
915
915
  ] }) });
916
- };
917
- const renderChaptersNav = () => {
916
+ }, [breadcrumbsSlot, breadcrumbs, currentPage, breadcrumbClassName]);
917
+ const chaptersNavContent = React4__namespace.useMemo(() => {
918
918
  if (chaptersSlot) return chaptersSlot;
919
919
  if (!chapters || chapters.length === 0) return null;
920
920
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("rounded-lg border p-4", chaptersClassName), children: [
@@ -922,7 +922,7 @@ function ArticleChaptersAuthorComponent({
922
922
  /* @__PURE__ */ jsxRuntime.jsx("nav", { className: "space-y-2", children: chapters.map((chapter) => {
923
923
  const isActive = activeChapter === chapter.id;
924
924
  if (renderChapterLink) {
925
- return /* @__PURE__ */ jsxRuntime.jsx(React__namespace.Fragment, { children: renderChapterLink(chapter, isActive) }, chapter.id);
925
+ return /* @__PURE__ */ jsxRuntime.jsx(React4__namespace.Fragment, { children: renderChapterLink(chapter, isActive) }, chapter.id);
926
926
  }
927
927
  return /* @__PURE__ */ jsxRuntime.jsxs(
928
928
  Pressable,
@@ -941,50 +941,52 @@ function ArticleChaptersAuthorComponent({
941
941
  );
942
942
  }) })
943
943
  ] });
944
- };
945
- const renderAuthorCard = () => {
944
+ }, [chaptersSlot, chapters, activeChapter, renderChapterLink, chaptersClassName]);
945
+ const authorCardContent = React4__namespace.useMemo(() => {
946
946
  if (authorSlot) return authorSlot;
947
947
  if (!author) return null;
948
- const renderSocialLinks = () => {
949
- if (!author.socialLinks) return null;
948
+ let socialLinksContent = null;
949
+ if (author.socialLinks) {
950
950
  if (Array.isArray(author.socialLinks)) {
951
- if (author.socialLinks.length === 0) return null;
952
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-4 flex gap-2", children: author.socialLinks.map((link, index) => /* @__PURE__ */ jsxRuntime.jsx(
953
- Pressable,
954
- {
955
- href: link.href,
956
- className: cn(
957
- "flex h-8 w-8 items-center justify-center rounded-md border hover:bg-muted",
958
- link.className
959
- ),
960
- "aria-label": link["aria-label"],
961
- children: link.icon ?? /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: `lucide/${link.platform}`, size: 14 })
962
- },
963
- index
964
- )) });
951
+ if (author.socialLinks.length > 0) {
952
+ socialLinksContent = /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-4 flex gap-2", children: author.socialLinks.map((link, index) => /* @__PURE__ */ jsxRuntime.jsx(
953
+ Pressable,
954
+ {
955
+ href: link.href,
956
+ className: cn(
957
+ "flex h-8 w-8 items-center justify-center rounded-md border hover:bg-muted",
958
+ link.className
959
+ ),
960
+ "aria-label": link["aria-label"],
961
+ children: link.icon ?? /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: `lucide/${link.platform}`, size: 14 })
962
+ },
963
+ index
964
+ )) });
965
+ }
965
966
  } else {
966
967
  const links = author.socialLinks;
967
968
  const socialEntries = Object.entries(links).filter(([, href]) => href);
968
- if (socialEntries.length === 0) return null;
969
- const platformLabels = {
970
- twitter: "Twitter",
971
- linkedin: "LinkedIn",
972
- github: "GitHub",
973
- facebook: "Facebook",
974
- instagram: "Instagram"
975
- };
976
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-4 flex gap-2", children: socialEntries.map(([platform, href]) => /* @__PURE__ */ jsxRuntime.jsx(
977
- Pressable,
978
- {
979
- href,
980
- className: "flex h-8 w-8 items-center justify-center rounded-md border hover:bg-muted",
981
- "aria-label": platformLabels[platform] || platform.charAt(0).toUpperCase() + platform.slice(1),
982
- children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: `lucide/${platform}`, size: 14 })
983
- },
984
- platform
985
- )) });
969
+ if (socialEntries.length > 0) {
970
+ const platformLabels = {
971
+ twitter: "Twitter",
972
+ linkedin: "LinkedIn",
973
+ github: "GitHub",
974
+ facebook: "Facebook",
975
+ instagram: "Instagram"
976
+ };
977
+ socialLinksContent = /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-4 flex gap-2", children: socialEntries.map(([platform, href]) => /* @__PURE__ */ jsxRuntime.jsx(
978
+ Pressable,
979
+ {
980
+ href,
981
+ className: "flex h-8 w-8 items-center justify-center rounded-md border hover:bg-muted",
982
+ "aria-label": platformLabels[platform] || platform.charAt(0).toUpperCase() + platform.slice(1),
983
+ children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: `lucide/${platform}`, size: 14 })
984
+ },
985
+ platform
986
+ )) });
987
+ }
986
988
  }
987
- };
989
+ }
988
990
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("rounded-lg border p-4", authorClassName), children: [
989
991
  /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-4 text-sm font-semibold", children: "About the Author" }),
990
992
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
@@ -998,25 +1000,23 @@ function ArticleChaptersAuthorComponent({
998
1000
  ] })
999
1001
  ] }),
1000
1002
  author.bio && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-3 text-sm text-muted-foreground", children: author.bio }),
1001
- renderSocialLinks()
1003
+ socialLinksContent
1002
1004
  ] });
1003
- };
1004
- const renderHeroMedia = () => {
1005
+ }, [authorSlot, author, authorClassName]);
1006
+ const heroMediaContent = React4__namespace.useMemo(() => {
1005
1007
  if (heroMediaSlot) return heroMediaSlot;
1006
- if (heroImageSrc) {
1007
- return /* @__PURE__ */ jsxRuntime.jsx(
1008
- img.Img,
1009
- {
1010
- src: heroImageSrc,
1011
- alt: heroImageAlt,
1012
- className: cn("my-8 aspect-video w-full rounded-lg object-cover", heroImageClassName),
1013
- optixFlowConfig
1014
- }
1015
- );
1016
- }
1017
- return null;
1018
- };
1019
- const renderConclusion = () => {
1008
+ if (!heroImageSrc) return null;
1009
+ return /* @__PURE__ */ jsxRuntime.jsx(
1010
+ img.Img,
1011
+ {
1012
+ src: heroImageSrc,
1013
+ alt: heroImageAlt,
1014
+ className: cn("my-8 aspect-video w-full rounded-lg object-cover", heroImageClassName),
1015
+ optixFlowConfig
1016
+ }
1017
+ );
1018
+ }, [heroMediaSlot, heroImageSrc, heroImageAlt, heroImageClassName, optixFlowConfig]);
1019
+ const conclusionContent = React4__namespace.useMemo(() => {
1020
1020
  if (conclusionSlot) return conclusionSlot;
1021
1021
  if (!conclusionTitle && !conclusionDescription && (!conclusionActions || conclusionActions.length === 0)) return null;
1022
1022
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mt-12 rounded-lg border bg-muted/50 p-6 not-prose", conclusionClassName), children: [
@@ -1040,22 +1040,22 @@ function ArticleChaptersAuthorComponent({
1040
1040
  );
1041
1041
  }) })
1042
1042
  ] });
1043
- };
1043
+ }, [conclusionSlot, conclusionTitle, conclusionDescription, conclusionActions, conclusionClassName]);
1044
1044
  return /* @__PURE__ */ jsxRuntime.jsx("section", { className: cn("py-32", className), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("container", containerClassName), children: [
1045
- renderBreadcrumbs(),
1045
+ breadcrumbsContent,
1046
1046
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mb-12 text-center", headerClassName), children: [
1047
1047
  title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl", titleClassName), children: title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: titleClassName, children: title })),
1048
1048
  subtitle && (typeof subtitle === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mt-4 text-lg text-muted-foreground md:text-xl", subtitleClassName), children: subtitle }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-4", subtitleClassName), children: subtitle }))
1049
1049
  ] }),
1050
1050
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-10 lg:grid-cols-[280px_minmax(0,1fr)]", children: [
1051
1051
  /* @__PURE__ */ jsxRuntime.jsx("aside", { className: cn("hidden lg:block", sidebarClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "sticky top-8 space-y-6", children: [
1052
- renderChaptersNav(),
1053
- renderAuthorCard()
1052
+ chaptersNavContent,
1053
+ authorCardContent
1054
1054
  ] }) }),
1055
1055
  /* @__PURE__ */ jsxRuntime.jsxs("article", { className: cn("prose max-w-none dark:prose-invert", articleClassName), children: [
1056
- renderHeroMedia(),
1056
+ heroMediaContent,
1057
1057
  children || defaultArticleContent(optixFlowConfig),
1058
- renderConclusion()
1058
+ conclusionContent
1059
1059
  ] })
1060
1060
  ] })
1061
1061
  ] }) });