@sonordev/site-kit 4.3.2 → 5.0.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 (281) hide show
  1. package/agent-manifest.json +1 -1
  2. package/dist/AnalyticsProvider-KCLRFOX6.mjs +10 -0
  3. package/dist/{AnalyticsProvider-TWRQHKPZ.mjs.map → AnalyticsProvider-KCLRFOX6.mjs.map} +1 -1
  4. package/dist/AnalyticsProvider-TXM3DRLI.js +31 -0
  5. package/dist/{AnalyticsProvider-DNMYYBKX.js.map → AnalyticsProvider-TXM3DRLI.js.map} +1 -1
  6. package/dist/BlogViewTracker-J6LRGUHU.js +51 -0
  7. package/dist/BlogViewTracker-J6LRGUHU.js.map +1 -0
  8. package/dist/BlogViewTracker-PZWAWB3O.mjs +48 -0
  9. package/dist/BlogViewTracker-PZWAWB3O.mjs.map +1 -0
  10. package/dist/ChatWidget-LD54Z2PQ.js +20 -0
  11. package/dist/{ChatWidget-MDWEXISQ.js.map → ChatWidget-LD54Z2PQ.js.map} +1 -1
  12. package/dist/ChatWidget-PMDPSZXG.mjs +11 -0
  13. package/dist/{ChatWidget-UQMEJAHY.mjs.map → ChatWidget-PMDPSZXG.mjs.map} +1 -1
  14. package/dist/EngageWidget-4CBFRN4Y.mjs +9 -0
  15. package/dist/{EngageWidget-UIIN43ZU.mjs.map → EngageWidget-4CBFRN4Y.mjs.map} +1 -1
  16. package/dist/EngageWidget-BF5NMQ5A.js +18 -0
  17. package/dist/{EngageWidget-VRC7NUG6.js.map → EngageWidget-BF5NMQ5A.js.map} +1 -1
  18. package/dist/{FileField-LVF3SCDC.mjs → FileField-FFRHS3XP.mjs} +5 -5
  19. package/dist/{FileField-LVF3SCDC.mjs.map → FileField-FFRHS3XP.mjs.map} +1 -1
  20. package/dist/{FileField-W4VXQ3CM.js → FileField-VXADIOMN.js} +6 -6
  21. package/dist/{FileField-W4VXQ3CM.js.map → FileField-VXADIOMN.js.map} +1 -1
  22. package/dist/{FormSpotlight-CRLFAPNI.js → FormSpotlight-JG4ZHS56.js} +15 -15
  23. package/dist/{FormSpotlight-CRLFAPNI.js.map → FormSpotlight-JG4ZHS56.js.map} +1 -1
  24. package/dist/{FormSpotlight-ZPISKGIX.mjs → FormSpotlight-KE46EDP5.mjs} +3 -3
  25. package/dist/{FormSpotlight-ZPISKGIX.mjs.map → FormSpotlight-KE46EDP5.mjs.map} +1 -1
  26. package/dist/{FormStage-QMRPAROJ.js → FormStage-5Z53Z2WY.js} +13 -13
  27. package/dist/{FormStage-QMRPAROJ.js.map → FormStage-5Z53Z2WY.js.map} +1 -1
  28. package/dist/{FormStage-WQOAP7CR.mjs → FormStage-PZKWEXZE.mjs} +3 -3
  29. package/dist/{FormStage-WQOAP7CR.mjs.map → FormStage-PZKWEXZE.mjs.map} +1 -1
  30. package/dist/ManagedForm-E4WHMARH.js +23 -0
  31. package/dist/{ManagedForm-7L2W5BBZ.js.map → ManagedForm-E4WHMARH.js.map} +1 -1
  32. package/dist/ManagedForm-VU2TKV6J.mjs +14 -0
  33. package/dist/{ManagedForm-D7CFOIXH.mjs.map → ManagedForm-VU2TKV6J.mjs.map} +1 -1
  34. package/dist/ManagedNewsletterForm-6DET3VGZ.mjs +62 -0
  35. package/dist/ManagedNewsletterForm-6DET3VGZ.mjs.map +1 -0
  36. package/dist/ManagedNewsletterForm-PG4EX3W6.js +64 -0
  37. package/dist/ManagedNewsletterForm-PG4EX3W6.js.map +1 -0
  38. package/dist/{SignalCore-JQLRWMPJ.mjs → SignalCore-RZVTLUC2.mjs} +5 -5
  39. package/dist/{SignalCore-JQLRWMPJ.mjs.map → SignalCore-RZVTLUC2.mjs.map} +1 -1
  40. package/dist/{SignalCore-DNXKQKRO.js → SignalCore-TCUVXVMN.js} +11 -11
  41. package/dist/{SignalCore-DNXKQKRO.js.map → SignalCore-TCUVXVMN.js.map} +1 -1
  42. package/dist/SitemapSync-AJU4DM3G.js +17 -0
  43. package/dist/{SitemapSync-SR6OJRIA.js.map → SitemapSync-AJU4DM3G.js.map} +1 -1
  44. package/dist/SitemapSync-T75NAFB3.mjs +8 -0
  45. package/dist/{SitemapSync-RFY6PUG7.mjs.map → SitemapSync-T75NAFB3.mjs.map} +1 -1
  46. package/dist/analytics/index.js +9 -9
  47. package/dist/analytics/index.mjs +4 -4
  48. package/dist/blog/AuthorCard.d.ts.map +1 -1
  49. package/dist/blog/AuthorPage.d.ts.map +1 -1
  50. package/dist/blog/BlogList.d.ts +7 -1
  51. package/dist/blog/BlogList.d.ts.map +1 -1
  52. package/dist/blog/BlogPost.d.ts +1 -1
  53. package/dist/blog/BlogPost.d.ts.map +1 -1
  54. package/dist/blog/BlogSidebar.d.ts +0 -7
  55. package/dist/blog/BlogSidebar.d.ts.map +1 -1
  56. package/dist/blog/BlogViewTracker.d.ts +10 -0
  57. package/dist/blog/BlogViewTracker.d.ts.map +1 -0
  58. package/dist/blog/ClusterLandingPage.d.ts.map +1 -1
  59. package/dist/blog/ManagedNewsletterForm.d.ts +13 -0
  60. package/dist/blog/ManagedNewsletterForm.d.ts.map +1 -0
  61. package/dist/blog/NewsletterShell.d.ts +18 -0
  62. package/dist/blog/NewsletterShell.d.ts.map +1 -0
  63. package/dist/blog/NewsletterWidget.d.ts +31 -0
  64. package/dist/blog/NewsletterWidget.d.ts.map +1 -0
  65. package/dist/blog/RelatedPosts.d.ts.map +1 -1
  66. package/dist/blog/author-social.d.ts +15 -0
  67. package/dist/blog/author-social.d.ts.map +1 -0
  68. package/dist/blog/author-social.test.d.ts +2 -0
  69. package/dist/blog/author-social.test.d.ts.map +1 -0
  70. package/dist/blog/blog-view-tracker.test.d.ts +2 -0
  71. package/dist/blog/blog-view-tracker.test.d.ts.map +1 -0
  72. package/dist/blog/category-metadata.test.d.ts +2 -0
  73. package/dist/blog/category-metadata.test.d.ts.map +1 -0
  74. package/dist/blog/index.d.ts +4 -2
  75. package/dist/blog/index.d.ts.map +1 -1
  76. package/dist/blog/index.js +94 -505
  77. package/dist/blog/index.js.map +1 -1
  78. package/dist/blog/index.mjs +59 -491
  79. package/dist/blog/index.mjs.map +1 -1
  80. package/dist/blog/newsletter-widget.test.d.ts +2 -0
  81. package/dist/blog/newsletter-widget.test.d.ts.map +1 -0
  82. package/dist/blog/reading-time.d.ts +10 -0
  83. package/dist/blog/reading-time.d.ts.map +1 -0
  84. package/dist/blog/reading-time.test.d.ts +2 -0
  85. package/dist/blog/reading-time.test.d.ts.map +1 -0
  86. package/dist/blog/server-core-contract.test.d.ts +2 -0
  87. package/dist/blog/server-core-contract.test.d.ts.map +1 -0
  88. package/dist/blog/server-core.d.ts +16 -4
  89. package/dist/blog/server-core.d.ts.map +1 -1
  90. package/dist/blog/server-ui.d.ts +5 -0
  91. package/dist/blog/server-ui.d.ts.map +1 -1
  92. package/dist/blog/server-ui.js +35 -10
  93. package/dist/blog/server-ui.js.map +1 -1
  94. package/dist/blog/server-ui.mjs +8 -6
  95. package/dist/blog/server-ui.mjs.map +1 -1
  96. package/dist/blog/server.d.ts +16 -4
  97. package/dist/blog/server.d.ts.map +1 -1
  98. package/dist/blog/server.js +40 -40
  99. package/dist/blog/server.mjs +1 -1
  100. package/dist/blog/tag-links.test.d.ts +2 -0
  101. package/dist/blog/tag-links.test.d.ts.map +1 -0
  102. package/dist/blog/types-wire-shape.test.d.ts +2 -0
  103. package/dist/blog/types-wire-shape.test.d.ts.map +1 -0
  104. package/dist/blog/types.d.ts +25 -19
  105. package/dist/blog/types.d.ts.map +1 -1
  106. package/dist/blog/widget-styles.d.ts +9 -0
  107. package/dist/blog/widget-styles.d.ts.map +1 -0
  108. package/dist/{chunk-EUAOOOIE.js → chunk-3FZ76VI5.js} +14 -14
  109. package/dist/{chunk-EUAOOOIE.js.map → chunk-3FZ76VI5.js.map} +1 -1
  110. package/dist/{chunk-C22WW7G2.mjs → chunk-3SMG4EXR.mjs} +3 -3
  111. package/dist/{chunk-C22WW7G2.mjs.map → chunk-3SMG4EXR.mjs.map} +1 -1
  112. package/dist/{chunk-FPWPRFTP.js → chunk-4D2G5ZNP.js} +15 -15
  113. package/dist/{chunk-FPWPRFTP.js.map → chunk-4D2G5ZNP.js.map} +1 -1
  114. package/dist/{chunk-45VPULF2.mjs → chunk-4UHO6DPJ.mjs} +4 -4
  115. package/dist/{chunk-45VPULF2.mjs.map → chunk-4UHO6DPJ.mjs.map} +1 -1
  116. package/dist/{chunk-I6XKZNFT.mjs → chunk-5JNLZRLX.mjs} +3 -3
  117. package/dist/{chunk-I6XKZNFT.mjs.map → chunk-5JNLZRLX.mjs.map} +1 -1
  118. package/dist/{chunk-ULP6BTN2.js → chunk-5JQLLF2T.js} +12 -12
  119. package/dist/{chunk-ULP6BTN2.js.map → chunk-5JQLLF2T.js.map} +1 -1
  120. package/dist/{chunk-H27UCW6K.js → chunk-5OHHYGD6.js} +15 -15
  121. package/dist/{chunk-H27UCW6K.js.map → chunk-5OHHYGD6.js.map} +1 -1
  122. package/dist/{chunk-CQWG5ICB.js → chunk-62ODUWUX.js} +4 -4
  123. package/dist/{chunk-CQWG5ICB.js.map → chunk-62ODUWUX.js.map} +1 -1
  124. package/dist/{chunk-I2IA3JXD.js → chunk-6QQFEJIP.js} +8 -8
  125. package/dist/{chunk-I2IA3JXD.js.map → chunk-6QQFEJIP.js.map} +1 -1
  126. package/dist/{chunk-RUOEUMAW.js → chunk-7T4VMXKD.js} +3 -3
  127. package/dist/{chunk-RUOEUMAW.js.map → chunk-7T4VMXKD.js.map} +1 -1
  128. package/dist/chunk-AK6JZ3OE.mjs +65 -0
  129. package/dist/chunk-AK6JZ3OE.mjs.map +1 -0
  130. package/dist/{chunk-MWKYLWCH.mjs → chunk-AXYKBQVI.mjs} +8 -8
  131. package/dist/{chunk-MWKYLWCH.mjs.map → chunk-AXYKBQVI.mjs.map} +1 -1
  132. package/dist/{chunk-VLHHBJSV.js → chunk-BQY3FJ3R.js} +8 -8
  133. package/dist/{chunk-VLHHBJSV.js.map → chunk-BQY3FJ3R.js.map} +1 -1
  134. package/dist/{chunk-6VHVIBLQ.mjs → chunk-DHXQBTXE.mjs} +62 -41
  135. package/dist/chunk-DHXQBTXE.mjs.map +1 -0
  136. package/dist/chunk-DO6ATNLN.js +67 -0
  137. package/dist/chunk-DO6ATNLN.js.map +1 -0
  138. package/dist/{chunk-E242GZNE.js → chunk-DX6D7HDI.js} +4 -4
  139. package/dist/{chunk-E242GZNE.js.map → chunk-DX6D7HDI.js.map} +1 -1
  140. package/dist/{chunk-ZWMAQ52D.mjs → chunk-EISVUD75.mjs} +3 -3
  141. package/dist/{chunk-ZWMAQ52D.mjs.map → chunk-EISVUD75.mjs.map} +1 -1
  142. package/dist/{chunk-JNKQKGYH.mjs → chunk-FCKL5CF3.mjs} +3 -3
  143. package/dist/{chunk-JNKQKGYH.mjs.map → chunk-FCKL5CF3.mjs.map} +1 -1
  144. package/dist/{chunk-NDS6MXIP.mjs → chunk-FDWDXMJL.mjs} +3 -3
  145. package/dist/{chunk-NDS6MXIP.mjs.map → chunk-FDWDXMJL.mjs.map} +1 -1
  146. package/dist/{chunk-ZXRORNAW.js → chunk-FQ3JQV3M.js} +4 -4
  147. package/dist/{chunk-ZXRORNAW.js.map → chunk-FQ3JQV3M.js.map} +1 -1
  148. package/dist/{chunk-A7OO6OPW.mjs → chunk-FTBABL3T.mjs} +3 -3
  149. package/dist/{chunk-A7OO6OPW.mjs.map → chunk-FTBABL3T.mjs.map} +1 -1
  150. package/dist/{chunk-5EFSD7VM.js → chunk-GCZMDY2T.js} +490 -20
  151. package/dist/chunk-GCZMDY2T.js.map +1 -0
  152. package/dist/{chunk-4OSZ2JD3.js → chunk-HCN2US4M.js} +18 -18
  153. package/dist/{chunk-4OSZ2JD3.js.map → chunk-HCN2US4M.js.map} +1 -1
  154. package/dist/{chunk-3BXYZC3V.mjs → chunk-HEUCDF3O.mjs} +3 -3
  155. package/dist/{chunk-3BXYZC3V.mjs.map → chunk-HEUCDF3O.mjs.map} +1 -1
  156. package/dist/chunk-HX6ZG3PP.js +19 -0
  157. package/dist/chunk-HX6ZG3PP.js.map +1 -0
  158. package/dist/{chunk-UR4HKLHW.js → chunk-IX5RAZWX.js} +6 -6
  159. package/dist/{chunk-UR4HKLHW.js.map → chunk-IX5RAZWX.js.map} +1 -1
  160. package/dist/{chunk-NQEUFRMX.mjs → chunk-J4JXAFSW.mjs} +3 -3
  161. package/dist/{chunk-NQEUFRMX.mjs.map → chunk-J4JXAFSW.mjs.map} +1 -1
  162. package/dist/{chunk-FBI6LYTM.js → chunk-JBGRXICL.js} +62 -41
  163. package/dist/chunk-JBGRXICL.js.map +1 -0
  164. package/dist/{chunk-FIA3WNEM.js → chunk-JIUVBSQZ.js} +3 -3
  165. package/dist/{chunk-FIA3WNEM.js.map → chunk-JIUVBSQZ.js.map} +1 -1
  166. package/dist/chunk-JPTJGLKS.mjs +6 -0
  167. package/dist/{chunk-NQNSATTA.mjs.map → chunk-JPTJGLKS.mjs.map} +1 -1
  168. package/dist/{chunk-YWBXKEAF.js → chunk-JY3KZDEM.js} +3 -3
  169. package/dist/{chunk-YWBXKEAF.js.map → chunk-JY3KZDEM.js.map} +1 -1
  170. package/dist/{chunk-67MTTPJV.js → chunk-KWH6RAVY.js} +11 -11
  171. package/dist/{chunk-67MTTPJV.js.map → chunk-KWH6RAVY.js.map} +1 -1
  172. package/dist/{chunk-M52FYLV4.js → chunk-LLKXPJSE.js} +7 -7
  173. package/dist/{chunk-M52FYLV4.js.map → chunk-LLKXPJSE.js.map} +1 -1
  174. package/dist/{chunk-6ABCPVJL.js → chunk-LZY374FB.js} +4 -4
  175. package/dist/{chunk-6ABCPVJL.js.map → chunk-LZY374FB.js.map} +1 -1
  176. package/dist/{chunk-OQTP5M5Y.js → chunk-MGPHBVOK.js} +9 -9
  177. package/dist/{chunk-OQTP5M5Y.js.map → chunk-MGPHBVOK.js.map} +1 -1
  178. package/dist/{chunk-VYNOQCEK.js → chunk-MPO6TRLS.js} +14 -14
  179. package/dist/{chunk-VYNOQCEK.js.map → chunk-MPO6TRLS.js.map} +1 -1
  180. package/dist/{chunk-EQZ42LAK.mjs → chunk-MVJQ4ZA2.mjs} +4 -4
  181. package/dist/{chunk-EQZ42LAK.mjs.map → chunk-MVJQ4ZA2.mjs.map} +1 -1
  182. package/dist/{chunk-VU45CH5R.mjs → chunk-MWXBRCM2.mjs} +3 -3
  183. package/dist/{chunk-VU45CH5R.mjs.map → chunk-MWXBRCM2.mjs.map} +1 -1
  184. package/dist/{chunk-C3M5E4YI.js → chunk-N3RWPAR5.js} +5 -5
  185. package/dist/{chunk-C3M5E4YI.js.map → chunk-N3RWPAR5.js.map} +1 -1
  186. package/dist/{chunk-6WJDTGM6.js → chunk-OGPS3DKE.js} +5 -5
  187. package/dist/{chunk-6WJDTGM6.js.map → chunk-OGPS3DKE.js.map} +1 -1
  188. package/dist/{chunk-D4KHH44S.mjs → chunk-PPCTL4B5.mjs} +2 -2
  189. package/dist/{chunk-D4KHH44S.mjs.map → chunk-PPCTL4B5.mjs.map} +1 -1
  190. package/dist/{chunk-R6XBPA6C.mjs → chunk-PZE5L2FK.mjs} +4 -4
  191. package/dist/{chunk-R6XBPA6C.mjs.map → chunk-PZE5L2FK.mjs.map} +1 -1
  192. package/dist/{chunk-PSBAUXUH.mjs → chunk-QH3WVTEK.mjs} +4 -4
  193. package/dist/{chunk-PSBAUXUH.mjs.map → chunk-QH3WVTEK.mjs.map} +1 -1
  194. package/dist/{chunk-LQENHKD3.mjs → chunk-QI2H5KK6.mjs} +4 -4
  195. package/dist/{chunk-LQENHKD3.mjs.map → chunk-QI2H5KK6.mjs.map} +1 -1
  196. package/dist/chunk-S65JSRWW.js +8 -0
  197. package/dist/{chunk-UXIUJYFK.js.map → chunk-S65JSRWW.js.map} +1 -1
  198. package/dist/{chunk-36E6QKGL.mjs → chunk-SW6KWUNI.mjs} +3 -3
  199. package/dist/{chunk-36E6QKGL.mjs.map → chunk-SW6KWUNI.mjs.map} +1 -1
  200. package/dist/{chunk-NJ4YX3CI.mjs → chunk-SXPINIJG.mjs} +4 -4
  201. package/dist/{chunk-NJ4YX3CI.mjs.map → chunk-SXPINIJG.mjs.map} +1 -1
  202. package/dist/{chunk-R7V7HNJJ.js → chunk-UABMMR7U.js} +2 -2
  203. package/dist/{chunk-R7V7HNJJ.js.map → chunk-UABMMR7U.js.map} +1 -1
  204. package/dist/{chunk-X2PAODFM.mjs → chunk-UFURXSAI.mjs} +3 -3
  205. package/dist/{chunk-X2PAODFM.mjs.map → chunk-UFURXSAI.mjs.map} +1 -1
  206. package/dist/{chunk-JJS63TDR.mjs → chunk-UV6KQUSL.mjs} +483 -21
  207. package/dist/chunk-UV6KQUSL.mjs.map +1 -0
  208. package/dist/{chunk-H3F4GV2S.js → chunk-VACFVPNF.js} +14 -14
  209. package/dist/{chunk-H3F4GV2S.js.map → chunk-VACFVPNF.js.map} +1 -1
  210. package/dist/{chunk-LVM63JSA.mjs → chunk-XPAHKYX7.mjs} +3 -3
  211. package/dist/{chunk-LVM63JSA.mjs.map → chunk-XPAHKYX7.mjs.map} +1 -1
  212. package/dist/chunk-YFX3Q56O.mjs +16 -0
  213. package/dist/chunk-YFX3Q56O.mjs.map +1 -0
  214. package/dist/{chunk-TY3BPHTE.mjs → chunk-YGRHEEPX.mjs} +7 -7
  215. package/dist/{chunk-TY3BPHTE.mjs.map → chunk-YGRHEEPX.mjs.map} +1 -1
  216. package/dist/{chunk-BUF6IZUE.mjs → chunk-YSZB2DRX.mjs} +3 -3
  217. package/dist/{chunk-BUF6IZUE.mjs.map → chunk-YSZB2DRX.mjs.map} +1 -1
  218. package/dist/{chunk-INR6AQ54.mjs → chunk-YVE65W47.mjs} +4 -4
  219. package/dist/{chunk-INR6AQ54.mjs.map → chunk-YVE65W47.mjs.map} +1 -1
  220. package/dist/cli/index.js +7 -27
  221. package/dist/cli/index.js.map +1 -1
  222. package/dist/cli/index.mjs +5 -25
  223. package/dist/cli/index.mjs.map +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/index.js +16 -16
  264. package/dist/sync/index.mjs +4 -4
  265. package/package.json +1 -1
  266. package/dist/AnalyticsProvider-DNMYYBKX.js +0 -31
  267. package/dist/AnalyticsProvider-TWRQHKPZ.mjs +0 -10
  268. package/dist/ChatWidget-MDWEXISQ.js +0 -20
  269. package/dist/ChatWidget-UQMEJAHY.mjs +0 -11
  270. package/dist/EngageWidget-UIIN43ZU.mjs +0 -9
  271. package/dist/EngageWidget-VRC7NUG6.js +0 -18
  272. package/dist/ManagedForm-7L2W5BBZ.js +0 -23
  273. package/dist/ManagedForm-D7CFOIXH.mjs +0 -14
  274. package/dist/SitemapSync-RFY6PUG7.mjs +0 -8
  275. package/dist/SitemapSync-SR6OJRIA.js +0 -17
  276. package/dist/chunk-5EFSD7VM.js.map +0 -1
  277. package/dist/chunk-6VHVIBLQ.mjs.map +0 -1
  278. package/dist/chunk-FBI6LYTM.js.map +0 -1
  279. package/dist/chunk-JJS63TDR.mjs.map +0 -1
  280. package/dist/chunk-NQNSATTA.mjs +0 -6
  281. package/dist/chunk-UXIUJYFK.js +0 -8
