@sonordev/site-kit 5.3.2 → 5.4.0

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 (301) hide show
  1. package/README.md +17 -0
  2. package/agent-manifest.json +5 -4
  3. package/dist/AnalyticsProvider-2XIOMRCN.mjs +11 -0
  4. package/dist/{AnalyticsProvider-2XK54UZW.mjs.map → AnalyticsProvider-2XIOMRCN.mjs.map} +1 -1
  5. package/dist/AnalyticsProvider-Y2P2BPOI.js +32 -0
  6. package/dist/{AnalyticsProvider-PM7SOGOS.js.map → AnalyticsProvider-Y2P2BPOI.js.map} +1 -1
  7. package/dist/{BlogViewTracker-3BIUF5TI.js → BlogViewTracker-6EGEDPP3.js} +6 -6
  8. package/dist/{BlogViewTracker-3BIUF5TI.js.map → BlogViewTracker-6EGEDPP3.js.map} +1 -1
  9. package/dist/{BlogViewTracker-KFUDRDQK.mjs → BlogViewTracker-R4YQ76WP.mjs} +5 -5
  10. package/dist/{BlogViewTracker-KFUDRDQK.mjs.map → BlogViewTracker-R4YQ76WP.mjs.map} +1 -1
  11. package/dist/ChatWidget-2OFWPCWF.js +20 -0
  12. package/dist/{ChatWidget-7BYSGNO2.js.map → ChatWidget-2OFWPCWF.js.map} +1 -1
  13. package/dist/ChatWidget-4AOGHYXQ.mjs +11 -0
  14. package/dist/{ChatWidget-4PHZHGG5.mjs.map → ChatWidget-4AOGHYXQ.mjs.map} +1 -1
  15. package/dist/EngageWidget-SFO2XRNG.mjs +9 -0
  16. package/dist/{EngageWidget-D6M6QWEC.mjs.map → EngageWidget-SFO2XRNG.mjs.map} +1 -1
  17. package/dist/EngageWidget-T4KAAD3G.js +18 -0
  18. package/dist/{EngageWidget-Q4ITKTMJ.js.map → EngageWidget-T4KAAD3G.js.map} +1 -1
  19. package/dist/{FileField-PQQDX4IR.mjs → FileField-7DF2SLPF.mjs} +5 -5
  20. package/dist/{FileField-PQQDX4IR.mjs.map → FileField-7DF2SLPF.mjs.map} +1 -1
  21. package/dist/{FileField-YBBIJOCK.js → FileField-CE2XNBBG.js} +6 -6
  22. package/dist/{FileField-YBBIJOCK.js.map → FileField-CE2XNBBG.js.map} +1 -1
  23. package/dist/{FormSpotlight-7TIIWFTP.mjs → FormSpotlight-IRLKSZGV.mjs} +3 -3
  24. package/dist/{FormSpotlight-7TIIWFTP.mjs.map → FormSpotlight-IRLKSZGV.mjs.map} +1 -1
  25. package/dist/{FormSpotlight-WUN24F3P.js → FormSpotlight-ZD3WR5BC.js} +15 -15
  26. package/dist/{FormSpotlight-WUN24F3P.js.map → FormSpotlight-ZD3WR5BC.js.map} +1 -1
  27. package/dist/{FormStage-TFN2GIBO.mjs → FormStage-2OSRNQJL.mjs} +3 -3
  28. package/dist/{FormStage-TFN2GIBO.mjs.map → FormStage-2OSRNQJL.mjs.map} +1 -1
  29. package/dist/{FormStage-CM7OVLUT.js → FormStage-OSPXOUQE.js} +13 -13
  30. package/dist/{FormStage-CM7OVLUT.js.map → FormStage-OSPXOUQE.js.map} +1 -1
  31. package/dist/ManagedForm-5G37EDJT.mjs +14 -0
  32. package/dist/{ManagedForm-ZUXLHEQU.mjs.map → ManagedForm-5G37EDJT.mjs.map} +1 -1
  33. package/dist/ManagedForm-JCHGBBQW.js +23 -0
  34. package/dist/{ManagedForm-N63YGVNY.js.map → ManagedForm-JCHGBBQW.js.map} +1 -1
  35. package/dist/{ManagedNewsletterForm-PIVJTU5L.js → ManagedNewsletterForm-4LVJZROZ.js} +8 -8
  36. package/dist/{ManagedNewsletterForm-PIVJTU5L.js.map → ManagedNewsletterForm-4LVJZROZ.js.map} +1 -1
  37. package/dist/{ManagedNewsletterForm-4AVKTZ2A.mjs → ManagedNewsletterForm-QJSVH23S.mjs} +7 -7
  38. package/dist/{ManagedNewsletterForm-4AVKTZ2A.mjs.map → ManagedNewsletterForm-QJSVH23S.mjs.map} +1 -1
  39. package/dist/{SignalCore-LT4NCPOR.mjs → SignalCore-L6Z3YTCF.mjs} +5 -5
  40. package/dist/{SignalCore-LT4NCPOR.mjs.map → SignalCore-L6Z3YTCF.mjs.map} +1 -1
  41. package/dist/{SignalCore-2M5TISM7.js → SignalCore-NQ4YEOI7.js} +11 -11
  42. package/dist/{SignalCore-2M5TISM7.js.map → SignalCore-NQ4YEOI7.js.map} +1 -1
  43. package/dist/SitemapSync-3LUZWBTB.js +18 -0
  44. package/dist/{SitemapSync-7OBOJG2L.js.map → SitemapSync-3LUZWBTB.js.map} +1 -1
  45. package/dist/SitemapSync-MYSTLJOM.mjs +9 -0
  46. package/dist/{SitemapSync-G3OLECFI.mjs.map → SitemapSync-MYSTLJOM.mjs.map} +1 -1
  47. package/dist/analytics/index.js +9 -9
  48. package/dist/analytics/index.mjs +4 -4
  49. package/dist/blog/AuthorPage.d.ts +1 -1
  50. package/dist/blog/AuthorPage.d.ts.map +1 -1
  51. package/dist/blog/BlogLayout.d.ts +3 -1
  52. package/dist/blog/BlogLayout.d.ts.map +1 -1
  53. package/dist/blog/BlogList.d.ts +3 -1
  54. package/dist/blog/BlogList.d.ts.map +1 -1
  55. package/dist/blog/BlogPost.d.ts +3 -1
  56. package/dist/blog/BlogPost.d.ts.map +1 -1
  57. package/dist/blog/BlogSidebar.d.ts +3 -1
  58. package/dist/blog/BlogSidebar.d.ts.map +1 -1
  59. package/dist/blog/ClusterLandingPage.d.ts +3 -1
  60. package/dist/blog/ClusterLandingPage.d.ts.map +1 -1
  61. package/dist/blog/ClusterNavigation.d.ts +3 -1
  62. package/dist/blog/ClusterNavigation.d.ts.map +1 -1
  63. package/dist/blog/RelatedPosts.d.ts +4 -1
  64. package/dist/blog/RelatedPosts.d.ts.map +1 -1
  65. package/dist/blog/artwork-components.test.d.ts +2 -0
  66. package/dist/blog/artwork-components.test.d.ts.map +1 -0
  67. package/dist/blog/artwork.d.ts +14 -0
  68. package/dist/blog/artwork.d.ts.map +1 -0
  69. package/dist/blog/artwork.test.d.ts +2 -0
  70. package/dist/blog/artwork.test.d.ts.map +1 -0
  71. package/dist/blog/blog-styles.d.ts.map +1 -1
  72. package/dist/blog/blog-tables.d.ts +13 -0
  73. package/dist/blog/blog-tables.d.ts.map +1 -0
  74. package/dist/blog/blog-tables.test.d.ts +2 -0
  75. package/dist/blog/blog-tables.test.d.ts.map +1 -0
  76. package/dist/blog/index.d.ts +3 -0
  77. package/dist/blog/index.d.ts.map +1 -1
  78. package/dist/blog/index.js +52 -30
  79. package/dist/blog/index.js.map +1 -1
  80. package/dist/blog/index.mjs +15 -12
  81. package/dist/blog/index.mjs.map +1 -1
  82. package/dist/blog/publication-render.test.d.ts +2 -0
  83. package/dist/blog/publication-render.test.d.ts.map +1 -0
  84. package/dist/blog/publication-routes.test.d.ts +2 -0
  85. package/dist/blog/publication-routes.test.d.ts.map +1 -0
  86. package/dist/blog/routes.d.ts +40 -0
  87. package/dist/blog/routes.d.ts.map +1 -0
  88. package/dist/blog/server-core.d.ts +28 -21
  89. package/dist/blog/server-core.d.ts.map +1 -1
  90. package/dist/blog/server-ui.d.ts +4 -0
  91. package/dist/blog/server-ui.d.ts.map +1 -1
  92. package/dist/blog/server-ui.js +49 -28
  93. package/dist/blog/server-ui.js.map +1 -1
  94. package/dist/blog/server-ui.mjs +9 -15
  95. package/dist/blog/server-ui.mjs.map +1 -1
  96. package/dist/blog/server.d.ts +28 -21
  97. package/dist/blog/server.d.ts.map +1 -1
  98. package/dist/blog/server.js +71 -42
  99. package/dist/blog/server.mjs +3 -2
  100. package/dist/blog/types.d.ts +8 -1
  101. package/dist/blog/types.d.ts.map +1 -1
  102. package/dist/blog-styles-6EY3BS5Y.js +595 -0
  103. package/dist/blog-styles-6EY3BS5Y.js.map +1 -0
  104. package/dist/blog-styles-7AKRUMV7.mjs +592 -0
  105. package/dist/blog-styles-7AKRUMV7.mjs.map +1 -0
  106. package/dist/blog-tables-DWDEWA3S.js +17 -0
  107. package/dist/blog-tables-DWDEWA3S.js.map +1 -0
  108. package/dist/blog-tables-QGIHOESZ.mjs +4 -0
  109. package/dist/blog-tables-QGIHOESZ.mjs.map +1 -0
  110. package/dist/{chunk-M7FWXEXC.js → chunk-2KIGFOPM.js} +5 -5
  111. package/dist/{chunk-M7FWXEXC.js.map → chunk-2KIGFOPM.js.map} +1 -1
  112. package/dist/chunk-4B4S56WJ.mjs +110 -0
  113. package/dist/chunk-4B4S56WJ.mjs.map +1 -0
  114. package/dist/{chunk-PZXKFHPO.js → chunk-4WQB2ORG.js} +14 -14
  115. package/dist/{chunk-PZXKFHPO.js.map → chunk-4WQB2ORG.js.map} +1 -1
  116. package/dist/{chunk-XQZTOWS3.js → chunk-5737U6DI.js} +14 -14
  117. package/dist/{chunk-XQZTOWS3.js.map → chunk-5737U6DI.js.map} +1 -1
  118. package/dist/{chunk-ZOJ3TLO5.mjs → chunk-6CUBSQMD.mjs} +3 -3
  119. package/dist/{chunk-ZOJ3TLO5.mjs.map → chunk-6CUBSQMD.mjs.map} +1 -1
  120. package/dist/{chunk-JBGRXICL.js → chunk-746RKQHA.js} +75 -70
  121. package/dist/chunk-746RKQHA.js.map +1 -0
  122. package/dist/{chunk-E33HJMRP.js → chunk-7IPSQ5JR.js} +6 -6
  123. package/dist/{chunk-E33HJMRP.js.map → chunk-7IPSQ5JR.js.map} +1 -1
  124. package/dist/{chunk-FDVE56JS.js → chunk-7PLH3H3W.js} +3 -3
  125. package/dist/{chunk-FDVE56JS.js.map → chunk-7PLH3H3W.js.map} +1 -1
  126. package/dist/chunk-7U7C6XRI.mjs +6 -0
  127. package/dist/{chunk-OUERH2T4.mjs.map → chunk-7U7C6XRI.mjs.map} +1 -1
  128. package/dist/{chunk-DZDWBQKA.mjs → chunk-7Y2UPFSY.mjs} +3 -3
  129. package/dist/{chunk-DZDWBQKA.mjs.map → chunk-7Y2UPFSY.mjs.map} +1 -1
  130. package/dist/{chunk-JSLYNYTB.mjs → chunk-A2VLEORI.mjs} +3 -3
  131. package/dist/{chunk-JSLYNYTB.mjs.map → chunk-A2VLEORI.mjs.map} +1 -1
  132. package/dist/{chunk-6QABCGM6.mjs → chunk-ACTLQ2RH.mjs} +3 -3
  133. package/dist/{chunk-6QABCGM6.mjs.map → chunk-ACTLQ2RH.mjs.map} +1 -1
  134. package/dist/{chunk-PEEQMI7U.js → chunk-AWFZIXCT.js} +11 -11
  135. package/dist/{chunk-PEEQMI7U.js.map → chunk-AWFZIXCT.js.map} +1 -1
  136. package/dist/{chunk-HVFXFPUJ.mjs → chunk-B36PTS7B.mjs} +413 -94
  137. package/dist/chunk-B36PTS7B.mjs.map +1 -0
  138. package/dist/{chunk-KPFPSOYS.js → chunk-DPDV5Z4G.js} +12 -12
  139. package/dist/{chunk-KPFPSOYS.js.map → chunk-DPDV5Z4G.js.map} +1 -1
  140. package/dist/{chunk-JTO3K5B7.mjs → chunk-DQM5GR2P.mjs} +4 -4
  141. package/dist/{chunk-JTO3K5B7.mjs.map → chunk-DQM5GR2P.mjs.map} +1 -1
  142. package/dist/{chunk-HDQTZAGE.mjs → chunk-EBMPXFOP.mjs} +3 -3
  143. package/dist/{chunk-HDQTZAGE.mjs.map → chunk-EBMPXFOP.mjs.map} +1 -1
  144. package/dist/{chunk-DHXQBTXE.mjs → chunk-EEQYKMGH.mjs} +75 -70
  145. package/dist/chunk-EEQYKMGH.mjs.map +1 -0
  146. package/dist/{chunk-6VG65AIA.mjs → chunk-G5I3XEQS.mjs} +3 -3
  147. package/dist/{chunk-6VG65AIA.mjs.map → chunk-G5I3XEQS.mjs.map} +1 -1
  148. package/dist/chunk-GHECYDSZ.mjs +134 -0
  149. package/dist/chunk-GHECYDSZ.mjs.map +1 -0
  150. package/dist/{chunk-6AZTRTCG.js → chunk-GQ6CUOLA.js} +15 -15
  151. package/dist/{chunk-6AZTRTCG.js.map → chunk-GQ6CUOLA.js.map} +1 -1
  152. package/dist/{chunk-5BZDHZCN.js → chunk-HBMF3M5F.js} +4 -4
  153. package/dist/{chunk-5BZDHZCN.js.map → chunk-HBMF3M5F.js.map} +1 -1
  154. package/dist/{chunk-AVM4OZHR.mjs → chunk-HDDV63XJ.mjs} +3 -3
  155. package/dist/{chunk-AVM4OZHR.mjs.map → chunk-HDDV63XJ.mjs.map} +1 -1
  156. package/dist/{chunk-KOP3DPIR.mjs → chunk-HH5KGXTK.mjs} +4 -4
  157. package/dist/{chunk-KOP3DPIR.mjs.map → chunk-HH5KGXTK.mjs.map} +1 -1
  158. package/dist/{chunk-CQUA2AUA.mjs → chunk-I4PDSDVE.mjs} +3 -3
  159. package/dist/{chunk-CQUA2AUA.mjs.map → chunk-I4PDSDVE.mjs.map} +1 -1
  160. package/dist/{chunk-757HXAYX.js → chunk-ITFZZ6YT.js} +3 -3
  161. package/dist/{chunk-757HXAYX.js.map → chunk-ITFZZ6YT.js.map} +1 -1
  162. package/dist/{chunk-N3C323NY.mjs → chunk-JJ26JKBJ.mjs} +3 -3
  163. package/dist/{chunk-N3C323NY.mjs.map → chunk-JJ26JKBJ.mjs.map} +1 -1
  164. package/dist/{chunk-Z33JXJTJ.js → chunk-KMGGAL2X.js} +2 -2
  165. package/dist/{chunk-Z33JXJTJ.js.map → chunk-KMGGAL2X.js.map} +1 -1
  166. package/dist/{chunk-TS3N3LGZ.mjs → chunk-KQ3VAOAF.mjs} +4 -4
  167. package/dist/{chunk-TS3N3LGZ.mjs.map → chunk-KQ3VAOAF.mjs.map} +1 -1
  168. package/dist/{chunk-GPNBBUEN.js → chunk-LBS4PRC7.js} +3 -3
  169. package/dist/{chunk-GPNBBUEN.js.map → chunk-LBS4PRC7.js.map} +1 -1
  170. package/dist/chunk-LC7AM4J5.js +118 -0
  171. package/dist/chunk-LC7AM4J5.js.map +1 -0
  172. package/dist/{chunk-4DE2KJ7R.js → chunk-LF4L3ZP5.js} +8 -8
  173. package/dist/{chunk-4DE2KJ7R.js.map → chunk-LF4L3ZP5.js.map} +1 -1
  174. package/dist/{chunk-DYKFC7WY.js → chunk-LHYVFWHL.js} +8 -8
  175. package/dist/{chunk-DYKFC7WY.js.map → chunk-LHYVFWHL.js.map} +1 -1
  176. package/dist/{chunk-67CHHDBL.mjs → chunk-LIYSLNEK.mjs} +96 -644
  177. package/dist/chunk-LIYSLNEK.mjs.map +1 -0
  178. package/dist/{chunk-G3YUSRCL.js → chunk-LUYUFILE.js} +4 -4
  179. package/dist/{chunk-G3YUSRCL.js.map → chunk-LUYUFILE.js.map} +1 -1
  180. package/dist/{chunk-ZKR5AJV5.mjs → chunk-MIFP6QEQ.mjs} +4 -4
  181. package/dist/{chunk-ZKR5AJV5.mjs.map → chunk-MIFP6QEQ.mjs.map} +1 -1
  182. package/dist/{chunk-QZ54OCWD.mjs → chunk-MTANHZKJ.mjs} +7 -7
  183. package/dist/{chunk-QZ54OCWD.mjs.map → chunk-MTANHZKJ.mjs.map} +1 -1
  184. package/dist/{chunk-NSLYY62T.mjs → chunk-N6AVWMIB.mjs} +4 -4
  185. package/dist/{chunk-NSLYY62T.mjs.map → chunk-N6AVWMIB.mjs.map} +1 -1
  186. package/dist/{chunk-OC6PU7U2.mjs → chunk-N6X76QUF.mjs} +3 -3
  187. package/dist/{chunk-OC6PU7U2.mjs.map → chunk-N6X76QUF.mjs.map} +1 -1
  188. package/dist/{chunk-42F5EK24.mjs → chunk-NUH245XK.mjs} +4 -4
  189. package/dist/{chunk-42F5EK24.mjs.map → chunk-NUH245XK.mjs.map} +1 -1
  190. package/dist/{chunk-MANX6422.js → chunk-OXZYP32B.js} +7 -7
  191. package/dist/{chunk-MANX6422.js.map → chunk-OXZYP32B.js.map} +1 -1
  192. package/dist/{chunk-K37JPEQW.js → chunk-QWLL3B6U.js} +15 -15
  193. package/dist/{chunk-K37JPEQW.js.map → chunk-QWLL3B6U.js.map} +1 -1
  194. package/dist/{chunk-AXAIUCSF.mjs → chunk-SJXGIUHP.mjs} +8 -8
  195. package/dist/{chunk-AXAIUCSF.mjs.map → chunk-SJXGIUHP.mjs.map} +1 -1
  196. package/dist/{chunk-4TU246Q4.mjs → chunk-SZHKNGNR.mjs} +2 -2
  197. package/dist/{chunk-4TU246Q4.mjs.map → chunk-SZHKNGNR.mjs.map} +1 -1
  198. package/dist/{chunk-R3LYTIVN.js → chunk-U53KN4SA.js} +5 -5
  199. package/dist/{chunk-R3LYTIVN.js.map → chunk-U53KN4SA.js.map} +1 -1
  200. package/dist/{chunk-Y7SRO7MJ.mjs → chunk-UOLY4NXK.mjs} +3 -3
  201. package/dist/{chunk-Y7SRO7MJ.mjs.map → chunk-UOLY4NXK.mjs.map} +1 -1
  202. package/dist/{chunk-Z7K5AMCE.js → chunk-URVGBWCP.js} +4 -4
  203. package/dist/{chunk-Z7K5AMCE.js.map → chunk-URVGBWCP.js.map} +1 -1
  204. package/dist/chunk-UTOHMK52.js +8 -0
  205. package/dist/{chunk-D37M7MIH.js.map → chunk-UTOHMK52.js.map} +1 -1
  206. package/dist/{chunk-FFJVQWKO.js → chunk-VA36CJRV.js} +4 -4
  207. package/dist/{chunk-FFJVQWKO.js.map → chunk-VA36CJRV.js.map} +1 -1
  208. package/dist/{chunk-A3NNUKFA.js → chunk-VWDT7H6L.js} +96 -644
  209. package/dist/chunk-VWDT7H6L.js.map +1 -0
  210. package/dist/{chunk-OIJ435IZ.js → chunk-WSUQ76LN.js} +18 -18
  211. package/dist/{chunk-OIJ435IZ.js.map → chunk-WSUQ76LN.js.map} +1 -1
  212. package/dist/{chunk-XW5KNCWJ.mjs → chunk-XWF7QPIP.mjs} +3 -3
  213. package/dist/{chunk-XW5KNCWJ.mjs.map → chunk-XWF7QPIP.mjs.map} +1 -1
  214. package/dist/chunk-YQTE32QK.js +137 -0
  215. package/dist/chunk-YQTE32QK.js.map +1 -0
  216. package/dist/{chunk-DVH3JHZ3.mjs → chunk-ZDFVYSKK.mjs} +4 -4
  217. package/dist/{chunk-DVH3JHZ3.mjs.map → chunk-ZDFVYSKK.mjs.map} +1 -1
  218. package/dist/{chunk-GFNXWS3I.js → chunk-ZLPXFV5Y.js} +5 -5
  219. package/dist/{chunk-GFNXWS3I.js.map → chunk-ZLPXFV5Y.js.map} +1 -1
  220. package/dist/{chunk-W23TMUKB.js → chunk-ZY5AVC4P.js} +418 -98
  221. package/dist/chunk-ZY5AVC4P.js.map +1 -0
  222. package/dist/cli/index.js +3 -3
  223. package/dist/cli/index.mjs +1 -1
  224. package/dist/client/index.js +4 -4
  225. package/dist/client/index.mjs +3 -3
  226. package/dist/commerce/index.js +56 -56
  227. package/dist/commerce/index.mjs +5 -5
  228. package/dist/engage/index.js +10 -10
  229. package/dist/engage/index.mjs +7 -7
  230. package/dist/fleet/index.js +8 -8
  231. package/dist/fleet/index.mjs +4 -4
  232. package/dist/forms/index.js +16 -16
  233. package/dist/forms/index.mjs +9 -9
  234. package/dist/forms/server.js +10 -10
  235. package/dist/forms/server.mjs +8 -8
  236. package/dist/forms/static.js +7 -7
  237. package/dist/forms/static.mjs +6 -6
  238. package/dist/images/index.js +11 -11
  239. package/dist/images/index.mjs +4 -4
  240. package/dist/index.js +63 -63
  241. package/dist/index.mjs +9 -9
  242. package/dist/layout/client.js +8 -8
  243. package/dist/layout/client.mjs +7 -7
  244. package/dist/layout/index.js +10 -10
  245. package/dist/layout/index.mjs +8 -8
  246. package/dist/llms/index.js +12 -12
  247. package/dist/llms/index.mjs +2 -2
  248. package/dist/maps/index.js +5 -5
  249. package/dist/maps/index.mjs +3 -3
  250. package/dist/search/index.js +4 -4
  251. package/dist/search/index.mjs +3 -3
  252. package/dist/seo/client.js +5 -5
  253. package/dist/seo/client.mjs +4 -4
  254. package/dist/seo/index.js +5 -5
  255. package/dist/seo/index.mjs +4 -4
  256. package/dist/server/index.js +3 -3
  257. package/dist/server/index.mjs +2 -2
  258. package/dist/shared/version.d.ts +1 -1
  259. package/dist/signal/index.js +11 -11
  260. package/dist/signal/index.mjs +2 -2
  261. package/dist/sitemap/index.js +2 -2
  262. package/dist/sitemap/index.mjs +1 -1
  263. package/dist/sync/BookingWidget.d.ts +0 -23
  264. package/dist/sync/BookingWidget.d.ts.map +1 -1
  265. package/dist/sync/MeetingFormatStep.d.ts +13 -0
  266. package/dist/sync/MeetingFormatStep.d.ts.map +1 -0
  267. package/dist/sync/api.d.ts +9 -10
  268. package/dist/sync/api.d.ts.map +1 -1
  269. package/dist/sync/booking-flow.d.ts +7 -0
  270. package/dist/sync/booking-flow.d.ts.map +1 -0
  271. package/dist/sync/booking-flow.test.d.ts +2 -0
  272. package/dist/sync/booking-flow.test.d.ts.map +1 -0
  273. package/dist/sync/index.d.ts +2 -2
  274. package/dist/sync/index.d.ts.map +1 -1
  275. package/dist/sync/index.js +20 -16
  276. package/dist/sync/index.mjs +4 -4
  277. package/dist/sync/types.d.ts +34 -0
  278. package/dist/sync/types.d.ts.map +1 -1
  279. package/package.json +1 -1
  280. package/dist/AnalyticsProvider-2XK54UZW.mjs +0 -11
  281. package/dist/AnalyticsProvider-PM7SOGOS.js +0 -32
  282. package/dist/ChatWidget-4PHZHGG5.mjs +0 -11
  283. package/dist/ChatWidget-7BYSGNO2.js +0 -20
  284. package/dist/EngageWidget-D6M6QWEC.mjs +0 -9
  285. package/dist/EngageWidget-Q4ITKTMJ.js +0 -18
  286. package/dist/ManagedForm-N63YGVNY.js +0 -23
  287. package/dist/ManagedForm-ZUXLHEQU.mjs +0 -14
  288. package/dist/SitemapSync-7OBOJG2L.js +0 -18
  289. package/dist/SitemapSync-G3OLECFI.mjs +0 -9
  290. package/dist/chunk-67CHHDBL.mjs.map +0 -1
  291. package/dist/chunk-A3NNUKFA.js.map +0 -1
  292. package/dist/chunk-CGCYZJYX.mjs +0 -41
  293. package/dist/chunk-CGCYZJYX.mjs.map +0 -1
  294. package/dist/chunk-D37M7MIH.js +0 -8
  295. package/dist/chunk-DHXQBTXE.mjs.map +0 -1
  296. package/dist/chunk-HVFXFPUJ.mjs.map +0 -1
  297. package/dist/chunk-JBGRXICL.js.map +0 -1
  298. package/dist/chunk-OUERH2T4.mjs +0 -6
  299. package/dist/chunk-TPL2IHFI.js +0 -43
  300. package/dist/chunk-TPL2IHFI.js.map +0 -1
  301. package/dist/chunk-W23TMUKB.js.map +0 -1
@@ -1,4 +1,5 @@
1
1
  import { widgetStyle, widgetTitleStyle } from './chunk-YFX3Q56O.mjs';
2
+ import { createBlogRoutes, resolveBlogArtwork, blogCategorySlug, blogArtworkImageStyle } from './chunk-4B4S56WJ.mjs';
2
3
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
3
4
  import { marked } from 'marked';
4
5
  import React from 'react';
@@ -287,7 +288,8 @@ var clusterNavCss = `
287
288
  `;
288
289
  function ClusterNavigation({
289
290
  navigation,
290
- basePath = "/blog",
291
+ basePath,
292
+ routing,
291
293
  category,
292
294
  trailingSlash = false,
293
295
  unstyled = false,
@@ -301,9 +303,8 @@ function ClusterNavigation({
301
303
  const hasSiblings = siblings.length > 0;
302
304
  if (!hasPillarLink && !hasSiblings) return null;
303
305
  const articleUrl = (article) => {
304
- const cat = article.category || category;
305
- const path = cat ? `${basePath}/${cat}/${article.slug}` : `${basePath}/${article.slug}`;
306
- return trailingSlash ? `${path}/` : path;
306
+ const path = createBlogRoutes({ basePath, category, includeCategoryInPath: !routing, ...routing }).post(article);
307
+ return trailingSlash ? path.replace(/\/?([?#]|$)/, "/$1") : path;
307
308
  };
308
309
  return /* @__PURE__ */ jsxs(Fragment, { children: [
309
310
  !unstyled && /* @__PURE__ */ jsx("style", { dangerouslySetInnerHTML: { __html: clusterNavCss } }),
@@ -386,590 +387,6 @@ function getAuthorSocialLinks(author) {
386
387
  if (github) links.push({ label: "GitHub", href: withPrefix(github, "https://github.com/") });
387
388
  return links;
388
389
  }
389
-
390
- // src/blog/blog-styles.ts
391
- var blogPostCss = (
392
- /* css */
393
- `
394
- /* ===== Layout ===== */
395
- .sk-blog-article {
396
- --_sk-primary: var(--sk-primary, #2563eb);
397
- --_sk-bg: var(--sk-bg, #ffffff);
398
- --_sk-bg-el: var(--sk-bg-elevated, #f8fafc);
399
- --_sk-text: var(--sk-text-primary, inherit);
400
- --_sk-text2: var(--sk-text-secondary, #475569);
401
- --_sk-text3: var(--sk-text-tertiary, #94a3b8);
402
- --_sk-border: var(--sk-surface-border, #e2e8f0);
403
- max-width: 1080px;
404
- margin: 0 auto;
405
- padding: 0 1rem;
406
- color: var(--_sk-text);
407
- }
408
-
409
- /* ===== Header ===== */
410
- .sk-blog-header { margin-bottom: 2.5rem; }
411
-
412
- .sk-blog-breadcrumb {
413
- display: flex;
414
- align-items: center;
415
- gap: 0.4rem;
416
- margin-bottom: 1.25rem;
417
- font-size: 0.8125rem;
418
- color: var(--_sk-text3);
419
- }
420
- .sk-blog-breadcrumb a {
421
- color: var(--_sk-primary);
422
- text-decoration: none;
423
- font-weight: 500;
424
- }
425
- .sk-blog-breadcrumb a:hover { text-decoration: underline; }
426
- .sk-blog-breadcrumb-sep { color: var(--_sk-text3); }
427
-
428
- .sk-blog-title {
429
- font-size: 2.5rem;
430
- font-weight: 800;
431
- line-height: 1.15;
432
- letter-spacing: -0.02em;
433
- text-wrap: balance;
434
- margin: 0 0 0.75rem;
435
- color: var(--_sk-text);
436
- }
437
- .sk-blog-subtitle {
438
- font-size: 1.25rem;
439
- line-height: 1.5;
440
- color: var(--_sk-text2);
441
- margin: 0 0 1rem;
442
- }
443
- .sk-blog-meta {
444
- display: flex;
445
- align-items: center;
446
- flex-wrap: wrap;
447
- gap: 0.5rem;
448
- font-size: 0.8125rem;
449
- color: var(--_sk-text3);
450
- }
451
- .sk-blog-meta-item { white-space: nowrap; }
452
- .sk-blog-meta-dot {
453
- width: 3px; height: 3px;
454
- border-radius: 50%;
455
- background: var(--_sk-text3);
456
- flex-shrink: 0;
457
- }
458
-
459
- /* ===== Featured image ===== */
460
- .sk-blog-featured-wrap {
461
- margin: 0 0 2.5rem;
462
- border-radius: 0.75rem;
463
- overflow: hidden;
464
- }
465
- .sk-blog-featured-img {
466
- display: block;
467
- width: 100%;
468
- max-height: 500px;
469
- object-fit: cover;
470
- }
471
-
472
- /* ===== Content + TOC grid ===== */
473
- .sk-blog-layout {
474
- display: grid;
475
- grid-template-columns: 1fr;
476
- gap: 3rem;
477
- }
478
- @media (min-width: 1024px) {
479
- .sk-blog-layout--has-toc {
480
- grid-template-columns: 1fr 320px;
481
- }
482
- }
483
-
484
- /* ===== Article body typography ===== */
485
- .sk-blog-content {
486
- font-size: 1.125rem;
487
- line-height: 1.8;
488
- color: var(--_sk-text);
489
- overflow-wrap: break-word;
490
- }
491
- .sk-blog-content > * + * { margin-top: 1.5em; }
492
- .sk-blog-content h2,
493
- .sk-blog-content h3,
494
- .sk-blog-content h4 {
495
- scroll-margin-top: 5rem;
496
- line-height: 1.3;
497
- font-weight: 700;
498
- color: var(--_sk-text);
499
- }
500
- .sk-blog-content h2 { font-size: 1.5rem; margin-top: 2.5em; margin-bottom: 0.75em; }
501
- .sk-blog-content h3 { font-size: 1.25rem; margin-top: 2em; margin-bottom: 0.5em; }
502
- .sk-blog-content h4 { font-size: 1.1rem; margin-top: 1.5em; margin-bottom: 0.5em; }
503
- .sk-blog-content p { margin: 0 0 1.5em; }
504
- .sk-blog-content a {
505
- color: var(--_sk-primary);
506
- text-decoration: underline;
507
- text-decoration-color: color-mix(in srgb, var(--_sk-primary) 40%, transparent);
508
- text-underline-offset: 2px;
509
- transition: text-decoration-color 0.15s;
510
- }
511
- .sk-blog-content a:hover {
512
- text-decoration-color: var(--_sk-primary);
513
- }
514
- .sk-blog-content strong { font-weight: 700; color: var(--_sk-text); }
515
- .sk-blog-content em { font-style: italic; }
516
- .sk-blog-content blockquote {
517
- border-left: 3px solid var(--_sk-primary);
518
- padding: 0.75em 1.25em;
519
- margin: 1.5em 0;
520
- color: var(--_sk-text2);
521
- font-style: italic;
522
- background: color-mix(in srgb, var(--_sk-primary) 5%, var(--_sk-bg));
523
- border-radius: 0 0.5rem 0.5rem 0;
524
- }
525
- .sk-blog-content blockquote p:last-child { margin-bottom: 0; }
526
- .sk-blog-content ul,
527
- .sk-blog-content ol {
528
- padding-left: 1.5em;
529
- margin: 1.25em 0;
530
- }
531
- .sk-blog-content li { margin-bottom: 0.5em; }
532
- .sk-blog-content li::marker { color: var(--_sk-primary); }
533
- .sk-blog-content code {
534
- font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
535
- font-size: 0.875em;
536
- padding: 0.15em 0.4em;
537
- border-radius: 0.25rem;
538
- background: color-mix(in srgb, var(--_sk-text) 8%, var(--_sk-bg));
539
- }
540
- .sk-blog-content pre {
541
- margin: 1.5em 0;
542
- padding: 1.25em 1.5em;
543
- border-radius: 0.75rem;
544
- background: color-mix(in srgb, var(--_sk-text) 6%, var(--_sk-bg));
545
- overflow-x: auto;
546
- font-size: 0.875rem;
547
- line-height: 1.7;
548
- }
549
- .sk-blog-content pre code {
550
- background: none;
551
- padding: 0;
552
- font-size: inherit;
553
- }
554
- .sk-blog-content img {
555
- max-width: 100%;
556
- height: auto;
557
- border-radius: 0.5rem;
558
- margin: 1.5em auto;
559
- display: block;
560
- }
561
- .sk-blog-content hr {
562
- border: none;
563
- height: 1px;
564
- background: var(--_sk-border);
565
- margin: 2.5em 0;
566
- }
567
- .sk-blog-content table {
568
- width: 100%;
569
- border-collapse: collapse;
570
- margin: 1.5em 0;
571
- font-size: 0.95rem;
572
- }
573
- .sk-blog-content th,
574
- .sk-blog-content td {
575
- text-align: left;
576
- padding: 0.625rem 0.875rem;
577
- border-bottom: 1px solid var(--_sk-border);
578
- }
579
- .sk-blog-content th {
580
- font-weight: 600;
581
- color: var(--_sk-text);
582
- }
583
- .sk-blog-content td { color: var(--_sk-text2); }
584
-
585
- /* ===== Table of contents ===== */
586
- .sk-blog-toc {
587
- position: sticky;
588
- top: 6rem;
589
- align-self: start;
590
- padding: 1.25rem;
591
- border-radius: 0.75rem;
592
- background: var(--_sk-bg-el);
593
- border: 1px solid var(--_sk-border);
594
- max-height: calc(100vh - 8rem);
595
- overflow-y: auto;
596
- scrollbar-width: thin;
597
- scrollbar-color: var(--_sk-border) transparent;
598
- }
599
- .sk-blog-toc::-webkit-scrollbar { width: 5px; }
600
- .sk-blog-toc::-webkit-scrollbar-track { background: transparent; }
601
- .sk-blog-toc::-webkit-scrollbar-thumb { background: var(--_sk-border); border-radius: 3px; }
602
- .sk-blog-toc::-webkit-scrollbar-thumb:hover { background: var(--_sk-text3); }
603
- .sk-blog-toc-title {
604
- margin: 0 0 0.75rem;
605
- font-size: 0.6875rem;
606
- font-weight: 700;
607
- text-transform: uppercase;
608
- letter-spacing: 0.08em;
609
- color: var(--_sk-text3);
610
- }
611
- .sk-blog-toc-list {
612
- list-style: none;
613
- margin: 0;
614
- padding: 0;
615
- }
616
- .sk-blog-toc-list li { margin-bottom: 0.4rem; }
617
- .sk-blog-toc-list a {
618
- display: block;
619
- font-size: 0.8125rem;
620
- line-height: 1.5;
621
- color: var(--_sk-text2);
622
- text-decoration: none;
623
- padding: 0.15rem 0;
624
- transition: color 0.15s;
625
- }
626
- .sk-blog-toc-list a:hover { color: var(--_sk-primary); }
627
- .sk-blog-toc-indent-3 { padding-left: 0.75rem; }
628
- .sk-blog-toc-indent-4 { padding-left: 1.5rem; }
629
-
630
- @media (max-width: 1023px) {
631
- .sk-blog-toc { display: none; }
632
- }
633
-
634
- /* ===== Tags ===== */
635
- .sk-blog-tags {
636
- display: flex;
637
- flex-wrap: wrap;
638
- gap: 0.5rem;
639
- margin-top: 2.5rem;
640
- }
641
- .sk-blog-tag {
642
- display: inline-block;
643
- padding: 0.25rem 0.875rem;
644
- font-size: 0.8125rem;
645
- font-weight: 500;
646
- border-radius: 9999px;
647
- background: var(--_sk-bg-el);
648
- border: 1px solid var(--_sk-border);
649
- color: var(--_sk-text2);
650
- text-decoration: none;
651
- transition: color 0.15s, border-color 0.15s;
652
- }
653
- .sk-blog-tag:hover {
654
- color: var(--_sk-primary);
655
- border-color: color-mix(in srgb, var(--_sk-primary) 40%, transparent);
656
- }
657
-
658
- /* ===== Author card ===== */
659
- .sk-blog-author {
660
- margin-top: 3rem;
661
- padding: 1.5rem;
662
- border-radius: 0.75rem;
663
- background: var(--_sk-bg-el);
664
- border: 1px solid var(--_sk-border);
665
- display: flex;
666
- gap: 1.25rem;
667
- align-items: flex-start;
668
- }
669
- .sk-blog-author-avatar {
670
- width: 72px;
671
- height: 72px;
672
- border-radius: 50%;
673
- object-fit: cover;
674
- flex-shrink: 0;
675
- }
676
- .sk-blog-author-name {
677
- margin: 0 0 0.125rem;
678
- font-size: 1.0625rem;
679
- font-weight: 700;
680
- color: var(--_sk-text);
681
- }
682
- .sk-blog-author-title {
683
- margin: 0 0 0.25rem;
684
- font-size: 0.8125rem;
685
- color: var(--_sk-text3);
686
- }
687
- .sk-blog-author-bio {
688
- margin: 0.5rem 0 0;
689
- font-size: 0.875rem;
690
- line-height: 1.6;
691
- color: var(--_sk-text2);
692
- }
693
- .sk-blog-author-links {
694
- display: flex;
695
- gap: 1rem;
696
- margin-top: 0.625rem;
697
- }
698
- .sk-blog-author-links a {
699
- font-size: 0.8125rem;
700
- font-weight: 600;
701
- color: var(--_sk-primary);
702
- text-decoration: none;
703
- }
704
- .sk-blog-author-links a:hover { text-decoration: underline; }
705
-
706
- @media (max-width: 640px) {
707
- .sk-blog-author { flex-direction: column; align-items: center; text-align: center; }
708
- .sk-blog-author-links { justify-content: center; }
709
- }
710
-
711
- /* ===== Related posts ===== */
712
- .sk-blog-related { margin-top: 3.5rem; }
713
- .sk-blog-related-title {
714
- font-size: 1.375rem;
715
- font-weight: 700;
716
- margin: 0 0 1.5rem;
717
- color: var(--_sk-text);
718
- }
719
- .sk-blog-related-grid {
720
- display: grid;
721
- grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
722
- gap: 1.25rem;
723
- }
724
- .sk-blog-related-card {
725
- border-radius: 0.75rem;
726
- overflow: hidden;
727
- background: var(--_sk-bg-el);
728
- border: 1px solid var(--_sk-border);
729
- text-decoration: none;
730
- color: inherit;
731
- display: flex;
732
- flex-direction: column;
733
- transition: transform 0.2s, box-shadow 0.2s;
734
- }
735
- .sk-blog-related-card:hover {
736
- transform: translateY(-2px);
737
- box-shadow: 0 8px 24px rgba(0,0,0,0.08);
738
- }
739
- .sk-blog-related-card img {
740
- width: 100%;
741
- height: 160px;
742
- object-fit: cover;
743
- }
744
- .sk-blog-related-card-body { padding: 1rem 1.125rem; }
745
- .sk-blog-related-card h3 {
746
- font-size: 0.9375rem;
747
- font-weight: 650;
748
- line-height: 1.4;
749
- margin: 0 0 0.375rem;
750
- color: var(--_sk-text);
751
- }
752
- .sk-blog-related-card p {
753
- font-size: 0.8125rem;
754
- line-height: 1.5;
755
- color: var(--_sk-text2);
756
- margin: 0;
757
- display: -webkit-box;
758
- -webkit-line-clamp: 2;
759
- -webkit-box-orient: vertical;
760
- overflow: hidden;
761
- }
762
-
763
- /* ===== Not found ===== */
764
- .sk-blog-not-found {
765
- text-align: center;
766
- padding: 5rem 1rem;
767
- }
768
- .sk-blog-not-found h1 {
769
- font-size: 1.5rem;
770
- font-weight: 700;
771
- margin: 0 0 0.75rem;
772
- color: var(--_sk-text);
773
- }
774
- .sk-blog-not-found p {
775
- color: var(--_sk-text2);
776
- margin: 0 0 1.5rem;
777
- }
778
- .sk-blog-not-found a {
779
- display: inline-block;
780
- padding: 0.75rem 1.5rem;
781
- border-radius: 0.5rem;
782
- background: var(--_sk-primary);
783
- color: #fff;
784
- font-weight: 600;
785
- font-size: 0.875rem;
786
- text-decoration: none;
787
- transition: opacity 0.15s;
788
- }
789
- .sk-blog-not-found a:hover { opacity: 0.9; }
790
-
791
- /* ===== Responsive ===== */
792
- @media (max-width: 768px) {
793
- .sk-blog-title { font-size: 1.75rem; }
794
- .sk-blog-subtitle { font-size: 1.0625rem; }
795
- .sk-blog-content { font-size: 1rem; }
796
- .sk-blog-related-grid { grid-template-columns: 1fr; }
797
- }
798
- `.trim()
799
- );
800
- var blogListCss = (
801
- /* css */
802
- `
803
- /* ===== BlogList layout ===== */
804
- .sk-bloglist {
805
- --_sk-primary: var(--sk-primary, #2563eb);
806
- --_sk-bg: var(--sk-bg, #ffffff);
807
- --_sk-bg-el: var(--sk-bg-elevated, #f8fafc);
808
- --_sk-text: var(--sk-text-primary, inherit);
809
- --_sk-text2: var(--sk-text-secondary, #475569);
810
- --_sk-text3: var(--sk-text-tertiary, #94a3b8);
811
- --_sk-border: var(--sk-surface-border, #e2e8f0);
812
- }
813
-
814
- /* ===== Category filter ===== */
815
- .sk-bloglist-cats {
816
- display: flex;
817
- flex-wrap: wrap;
818
- gap: 0.5rem;
819
- margin-bottom: 2rem;
820
- }
821
- .sk-bloglist-cat {
822
- display: inline-block;
823
- padding: 0.375rem 1rem;
824
- border-radius: 9999px;
825
- font-size: 0.8125rem;
826
- font-weight: 600;
827
- text-decoration: none;
828
- transition: background 0.15s, color 0.15s, border-color 0.15s;
829
- border: 1px solid var(--_sk-border);
830
- background: var(--_sk-bg-el);
831
- color: var(--_sk-text2);
832
- }
833
- .sk-bloglist-cat:hover {
834
- border-color: color-mix(in srgb, var(--_sk-primary) 40%, transparent);
835
- color: var(--_sk-primary);
836
- }
837
- .sk-bloglist-cat--active {
838
- background: var(--_sk-primary);
839
- color: #fff;
840
- border-color: var(--_sk-primary);
841
- }
842
- .sk-bloglist-cat--active:hover { color: #fff; opacity: 0.9; }
843
-
844
- /* ===== Card grid ===== */
845
- .sk-bloglist-grid {
846
- display: grid;
847
- grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
848
- gap: 1.5rem;
849
- }
850
-
851
- /* ===== Post card ===== */
852
- .sk-bloglist-card {
853
- border-radius: 0.75rem;
854
- overflow: hidden;
855
- background: var(--_sk-bg-el);
856
- border: 1px solid var(--_sk-border);
857
- display: flex;
858
- flex-direction: column;
859
- transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s;
860
- }
861
- .sk-bloglist-card:hover {
862
- transform: translateY(-2px);
863
- box-shadow: 0 8px 24px rgba(0,0,0,0.08);
864
- border-color: color-mix(in srgb, var(--_sk-primary) 30%, var(--_sk-border));
865
- }
866
- .sk-bloglist-card-img-link { display: block; overflow: hidden; }
867
- .sk-bloglist-card-img {
868
- display: block;
869
- width: 100%;
870
- height: 200px;
871
- object-fit: cover;
872
- transition: transform 0.4s;
873
- }
874
- .sk-bloglist-card:hover .sk-bloglist-card-img { transform: scale(1.03); }
875
- .sk-bloglist-card-body {
876
- padding: 1.25rem;
877
- display: flex;
878
- flex-direction: column;
879
- flex: 1;
880
- }
881
- .sk-bloglist-card-meta {
882
- display: flex;
883
- align-items: center;
884
- gap: 0.625rem;
885
- margin-bottom: 0.625rem;
886
- }
887
- .sk-bloglist-card-category {
888
- display: inline-block;
889
- padding: 0.125rem 0.5rem;
890
- border-radius: 0.25rem;
891
- font-size: 0.6875rem;
892
- font-weight: 700;
893
- text-transform: uppercase;
894
- letter-spacing: 0.04em;
895
- background: color-mix(in srgb, var(--_sk-primary) 12%, transparent);
896
- color: var(--_sk-primary);
897
- }
898
- .sk-bloglist-card-date {
899
- font-size: 0.8125rem;
900
- color: var(--_sk-text3);
901
- }
902
- .sk-bloglist-card-title {
903
- font-size: 1.0625rem;
904
- font-weight: 700;
905
- line-height: 1.4;
906
- margin: 0 0 0.5rem;
907
- }
908
- .sk-bloglist-card-title a {
909
- color: var(--_sk-text);
910
- text-decoration: none;
911
- transition: color 0.15s;
912
- }
913
- .sk-bloglist-card:hover .sk-bloglist-card-title a { color: var(--_sk-primary); }
914
- .sk-bloglist-card-excerpt {
915
- font-size: 0.875rem;
916
- line-height: 1.6;
917
- color: var(--_sk-text2);
918
- margin: 0 0 1rem;
919
- display: -webkit-box;
920
- -webkit-line-clamp: 3;
921
- -webkit-box-orient: vertical;
922
- overflow: hidden;
923
- flex: 1;
924
- }
925
- .sk-bloglist-card-footer {
926
- display: flex;
927
- justify-content: space-between;
928
- align-items: center;
929
- padding-top: 0.75rem;
930
- border-top: 1px solid var(--_sk-border);
931
- font-size: 0.8125rem;
932
- color: var(--_sk-text3);
933
- }
934
-
935
- /* ===== Pagination ===== */
936
- .sk-bloglist-pagination {
937
- display: flex;
938
- justify-content: center;
939
- align-items: center;
940
- gap: 0.75rem;
941
- margin-top: 3rem;
942
- }
943
- .sk-bloglist-page-link {
944
- display: inline-block;
945
- padding: 0.5rem 1.25rem;
946
- border-radius: 0.5rem;
947
- background: var(--_sk-primary);
948
- color: #fff;
949
- font-size: 0.875rem;
950
- font-weight: 600;
951
- text-decoration: none;
952
- transition: opacity 0.15s;
953
- }
954
- .sk-bloglist-page-link:hover { opacity: 0.9; }
955
- .sk-bloglist-page-info {
956
- font-size: 0.8125rem;
957
- color: var(--_sk-text3);
958
- }
959
-
960
- /* ===== Empty state ===== */
961
- .sk-bloglist-empty {
962
- text-align: center;
963
- padding: 3rem 1rem;
964
- color: var(--_sk-text2);
965
- }
966
-
967
- /* ===== Responsive ===== */
968
- @media (max-width: 640px) {
969
- .sk-bloglist-grid { grid-template-columns: 1fr; }
970
- }
971
- `.trim()
972
- );
973
390
  function getClusterNav(post) {
974
391
  if (!post.cluster_id && !post.cluster_slug) return null;
975
392
  const isPillar = post.article_type === "pillar";
@@ -1072,32 +489,39 @@ async function BlogPost({
1072
489
  showRelated = true,
1073
490
  relatedCount = 3,
1074
491
  showAuthor = true,
1075
- basePath = "/blog",
492
+ basePath,
493
+ routing,
1076
494
  className,
1077
495
  styles = {},
1078
496
  unstyled = false,
1079
497
  siteUrl,
1080
498
  children
1081
499
  }) {
500
+ const routes = createBlogRoutes({ basePath, ...routing });
1082
501
  if (!apiKey) {
1083
502
  console.warn("[Blog] No API key configured");
1084
503
  return null;
1085
504
  }
1086
- const post = await fetchBlogPost(apiUrl, apiKey, slug);
505
+ const [post, { blogPostCss }, { wrapBlogTables }] = await Promise.all([
506
+ fetchBlogPost(apiUrl, apiKey, slug),
507
+ unstyled ? Promise.resolve({ blogPostCss: "" }) : import('./blog-styles-7AKRUMV7.mjs'),
508
+ import('./blog-tables-QGIHOESZ.mjs')
509
+ ]);
1087
510
  if (!post) {
1088
511
  return /* @__PURE__ */ jsxs(Fragment, { children: [
1089
512
  !unstyled && /* @__PURE__ */ jsx("style", { dangerouslySetInnerHTML: { __html: blogPostCss } }),
1090
513
  /* @__PURE__ */ jsxs("div", { className: cls(unstyled, styles, "notFound", "sk-blog-not-found", className), children: [
1091
514
  /* @__PURE__ */ jsx("h1", { children: "Post Not Found" }),
1092
515
  /* @__PURE__ */ jsx("p", { children: "The blog post you\u2019re looking for doesn\u2019t exist or has been removed." }),
1093
- /* @__PURE__ */ jsx("a", { href: basePath, children: "\u2190 Back to Blog" })
516
+ /* @__PURE__ */ jsx("a", { href: routes.index, children: "\u2190 Back to Blog" })
1094
517
  ] })
1095
518
  ] });
1096
519
  }
1097
520
  const rawContent = post.content_html || post.content || "";
1098
521
  const content = ensureHtml(rawContent);
1099
522
  const siteUrlResolved = resolveBlogSiteUrl(siteUrl);
1100
- const contentWithExternalTargets = addExternalLinkTargets(content, siteUrlResolved);
523
+ const contentWithExternalTargets = wrapBlogTables(addExternalLinkTargets(content, siteUrlResolved));
524
+ const artwork = resolveBlogArtwork(post, "article");
1101
525
  const tableOfContents = showToc ? generateTableOfContents(content) : [];
1102
526
  const relatedPosts = showRelated ? await fetchRelatedPosts(apiUrl, apiKey, post.id, relatedCount) : [];
1103
527
  const faqRaw = post.faq_items ?? post.faqItems;
@@ -1105,7 +529,7 @@ async function BlogPost({
1105
529
  ...item,
1106
530
  answer: addExternalLinkTargets(item.answer || "", siteUrlResolved)
1107
531
  })) ?? faqRaw;
1108
- const { BlogViewTracker } = await import('./BlogViewTracker-KFUDRDQK.mjs');
532
+ const { BlogViewTracker } = await import('./BlogViewTracker-R4YQ76WP.mjs');
1109
533
  if (children) {
1110
534
  return /* @__PURE__ */ jsxs(Fragment, { children: [
1111
535
  /* @__PURE__ */ jsx(BlogViewTracker, { slug: post.slug }),
@@ -1121,13 +545,13 @@ async function BlogPost({
1121
545
  /* @__PURE__ */ jsxs("article", { className: cls(unstyled, styles, "article", "sk-blog-article", className), children: [
1122
546
  /* @__PURE__ */ jsxs("header", { className: cls(unstyled, styles, "header", "sk-blog-header"), children: [
1123
547
  /* @__PURE__ */ jsxs("nav", { className: cls(unstyled, styles, "breadcrumb", "sk-blog-breadcrumb"), children: [
1124
- /* @__PURE__ */ jsx("a", { href: basePath, className: styles.breadcrumbLink || void 0, children: "Blog" }),
548
+ /* @__PURE__ */ jsx("a", { href: routes.index, className: styles.breadcrumbLink || void 0, children: "Blog" }),
1125
549
  post.category && /* @__PURE__ */ jsxs(Fragment, { children: [
1126
550
  /* @__PURE__ */ jsx("span", { className: "sk-blog-breadcrumb-sep", children: "/" }),
1127
551
  /* @__PURE__ */ jsx(
1128
552
  "a",
1129
553
  {
1130
- href: `${basePath}?category=${post.category}`,
554
+ href: routing?.categoryPath ? routes.category(blogCategorySlug(post.category)) : `${routes.index}?category=${encodeURIComponent(blogCategorySlug(post.category))}`,
1131
555
  className: styles.breadcrumbLink || void 0,
1132
556
  children: typeof post.category === "string" ? post.category : post.category?.name || "Uncategorized"
1133
557
  }
@@ -1150,11 +574,13 @@ async function BlogPost({
1150
574
  ] })
1151
575
  ] })
1152
576
  ] }),
1153
- post.featured_image && /* @__PURE__ */ jsx("figure", { className: cls(unstyled, styles, "featuredImageWrapper", "sk-blog-featured-wrap"), children: /* @__PURE__ */ jsx(
577
+ artwork.src && /* @__PURE__ */ jsx("figure", { className: cls(unstyled, styles, "featuredImageWrapper", "sk-blog-featured-wrap"), children: /* @__PURE__ */ jsx(
1154
578
  "img",
1155
579
  {
1156
- src: post.featured_image,
1157
- alt: post.featured_image_alt || post.title,
580
+ src: artwork.src,
581
+ alt: artwork.alt,
582
+ "data-sk-composed-card": artwork.composed || void 0,
583
+ style: blogArtworkImageStyle(artwork),
1158
584
  className: cls(unstyled, styles, "featuredImage", "sk-blog-featured-img")
1159
585
  }
1160
586
  ) }),
@@ -1180,7 +606,7 @@ async function BlogPost({
1180
606
  ] }),
1181
607
  post.tags && post.tags.length > 0 && /* @__PURE__ */ jsx("div", { className: cls(unstyled, styles, "tags", "sk-blog-tags"), children: post.tags.map((tag, index) => {
1182
608
  const tagName = typeof tag === "string" ? tag : tag?.name || "";
1183
- return /* @__PURE__ */ jsxs("a", { href: `${basePath}?tag=${encodeURIComponent(tagName)}`, className: cls(unstyled, styles, "tag", "sk-blog-tag"), children: [
609
+ return /* @__PURE__ */ jsxs("a", { href: `${routes.index}?tag=${encodeURIComponent(tagName)}`, className: cls(unstyled, styles, "tag", "sk-blog-tag"), children: [
1184
610
  "#",
1185
611
  tagName
1186
612
  ] }, `${tagName}-${index}`);
@@ -1215,22 +641,26 @@ async function BlogPost({
1215
641
  {
1216
642
  navigation: clusterNav,
1217
643
  basePath,
644
+ routing,
1218
645
  unstyled
1219
646
  }
1220
647
  );
1221
648
  })(),
1222
649
  showRelated && relatedPosts.length > 0 && /* @__PURE__ */ jsxs("section", { className: cls(unstyled, styles, "relatedSection", "sk-blog-related"), children: [
1223
650
  /* @__PURE__ */ jsx("h2", { className: cls(unstyled, styles, "relatedTitle", "sk-blog-related-title"), children: "Related Posts" }),
1224
- /* @__PURE__ */ jsx("div", { className: cls(unstyled, styles, "relatedGrid", "sk-blog-related-grid"), children: relatedPosts.map((rp) => /* @__PURE__ */ jsxs("a", { href: `${basePath}/${rp.slug}`, className: cls(unstyled, styles, "relatedCard", "sk-blog-related-card"), children: [
1225
- rp.featured_image && /* @__PURE__ */ jsx("img", { src: rp.featured_image, alt: rp.title }),
1226
- /* @__PURE__ */ jsxs("div", { className: "sk-blog-related-card-body", children: [
1227
- /* @__PURE__ */ jsx("h3", { children: rp.title }),
1228
- rp.excerpt && /* @__PURE__ */ jsxs("p", { children: [
1229
- rp.excerpt.slice(0, 120),
1230
- "..."
651
+ /* @__PURE__ */ jsx("div", { className: cls(unstyled, styles, "relatedGrid", "sk-blog-related-grid"), children: relatedPosts.map((rp) => {
652
+ const relatedArtwork = resolveBlogArtwork(rp);
653
+ return /* @__PURE__ */ jsxs("a", { href: routes.post(rp), className: cls(unstyled, styles, "relatedCard", "sk-blog-related-card"), children: [
654
+ relatedArtwork.src && /* @__PURE__ */ jsx("img", { src: relatedArtwork.src, alt: relatedArtwork.alt, "data-sk-composed-card": relatedArtwork.composed || void 0, style: blogArtworkImageStyle(relatedArtwork) }),
655
+ /* @__PURE__ */ jsxs("div", { className: "sk-blog-related-card-body", children: [
656
+ /* @__PURE__ */ jsx("h3", { children: rp.title }),
657
+ rp.excerpt && /* @__PURE__ */ jsxs("p", { children: [
658
+ rp.excerpt.slice(0, 120),
659
+ "..."
660
+ ] })
1231
661
  ] })
1232
- ] })
1233
- ] }, rp.id)) })
662
+ ] }, rp.id);
663
+ }) })
1234
664
  ] })
1235
665
  ] })
1236
666
  ] });
@@ -1370,19 +800,22 @@ async function BlogList({
1370
800
  showCategoryFilter = false,
1371
801
  showPagination = true,
1372
802
  className,
1373
- basePath = "/blog",
803
+ basePath,
804
+ routing,
1374
805
  styles = {},
1375
806
  unstyled = false,
1376
807
  renderPost,
1377
808
  children
1378
809
  }) {
810
+ const routes = createBlogRoutes({ basePath, ...routing });
1379
811
  if (!apiKey) {
1380
812
  console.warn("[Blog] No API key configured");
1381
813
  return null;
1382
814
  }
1383
- const [blogData, categories] = await Promise.all([
815
+ const [blogData, categories, { blogListCss }] = await Promise.all([
1384
816
  fetchBlogList({ apiUrl, apiKey, category, tag, author, featured, search, cluster, page, perPage, orderBy, order }),
1385
- showCategoryFilter ? fetchCategories(apiUrl, apiKey) : Promise.resolve([])
817
+ showCategoryFilter ? fetchCategories(apiUrl, apiKey) : Promise.resolve([]),
818
+ unstyled || children ? Promise.resolve({ blogListCss: "" }) : import('./blog-styles-7AKRUMV7.mjs')
1386
819
  ]);
1387
820
  if (children) {
1388
821
  return children({ posts: blogData.posts, pagination: blogData.pagination, categories });
@@ -1401,7 +834,7 @@ async function BlogList({
1401
834
  /* @__PURE__ */ jsx(
1402
835
  "a",
1403
836
  {
1404
- href: basePath,
837
+ href: routes.index,
1405
838
  className: cls2(unstyled, styles, "categoryLink", !category ? "sk-bloglist-cat sk-bloglist-cat--active" : "sk-bloglist-cat"),
1406
839
  children: "All"
1407
840
  }
@@ -1409,7 +842,7 @@ async function BlogList({
1409
842
  categories.map((cat) => /* @__PURE__ */ jsxs(
1410
843
  "a",
1411
844
  {
1412
- href: `${basePath}?category=${cat.slug}`,
845
+ href: routing?.categoryPath ? routes.category(cat.slug) : `${routes.index}?category=${encodeURIComponent(cat.slug)}`,
1413
846
  className: cls2(unstyled, styles, "categoryLink", category === cat.slug ? "sk-bloglist-cat sk-bloglist-cat--active" : "sk-bloglist-cat"),
1414
847
  children: [
1415
848
  cat.name,
@@ -1422,29 +855,32 @@ async function BlogList({
1422
855
  ))
1423
856
  ] }),
1424
857
  /* @__PURE__ */ jsx("div", { className: cls2(unstyled, styles, "grid", "sk-bloglist-grid"), children: posts.map(
1425
- (post) => renderPost ? /* @__PURE__ */ jsx(React.Fragment, { children: renderPost(post) }, post.id) : /* @__PURE__ */ jsx(BlogPostCard, { post, basePath, styles, unstyled }, post.id)
858
+ (post) => renderPost ? /* @__PURE__ */ jsx(React.Fragment, { children: renderPost(post) }, post.id) : /* @__PURE__ */ jsx(BlogPostCard, { post, href: routes.post(post), styles, unstyled }, post.id)
1426
859
  ) }),
1427
860
  showPagination && pagination.totalPages > 1 && /* @__PURE__ */ jsxs("nav", { className: cls2(unstyled, styles, "pagination", "sk-bloglist-pagination"), children: [
1428
- pagination.hasPrev && /* @__PURE__ */ jsx("a", { href: buildPaginationUrl(basePath, page - 1, category), className: cls2(unstyled, styles, "paginationLink", "sk-bloglist-page-link"), children: "\u2190 Previous" }),
861
+ pagination.hasPrev && /* @__PURE__ */ jsx("a", { href: buildPaginationUrl(routes.index, page - 1, category), className: cls2(unstyled, styles, "paginationLink", "sk-bloglist-page-link"), children: "\u2190 Previous" }),
1429
862
  /* @__PURE__ */ jsxs("span", { className: cls2(unstyled, styles, "paginationInfo", "sk-bloglist-page-info"), children: [
1430
863
  "Page ",
1431
864
  pagination.page,
1432
865
  " of ",
1433
866
  pagination.totalPages
1434
867
  ] }),
1435
- pagination.hasNext && /* @__PURE__ */ jsx("a", { href: buildPaginationUrl(basePath, page + 1, category), className: cls2(unstyled, styles, "paginationLink", "sk-bloglist-page-link"), children: "Next \u2192" })
868
+ pagination.hasNext && /* @__PURE__ */ jsx("a", { href: buildPaginationUrl(routes.index, page + 1, category), className: cls2(unstyled, styles, "paginationLink", "sk-bloglist-page-link"), children: "Next \u2192" })
1436
869
  ] })
1437
870
  ] })
1438
871
  ] });
1439
872
  }
1440
- function BlogPostCard({ post, basePath, styles = {}, unstyled = false }) {
873
+ function BlogPostCard({ post, href, styles = {}, unstyled = false }) {
874
+ const artwork = resolveBlogArtwork(post);
1441
875
  const date = post.published_at ? new Date(post.published_at).toLocaleDateString("en-US", { month: "long", day: "numeric", year: "numeric" }) : null;
1442
876
  return /* @__PURE__ */ jsxs("article", { className: cls2(unstyled, styles, "card", "sk-bloglist-card"), children: [
1443
- post.featured_image && /* @__PURE__ */ jsx("a", { href: `${basePath}/${post.slug}`, className: cls2(unstyled, styles, "cardImageWrapper", "sk-bloglist-card-img-link"), children: /* @__PURE__ */ jsx(
877
+ artwork.src && /* @__PURE__ */ jsx("a", { href, className: cls2(unstyled, styles, "cardImageWrapper", "sk-bloglist-card-img-link"), children: /* @__PURE__ */ jsx(
1444
878
  "img",
1445
879
  {
1446
- src: post.featured_image,
1447
- alt: post.featured_image_alt || post.title,
880
+ src: artwork.src,
881
+ alt: artwork.alt,
882
+ "data-sk-composed-card": artwork.composed || void 0,
883
+ style: blogArtworkImageStyle(artwork),
1448
884
  className: cls2(unstyled, styles, "cardImage", "sk-bloglist-card-img")
1449
885
  }
1450
886
  ) }),
@@ -1465,7 +901,7 @@ function BlogPostCard({ post, basePath, styles = {}, unstyled = false }) {
1465
901
  }, children: post.article_type }),
1466
902
  date && /* @__PURE__ */ jsx("span", { className: cls2(unstyled, styles, "cardDate", "sk-bloglist-card-date"), children: date })
1467
903
  ] }),
1468
- /* @__PURE__ */ jsx("h3", { className: cls2(unstyled, styles, "cardTitle", "sk-bloglist-card-title"), children: /* @__PURE__ */ jsx("a", { href: `${basePath}/${post.slug}`, className: styles.cardTitleLink || void 0, children: post.title }) }),
904
+ /* @__PURE__ */ jsx("h3", { className: cls2(unstyled, styles, "cardTitle", "sk-bloglist-card-title"), children: /* @__PURE__ */ jsx("a", { href, className: styles.cardTitleLink || void 0, children: post.title }) }),
1469
905
  post.excerpt && /* @__PURE__ */ jsx("p", { className: cls2(unstyled, styles, "cardExcerpt", "sk-bloglist-card-excerpt"), children: post.excerpt }),
1470
906
  /* @__PURE__ */ jsxs("div", { className: cls2(unstyled, styles, "cardFooter", "sk-bloglist-card-footer"), children: [
1471
907
  post.author && /* @__PURE__ */ jsxs("span", { className: cls2(unstyled, styles, "cardAuthor", ""), children: [
@@ -1536,11 +972,13 @@ async function BlogSidebar({
1536
972
  recentPostsCount = 5,
1537
973
  showTags = true,
1538
974
  showSearch = true,
1539
- basePath = "/blog",
975
+ basePath,
976
+ routing,
1540
977
  className,
1541
978
  currentCategory,
1542
979
  children
1543
980
  }) {
981
+ const routes = createBlogRoutes({ basePath, ...routing });
1544
982
  if (!apiKey) {
1545
983
  console.warn("[Blog] No API key configured for sidebar");
1546
984
  return null;
@@ -1551,17 +989,18 @@ async function BlogSidebar({
1551
989
  showTags ? fetchTags(apiUrl, apiKey) : Promise.resolve([])
1552
990
  ]);
1553
991
  return /* @__PURE__ */ jsxs("aside", { className, style: { display: "flex", flexDirection: "column", gap: 32 }, children: [
1554
- showSearch && /* @__PURE__ */ jsx(SearchWidget, { basePath }),
992
+ showSearch && /* @__PURE__ */ jsx(SearchWidget, { basePath: routes.index }),
1555
993
  showCategories && categories.length > 0 && /* @__PURE__ */ jsx(
1556
994
  CategoriesWidget,
1557
995
  {
1558
996
  categories,
1559
- basePath,
997
+ basePath: routes.index,
998
+ categoryPath: routing?.categoryPath ? routes.category : void 0,
1560
999
  currentCategory
1561
1000
  }
1562
1001
  ),
1563
- showRecentPosts && recentPosts.length > 0 && /* @__PURE__ */ jsx(RecentPostsWidget, { posts: recentPosts, basePath }),
1564
- showTags && tags.length > 0 && /* @__PURE__ */ jsx(TagsWidget, { tags, basePath }),
1002
+ showRecentPosts && recentPosts.length > 0 && /* @__PURE__ */ jsx(RecentPostsWidget, { posts: recentPosts, routes }),
1003
+ showTags && tags.length > 0 && /* @__PURE__ */ jsx(TagsWidget, { tags, basePath: routes.index }),
1565
1004
  children
1566
1005
  ] });
1567
1006
  }
@@ -1588,6 +1027,7 @@ function SearchWidget({ basePath }) {
1588
1027
  function CategoriesWidget({
1589
1028
  categories,
1590
1029
  basePath,
1030
+ categoryPath,
1591
1031
  currentCategory
1592
1032
  }) {
1593
1033
  return /* @__PURE__ */ jsxs("div", { style: widgetStyle, children: [
@@ -1608,7 +1048,7 @@ function CategoriesWidget({
1608
1048
  categories.map((cat) => /* @__PURE__ */ jsx("li", { style: { marginBottom: 8 }, children: /* @__PURE__ */ jsxs(
1609
1049
  "a",
1610
1050
  {
1611
- href: `${basePath}?category=${cat.slug}`,
1051
+ href: categoryPath ? categoryPath(cat.slug) : `${basePath}?category=${encodeURIComponent(cat.slug)}`,
1612
1052
  style: {
1613
1053
  ...categoryLinkStyle,
1614
1054
  fontWeight: currentCategory === cat.slug ? 600 : 400,
@@ -1629,11 +1069,12 @@ function CategoriesWidget({
1629
1069
  }
1630
1070
  function RecentPostsWidget({
1631
1071
  posts,
1632
- basePath
1072
+ routes
1633
1073
  }) {
1634
1074
  return /* @__PURE__ */ jsxs("div", { style: widgetStyle, children: [
1635
1075
  /* @__PURE__ */ jsx("h4", { style: widgetTitleStyle, children: "Recent Posts" }),
1636
1076
  /* @__PURE__ */ jsx("ul", { style: { listStyle: "none", margin: 0, padding: 0 }, children: posts.map((post) => {
1077
+ const artwork = resolveBlogArtwork(post);
1637
1078
  const date = post.published_at ? new Date(post.published_at).toLocaleDateString("en-US", {
1638
1079
  month: "short",
1639
1080
  day: "numeric"
@@ -1647,17 +1088,19 @@ function RecentPostsWidget({
1647
1088
  borderBottom: "1px solid var(--sk-border)"
1648
1089
  },
1649
1090
  children: /* @__PURE__ */ jsxs("div", { style: { display: "flex", gap: 12 }, children: [
1650
- post.featured_image && /* @__PURE__ */ jsx("a", { href: `${basePath}/${post.slug}`, children: /* @__PURE__ */ jsx(
1091
+ artwork.src && /* @__PURE__ */ jsx("a", { href: routes.post(post), children: /* @__PURE__ */ jsx(
1651
1092
  "img",
1652
1093
  {
1653
- src: post.featured_image,
1094
+ src: artwork.src,
1654
1095
  alt: "",
1096
+ "data-sk-composed-card": artwork.composed || void 0,
1655
1097
  style: {
1656
1098
  width: 64,
1657
1099
  height: 48,
1658
1100
  objectFit: "cover",
1659
1101
  borderRadius: 6,
1660
- flexShrink: 0
1102
+ flexShrink: 0,
1103
+ ...blogArtworkImageStyle(artwork)
1661
1104
  }
1662
1105
  }
1663
1106
  ) }),
@@ -1665,7 +1108,7 @@ function RecentPostsWidget({
1665
1108
  /* @__PURE__ */ jsx(
1666
1109
  "a",
1667
1110
  {
1668
- href: `${basePath}/${post.slug}`,
1111
+ href: routes.post(post),
1669
1112
  style: {
1670
1113
  fontSize: 14,
1671
1114
  fontWeight: 500,
@@ -1727,7 +1170,8 @@ async function BlogLayout({
1727
1170
  sidebarProps = {},
1728
1171
  hero,
1729
1172
  maxWidth = 1280,
1730
- basePath = "/blog",
1173
+ basePath,
1174
+ routing,
1731
1175
  className,
1732
1176
  currentCategory,
1733
1177
  children
@@ -1796,6 +1240,7 @@ async function BlogLayout({
1796
1240
  apiUrl,
1797
1241
  apiKey,
1798
1242
  basePath,
1243
+ routing,
1799
1244
  currentCategory,
1800
1245
  ...sidebarProps
1801
1246
  }
@@ -1807,6 +1252,7 @@ async function BlogLayout({
1807
1252
  apiUrl,
1808
1253
  apiKey,
1809
1254
  basePath,
1255
+ routing,
1810
1256
  currentCategory,
1811
1257
  ...sidebarProps
1812
1258
  }
@@ -1872,8 +1318,11 @@ async function RelatedPosts({
1872
1318
  currentPostId,
1873
1319
  limit = 3,
1874
1320
  className,
1321
+ basePath,
1322
+ routing,
1875
1323
  renderItem
1876
1324
  }) {
1325
+ const routes = createBlogRoutes({ basePath, ...routing });
1877
1326
  if (!apiKey) {
1878
1327
  console.warn("[Blog] No API key configured for RelatedPosts");
1879
1328
  return null;
@@ -1882,29 +1331,32 @@ async function RelatedPosts({
1882
1331
  if (posts.length === 0) return null;
1883
1332
  return /* @__PURE__ */ jsxs("section", { className, children: [
1884
1333
  /* @__PURE__ */ jsx("h3", { style: { marginBottom: 16 }, children: "Related Posts" }),
1885
- /* @__PURE__ */ jsx("div", { style: { display: "grid", gap: 16 }, children: posts.map(
1886
- (post) => renderItem ? renderItem(post) : /* @__PURE__ */ jsxs("article", { style: { borderBottom: "1px solid var(--sk-border)", paddingBottom: 16 }, children: [
1887
- post.featured_image && /* @__PURE__ */ jsx(
1334
+ /* @__PURE__ */ jsx("div", { style: { display: "grid", gap: 16 }, children: posts.map((post) => {
1335
+ const artwork = resolveBlogArtwork(post);
1336
+ return renderItem ? renderItem(post) : /* @__PURE__ */ jsxs("article", { style: { borderBottom: "1px solid var(--sk-border)", paddingBottom: 16 }, children: [
1337
+ artwork.src && /* @__PURE__ */ jsx(
1888
1338
  "img",
1889
1339
  {
1890
- src: post.featured_image,
1891
- alt: post.title,
1340
+ src: artwork.src,
1341
+ alt: artwork.alt,
1342
+ "data-sk-composed-card": artwork.composed || void 0,
1892
1343
  style: {
1893
1344
  width: "100%",
1894
1345
  height: 120,
1895
1346
  objectFit: "cover",
1896
1347
  borderRadius: 8,
1897
- marginBottom: 8
1348
+ marginBottom: 8,
1349
+ ...blogArtworkImageStyle(artwork)
1898
1350
  }
1899
1351
  }
1900
1352
  ),
1901
- /* @__PURE__ */ jsx("a", { href: `/blog/${post.slug}`, style: { textDecoration: "none" }, children: /* @__PURE__ */ jsx("h4", { style: { margin: 0, color: "inherit" }, children: post.title }) }),
1353
+ /* @__PURE__ */ jsx("a", { href: routes.post(post), style: { textDecoration: "none" }, children: /* @__PURE__ */ jsx("h4", { style: { margin: 0, color: "inherit" }, children: post.title }) }),
1902
1354
  post.excerpt && /* @__PURE__ */ jsx("p", { style: { margin: "4px 0 0", fontSize: 14, color: "var(--sk-text-secondary)" }, children: post.excerpt })
1903
- ] }, post.id)
1904
- ) })
1355
+ ] }, post.id);
1356
+ }) })
1905
1357
  ] });
1906
1358
  }
1907
1359
 
1908
1360
  export { BlogLayout, BlogList, BlogPage, BlogPost, BlogPostPage, BlogSidebar, CategoryPage, ClusterNavigation, RelatedPosts, ServiceCallout, ServiceCallouts, addExternalLinkTargets, getAuthorSocialLinks, normalizeSiteHost, readingTimeMinutes, resolveBlogSiteUrl };
1909
- //# sourceMappingURL=chunk-67CHHDBL.mjs.map
1910
- //# sourceMappingURL=chunk-67CHHDBL.mjs.map
1361
+ //# sourceMappingURL=chunk-LIYSLNEK.mjs.map
1362
+ //# sourceMappingURL=chunk-LIYSLNEK.mjs.map