@@ -1,5 +1,7 @@
1
- export { BlogList, BlogPost, ClusterNavigation } from '../chunk-JJS63TDR.mjs';
2
- import { getTopicCluster } from '../chunk-6VHVIBLQ.mjs';
1
+ import { readingTimeMinutes } from '../chunk-UV6KQUSL.mjs';
2
+ export { BlogLayout, BlogList, BlogPage, BlogPost, BlogPostPage, BlogSidebar, CategoryPage, ClusterNavigation, RelatedPosts } from '../chunk-UV6KQUSL.mjs';
3
+ import '../chunk-YFX3Q56O.mjs';
4
+ import { getTopicCluster } from '../chunk-DHXQBTXE.mjs';
3
5
  import '../chunk-CGCYZJYX.mjs';
4
6
  import '../chunk-6XNEGG5B.mjs';
5
7
  import '../chunk-BEXTDHO4.mjs';
@@ -156,8 +158,8 @@ async function ClusterLandingPage({
156
158
  /* @__PURE__ */ jsx("h2", { className: unstyled ? "" : "sk-cluster-pillar-title", children: pillar.title }),
157
159
  pillar.excerpt && /* @__PURE__ */ jsx("p", { className: unstyled ? "" : "sk-cluster-pillar-excerpt", children: pillar.excerpt }),
158
160
  /* @__PURE__ */ jsxs("div", { className: unstyled ? "" : "sk-cluster-pillar-meta", children: [
159
- (pillar.reading_time_minutes ?? pillar.reading_time) && /* @__PURE__ */ jsxs("span", { children: [
160
- pillar.reading_time_minutes ?? pillar.reading_time,
161
+ readingTimeMinutes(pillar) && /* @__PURE__ */ jsxs("span", { children: [
162
+ readingTimeMinutes(pillar),
161
163
  " min read"
162
164
  ] }),
163
165
  pillar.word_count && /* @__PURE__ */ jsxs("span", { children: [
@@ -181,8 +183,8 @@ async function ClusterLandingPage({
181
183
  /* @__PURE__ */ jsx("h3", { className: unstyled ? "" : "sk-cluster-support-title", children: post.title }),
182
184
  post.excerpt && /* @__PURE__ */ jsx("p", { className: unstyled ? "" : "sk-cluster-support-excerpt", children: post.excerpt }),
183
185
  /* @__PURE__ */ jsxs("div", { className: unstyled ? "" : "sk-cluster-support-meta", children: [
184
- (post.reading_time_minutes ?? post.reading_time) && /* @__PURE__ */ jsxs("span", { children: [
185
- post.reading_time_minutes ?? post.reading_time,
186
+ readingTimeMinutes(post) && /* @__PURE__ */ jsxs("span", { children: [
187
+ readingTimeMinutes(post),
186
188
  " min read"
187
189
  ] }),
188
190
  post.relationship_to_pillar && /* @__PURE__ */ jsx("span", { children: post.relationship_to_pillar })
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/blog/ClusterLandingPage.tsx"],"names":[],"mappings":"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","file":"server-ui.mjs","sourcesContent":["/**\n * @sonordev/site-kit/blog - Cluster Landing Page Component\n *\n * Pre-built page component for `/blog/cluster/[slug]` routes.\n * Renders a topic cluster overview with:\n * - Cluster hero (name, topic, description)\n * - Pillar article (featured, large card)\n * - Support articles (grid, categorized by article_type or funnel_stage)\n *\n * Server component — fetches cluster data from Portal API.\n * Ships with `.sk-cluster-landing-*` scoped styles.\n */\n\nimport React from 'react'\nimport { getTopicCluster } from './server-core'\nimport type { TopicCluster, BlogPost } from './types'\n\n// ============================================================================\n// CSS\n// ============================================================================\n\nconst clusterLandingCss = `\n.sk-cluster-landing { max-width: 72rem; margin: 0 auto; padding: 2rem 1rem; }\n\n.sk-cluster-hero { margin-bottom: 3rem; text-align: center; }\n.sk-cluster-hero-label {\n display: inline-flex; align-items: center; gap: 0.375rem;\n font-size: 0.75rem; font-weight: 600; text-transform: uppercase;\n letter-spacing: 0.05em; color: #6366f1; margin-bottom: 0.75rem;\n}\n.sk-cluster-hero-title {\n font-size: 2.25rem; font-weight: 800; color: #111827;\n line-height: 1.2; margin: 0 0 0.75rem 0;\n}\n.sk-cluster-hero-desc {\n font-size: 1.125rem; color: #6b7280; max-width: 40rem;\n margin: 0 auto; line-height: 1.6;\n}\n.sk-cluster-hero-meta {\n display: flex; justify-content: center; gap: 1.5rem;\n margin-top: 1rem; font-size: 0.875rem; color: #9ca3af;\n}\n\n.sk-cluster-pillar-card {\n display: block; text-decoration: none; color: inherit;\n padding: 2rem; border-radius: 0.75rem;\n background: linear-gradient(135deg, rgba(99,102,241,0.04), rgba(99,102,241,0.01));\n border: 2px solid rgba(99,102,241,0.2);\n margin-bottom: 3rem; transition: border-color 0.2s, box-shadow 0.2s;\n}\n.sk-cluster-pillar-card:hover {\n border-color: rgba(99,102,241,0.4);\n box-shadow: 0 4px 24px rgba(99,102,241,0.08);\n}\n.sk-cluster-pillar-label {\n display: inline-flex; align-items: center; gap: 0.375rem;\n font-size: 0.6875rem; font-weight: 700; text-transform: uppercase;\n letter-spacing: 0.05em; color: #6366f1; margin-bottom: 0.75rem;\n padding: 0.25rem 0.5rem; border-radius: 9999px;\n background: rgba(99,102,241,0.08);\n}\n.sk-cluster-pillar-title {\n font-size: 1.5rem; font-weight: 700; color: #111827;\n margin: 0 0 0.5rem 0; line-height: 1.3;\n}\n.sk-cluster-pillar-excerpt {\n font-size: 1rem; color: #6b7280; line-height: 1.6;\n margin: 0 0 1rem 0;\n}\n.sk-cluster-pillar-meta {\n display: flex; gap: 1rem; font-size: 0.8125rem; color: #9ca3af;\n}\n\n.sk-cluster-supports-section { margin-bottom: 2rem; }\n.sk-cluster-supports-title {\n font-size: 1.25rem; font-weight: 700; color: #111827;\n margin: 0 0 1.25rem 0;\n}\n.sk-cluster-supports-grid {\n display: grid; gap: 1.25rem;\n grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr));\n}\n.sk-cluster-support-card {\n display: block; text-decoration: none; color: inherit;\n padding: 1.25rem; border-radius: 0.5rem;\n border: 1px solid #e5e7eb; background: #fff;\n transition: border-color 0.2s, box-shadow 0.2s;\n}\n.sk-cluster-support-card:hover {\n border-color: #c7d2fe;\n box-shadow: 0 2px 12px rgba(0,0,0,0.04);\n}\n.sk-cluster-support-card-header {\n display: flex; align-items: center; gap: 0.5rem;\n margin-bottom: 0.5rem;\n}\n.sk-cluster-support-type {\n display: inline-flex; align-items: center;\n padding: 0.125rem 0.375rem; border-radius: 9999px;\n font-size: 0.6875rem; font-weight: 500;\n background: rgba(99,102,241,0.06); color: #6366f1;\n border: 1px solid rgba(99,102,241,0.12);\n text-transform: capitalize;\n}\n.sk-cluster-support-intent {\n font-size: 0.6875rem; color: #9ca3af;\n text-transform: capitalize;\n}\n.sk-cluster-support-title {\n font-size: 1rem; font-weight: 600; color: #111827;\n margin: 0 0 0.375rem 0; line-height: 1.4;\n}\n.sk-cluster-support-excerpt {\n font-size: 0.875rem; color: #6b7280; line-height: 1.5;\n margin: 0; display: -webkit-box; -webkit-line-clamp: 2;\n -webkit-box-orient: vertical; overflow: hidden;\n}\n.sk-cluster-support-meta {\n display: flex; gap: 0.75rem; margin-top: 0.75rem;\n font-size: 0.75rem; color: #9ca3af;\n}\n`\n\n// ============================================================================\n// COMPONENT\n// ============================================================================\n\nexport interface ClusterLandingPageProps {\n /** Cluster slug to fetch */\n slug: string\n /** Base path for blog URLs (default: /blog) */\n basePath?: string\n /**\n * Include each article's own category segment in its URL:\n * {basePath}/{category}/{slug}. Enable on sites whose blog routes are\n * category-segmented (e.g. upforge.io /insights/{category}/{slug}) —\n * without it, links point at {basePath}/{slug} and 404 on such sites.\n */\n categoryInPath?: boolean\n /** Disable default styles */\n unstyled?: boolean\n /** Custom class name */\n className?: string\n /** Render prop for full data access */\n children?: (props: { cluster: TopicCluster }) => React.ReactNode\n}\n\n/** Category slug of a post — handles both string and object category shapes. */\nfunction categorySlugOf(post: { category?: unknown } | null | undefined): string | null {\n const c = post?.category as { slug?: string } | string | undefined\n if (!c) return null\n if (typeof c === 'string') return c\n return c.slug || null\n}\n\nexport async function ClusterLandingPage({\n slug,\n basePath = '/blog',\n categoryInPath = false,\n unstyled = false,\n className,\n children,\n}: ClusterLandingPageProps) {\n const cluster = await getTopicCluster(slug)\n\n if (!cluster) {\n return (\n <div style={{ padding: '4rem 1rem', textAlign: 'center', color: '#6b7280' }}>\n <p>Topic cluster not found.</p>\n </div>\n )\n }\n\n // Custom render\n if (children) {\n return children({ cluster })\n }\n\n const pillar = cluster.pillar\n const supports = cluster.supports || []\n\n const articleUrl = (post: { slug: string; category?: unknown }) => {\n const cat = categoryInPath ? categorySlugOf(post) : null\n return cat ? `${basePath}/${cat}/${post.slug}` : `${basePath}/${post.slug}`\n }\n\n return (\n <>\n {!unstyled && <style dangerouslySetInnerHTML={{ __html: clusterLandingCss }} />}\n\n <div className={`${unstyled ? '' : 'sk-cluster-landing'} ${className || ''}`}>\n {/* Hero */}\n <header className={unstyled ? '' : 'sk-cluster-hero'}>\n <p className={unstyled ? '' : 'sk-cluster-hero-label'}>\n Topic Cluster\n </p>\n <h1 className={unstyled ? '' : 'sk-cluster-hero-title'}>\n {cluster.cluster_name}\n </h1>\n <p className={unstyled ? '' : 'sk-cluster-hero-desc'}>\n {cluster.core_topic}\n {cluster.geo_target ? ` in ${cluster.geo_target}` : ''}\n </p>\n <div className={unstyled ? '' : 'sk-cluster-hero-meta'}>\n <span>{cluster.article_count} articles</span>\n {cluster.geo_target && <span>{cluster.geo_target}</span>}\n </div>\n </header>\n\n {/* Pillar article (hero card) */}\n {pillar && (\n <a href={articleUrl(pillar)} className={unstyled ? '' : 'sk-cluster-pillar-card'}>\n <span className={unstyled ? '' : 'sk-cluster-pillar-label'}>\n Pillar Guide\n </span>\n <h2 className={unstyled ? '' : 'sk-cluster-pillar-title'}>\n {pillar.title}\n </h2>\n {pillar.excerpt && (\n <p className={unstyled ? '' : 'sk-cluster-pillar-excerpt'}>\n {pillar.excerpt}\n </p>\n )}\n <div className={unstyled ? '' : 'sk-cluster-pillar-meta'}>\n {(pillar.reading_time_minutes ?? pillar.reading_time) && (\n <span>{pillar.reading_time_minutes ?? pillar.reading_time} min read</span>\n )}\n {pillar.word_count && (\n <span>{pillar.word_count.toLocaleString()} words</span>\n )}\n </div>\n </a>\n )}\n\n {/* Support articles */}\n {supports.length > 0 && (\n <section className={unstyled ? '' : 'sk-cluster-supports-section'}>\n <h2 className={unstyled ? '' : 'sk-cluster-supports-title'}>\n Deep Dives\n </h2>\n <div className={unstyled ? '' : 'sk-cluster-supports-grid'}>\n {supports.map((post) => (\n <a\n key={post.id || post.slug}\n href={articleUrl(post)}\n className={unstyled ? '' : 'sk-cluster-support-card'}\n >\n <div className={unstyled ? '' : 'sk-cluster-support-card-header'}>\n {post.article_type && (\n <span className={unstyled ? '' : 'sk-cluster-support-type'}>\n {post.article_type}\n </span>\n )}\n {post.search_intent && (\n <span className={unstyled ? '' : 'sk-cluster-support-intent'}>\n {post.search_intent}\n </span>\n )}\n </div>\n <h3 className={unstyled ? '' : 'sk-cluster-support-title'}>\n {post.title}\n </h3>\n {post.excerpt && (\n <p className={unstyled ? '' : 'sk-cluster-support-excerpt'}>\n {post.excerpt}\n </p>\n )}\n <div className={unstyled ? '' : 'sk-cluster-support-meta'}>\n {(post.reading_time_minutes ?? post.reading_time) && (\n <span>{post.reading_time_minutes ?? post.reading_time} min read</span>\n )}\n {post.relationship_to_pillar && (\n <span>{post.relationship_to_pillar}</span>\n )}\n </div>\n </a>\n ))}\n </div>\n </section>\n )}\n </div>\n </>\n )\n}\n"]}
1
+ {"version":3,"sources":["../../src/blog/ClusterLandingPage.tsx"],"names":[],"mappings":"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","file":"server-ui.mjs","sourcesContent":["/**\n * @sonordev/site-kit/blog - Cluster Landing Page Component\n *\n * Pre-built page component for `/blog/cluster/[slug]` routes.\n * Renders a topic cluster overview with:\n * - Cluster hero (name, topic, description)\n * - Pillar article (featured, large card)\n * - Support articles (grid, categorized by article_type or funnel_stage)\n *\n * Server component — fetches cluster data from Portal API.\n * Ships with `.sk-cluster-landing-*` scoped styles.\n */\n\nimport React from 'react'\nimport { getTopicCluster } from './server-core'\nimport type { TopicCluster, BlogPost } from './types'\nimport { readingTimeMinutes } from './reading-time'\n\n// ============================================================================\n// CSS\n// ============================================================================\n\nconst clusterLandingCss = `\n.sk-cluster-landing { max-width: 72rem; margin: 0 auto; padding: 2rem 1rem; }\n\n.sk-cluster-hero { margin-bottom: 3rem; text-align: center; }\n.sk-cluster-hero-label {\n display: inline-flex; align-items: center; gap: 0.375rem;\n font-size: 0.75rem; font-weight: 600; text-transform: uppercase;\n letter-spacing: 0.05em; color: #6366f1; margin-bottom: 0.75rem;\n}\n.sk-cluster-hero-title {\n font-size: 2.25rem; font-weight: 800; color: #111827;\n line-height: 1.2; margin: 0 0 0.75rem 0;\n}\n.sk-cluster-hero-desc {\n font-size: 1.125rem; color: #6b7280; max-width: 40rem;\n margin: 0 auto; line-height: 1.6;\n}\n.sk-cluster-hero-meta {\n display: flex; justify-content: center; gap: 1.5rem;\n margin-top: 1rem; font-size: 0.875rem; color: #9ca3af;\n}\n\n.sk-cluster-pillar-card {\n display: block; text-decoration: none; color: inherit;\n padding: 2rem; border-radius: 0.75rem;\n background: linear-gradient(135deg, rgba(99,102,241,0.04), rgba(99,102,241,0.01));\n border: 2px solid rgba(99,102,241,0.2);\n margin-bottom: 3rem; transition: border-color 0.2s, box-shadow 0.2s;\n}\n.sk-cluster-pillar-card:hover {\n border-color: rgba(99,102,241,0.4);\n box-shadow: 0 4px 24px rgba(99,102,241,0.08);\n}\n.sk-cluster-pillar-label {\n display: inline-flex; align-items: center; gap: 0.375rem;\n font-size: 0.6875rem; font-weight: 700; text-transform: uppercase;\n letter-spacing: 0.05em; color: #6366f1; margin-bottom: 0.75rem;\n padding: 0.25rem 0.5rem; border-radius: 9999px;\n background: rgba(99,102,241,0.08);\n}\n.sk-cluster-pillar-title {\n font-size: 1.5rem; font-weight: 700; color: #111827;\n margin: 0 0 0.5rem 0; line-height: 1.3;\n}\n.sk-cluster-pillar-excerpt {\n font-size: 1rem; color: #6b7280; line-height: 1.6;\n margin: 0 0 1rem 0;\n}\n.sk-cluster-pillar-meta {\n display: flex; gap: 1rem; font-size: 0.8125rem; color: #9ca3af;\n}\n\n.sk-cluster-supports-section { margin-bottom: 2rem; }\n.sk-cluster-supports-title {\n font-size: 1.25rem; font-weight: 700; color: #111827;\n margin: 0 0 1.25rem 0;\n}\n.sk-cluster-supports-grid {\n display: grid; gap: 1.25rem;\n grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr));\n}\n.sk-cluster-support-card {\n display: block; text-decoration: none; color: inherit;\n padding: 1.25rem; border-radius: 0.5rem;\n border: 1px solid #e5e7eb; background: #fff;\n transition: border-color 0.2s, box-shadow 0.2s;\n}\n.sk-cluster-support-card:hover {\n border-color: #c7d2fe;\n box-shadow: 0 2px 12px rgba(0,0,0,0.04);\n}\n.sk-cluster-support-card-header {\n display: flex; align-items: center; gap: 0.5rem;\n margin-bottom: 0.5rem;\n}\n.sk-cluster-support-type {\n display: inline-flex; align-items: center;\n padding: 0.125rem 0.375rem; border-radius: 9999px;\n font-size: 0.6875rem; font-weight: 500;\n background: rgba(99,102,241,0.06); color: #6366f1;\n border: 1px solid rgba(99,102,241,0.12);\n text-transform: capitalize;\n}\n.sk-cluster-support-intent {\n font-size: 0.6875rem; color: #9ca3af;\n text-transform: capitalize;\n}\n.sk-cluster-support-title {\n font-size: 1rem; font-weight: 600; color: #111827;\n margin: 0 0 0.375rem 0; line-height: 1.4;\n}\n.sk-cluster-support-excerpt {\n font-size: 0.875rem; color: #6b7280; line-height: 1.5;\n margin: 0; display: -webkit-box; -webkit-line-clamp: 2;\n -webkit-box-orient: vertical; overflow: hidden;\n}\n.sk-cluster-support-meta {\n display: flex; gap: 0.75rem; margin-top: 0.75rem;\n font-size: 0.75rem; color: #9ca3af;\n}\n`\n\n// ============================================================================\n// COMPONENT\n// ============================================================================\n\nexport interface ClusterLandingPageProps {\n /** Cluster slug to fetch */\n slug: string\n /** Base path for blog URLs (default: /blog) */\n basePath?: string\n /**\n * Include each article's own category segment in its URL:\n * {basePath}/{category}/{slug}. Enable on sites whose blog routes are\n * category-segmented (e.g. upforge.io /insights/{category}/{slug}) —\n * without it, links point at {basePath}/{slug} and 404 on such sites.\n */\n categoryInPath?: boolean\n /** Disable default styles */\n unstyled?: boolean\n /** Custom class name */\n className?: string\n /** Render prop for full data access */\n children?: (props: { cluster: TopicCluster }) => React.ReactNode\n}\n\n/** Category slug of a post — handles both string and object category shapes. */\nfunction categorySlugOf(post: { category?: unknown } | null | undefined): string | null {\n const c = post?.category as { slug?: string } | string | undefined\n if (!c) return null\n if (typeof c === 'string') return c\n return c.slug || null\n}\n\nexport async function ClusterLandingPage({\n slug,\n basePath = '/blog',\n categoryInPath = false,\n unstyled = false,\n className,\n children,\n}: ClusterLandingPageProps) {\n const cluster = await getTopicCluster(slug)\n\n if (!cluster) {\n return (\n <div style={{ padding: '4rem 1rem', textAlign: 'center', color: '#6b7280' }}>\n <p>Topic cluster not found.</p>\n </div>\n )\n }\n\n // Custom render\n if (children) {\n return children({ cluster })\n }\n\n const pillar = cluster.pillar\n const supports = cluster.supports || []\n\n const articleUrl = (post: { slug: string; category?: unknown }) => {\n const cat = categoryInPath ? categorySlugOf(post) : null\n return cat ? `${basePath}/${cat}/${post.slug}` : `${basePath}/${post.slug}`\n }\n\n return (\n <>\n {!unstyled && <style dangerouslySetInnerHTML={{ __html: clusterLandingCss }} />}\n\n <div className={`${unstyled ? '' : 'sk-cluster-landing'} ${className || ''}`}>\n {/* Hero */}\n <header className={unstyled ? '' : 'sk-cluster-hero'}>\n <p className={unstyled ? '' : 'sk-cluster-hero-label'}>\n Topic Cluster\n </p>\n <h1 className={unstyled ? '' : 'sk-cluster-hero-title'}>\n {cluster.cluster_name}\n </h1>\n <p className={unstyled ? '' : 'sk-cluster-hero-desc'}>\n {cluster.core_topic}\n {cluster.geo_target ? ` in ${cluster.geo_target}` : ''}\n </p>\n <div className={unstyled ? '' : 'sk-cluster-hero-meta'}>\n <span>{cluster.article_count} articles</span>\n {cluster.geo_target && <span>{cluster.geo_target}</span>}\n </div>\n </header>\n\n {/* Pillar article (hero card) */}\n {pillar && (\n <a href={articleUrl(pillar)} className={unstyled ? '' : 'sk-cluster-pillar-card'}>\n <span className={unstyled ? '' : 'sk-cluster-pillar-label'}>\n Pillar Guide\n </span>\n <h2 className={unstyled ? '' : 'sk-cluster-pillar-title'}>\n {pillar.title}\n </h2>\n {pillar.excerpt && (\n <p className={unstyled ? '' : 'sk-cluster-pillar-excerpt'}>\n {pillar.excerpt}\n </p>\n )}\n <div className={unstyled ? '' : 'sk-cluster-pillar-meta'}>\n {readingTimeMinutes(pillar) && (\n <span>{readingTimeMinutes(pillar)} min read</span>\n )}\n {pillar.word_count && (\n <span>{pillar.word_count.toLocaleString()} words</span>\n )}\n </div>\n </a>\n )}\n\n {/* Support articles */}\n {supports.length > 0 && (\n <section className={unstyled ? '' : 'sk-cluster-supports-section'}>\n <h2 className={unstyled ? '' : 'sk-cluster-supports-title'}>\n Deep Dives\n </h2>\n <div className={unstyled ? '' : 'sk-cluster-supports-grid'}>\n {supports.map((post) => (\n <a\n key={post.id || post.slug}\n href={articleUrl(post)}\n className={unstyled ? '' : 'sk-cluster-support-card'}\n >\n <div className={unstyled ? '' : 'sk-cluster-support-card-header'}>\n {post.article_type && (\n <span className={unstyled ? '' : 'sk-cluster-support-type'}>\n {post.article_type}\n </span>\n )}\n {post.search_intent && (\n <span className={unstyled ? '' : 'sk-cluster-support-intent'}>\n {post.search_intent}\n </span>\n )}\n </div>\n <h3 className={unstyled ? '' : 'sk-cluster-support-title'}>\n {post.title}\n </h3>\n {post.excerpt && (\n <p className={unstyled ? '' : 'sk-cluster-support-excerpt'}>\n {post.excerpt}\n </p>\n )}\n <div className={unstyled ? '' : 'sk-cluster-support-meta'}>\n {readingTimeMinutes(post) && (\n <span>{readingTimeMinutes(post)} min read</span>\n )}\n {post.relationship_to_pillar && (\n <span>{post.relationship_to_pillar}</span>\n )}\n </div>\n </a>\n ))}\n </div>\n </section>\n )}\n </div>\n </>\n )\n}\n"]}
@@ -105,7 +105,9 @@ export declare function generateBlogIndexMetadata(options: BlogMetadataOptions &
105
105
  /**
106
106
  * Generate metadata for a category page
107
107
  */
108
- export declare function generateBlogCategoryMetadata(categoryName: string, options?: BlogMetadataOptions): Metadata;
108
+ export declare function generateBlogCategoryMetadata(categoryName: string, options?: BlogMetadataOptions & {
109
+ categorySlug?: string;
110
+ }): Metadata;
109
111
  /**
110
112
  * Generate static params for blog post pages
111
113
  * Usage: export const generateStaticParams = generateBlogStaticParams
@@ -177,7 +179,11 @@ interface RssFeedOptions {
177
179
  imageUrl?: string;
178
180
  }
179
181
  /**
180
- * Fetch all published blog posts for RSS feed
182
+ * Fetch all published blog posts for RSS feed.
183
+ *
184
+ * Paginates with `per_page`/`page` — the only pagination params the deployed
185
+ * controller reads — accumulating up to FEED_MAX_POSTS. A mid-loop failure
186
+ * returns what was accumulated so far: a partial feed beats an empty one.
181
187
  */
182
188
  export declare function getAllBlogPosts(): Promise<BlogPostRecord[]>;
183
189
  /**
@@ -305,9 +311,15 @@ export declare function generateAllBlogSchemas(post: BlogPostRecord, options?: {
305
311
  */
306
312
  export declare function getAuthorBySlug(slug: string): Promise<BlogAuthor | null>;
307
313
  /**
308
- * Fetch an author's posts by slug
314
+ * Fetch an author's posts by slug.
315
+ *
316
+ * `offset` pages through the controller's existing offset support. Older API
317
+ * versions return a stripped `{name, slug}` author on this endpoint; when
318
+ * that shape is detected the full author row is hydrated via getAuthorBySlug
319
+ * (both fetches revalidate:60, so the extra hop is cached and disappears once
320
+ * the API returns the full row itself).
309
321
  */
310
- export declare function getAuthorPosts(slug: string, limit?: number): Promise<{
322
+ export declare function getAuthorPosts(slug: string, limit?: number, offset?: number): Promise<{
311
323
  author: BlogAuthor | null;
312
324
  posts: BlogPostRecord[];
313
325
  total: number;
@@ -1 +1 @@
1
- {"version":3,"file":"server-core.d.ts","sourceRoot":"","sources":["../../src/blog/server-core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server-core.d.ts","sourceRoot":"","sources":["../../src/blog/server-core.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkFBI6LYTM_js = require('../chunk-FBI6LYTM.js');
3
+ var chunkJBGRXICL_js = require('../chunk-JBGRXICL.js');
4
4
  var chunkTPL2IHFI_js = require('../chunk-TPL2IHFI.js');
5
5
  require('../chunk-O5GHP7UO.js');
6
6
  require('../chunk-SNAQBZPT.js');
@@ -9,159 +9,159 @@ require('../chunk-SNAQBZPT.js');
9
9
 
10
10
  Object.defineProperty(exports, "SEO_LIMITS", {
11
11
  enumerable: true,
12
- get: function () { return chunkFBI6LYTM_js.SEO_LIMITS; }
12
+ get: function () { return chunkJBGRXICL_js.SEO_LIMITS; }
13
13
  });
14
14
  Object.defineProperty(exports, "generateAllBlogSchemas", {
15
15
  enumerable: true,
16
- get: function () { return chunkFBI6LYTM_js.generateAllBlogSchemas; }
16
+ get: function () { return chunkJBGRXICL_js.generateAllBlogSchemas; }
17
17
  });
18
18
  Object.defineProperty(exports, "generateAtomFeed", {
19
19
  enumerable: true,
20
- get: function () { return chunkFBI6LYTM_js.generateAtomFeed; }
20
+ get: function () { return chunkJBGRXICL_js.generateAtomFeed; }
21
21
  });
22
22
  Object.defineProperty(exports, "generateAuthorPageMetadata", {
23
23
  enumerable: true,
24
- get: function () { return chunkFBI6LYTM_js.generateAuthorPageMetadata; }
24
+ get: function () { return chunkJBGRXICL_js.generateAuthorPageMetadata; }
25
25
  });
26
26
  Object.defineProperty(exports, "generateAuthorStaticParams", {
27
27
  enumerable: true,
28
- get: function () { return chunkFBI6LYTM_js.generateAuthorStaticParams; }
28
+ get: function () { return chunkJBGRXICL_js.generateAuthorStaticParams; }
29
29
  });
30
30
  Object.defineProperty(exports, "generateBlogCategoryMetadata", {
31
31
  enumerable: true,
32
- get: function () { return chunkFBI6LYTM_js.generateBlogCategoryMetadata; }
32
+ get: function () { return chunkJBGRXICL_js.generateBlogCategoryMetadata; }
33
33
  });
34
34
  Object.defineProperty(exports, "generateBlogIndexMetadata", {
35
35
  enumerable: true,
36
- get: function () { return chunkFBI6LYTM_js.generateBlogIndexMetadata; }
36
+ get: function () { return chunkJBGRXICL_js.generateBlogIndexMetadata; }
37
37
  });
38
38
  Object.defineProperty(exports, "generateBlogListSchema", {
39
39
  enumerable: true,
40
- get: function () { return chunkFBI6LYTM_js.generateBlogListSchema; }
40
+ get: function () { return chunkJBGRXICL_js.generateBlogListSchema; }
41
41
  });
42
42
  Object.defineProperty(exports, "generateBlogPostMetadata", {
43
43
  enumerable: true,
44
- get: function () { return chunkFBI6LYTM_js.generateBlogPostMetadata; }
44
+ get: function () { return chunkJBGRXICL_js.generateBlogPostMetadata; }
45
45
  });
46
46
  Object.defineProperty(exports, "generateBlogPostSchema", {
47
47
  enumerable: true,
48
- get: function () { return chunkFBI6LYTM_js.generateBlogPostSchema; }
48
+ get: function () { return chunkJBGRXICL_js.generateBlogPostSchema; }
49
49
  });
50
50
  Object.defineProperty(exports, "generateBlogSitemap", {
51
51
  enumerable: true,
52
- get: function () { return chunkFBI6LYTM_js.generateBlogSitemap; }
52
+ get: function () { return chunkJBGRXICL_js.generateBlogSitemap; }
53
53
  });
54
54
  Object.defineProperty(exports, "generateBlogStaticParams", {
55
55
  enumerable: true,
56
- get: function () { return chunkFBI6LYTM_js.generateBlogStaticParams; }
56
+ get: function () { return chunkJBGRXICL_js.generateBlogStaticParams; }
57
57
  });
58
58
  Object.defineProperty(exports, "generateBreadcrumbSchema", {
59
59
  enumerable: true,
60
- get: function () { return chunkFBI6LYTM_js.generateBreadcrumbSchema; }
60
+ get: function () { return chunkJBGRXICL_js.generateBreadcrumbSchema; }
61
61
  });
62
62
  Object.defineProperty(exports, "generateCategoryStaticParams", {
63
63
  enumerable: true,
64
- get: function () { return chunkFBI6LYTM_js.generateCategoryStaticParams; }
64
+ get: function () { return chunkJBGRXICL_js.generateCategoryStaticParams; }
65
65
  });
66
66
  Object.defineProperty(exports, "generateClusterArticleSchema", {
67
67
  enumerable: true,
68
- get: function () { return chunkFBI6LYTM_js.generateClusterArticleSchema; }
68
+ get: function () { return chunkJBGRXICL_js.generateClusterArticleSchema; }
69
69
  });
70
70
  Object.defineProperty(exports, "generateClusterBreadcrumbSchema", {
71
71
  enumerable: true,
72
- get: function () { return chunkFBI6LYTM_js.generateClusterBreadcrumbSchema; }
72
+ get: function () { return chunkJBGRXICL_js.generateClusterBreadcrumbSchema; }
73
73
  });
74
74
  Object.defineProperty(exports, "generateClusterItemListSchema", {
75
75
  enumerable: true,
76
- get: function () { return chunkFBI6LYTM_js.generateClusterItemListSchema; }
76
+ get: function () { return chunkJBGRXICL_js.generateClusterItemListSchema; }
77
77
  });
78
78
  Object.defineProperty(exports, "generateClusterLandingSchema", {
79
79
  enumerable: true,
80
- get: function () { return chunkFBI6LYTM_js.generateClusterLandingSchema; }
80
+ get: function () { return chunkJBGRXICL_js.generateClusterLandingSchema; }
81
81
  });
82
82
  Object.defineProperty(exports, "generateClusterPageMetadata", {
83
83
  enumerable: true,
84
- get: function () { return chunkFBI6LYTM_js.generateClusterPageMetadata; }
84
+ get: function () { return chunkJBGRXICL_js.generateClusterPageMetadata; }
85
85
  });
86
86
  Object.defineProperty(exports, "generateFaqSchema", {
87
87
  enumerable: true,
88
- get: function () { return chunkFBI6LYTM_js.generateFaqSchema; }
88
+ get: function () { return chunkJBGRXICL_js.generateFaqSchema; }
89
89
  });
90
90
  Object.defineProperty(exports, "generateHowToSchema", {
91
91
  enumerable: true,
92
- get: function () { return chunkFBI6LYTM_js.generateHowToSchema; }
92
+ get: function () { return chunkJBGRXICL_js.generateHowToSchema; }
93
93
  });
94
94
  Object.defineProperty(exports, "generateRssFeed", {
95
95
  enumerable: true,
96
- get: function () { return chunkFBI6LYTM_js.generateRssFeed; }
96
+ get: function () { return chunkJBGRXICL_js.generateRssFeed; }
97
97
  });
98
98
  Object.defineProperty(exports, "getAllAuthorSlugs", {
99
99
  enumerable: true,
100
- get: function () { return chunkFBI6LYTM_js.getAllAuthorSlugs; }
100
+ get: function () { return chunkJBGRXICL_js.getAllAuthorSlugs; }
101
101
  });
102
102
  Object.defineProperty(exports, "getAllBlogPosts", {
103
103
  enumerable: true,
104
- get: function () { return chunkFBI6LYTM_js.getAllBlogPosts; }
104
+ get: function () { return chunkJBGRXICL_js.getAllBlogPosts; }
105
105
  });
106
106
  Object.defineProperty(exports, "getAllBlogSlugs", {
107
107
  enumerable: true,
108
- get: function () { return chunkFBI6LYTM_js.getAllBlogSlugs; }
108
+ get: function () { return chunkJBGRXICL_js.getAllBlogSlugs; }
109
109
  });
110
110
  Object.defineProperty(exports, "getAuthorBySlug", {
111
111
  enumerable: true,
112
- get: function () { return chunkFBI6LYTM_js.getAuthorBySlug; }
112
+ get: function () { return chunkJBGRXICL_js.getAuthorBySlug; }
113
113
  });
114
114
  Object.defineProperty(exports, "getAuthorPosts", {
115
115
  enumerable: true,
116
- get: function () { return chunkFBI6LYTM_js.getAuthorPosts; }
116
+ get: function () { return chunkJBGRXICL_js.getAuthorPosts; }
117
117
  });
118
118
  Object.defineProperty(exports, "getBlogCategories", {
119
119
  enumerable: true,
120
- get: function () { return chunkFBI6LYTM_js.getBlogCategories; }
120
+ get: function () { return chunkJBGRXICL_js.getBlogCategories; }
121
121
  });
122
122
  Object.defineProperty(exports, "getBlogPost", {
123
123
  enumerable: true,
124
- get: function () { return chunkFBI6LYTM_js.getBlogPost; }
124
+ get: function () { return chunkJBGRXICL_js.getBlogPost; }
125
125
  });
126
126
  Object.defineProperty(exports, "getClusterNavigation", {
127
127
  enumerable: true,
128
- get: function () { return chunkFBI6LYTM_js.getClusterNavigation; }
128
+ get: function () { return chunkJBGRXICL_js.getClusterNavigation; }
129
129
  });
130
130
  Object.defineProperty(exports, "getPostsByCategory", {
131
131
  enumerable: true,
132
- get: function () { return chunkFBI6LYTM_js.getPostsByCategory; }
132
+ get: function () { return chunkJBGRXICL_js.getPostsByCategory; }
133
133
  });
134
134
  Object.defineProperty(exports, "getRelatedInsights", {
135
135
  enumerable: true,
136
- get: function () { return chunkFBI6LYTM_js.getRelatedInsights; }
136
+ get: function () { return chunkJBGRXICL_js.getRelatedInsights; }
137
137
  });
138
138
  Object.defineProperty(exports, "getTopicCluster", {
139
139
  enumerable: true,
140
- get: function () { return chunkFBI6LYTM_js.getTopicCluster; }
140
+ get: function () { return chunkJBGRXICL_js.getTopicCluster; }
141
141
  });
142
142
  Object.defineProperty(exports, "getTopicClusters", {
143
143
  enumerable: true,
144
- get: function () { return chunkFBI6LYTM_js.getTopicClusters; }
144
+ get: function () { return chunkJBGRXICL_js.getTopicClusters; }
145
145
  });
146
146
  Object.defineProperty(exports, "identifyTopicClusters", {
147
147
  enumerable: true,
148
- get: function () { return chunkFBI6LYTM_js.identifyTopicClusters; }
148
+ get: function () { return chunkJBGRXICL_js.identifyTopicClusters; }
149
149
  });
150
150
  Object.defineProperty(exports, "sanitizeExcerpt", {
151
151
  enumerable: true,
152
- get: function () { return chunkFBI6LYTM_js.sanitizeExcerpt; }
152
+ get: function () { return chunkJBGRXICL_js.sanitizeExcerpt; }
153
153
  });
154
154
  Object.defineProperty(exports, "validateBlogPostSeo", {
155
155
  enumerable: true,
156
- get: function () { return chunkFBI6LYTM_js.validateBlogPostSeo; }
156
+ get: function () { return chunkJBGRXICL_js.validateBlogPostSeo; }
157
157
  });
158
158
  Object.defineProperty(exports, "validateMetaDescription", {
159
159
  enumerable: true,
160
- get: function () { return chunkFBI6LYTM_js.validateMetaDescription; }
160
+ get: function () { return chunkJBGRXICL_js.validateMetaDescription; }
161
161
  });
162
162
  Object.defineProperty(exports, "validateSeoTitle", {
163
163
  enumerable: true,
164
- get: function () { return chunkFBI6LYTM_js.validateSeoTitle; }
164
+ get: function () { return chunkJBGRXICL_js.validateSeoTitle; }
165
165
  });
166
166
  Object.defineProperty(exports, "generateAuthorSchema", {
167
167
  enumerable: true,
@@ -1,4 +1,4 @@
1
- export { SEO_LIMITS, generateAllBlogSchemas, generateAtomFeed, generateAuthorPageMetadata, generateAuthorStaticParams, generateBlogCategoryMetadata, generateBlogIndexMetadata, generateBlogListSchema, generateBlogPostMetadata, generateBlogPostSchema, generateBlogSitemap, generateBlogStaticParams, generateBreadcrumbSchema, generateCategoryStaticParams, generateClusterArticleSchema, generateClusterBreadcrumbSchema, generateClusterItemListSchema, generateClusterLandingSchema, generateClusterPageMetadata, generateFaqSchema, generateHowToSchema, generateRssFeed, getAllAuthorSlugs, getAllBlogPosts, getAllBlogSlugs, getAuthorBySlug, getAuthorPosts, getBlogCategories, getBlogPost, getClusterNavigation, getPostsByCategory, getRelatedInsights, getTopicCluster, getTopicClusters, identifyTopicClusters, sanitizeExcerpt, validateBlogPostSeo, validateMetaDescription, validateSeoTitle } from '../chunk-6VHVIBLQ.mjs';
1
+ export { SEO_LIMITS, generateAllBlogSchemas, generateAtomFeed, generateAuthorPageMetadata, generateAuthorStaticParams, generateBlogCategoryMetadata, generateBlogIndexMetadata, generateBlogListSchema, generateBlogPostMetadata, generateBlogPostSchema, generateBlogSitemap, generateBlogStaticParams, generateBreadcrumbSchema, generateCategoryStaticParams, generateClusterArticleSchema, generateClusterBreadcrumbSchema, generateClusterItemListSchema, generateClusterLandingSchema, generateClusterPageMetadata, generateFaqSchema, generateHowToSchema, generateRssFeed, getAllAuthorSlugs, getAllBlogPosts, getAllBlogSlugs, getAuthorBySlug, getAuthorPosts, getBlogCategories, getBlogPost, getClusterNavigation, getPostsByCategory, getRelatedInsights, getTopicCluster, getTopicClusters, identifyTopicClusters, sanitizeExcerpt, validateBlogPostSeo, validateMetaDescription, validateSeoTitle } from '../chunk-DHXQBTXE.mjs';
2
2
  export { generateAuthorSchema } from '../chunk-CGCYZJYX.mjs';
3
3
  import '../chunk-6XNEGG5B.mjs';
4
4
  import '../chunk-BEXTDHO4.mjs';
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tag-links.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tag-links.test.d.ts","sourceRoot":"","sources":["../../src/blog/tag-links.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types-wire-shape.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types-wire-shape.test.d.ts","sourceRoot":"","sources":["../../src/blog/types-wire-shape.test.ts"],"names":[],"mappings":""}
@@ -15,8 +15,6 @@ export interface BlogPost {
15
15
  /** Featured image */
16
16
  featured_image?: string;
17
17
  featured_image_alt?: string;
18
- featured_image_width?: number;
19
- featured_image_height?: number;
20
18
  /** Author - can be string or object depending on API response */
21
19
  author_id?: string;
22
20
  author?: BlogAuthor | string;
@@ -29,7 +27,6 @@ export interface BlogPost {
29
27
  meta_description?: string;
30
28
  og_title?: string;
31
29
  og_description?: string;
32
- og_image?: string;
33
30
  canonical_url?: string;
34
31
  focus_keyphrase?: string;
35
32
  keywords?: string;
@@ -41,6 +38,9 @@ export interface BlogPost {
41
38
  }[];
42
39
  /** E-E-A-T: when present, use as JSON-LD on the post page (Article/FAQ/Person from Signal) */
43
40
  schema?: object | object[];
41
+ /** Raw DB column name for the same E-E-A-T JSON-LD — the public API passes
42
+ * it through unmapped. generateAllBlogSchemas reads schema ?? schema_json. */
43
+ schema_json?: object | object[];
44
44
  service_callouts?: {
45
45
  title: string;
46
46
  description?: string;
@@ -49,13 +49,15 @@ export interface BlogPost {
49
49
  /** Publishing */
50
50
  status: 'draft' | 'published' | 'scheduled' | 'archived';
51
51
  published_at?: string;
52
- scheduled_at?: string;
52
+ /** Scheduled publish time (blog_posts.scheduled_for) */
53
+ scheduled_for?: string;
53
54
  /** Settings */
54
55
  allow_comments?: boolean;
55
- is_featured?: boolean;
56
56
  featured?: boolean;
57
57
  /** Computed */
58
+ /** Pre-mapped caller data only — the API never returns this name */
58
59
  reading_time_minutes?: number;
60
+ /** The field the API actually returns (blog_posts.reading_time) */
59
61
  reading_time?: number;
60
62
  view_count?: number;
61
63
  word_count?: number;
@@ -70,6 +72,8 @@ export interface BlogPost {
70
72
  parent_pillar_id?: string;
71
73
  parent_pillar_slug?: string;
72
74
  parent_pillar_title?: string;
75
+ /** The pillar's own category slug, for category-segmented blog URLs */
76
+ parent_pillar_category?: string;
73
77
  search_intent?: 'informational' | 'navigational' | 'commercial' | 'transactional';
74
78
  funnel_stage?: 'awareness' | 'consideration' | 'decision' | 'retention';
75
79
  relationship_to_pillar?: string;
@@ -90,8 +94,9 @@ export interface BlogAuthor {
90
94
  slug: string;
91
95
  bio?: string;
92
96
  avatar_url?: string;
93
- email?: string;
97
+ /** @deprecated Legacy shape — the API column is website_url. getAuthorSocialLinks handles both. */
94
98
  website?: string;
99
+ /** @deprecated Legacy shape — the API columns are linkedin_url/twitter_url/etc. getAuthorSocialLinks handles both. */
95
100
  social_links?: {
96
101
  twitter?: string;
97
102
  linkedin?: string;
@@ -117,18 +122,27 @@ export interface BlogAuthor {
117
122
  awards?: string[];
118
123
  post_count?: number;
119
124
  }
125
+ /**
126
+ * The public /categories endpoint guarantees only name/slug/post_count
127
+ * (getCategories maps exactly those keys). id/project_id exist in
128
+ * blog_categories but are stripped from the public response — do not
129
+ * re-promote them to required.
130
+ */
120
131
  export interface BlogCategory {
121
- id: string;
122
- project_id: string;
132
+ id?: string;
133
+ project_id?: string;
123
134
  name: string;
124
135
  slug: string;
125
136
  description?: string;
126
137
  parent_id?: string;
127
138
  post_count?: number;
128
139
  }
140
+ /**
141
+ * The public /tags endpoint returns only name/slug/post_count. Tags are
142
+ * synthesized from blog_posts.tags strings — no id/project_id can ever
143
+ * exist, on any server version.
144
+ */
129
145
  export interface BlogTag {
130
- id: string;
131
- project_id: string;
132
146
  name: string;
133
147
  slug: string;
134
148
  post_count?: number;
@@ -179,6 +193,7 @@ export interface BlogListOptions {
179
193
  /** Filters */
180
194
  category?: string;
181
195
  tag?: string;
196
+ /** Author slug (preferred) or display name; slug filtering requires the current Sonor API */
182
197
  author?: string;
183
198
  search?: string;
184
199
  featured?: boolean;
@@ -249,13 +264,4 @@ export interface TocItem {
249
264
  level: number;
250
265
  children?: TocItem[];
251
266
  }
252
- export interface BlogAnalytics {
253
- post_id: string;
254
- session_id: string;
255
- event_type: 'view' | 'scroll' | 'share' | 'comment';
256
- scroll_depth?: number;
257
- share_platform?: string;
258
- time_on_page?: number;
259
- created_at: string;
260
- }
261
267
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/blog/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAElB,eAAe;IACf,IAAI,EAAE,MAAM,CAAA;IAEZ,cAAc;IACd,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB,qBAAqB;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAE9B,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM,CAAA;IAE5B,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,YAAY,GAAG,MAAM,CAAA;IAChC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,CAAA;IAE3B,UAAU;IACV,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,mBAAmB;IACnB,iBAAiB,CAAC,EAAE,OAAO,EAAE,CAAA;IAC7B,SAAS,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAClD,8FAA8F;IAC9F,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC1B,gBAAgB,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAE1E,iBAAiB;IACjB,MAAM,EAAE,OAAO,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,CAAA;IACxD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB,eAAe;IACf,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB,eAAe;IACf,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB,iBAAiB;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAElB,2BAA2B;IAC3B,YAAY,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,YAAY,GAAG,KAAK,GAAG,UAAU,GAAG,WAAW,GAAG,qBAAqB,CAAA;IAC7G,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,aAAa,CAAC,EAAE,eAAe,GAAG,cAAc,GAAG,YAAY,GAAG,eAAe,CAAA;IACjF,YAAY,CAAC,EAAE,WAAW,GAAG,eAAe,GAAG,UAAU,GAAG,WAAW,CAAA;IACvE,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,cAAc,CAAC,EAAE,SAAS,GAAG,YAAY,GAAG,cAAc,CAAA;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,8DAA8D;IAC9D,gBAAgB,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAChF;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE;QACb,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;IACD,SAAS,EAAE,OAAO,CAAA;IAElB,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAA;IAChC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAMD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAA;IACvB,QAAQ,EAAE,QAAQ,EAAE,CAAA;IACpB,aAAa,EAAE,KAAK,CAAC;QACnB,IAAI,EAAE,MAAM,CAAA;QACZ,EAAE,EAAE,MAAM,CAAA;QACV,MAAM,EAAE,MAAM,CAAA;KACf,CAAC,CAAA;IACF,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,mFAAmF;IACnF,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IACjE,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACzF,SAAS,EAAE,OAAO,CAAA;CACnB;AAMD,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAA;IAEjB,iBAAiB;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB,cAAc;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB,cAAc;IACd,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,GAAG,YAAY,CAAA;IACjD,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,QAAQ,EAAE,CAAA;IACjB,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE,MAAM,CAAA;QACf,KAAK,EAAE,MAAM,CAAA;QACb,UAAU,EAAE,MAAM,CAAA;QAClB,OAAO,EAAE,OAAO,CAAA;QAChB,OAAO,EAAE,OAAO,CAAA;KACjB,CAAA;CACF;AAMD,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,KAAK,CAAC,SAAS,CAAA;CAC3D;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,QAAQ,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAA;IACzB,eAAe,CAAC,EAAE,OAAO,EAAE,CAAA;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,CAAA;IAC5C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,KAAK,CAAC,SAAS,CAAA;CAC3D;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,QAAQ,EAAE,CAAA;IACjB,UAAU,EAAE,cAAc,CAAC,YAAY,CAAC,CAAA;IACxC,UAAU,EAAE,YAAY,EAAE,CAAA;IAC1B,IAAI,EAAE,OAAO,EAAE,CAAA;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,UAAU,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,UAAU,CAAA;IAClB,KAAK,EAAE,QAAQ,EAAE,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;CACrB;AAMD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAA;IACnD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;CACnB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/blog/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAElB,eAAe;IACf,IAAI,EAAE,MAAM,CAAA;IAEZ,cAAc;IACd,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB,qBAAqB;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAE3B,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM,CAAA;IAE5B,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,YAAY,GAAG,MAAM,CAAA;IAChC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,CAAA;IAE3B,UAAU;IACV,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,mBAAmB;IACnB,iBAAiB,CAAC,EAAE,OAAO,EAAE,CAAA;IAC7B,SAAS,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAClD,8FAA8F;IAC9F,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC1B;kFAC8E;IAC9E,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC/B,gBAAgB,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAE1E,iBAAiB;IACjB,MAAM,EAAE,OAAO,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,CAAA;IACxD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,wDAAwD;IACxD,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB,eAAe;IACf,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB,eAAe;IACf,oEAAoE;IACpE,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,mEAAmE;IACnE,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB,iBAAiB;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAElB,2BAA2B;IAC3B,YAAY,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,YAAY,GAAG,KAAK,GAAG,UAAU,GAAG,WAAW,GAAG,qBAAqB,CAAA;IAC7G,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,uEAAuE;IACvE,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,aAAa,CAAC,EAAE,eAAe,GAAG,cAAc,GAAG,YAAY,GAAG,eAAe,CAAA;IACjF,YAAY,CAAC,EAAE,WAAW,GAAG,eAAe,GAAG,UAAU,GAAG,WAAW,CAAA;IACvE,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,cAAc,CAAC,EAAE,SAAS,GAAG,YAAY,GAAG,cAAc,CAAA;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,8DAA8D;IAC9D,gBAAgB,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAChF;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mGAAmG;IACnG,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,sHAAsH;IACtH,YAAY,CAAC,EAAE;QACb,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;IACD,SAAS,EAAE,OAAO,CAAA;IAElB,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAA;IAChC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAMD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAA;IACvB,QAAQ,EAAE,QAAQ,EAAE,CAAA;IACpB,aAAa,EAAE,KAAK,CAAC;QACnB,IAAI,EAAE,MAAM,CAAA;QACZ,EAAE,EAAE,MAAM,CAAA;QACV,MAAM,EAAE,MAAM,CAAA;KACf,CAAC,CAAA;IACF,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,mFAAmF;IACnF,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IACjE,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACzF,SAAS,EAAE,OAAO,CAAA;CACnB;AAMD,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAA;IAEjB,iBAAiB;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB,cAAc;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,6FAA6F;IAC7F,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB,cAAc;IACd,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,GAAG,YAAY,CAAA;IACjD,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,QAAQ,EAAE,CAAA;IACjB,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE,MAAM,CAAA;QACf,KAAK,EAAE,MAAM,CAAA;QACb,UAAU,EAAE,MAAM,CAAA;QAClB,OAAO,EAAE,OAAO,CAAA;QAChB,OAAO,EAAE,OAAO,CAAA;KACjB,CAAA;CACF;AAMD,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,KAAK,CAAC,SAAS,CAAA;CAC3D;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,QAAQ,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAA;IACzB,eAAe,CAAC,EAAE,OAAO,EAAE,CAAA;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,CAAA;IAC5C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,KAAK,CAAC,SAAS,CAAA;CAC3D;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,QAAQ,EAAE,CAAA;IACjB,UAAU,EAAE,cAAc,CAAC,YAAY,CAAC,CAAA;IACxC,UAAU,EAAE,YAAY,EAAE,CAAA;IAC1B,IAAI,EAAE,OAAO,EAAE,CAAA;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,UAAU,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,UAAU,CAAA;IAClB,KAAK,EAAE,QAAQ,EAAE,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;CACrB"}
@@ -0,0 +1,9 @@
1
+ import type React from 'react';
2
+ /**
3
+ * Shared sidebar-widget chrome, extracted from BlogSidebar so the client-side
4
+ * NewsletterWidget (its own module — it needs hooks, and BlogSidebar is also
5
+ * bundled into the un-stamped server entry blog/server-ui) can reuse it.
6
+ */
7
+ export declare const widgetStyle: React.CSSProperties;
8
+ export declare const widgetTitleStyle: React.CSSProperties;
9
+ //# sourceMappingURL=widget-styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget-styles.d.ts","sourceRoot":"","sources":["../../src/blog/widget-styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,aAI/B,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,aAKpC,CAAA"}