@sonordev/site-kit 5.8.3 → 6.0.1

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 (543) hide show
  1. package/README.md +11 -11
  2. package/agent-manifest.json +17 -11
  3. package/dist/{AnalyticsProvider-DPXR6FSV.js → AnalyticsProvider-4RLYTVWO.js} +10 -10
  4. package/dist/{AnalyticsProvider-DPXR6FSV.js.map → AnalyticsProvider-4RLYTVWO.js.map} +1 -1
  5. package/dist/{AnalyticsProvider-IGOD64MY.mjs → AnalyticsProvider-YU6QANW5.mjs} +6 -6
  6. package/dist/{AnalyticsProvider-IGOD64MY.mjs.map → AnalyticsProvider-YU6QANW5.mjs.map} +1 -1
  7. package/dist/ArticleFaqSection-3KZ24MFS.js +13 -0
  8. package/dist/ArticleFaqSection-3KZ24MFS.js.map +1 -0
  9. package/dist/ArticleFaqSection-XZPXJVH4.mjs +11 -0
  10. package/dist/ArticleFaqSection-XZPXJVH4.mjs.map +1 -0
  11. package/dist/{BlogViewTracker-Q7Y4MN4B.mjs → ArticleViewTracker-LI44SA4T.mjs} +13 -13
  12. package/dist/ArticleViewTracker-LI44SA4T.mjs.map +1 -0
  13. package/dist/{BlogViewTracker-S3CSRBIZ.js → ArticleViewTracker-OQB2VT73.js} +16 -16
  14. package/dist/ArticleViewTracker-OQB2VT73.js.map +1 -0
  15. package/dist/ChatWidget-56SW5ITH.mjs +15 -0
  16. package/dist/{ChatWidget-G3KOUDX5.mjs.map → ChatWidget-56SW5ITH.mjs.map} +1 -1
  17. package/dist/ChatWidget-HR3OC3WA.js +24 -0
  18. package/dist/{ChatWidget-76R7NOWD.js.map → ChatWidget-HR3OC3WA.js.map} +1 -1
  19. package/dist/EngageWidget-HXGI3ZKG.js +21 -0
  20. package/dist/{EngageWidget-HD4F2ZVE.js.map → EngageWidget-HXGI3ZKG.js.map} +1 -1
  21. package/dist/EngageWidget-L4X35N2B.mjs +12 -0
  22. package/dist/{EngageWidget-UJ47PQFG.mjs.map → EngageWidget-L4X35N2B.mjs.map} +1 -1
  23. package/dist/{FileField-WNMEA3PK.mjs → FileField-GSTLU42O.mjs} +5 -5
  24. package/dist/{FileField-WNMEA3PK.mjs.map → FileField-GSTLU42O.mjs.map} +1 -1
  25. package/dist/{FileField-FV6WSZMX.js → FileField-N2P6E2PN.js} +6 -6
  26. package/dist/{FileField-FV6WSZMX.js.map → FileField-N2P6E2PN.js.map} +1 -1
  27. package/dist/{FormSpotlight-2VRQXEFI.js → FormSpotlight-QLXOS5LN.js} +9 -9
  28. package/dist/{FormSpotlight-2VRQXEFI.js.map → FormSpotlight-QLXOS5LN.js.map} +1 -1
  29. package/dist/{FormSpotlight-NGWEPGI4.mjs → FormSpotlight-UFATQTN3.mjs} +3 -3
  30. package/dist/{FormSpotlight-NGWEPGI4.mjs.map → FormSpotlight-UFATQTN3.mjs.map} +1 -1
  31. package/dist/{FormStage-Q3KQVFVW.js → FormStage-4HYDMCYU.js} +9 -9
  32. package/dist/{FormStage-Q3KQVFVW.js.map → FormStage-4HYDMCYU.js.map} +1 -1
  33. package/dist/{FormStage-7L4BBOLC.mjs → FormStage-SYOKD5TJ.mjs} +3 -3
  34. package/dist/{FormStage-7L4BBOLC.mjs.map → FormStage-SYOKD5TJ.mjs.map} +1 -1
  35. package/dist/ManagedForm-3TDSIRCM.mjs +16 -0
  36. package/dist/{ManagedForm-Z7QE4KYI.mjs.map → ManagedForm-3TDSIRCM.mjs.map} +1 -1
  37. package/dist/ManagedForm-TUSGW5EH.js +25 -0
  38. package/dist/{ManagedForm-4ZGU4R3G.js.map → ManagedForm-TUSGW5EH.js.map} +1 -1
  39. package/dist/{ManagedNewsletterForm-4TVO2VL4.mjs → ManagedNewsletterForm-CNGCBA2N.mjs} +11 -11
  40. package/dist/ManagedNewsletterForm-CNGCBA2N.mjs.map +1 -0
  41. package/dist/{ManagedNewsletterForm-22EPZB7Z.js → ManagedNewsletterForm-XJEPVJRM.js} +13 -13
  42. package/dist/ManagedNewsletterForm-XJEPVJRM.js.map +1 -0
  43. package/dist/{SignalCore-57OK3DHA.mjs → SignalCore-ARRVP6F7.mjs} +5 -5
  44. package/dist/{SignalCore-57OK3DHA.mjs.map → SignalCore-ARRVP6F7.mjs.map} +1 -1
  45. package/dist/{SignalCore-2N7UZGF3.js → SignalCore-AXK6RCR4.js} +11 -11
  46. package/dist/{SignalCore-2N7UZGF3.js.map → SignalCore-AXK6RCR4.js.map} +1 -1
  47. package/dist/SitemapSync-42VKJUOU.mjs +9 -0
  48. package/dist/{SitemapSync-WIUEYOBS.mjs.map → SitemapSync-42VKJUOU.mjs.map} +1 -1
  49. package/dist/SitemapSync-GAGREAX6.js +18 -0
  50. package/dist/{SitemapSync-GF4OKN4Z.js.map → SitemapSync-GAGREAX6.js.map} +1 -1
  51. package/dist/analytics/index.js +9 -9
  52. package/dist/analytics/index.mjs +4 -4
  53. package/dist/{blog-styles-7AKRUMV7.mjs → article-styles-DACUAOVT.mjs} +124 -124
  54. package/dist/article-styles-DACUAOVT.mjs.map +1 -0
  55. package/dist/{blog-styles-6EY3BS5Y.js → article-styles-JHHTNHOK.js} +125 -125
  56. package/dist/article-styles-JHHTNHOK.js.map +1 -0
  57. package/dist/article-tables-EWXG4LNP.js +17 -0
  58. package/dist/article-tables-EWXG4LNP.js.map +1 -0
  59. package/dist/article-tables-OGE52LNT.mjs +4 -0
  60. package/dist/article-tables-OGE52LNT.mjs.map +1 -0
  61. package/dist/{blog/BlogPost.d.ts → articles/Article.d.ts} +18 -16
  62. package/dist/articles/Article.d.ts.map +1 -0
  63. package/dist/{blog/BlogFAQ.d.ts → articles/ArticleFAQ.d.ts} +6 -6
  64. package/dist/articles/ArticleFAQ.d.ts.map +1 -0
  65. package/dist/articles/ArticleFaqSection.d.ts +3 -0
  66. package/dist/articles/ArticleFaqSection.d.ts.map +1 -0
  67. package/dist/{blog/BlogList.d.ts → articles/ArticleList.d.ts} +16 -16
  68. package/dist/articles/ArticleList.d.ts.map +1 -0
  69. package/dist/{blog/BlogViewTracker.d.ts → articles/ArticleViewTracker.d.ts} +4 -4
  70. package/dist/articles/ArticleViewTracker.d.ts.map +1 -0
  71. package/dist/{blog → articles}/AuthorCard.d.ts +3 -3
  72. package/dist/articles/AuthorCard.d.ts.map +1 -0
  73. package/dist/{blog → articles}/AuthorPage.d.ts +1 -1
  74. package/dist/articles/AuthorPage.d.ts.map +1 -0
  75. package/dist/{blog → articles}/ClusterLandingPage.d.ts +6 -6
  76. package/dist/articles/ClusterLandingPage.d.ts.map +1 -0
  77. package/dist/{blog → articles}/ClusterNavigation.d.ts +5 -5
  78. package/dist/articles/ClusterNavigation.d.ts.map +1 -0
  79. package/dist/{blog → articles}/ManagedNewsletterForm.d.ts +1 -1
  80. package/dist/articles/ManagedNewsletterForm.d.ts.map +1 -0
  81. package/dist/{blog → articles}/NewsletterShell.d.ts +1 -1
  82. package/dist/articles/NewsletterShell.d.ts.map +1 -0
  83. package/dist/{blog → articles}/NewsletterWidget.d.ts +4 -4
  84. package/dist/articles/NewsletterWidget.d.ts.map +1 -0
  85. package/dist/{blog/BlogLayout.d.ts → articles/PublicationLayout.d.ts} +18 -18
  86. package/dist/articles/PublicationLayout.d.ts.map +1 -0
  87. package/dist/{blog/BlogSidebar.d.ts → articles/PublicationSidebar.d.ts} +8 -8
  88. package/dist/articles/PublicationSidebar.d.ts.map +1 -0
  89. package/dist/{blog → articles}/RelatedPosts.d.ts +6 -6
  90. package/dist/articles/RelatedPosts.d.ts.map +1 -0
  91. package/dist/{blog → articles}/ServiceCallout.d.ts +4 -4
  92. package/dist/articles/ServiceCallout.d.ts.map +1 -0
  93. package/dist/{blog → articles}/TableOfContents.d.ts +1 -1
  94. package/dist/articles/TableOfContents.d.ts.map +1 -0
  95. package/dist/{blog/blog-styles.d.ts → articles/article-styles.d.ts} +5 -5
  96. package/dist/articles/article-styles.d.ts.map +1 -0
  97. package/dist/{blog/blog-tables.d.ts → articles/article-tables.d.ts} +4 -4
  98. package/dist/articles/article-tables.d.ts.map +1 -0
  99. package/dist/articles/artwork.d.ts +14 -0
  100. package/dist/articles/artwork.d.ts.map +1 -0
  101. package/dist/{blog → articles}/author-schema.d.ts +6 -5
  102. package/dist/articles/author-schema.d.ts.map +1 -0
  103. package/dist/{blog → articles}/author-social.d.ts +2 -2
  104. package/dist/articles/author-social.d.ts.map +1 -0
  105. package/dist/{blog → articles}/excerpt.d.ts +2 -2
  106. package/dist/articles/excerpt.d.ts.map +1 -0
  107. package/dist/{blog → articles}/index.d.ts +26 -31
  108. package/dist/articles/index.d.ts.map +1 -0
  109. package/dist/{blog → articles}/index.js +39 -73
  110. package/dist/articles/index.js.map +1 -0
  111. package/dist/{blog → articles}/index.mjs +16 -17
  112. package/dist/articles/index.mjs.map +1 -0
  113. package/dist/articles/news-sitemap.d.ts +47 -0
  114. package/dist/articles/news-sitemap.d.ts.map +1 -0
  115. package/dist/{blog/processBlogHtml.d.ts → articles/processArticleHtml.d.ts} +4 -4
  116. package/dist/articles/processArticleHtml.d.ts.map +1 -0
  117. package/dist/articles/public-reads.d.ts +27 -0
  118. package/dist/articles/public-reads.d.ts.map +1 -0
  119. package/dist/{blog → articles}/reading-time.d.ts +2 -2
  120. package/dist/articles/reading-time.d.ts.map +1 -0
  121. package/dist/{blog → articles}/routes.d.ts +16 -12
  122. package/dist/articles/routes.d.ts.map +1 -0
  123. package/dist/{blog → articles}/server-core.d.ts +94 -81
  124. package/dist/articles/server-core.d.ts.map +1 -0
  125. package/dist/articles/server-ui.d.ts +29 -0
  126. package/dist/articles/server-ui.d.ts.map +1 -0
  127. package/dist/{chunk-W2U5SLMY.js → articles/server-ui.js} +378 -499
  128. package/dist/articles/server-ui.js.map +1 -0
  129. package/dist/{chunk-MWKI6ZIS.mjs → articles/server-ui.mjs} +328 -474
  130. package/dist/articles/server-ui.mjs.map +1 -0
  131. package/dist/{blog → articles}/server.d.ts +94 -81
  132. package/dist/articles/server.d.ts.map +1 -0
  133. package/dist/articles/server.js +236 -0
  134. package/dist/articles/server.mjs +11 -0
  135. package/dist/{blog → articles}/types.d.ts +34 -34
  136. package/dist/articles/types.d.ts.map +1 -0
  137. package/dist/articles/widget-styles.d.ts +9 -0
  138. package/dist/articles/widget-styles.d.ts.map +1 -0
  139. package/dist/brand/extract-brand-profile.d.ts +1 -1
  140. package/dist/{chunk-AJBOEV4I.mjs → chunk-3T2CVHFO.mjs} +3 -3
  141. package/dist/chunk-3T2CVHFO.mjs.map +1 -0
  142. package/dist/{chunk-I3ND4XYW.js → chunk-4BEGKFMN.js} +8 -8
  143. package/dist/{chunk-I3ND4XYW.js.map → chunk-4BEGKFMN.js.map} +1 -1
  144. package/dist/{chunk-YFX3Q56O.mjs → chunk-4KAMU5HD.mjs} +3 -3
  145. package/dist/chunk-4KAMU5HD.mjs.map +1 -0
  146. package/dist/{chunk-CNTDV7HM.js → chunk-4NBJDP6Y.js} +4 -4
  147. package/dist/{chunk-CNTDV7HM.js.map → chunk-4NBJDP6Y.js.map} +1 -1
  148. package/dist/{chunk-PIEHBSCN.js → chunk-4VCR6TXK.js} +9 -9
  149. package/dist/{chunk-PIEHBSCN.js.map → chunk-4VCR6TXK.js.map} +1 -1
  150. package/dist/{chunk-ZPLN537Q.mjs → chunk-4WCA2HM6.mjs} +2 -2
  151. package/dist/chunk-4WCA2HM6.mjs.map +1 -0
  152. package/dist/{chunk-I7HOMMIK.js → chunk-5ABTBPPK.js} +15 -15
  153. package/dist/{chunk-I7HOMMIK.js.map → chunk-5ABTBPPK.js.map} +1 -1
  154. package/dist/{chunk-GHECYDSZ.mjs → chunk-5F2FIM5A.mjs} +16 -15
  155. package/dist/chunk-5F2FIM5A.mjs.map +1 -0
  156. package/dist/{chunk-Y5QZPUL3.mjs → chunk-5YVQWLSQ.mjs} +5 -5
  157. package/dist/chunk-5YVQWLSQ.mjs.map +1 -0
  158. package/dist/chunk-6DCAMW62.mjs +55 -0
  159. package/dist/chunk-6DCAMW62.mjs.map +1 -0
  160. package/dist/{chunk-ROSYCNXG.mjs → chunk-6URNNS3V.mjs} +4 -4
  161. package/dist/{chunk-ROSYCNXG.mjs.map → chunk-6URNNS3V.mjs.map} +1 -1
  162. package/dist/{chunk-PI3FHABB.js → chunk-6YEPFH3Q.js} +10 -10
  163. package/dist/{chunk-PI3FHABB.js.map → chunk-6YEPFH3Q.js.map} +1 -1
  164. package/dist/{chunk-NBT4L2D7.js → chunk-6ZOMIPU5.js} +8 -8
  165. package/dist/{chunk-NBT4L2D7.js.map → chunk-6ZOMIPU5.js.map} +1 -1
  166. package/dist/chunk-7MAHP735.mjs +6 -0
  167. package/dist/{chunk-5FETEH3Y.mjs.map → chunk-7MAHP735.mjs.map} +1 -1
  168. package/dist/{chunk-Q2NBD54V.js → chunk-7THQ4UW3.js} +2 -2
  169. package/dist/chunk-7THQ4UW3.js.map +1 -0
  170. package/dist/{chunk-CY2RFEW6.js → chunk-AQMQOH7V.js} +3 -3
  171. package/dist/{chunk-CY2RFEW6.js.map → chunk-AQMQOH7V.js.map} +1 -1
  172. package/dist/{chunk-4TLFZ6NR.mjs → chunk-AS2HUIDW.mjs} +3 -3
  173. package/dist/chunk-AS2HUIDW.mjs.map +1 -0
  174. package/dist/{chunk-YN7QHLWF.js → chunk-BBBJHYPH.js} +5 -5
  175. package/dist/chunk-BBBJHYPH.js.map +1 -0
  176. package/dist/{chunk-3OO5EDKD.mjs → chunk-BIU234TJ.mjs} +9 -9
  177. package/dist/{chunk-3OO5EDKD.mjs.map → chunk-BIU234TJ.mjs.map} +1 -1
  178. package/dist/{chunk-ZVI7MBVF.mjs → chunk-BJ4T65OK.mjs} +14 -10
  179. package/dist/chunk-BJ4T65OK.mjs.map +1 -0
  180. package/dist/{chunk-HBHS5VRN.mjs → chunk-BMH2D2EP.mjs} +3 -3
  181. package/dist/{chunk-HBHS5VRN.mjs.map → chunk-BMH2D2EP.mjs.map} +1 -1
  182. package/dist/{chunk-QQQAW6WY.js → chunk-BWSYPQ5E.js} +6 -6
  183. package/dist/{chunk-QQQAW6WY.js.map → chunk-BWSYPQ5E.js.map} +1 -1
  184. package/dist/{chunk-4LYW6PMU.mjs → chunk-C2CTLLIO.mjs} +3 -3
  185. package/dist/chunk-C2CTLLIO.mjs.map +1 -0
  186. package/dist/{chunk-O237KKCX.mjs → chunk-C5VITBN7.mjs} +5 -5
  187. package/dist/chunk-C5VITBN7.mjs.map +1 -0
  188. package/dist/{chunk-75A4KY4X.mjs → chunk-CFRJ2MK5.mjs} +2 -2
  189. package/dist/chunk-CFRJ2MK5.mjs.map +1 -0
  190. package/dist/{chunk-G2WC3CXW.js → chunk-CLO3K7PF.js} +2 -2
  191. package/dist/chunk-CLO3K7PF.js.map +1 -0
  192. package/dist/{chunk-AK6JZ3OE.mjs → chunk-EDLNMGQC.mjs} +3 -3
  193. package/dist/{chunk-DO6ATNLN.js.map → chunk-EDLNMGQC.mjs.map} +1 -1
  194. package/dist/{chunk-HX6ZG3PP.js → chunk-EMHSHAVW.js} +3 -3
  195. package/dist/chunk-EMHSHAVW.js.map +1 -0
  196. package/dist/chunk-F3EAAAZ3.js +8 -0
  197. package/dist/{chunk-7R6H3GQ4.js.map → chunk-F3EAAAZ3.js.map} +1 -1
  198. package/dist/{chunk-MYMZRHTC.js → chunk-FKFVN3GT.js} +8 -8
  199. package/dist/{chunk-MYMZRHTC.js.map → chunk-FKFVN3GT.js.map} +1 -1
  200. package/dist/{chunk-7TC3GRXQ.js → chunk-G3L26XQ7.js} +27 -23
  201. package/dist/chunk-G3L26XQ7.js.map +1 -0
  202. package/dist/{chunk-VVBMWV4O.js → chunk-GCZHKHEH.js} +7 -7
  203. package/dist/{chunk-VVBMWV4O.js.map → chunk-GCZHKHEH.js.map} +1 -1
  204. package/dist/{chunk-LGOQ65JQ.mjs → chunk-GJCQVVO3.mjs} +7 -7
  205. package/dist/{chunk-LGOQ65JQ.mjs.map → chunk-GJCQVVO3.mjs.map} +1 -1
  206. package/dist/{chunk-R5IPDAMM.mjs → chunk-GKPVGVHY.mjs} +3 -3
  207. package/dist/{chunk-R5IPDAMM.mjs.map → chunk-GKPVGVHY.mjs.map} +1 -1
  208. package/dist/{chunk-XZO5I4RS.mjs → chunk-HIZJD7TU.mjs} +3 -3
  209. package/dist/{chunk-XZO5I4RS.mjs.map → chunk-HIZJD7TU.mjs.map} +1 -1
  210. package/dist/chunk-HXHRS3PX.mjs +349 -0
  211. package/dist/chunk-HXHRS3PX.mjs.map +1 -0
  212. package/dist/{chunk-XBX2K3GA.js → chunk-IBJOGXQI.js} +4 -4
  213. package/dist/{chunk-XBX2K3GA.js.map → chunk-IBJOGXQI.js.map} +1 -1
  214. package/dist/{chunk-F2KW4OJF.mjs → chunk-IDOHDP7D.mjs} +4 -4
  215. package/dist/{chunk-F2KW4OJF.mjs.map → chunk-IDOHDP7D.mjs.map} +1 -1
  216. package/dist/{chunk-R7GHP3FY.js → chunk-JONWE26J.js} +3 -3
  217. package/dist/chunk-JONWE26J.js.map +1 -0
  218. package/dist/{chunk-PQYQHZWV.mjs → chunk-JSXLTZUP.mjs} +6 -6
  219. package/dist/{chunk-PQYQHZWV.mjs.map → chunk-JSXLTZUP.mjs.map} +1 -1
  220. package/dist/{chunk-K4TCEAUX.js → chunk-KR7ATPAN.js} +5 -5
  221. package/dist/chunk-KR7ATPAN.js.map +1 -0
  222. package/dist/{chunk-UQY5KC64.mjs → chunk-KUHMHKG5.mjs} +4 -4
  223. package/dist/{chunk-UQY5KC64.mjs.map → chunk-KUHMHKG5.mjs.map} +1 -1
  224. package/dist/{chunk-JLVCWC6A.mjs → chunk-KZVSB5WE.mjs} +2 -2
  225. package/dist/chunk-KZVSB5WE.mjs.map +1 -0
  226. package/dist/{chunk-NCDF2RK4.mjs → chunk-L63DFM4R.mjs} +3 -3
  227. package/dist/{chunk-NCDF2RK4.mjs.map → chunk-L63DFM4R.mjs.map} +1 -1
  228. package/dist/{chunk-25F2EXOC.mjs → chunk-LCYODFNY.mjs} +3 -3
  229. package/dist/{chunk-25F2EXOC.mjs.map → chunk-LCYODFNY.mjs.map} +1 -1
  230. package/dist/{chunk-RFAAY3BW.mjs → chunk-LFASEDBO.mjs} +3 -3
  231. package/dist/{chunk-RFAAY3BW.mjs.map → chunk-LFASEDBO.mjs.map} +1 -1
  232. package/dist/chunk-LWCAZDY2.js +355 -0
  233. package/dist/chunk-LWCAZDY2.js.map +1 -0
  234. package/dist/{chunk-7VZYP4K5.js → chunk-LZPICBND.js} +15 -15
  235. package/dist/{chunk-7VZYP4K5.js.map → chunk-LZPICBND.js.map} +1 -1
  236. package/dist/{chunk-LMEUYRRR.js → chunk-NAA5J2JM.js} +233 -120
  237. package/dist/chunk-NAA5J2JM.js.map +1 -0
  238. package/dist/{chunk-OE7CTIOU.mjs → chunk-NE6QGHFT.mjs} +4 -4
  239. package/dist/{chunk-OE7CTIOU.mjs.map → chunk-NE6QGHFT.mjs.map} +1 -1
  240. package/dist/{chunk-UEUWC3PH.mjs → chunk-NNQG25M2.mjs} +3 -3
  241. package/dist/{chunk-UEUWC3PH.mjs.map → chunk-NNQG25M2.mjs.map} +1 -1
  242. package/dist/{chunk-S2Y7LVQ2.js → chunk-NVOYCK2S.js} +14 -14
  243. package/dist/{chunk-S2Y7LVQ2.js.map → chunk-NVOYCK2S.js.map} +1 -1
  244. package/dist/{chunk-FD72QL42.mjs → chunk-NVWUXCUQ.mjs} +3 -3
  245. package/dist/{chunk-FD72QL42.mjs.map → chunk-NVWUXCUQ.mjs.map} +1 -1
  246. package/dist/{chunk-4NVMAYMQ.mjs → chunk-NYNL6UQV.mjs} +4 -4
  247. package/dist/{chunk-4NVMAYMQ.mjs.map → chunk-NYNL6UQV.mjs.map} +1 -1
  248. package/dist/{chunk-GQF6QAQS.js → chunk-OGNX6JT4.js} +5 -5
  249. package/dist/chunk-OGNX6JT4.js.map +1 -0
  250. package/dist/{chunk-FVW6FT6L.js → chunk-OSU4QA5M.js} +8 -8
  251. package/dist/{chunk-FVW6FT6L.js.map → chunk-OSU4QA5M.js.map} +1 -1
  252. package/dist/{chunk-2TS4ALOA.js → chunk-P2HOVWJW.js} +14 -14
  253. package/dist/{chunk-2TS4ALOA.js.map → chunk-P2HOVWJW.js.map} +1 -1
  254. package/dist/{chunk-5HFD36AN.js → chunk-PKZMNDZJ.js} +5 -5
  255. package/dist/{chunk-5HFD36AN.js.map → chunk-PKZMNDZJ.js.map} +1 -1
  256. package/dist/{chunk-DO6ATNLN.js → chunk-PRAHDLKT.js} +5 -5
  257. package/dist/chunk-PRAHDLKT.js.map +1 -0
  258. package/dist/{chunk-IIHIRHSW.js → chunk-QD4BNYMM.js} +18 -18
  259. package/dist/{chunk-IIHIRHSW.js.map → chunk-QD4BNYMM.js.map} +1 -1
  260. package/dist/{chunk-HEOLGDUX.mjs → chunk-QJ3SMLND.mjs} +4 -4
  261. package/dist/{chunk-HEOLGDUX.mjs.map → chunk-QJ3SMLND.mjs.map} +1 -1
  262. package/dist/{chunk-QOOLMSBY.mjs → chunk-QP56JXMH.mjs} +3 -3
  263. package/dist/{chunk-QOOLMSBY.mjs.map → chunk-QP56JXMH.mjs.map} +1 -1
  264. package/dist/{chunk-MQS6AF5K.mjs → chunk-QXPGIOU7.mjs} +3 -3
  265. package/dist/{chunk-MQS6AF5K.mjs.map → chunk-QXPGIOU7.mjs.map} +1 -1
  266. package/dist/{chunk-TR3F3CLV.js → chunk-R6UE6MC5.js} +10 -10
  267. package/dist/{chunk-TR3F3CLV.js.map → chunk-R6UE6MC5.js.map} +1 -1
  268. package/dist/{chunk-OEW2LFOV.js → chunk-RLUNEEGM.js} +4 -4
  269. package/dist/{chunk-OEW2LFOV.js.map → chunk-RLUNEEGM.js.map} +1 -1
  270. package/dist/{chunk-SFC3OWSE.mjs → chunk-RX4TVHSN.mjs} +4 -4
  271. package/dist/{chunk-SFC3OWSE.mjs.map → chunk-RX4TVHSN.mjs.map} +1 -1
  272. package/dist/{chunk-YQTE32QK.js → chunk-SG7CWD2R.js} +17 -16
  273. package/dist/chunk-SG7CWD2R.js.map +1 -0
  274. package/dist/{chunk-4C5CZJIN.mjs → chunk-SU42KCQD.mjs} +4 -4
  275. package/dist/{chunk-4C5CZJIN.mjs.map → chunk-SU42KCQD.mjs.map} +1 -1
  276. package/dist/{chunk-XEB77DQS.js → chunk-TBXWJJGT.js} +3 -3
  277. package/dist/chunk-TBXWJJGT.js.map +1 -0
  278. package/dist/{chunk-CZEIHFLW.js → chunk-TC3JSQUS.js} +4 -4
  279. package/dist/{chunk-CZEIHFLW.js.map → chunk-TC3JSQUS.js.map} +1 -1
  280. package/dist/{chunk-LB44BNJ2.js → chunk-TST2IKYO.js} +14 -14
  281. package/dist/{chunk-LB44BNJ2.js.map → chunk-TST2IKYO.js.map} +1 -1
  282. package/dist/{chunk-POJZA67T.mjs → chunk-U6F6AN23.mjs} +4 -4
  283. package/dist/{chunk-POJZA67T.mjs.map → chunk-U6F6AN23.mjs.map} +1 -1
  284. package/dist/{chunk-FTB5LAD3.js → chunk-UCBBZXJI.js} +4 -4
  285. package/dist/{chunk-FTB5LAD3.js.map → chunk-UCBBZXJI.js.map} +1 -1
  286. package/dist/{chunk-U2V542EO.mjs → chunk-UHYRVALN.mjs} +2 -2
  287. package/dist/{chunk-U2V542EO.mjs.map → chunk-UHYRVALN.mjs.map} +1 -1
  288. package/dist/{chunk-F3KA6V2Y.js → chunk-UILVPI2R.js} +3 -3
  289. package/dist/{chunk-F3KA6V2Y.js.map → chunk-UILVPI2R.js.map} +1 -1
  290. package/dist/{chunk-UHM3CCCC.js → chunk-ULSFOC3J.js} +12 -12
  291. package/dist/{chunk-UHM3CCCC.js.map → chunk-ULSFOC3J.js.map} +1 -1
  292. package/dist/{chunk-4L7OHRWB.mjs → chunk-UO6KTHBQ.mjs} +4 -4
  293. package/dist/{chunk-4L7OHRWB.mjs.map → chunk-UO6KTHBQ.mjs.map} +1 -1
  294. package/dist/{chunk-H5NBFNND.js → chunk-UZKXOZHR.js} +2 -2
  295. package/dist/chunk-UZKXOZHR.js.map +1 -0
  296. package/dist/{chunk-QXMWNIKL.mjs → chunk-WLCPBZOS.mjs} +3 -3
  297. package/dist/{chunk-QXMWNIKL.mjs.map → chunk-WLCPBZOS.mjs.map} +1 -1
  298. package/dist/{chunk-3EY5E35M.mjs → chunk-X3MY4PL7.mjs} +210 -107
  299. package/dist/chunk-X3MY4PL7.mjs.map +1 -0
  300. package/dist/{chunk-PIPERXI7.mjs → chunk-XLFTZV34.mjs} +3 -3
  301. package/dist/{chunk-PIPERXI7.mjs.map → chunk-XLFTZV34.mjs.map} +1 -1
  302. package/dist/{chunk-6CCS2EGF.js → chunk-XWKY46NU.js} +13 -13
  303. package/dist/{chunk-6CCS2EGF.js.map → chunk-XWKY46NU.js.map} +1 -1
  304. package/dist/{chunk-SEP5D4MI.js → chunk-Y2CP5J6Q.js} +2 -2
  305. package/dist/{chunk-SEP5D4MI.js.map → chunk-Y2CP5J6Q.js.map} +1 -1
  306. package/dist/{chunk-KV7XXLJV.mjs → chunk-YPGUV6BT.mjs} +3 -3
  307. package/dist/{chunk-KV7XXLJV.mjs.map → chunk-YPGUV6BT.mjs.map} +1 -1
  308. package/dist/chunk-YRCR7WY3.js +65 -0
  309. package/dist/chunk-YRCR7WY3.js.map +1 -0
  310. package/dist/{chunk-WINDP776.mjs → chunk-YTJKVWHY.mjs} +5 -5
  311. package/dist/{chunk-WINDP776.mjs.map → chunk-YTJKVWHY.mjs.map} +1 -1
  312. package/dist/chunk-ZL35JCDA.mjs +61 -0
  313. package/dist/chunk-ZL35JCDA.mjs.map +1 -0
  314. package/dist/chunk-ZR43XFUM.js +60 -0
  315. package/dist/chunk-ZR43XFUM.js.map +1 -0
  316. package/dist/{chunk-NMM27UOF.js → chunk-ZRWIMNQF.js} +3 -3
  317. package/dist/{chunk-NMM27UOF.js.map → chunk-ZRWIMNQF.js.map} +1 -1
  318. package/dist/{chunk-NR7YZQRR.js → chunk-ZYJYBE5G.js} +4 -4
  319. package/dist/{chunk-NR7YZQRR.js.map → chunk-ZYJYBE5G.js.map} +1 -1
  320. package/dist/cli/commands/setup.d.ts +2 -2
  321. package/dist/cli/commands/sync.d.ts +2 -2
  322. package/dist/cli/commands/sync.d.ts.map +1 -1
  323. package/dist/cli/index.js +76 -76
  324. package/dist/cli/index.mjs +29 -29
  325. package/dist/client/index.js +5 -5
  326. package/dist/client/index.mjs +4 -4
  327. package/dist/commerce/index.js +57 -57
  328. package/dist/commerce/index.mjs +5 -5
  329. package/dist/discover-LPN55L5B.js +21 -0
  330. package/dist/{discover-NGEPXZOD.js.map → discover-LPN55L5B.js.map} +1 -1
  331. package/dist/discover-QGA6QFSR.mjs +4 -0
  332. package/dist/{discover-CYXYKHZ2.mjs.map → discover-QGA6QFSR.mjs.map} +1 -1
  333. package/dist/engage/index.js +13 -13
  334. package/dist/engage/index.mjs +7 -7
  335. package/dist/fleet/contract.d.ts +1 -1
  336. package/dist/fleet/contract.js +12 -12
  337. package/dist/fleet/contract.mjs +1 -1
  338. package/dist/fleet/index.js +20 -20
  339. package/dist/fleet/index.mjs +5 -5
  340. package/dist/forms/index.js +16 -16
  341. package/dist/forms/index.mjs +9 -9
  342. package/dist/forms/server.js +10 -10
  343. package/dist/forms/server.mjs +8 -8
  344. package/dist/forms/static.js +7 -7
  345. package/dist/forms/static.mjs +6 -6
  346. package/dist/images/index.js +11 -11
  347. package/dist/images/index.mjs +4 -4
  348. package/dist/index.d.ts +2 -2
  349. package/dist/index.d.ts.map +1 -1
  350. package/dist/index.js +70 -70
  351. package/dist/index.mjs +12 -12
  352. package/dist/layout/client.js +10 -10
  353. package/dist/layout/client.mjs +9 -9
  354. package/dist/layout/index.js +12 -12
  355. package/dist/layout/index.mjs +10 -10
  356. package/dist/llms/SpeakableSchema.d.ts +1 -1
  357. package/dist/llms/SpeakableSchema.d.ts.map +1 -1
  358. package/dist/llms/client.js +15 -15
  359. package/dist/llms/client.mjs +1 -1
  360. package/dist/llms/generateLLMsTxt.d.ts.map +1 -1
  361. package/dist/llms/index.js +32 -31
  362. package/dist/llms/index.js.map +1 -1
  363. package/dist/llms/index.mjs +8 -7
  364. package/dist/llms/index.mjs.map +1 -1
  365. package/dist/llms/types.d.ts +7 -0
  366. package/dist/llms/types.d.ts.map +1 -1
  367. package/dist/llms/writeLLMsTxt.d.ts +6 -0
  368. package/dist/llms/writeLLMsTxt.d.ts.map +1 -1
  369. package/dist/maps/index.js +5 -5
  370. package/dist/maps/index.mjs +3 -3
  371. package/dist/og/index.js +7 -7
  372. package/dist/og/index.mjs +2 -2
  373. package/dist/og/route.d.ts +6 -6
  374. package/dist/og/route.js.map +1 -1
  375. package/dist/og/route.mjs.map +1 -1
  376. package/dist/og/wiring.d.ts +4 -4
  377. package/dist/og/wiring.d.ts.map +1 -1
  378. package/dist/proxy/index.js +5 -5
  379. package/dist/proxy/index.mjs +3 -3
  380. package/dist/redirects/index.js +10 -10
  381. package/dist/redirects/index.mjs +3 -3
  382. package/dist/redirects/not-found.js +7 -7
  383. package/dist/redirects/not-found.mjs +3 -3
  384. package/dist/robots/indexnow.d.ts +17 -0
  385. package/dist/robots/indexnow.d.ts.map +1 -0
  386. package/dist/robots/indexnow.js +39 -0
  387. package/dist/robots/indexnow.js.map +1 -0
  388. package/dist/robots/indexnow.mjs +34 -0
  389. package/dist/robots/indexnow.mjs.map +1 -0
  390. package/dist/search/contract.d.ts +1 -1
  391. package/dist/search/contract.js +3 -3
  392. package/dist/search/contract.mjs +1 -1
  393. package/dist/search/index.js +7 -7
  394. package/dist/search/index.mjs +5 -5
  395. package/dist/seo/client.js +6 -6
  396. package/dist/seo/client.mjs +5 -5
  397. package/dist/seo/index.js +47 -47
  398. package/dist/seo/index.js.map +1 -1
  399. package/dist/seo/index.mjs +12 -12
  400. package/dist/seo/index.mjs.map +1 -1
  401. package/dist/seo/register-sitemap-cli-impl.d.ts +2 -0
  402. package/dist/seo/register-sitemap-cli-impl.d.ts.map +1 -1
  403. package/dist/seo/register-sitemap-cli.d.ts +1 -0
  404. package/dist/seo/register-sitemap-cli.d.ts.map +1 -1
  405. package/dist/seo/register-sitemap-cli.js +18 -14
  406. package/dist/seo/register-sitemap-cli.mjs +11 -7
  407. package/dist/seo/server.js +21 -21
  408. package/dist/seo/server.mjs +5 -5
  409. package/dist/server/index.js +3 -3
  410. package/dist/server/index.mjs +2 -2
  411. package/dist/{server-api-A2EFCTZX.mjs → server-api-7F5P6CSH.mjs} +6 -6
  412. package/dist/{server-api-A2EFCTZX.mjs.map → server-api-7F5P6CSH.mjs.map} +1 -1
  413. package/dist/{server-api-IWTZ7C3O.js → server-api-OC5JNK6R.js} +24 -24
  414. package/dist/{server-api-IWTZ7C3O.js.map → server-api-OC5JNK6R.js.map} +1 -1
  415. package/dist/shared/build-entries.d.ts +9 -7
  416. package/dist/shared/build-entries.d.ts.map +1 -1
  417. package/dist/shared/version.d.ts +1 -1
  418. package/dist/signal/index.js +11 -11
  419. package/dist/signal/index.mjs +2 -2
  420. package/dist/sitemap/discover.d.ts +1 -1
  421. package/dist/sitemap/index.d.ts +13 -1
  422. package/dist/sitemap/index.d.ts.map +1 -1
  423. package/dist/sitemap/index.js +48 -30
  424. package/dist/sitemap/index.js.map +1 -1
  425. package/dist/sitemap/index.mjs +27 -9
  426. package/dist/sitemap/index.mjs.map +1 -1
  427. package/dist/sitemap/shared.d.ts +1 -1
  428. package/dist/sitemap/shared.d.ts.map +1 -1
  429. package/dist/sites/site-param.d.ts +2 -2
  430. package/dist/sync/index.js +17 -17
  431. package/dist/sync/index.mjs +4 -4
  432. package/dist/types.d.ts +1 -1
  433. package/dist/types.d.ts.map +1 -1
  434. package/dist/writeLLMsTxt-LYYC3ZSN.mjs +11 -0
  435. package/dist/writeLLMsTxt-XHLHJ5XY.js +20 -0
  436. package/package.json +20 -14
  437. package/dist/BlogPostFaqSection-P3GXVQPA.mjs +0 -11
  438. package/dist/BlogPostFaqSection-P3GXVQPA.mjs.map +0 -1
  439. package/dist/BlogPostFaqSection-YG5J4B4U.js +0 -13
  440. package/dist/BlogPostFaqSection-YG5J4B4U.js.map +0 -1
  441. package/dist/BlogViewTracker-Q7Y4MN4B.mjs.map +0 -1
  442. package/dist/BlogViewTracker-S3CSRBIZ.js.map +0 -1
  443. package/dist/ChatWidget-76R7NOWD.js +0 -24
  444. package/dist/ChatWidget-G3KOUDX5.mjs +0 -15
  445. package/dist/EngageWidget-HD4F2ZVE.js +0 -21
  446. package/dist/EngageWidget-UJ47PQFG.mjs +0 -12
  447. package/dist/ManagedForm-4ZGU4R3G.js +0 -25
  448. package/dist/ManagedForm-Z7QE4KYI.mjs +0 -16
  449. package/dist/ManagedNewsletterForm-22EPZB7Z.js.map +0 -1
  450. package/dist/ManagedNewsletterForm-4TVO2VL4.mjs.map +0 -1
  451. package/dist/SitemapSync-GF4OKN4Z.js +0 -18
  452. package/dist/SitemapSync-WIUEYOBS.mjs +0 -9
  453. package/dist/blog/AuthorCard.d.ts.map +0 -1
  454. package/dist/blog/AuthorPage.d.ts.map +0 -1
  455. package/dist/blog/BlogFAQ.d.ts.map +0 -1
  456. package/dist/blog/BlogLayout.d.ts.map +0 -1
  457. package/dist/blog/BlogList.d.ts.map +0 -1
  458. package/dist/blog/BlogPost.d.ts.map +0 -1
  459. package/dist/blog/BlogPostFaqSection.d.ts +0 -3
  460. package/dist/blog/BlogPostFaqSection.d.ts.map +0 -1
  461. package/dist/blog/BlogSidebar.d.ts.map +0 -1
  462. package/dist/blog/BlogViewTracker.d.ts.map +0 -1
  463. package/dist/blog/ClusterLandingPage.d.ts.map +0 -1
  464. package/dist/blog/ClusterNavigation.d.ts.map +0 -1
  465. package/dist/blog/ManagedNewsletterForm.d.ts.map +0 -1
  466. package/dist/blog/NewsletterShell.d.ts.map +0 -1
  467. package/dist/blog/NewsletterWidget.d.ts.map +0 -1
  468. package/dist/blog/RelatedPosts.d.ts.map +0 -1
  469. package/dist/blog/ServiceCallout.d.ts.map +0 -1
  470. package/dist/blog/TableOfContents.d.ts.map +0 -1
  471. package/dist/blog/artwork.d.ts +0 -14
  472. package/dist/blog/artwork.d.ts.map +0 -1
  473. package/dist/blog/author-schema.d.ts.map +0 -1
  474. package/dist/blog/author-social.d.ts.map +0 -1
  475. package/dist/blog/blog-styles.d.ts.map +0 -1
  476. package/dist/blog/blog-tables.d.ts.map +0 -1
  477. package/dist/blog/excerpt.d.ts.map +0 -1
  478. package/dist/blog/index.d.ts.map +0 -1
  479. package/dist/blog/index.js.map +0 -1
  480. package/dist/blog/index.mjs.map +0 -1
  481. package/dist/blog/processBlogHtml.d.ts.map +0 -1
  482. package/dist/blog/public-reads.d.ts +0 -27
  483. package/dist/blog/public-reads.d.ts.map +0 -1
  484. package/dist/blog/reading-time.d.ts.map +0 -1
  485. package/dist/blog/routes.d.ts.map +0 -1
  486. package/dist/blog/server-core.d.ts.map +0 -1
  487. package/dist/blog/server-ui.d.ts +0 -29
  488. package/dist/blog/server-ui.d.ts.map +0 -1
  489. package/dist/blog/server-ui.js +0 -267
  490. package/dist/blog/server-ui.js.map +0 -1
  491. package/dist/blog/server-ui.mjs +0 -203
  492. package/dist/blog/server-ui.mjs.map +0 -1
  493. package/dist/blog/server.d.ts.map +0 -1
  494. package/dist/blog/server.js +0 -207
  495. package/dist/blog/server.mjs +0 -10
  496. package/dist/blog/types.d.ts.map +0 -1
  497. package/dist/blog/widget-styles.d.ts +0 -9
  498. package/dist/blog/widget-styles.d.ts.map +0 -1
  499. package/dist/blog-styles-6EY3BS5Y.js.map +0 -1
  500. package/dist/blog-styles-7AKRUMV7.mjs.map +0 -1
  501. package/dist/blog-tables-DWDEWA3S.js +0 -17
  502. package/dist/blog-tables-DWDEWA3S.js.map +0 -1
  503. package/dist/blog-tables-QGIHOESZ.mjs +0 -4
  504. package/dist/blog-tables-QGIHOESZ.mjs.map +0 -1
  505. package/dist/chunk-3EY5E35M.mjs.map +0 -1
  506. package/dist/chunk-4LYW6PMU.mjs.map +0 -1
  507. package/dist/chunk-4TLFZ6NR.mjs.map +0 -1
  508. package/dist/chunk-5B4J3IBX.mjs +0 -164
  509. package/dist/chunk-5B4J3IBX.mjs.map +0 -1
  510. package/dist/chunk-5FETEH3Y.mjs +0 -6
  511. package/dist/chunk-75A4KY4X.mjs.map +0 -1
  512. package/dist/chunk-7R6H3GQ4.js +0 -8
  513. package/dist/chunk-7TC3GRXQ.js.map +0 -1
  514. package/dist/chunk-AJBOEV4I.mjs.map +0 -1
  515. package/dist/chunk-AK6JZ3OE.mjs.map +0 -1
  516. package/dist/chunk-FHPW7XVH.js +0 -175
  517. package/dist/chunk-FHPW7XVH.js.map +0 -1
  518. package/dist/chunk-G2WC3CXW.js.map +0 -1
  519. package/dist/chunk-GHECYDSZ.mjs.map +0 -1
  520. package/dist/chunk-GQF6QAQS.js.map +0 -1
  521. package/dist/chunk-H5NBFNND.js.map +0 -1
  522. package/dist/chunk-HX6ZG3PP.js.map +0 -1
  523. package/dist/chunk-JLVCWC6A.mjs.map +0 -1
  524. package/dist/chunk-K4TCEAUX.js.map +0 -1
  525. package/dist/chunk-LMEUYRRR.js.map +0 -1
  526. package/dist/chunk-MWKI6ZIS.mjs.map +0 -1
  527. package/dist/chunk-O237KKCX.mjs.map +0 -1
  528. package/dist/chunk-Q2NBD54V.js.map +0 -1
  529. package/dist/chunk-R7GHP3FY.js.map +0 -1
  530. package/dist/chunk-W2U5SLMY.js.map +0 -1
  531. package/dist/chunk-XEB77DQS.js.map +0 -1
  532. package/dist/chunk-Y5QZPUL3.mjs.map +0 -1
  533. package/dist/chunk-YFX3Q56O.mjs.map +0 -1
  534. package/dist/chunk-YN7QHLWF.js.map +0 -1
  535. package/dist/chunk-YQTE32QK.js.map +0 -1
  536. package/dist/chunk-ZPLN537Q.mjs.map +0 -1
  537. package/dist/chunk-ZVI7MBVF.mjs.map +0 -1
  538. package/dist/discover-CYXYKHZ2.mjs +0 -4
  539. package/dist/discover-NGEPXZOD.js +0 -21
  540. package/dist/writeLLMsTxt-CQ7A4AAL.js +0 -19
  541. package/dist/writeLLMsTxt-NX5MSPYX.mjs +0 -10
  542. /package/dist/{blog → articles}/server.js.map +0 -0
  543. /package/dist/{blog → articles}/server.mjs.map +0 -0
@@ -2,7 +2,7 @@
2
2
  import { useState, useCallback, useRef } from 'react';
3
3
  import { jsxs, jsx } from 'react/jsx-runtime';
4
4
 
5
- // src/blog/BlogFAQ.tsx
5
+ // src/articles/ArticleFAQ.tsx
6
6
  var defaultStyles = {
7
7
  section: {
8
8
  margin: "3rem 0",
@@ -157,7 +157,7 @@ function FAQItem({
157
157
  }
158
158
  );
159
159
  }
160
- function BlogFAQ({
160
+ function ArticleFAQ({
161
161
  items,
162
162
  title = "Frequently Asked Questions",
163
163
  allowMultiple = false,
@@ -215,6 +215,6 @@ function BlogFAQ({
215
215
  );
216
216
  }
217
217
 
218
- export { BlogFAQ };
219
- //# sourceMappingURL=chunk-O237KKCX.mjs.map
220
- //# sourceMappingURL=chunk-O237KKCX.mjs.map
218
+ export { ArticleFAQ };
219
+ //# sourceMappingURL=chunk-C5VITBN7.mjs.map
220
+ //# sourceMappingURL=chunk-C5VITBN7.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/articles/ArticleFAQ.tsx"],"names":[],"mappings":"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","file":"chunk-C5VITBN7.mjs","sourcesContent":["/**\n * @sonordev/site-kit/articles - Article FAQ Component\n *\n * Renders FAQ items with collapsible accordion behavior.\n * Content is always in the DOM (not display:none) for SEO crawlability.\n * Uses CSS max-height transitions — no JS animation library required.\n *\n * Pairs with FAQPage schema (generated by Signal AI in the publication pipeline)\n * for Google's \"People Also Ask\" featured snippets.\n *\n * @example\n * ```tsx\n * <ArticleFAQ items={post.faqItems} />\n * ```\n */\n\n'use client'\n\nimport React, { useState, useRef, useCallback } from 'react'\n\nexport interface FaqItem {\n question: string\n answer: string\n}\n\nexport interface ArticleFAQProps {\n items: FaqItem[]\n /** Section title */\n title?: string\n /** Allow multiple items open simultaneously */\n allowMultiple?: boolean\n /** Override styles with Tailwind classes */\n styles?: {\n section?: string\n title?: string\n list?: string\n item?: string\n question?: string\n questionText?: string\n icon?: string\n answer?: string\n answerInner?: string\n }\n unstyled?: boolean\n}\n\n// CSS custom property defaults\nconst defaultStyles = {\n section: {\n margin: '3rem 0',\n padding: 0,\n },\n title: {\n fontSize: '1.5rem',\n fontWeight: 700,\n color: 'var(--sk-text-primary, #0f172a)',\n marginBottom: '1.5rem',\n display: 'flex',\n alignItems: 'center',\n gap: '0.5rem',\n },\n list: {\n listStyle: 'none',\n margin: 0,\n padding: 0,\n display: 'flex',\n flexDirection: 'column' as const,\n gap: '0.5rem',\n },\n item: {\n borderRadius: '0.75rem',\n border: '1px solid var(--sk-surface-border, #e2e8f0)',\n background: 'var(--sk-bg-elevated, #f8fafc)',\n overflow: 'hidden',\n transition: 'border-color 0.2s, box-shadow 0.2s',\n },\n itemOpen: {\n borderColor: 'color-mix(in srgb, var(--sk-primary, #2563eb) 40%, var(--sk-surface-border, #e2e8f0))',\n boxShadow: '0 1px 3px rgba(0,0,0,0.06)',\n },\n question: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: '100%',\n padding: '1rem 1.25rem',\n background: 'none',\n border: 'none',\n cursor: 'pointer',\n textAlign: 'left' as const,\n },\n questionText: {\n fontSize: '1rem',\n fontWeight: 600,\n color: 'var(--sk-text-primary, #0f172a)',\n paddingRight: '1rem',\n },\n icon: {\n flexShrink: 0,\n width: '1.25rem',\n height: '1.25rem',\n color: 'var(--sk-primary, #2563eb)',\n transition: 'transform 0.2s',\n },\n answer: {\n overflow: 'hidden',\n transition: 'max-height 0.3s ease, opacity 0.2s ease',\n },\n answerInner: {\n padding: '0 1.25rem 1.25rem',\n fontSize: '0.9375rem',\n lineHeight: 1.7,\n color: 'var(--sk-text-secondary, #475569)',\n },\n}\n\nfunction PlusMinusIcon({ isOpen }: { isOpen: boolean }) {\n return (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n style={{\n ...defaultStyles.icon,\n transform: isOpen ? 'rotate(45deg)' : 'rotate(0deg)',\n }}\n >\n <line x1=\"10\" y1=\"4\" x2=\"10\" y2=\"16\" />\n <line x1=\"4\" y1=\"10\" x2=\"16\" y2=\"10\" />\n </svg>\n )\n}\n\nfunction FAQItem({\n item,\n isOpen,\n onToggle,\n styles,\n unstyled,\n}: {\n item: FaqItem\n isOpen: boolean\n onToggle: () => void\n styles?: ArticleFAQProps['styles']\n unstyled?: boolean\n}) {\n const answerRef = useRef<HTMLDivElement>(null)\n\n return (\n <li\n className={styles?.item}\n style={unstyled ? undefined : {\n ...defaultStyles.item,\n ...(isOpen ? defaultStyles.itemOpen : {}),\n }}\n >\n <button\n className={styles?.question}\n style={unstyled ? undefined : defaultStyles.question}\n onClick={onToggle}\n aria-expanded={isOpen}\n type=\"button\"\n >\n <span\n className={styles?.questionText}\n style={unstyled ? undefined : defaultStyles.questionText}\n >\n {item.question}\n </span>\n <span className={styles?.icon}>\n <PlusMinusIcon isOpen={isOpen} />\n </span>\n </button>\n <div\n ref={answerRef}\n className={styles?.answer}\n style={unstyled ? undefined : {\n ...defaultStyles.answer,\n maxHeight: isOpen ? `${(answerRef.current?.scrollHeight || 500) + 40}px` : '0',\n opacity: isOpen ? 1 : 0,\n }}\n role=\"region\"\n aria-hidden={!isOpen}\n >\n <div\n className={styles?.answerInner}\n style={unstyled ? undefined : defaultStyles.answerInner}\n dangerouslySetInnerHTML={{ __html: item.answer }}\n />\n </div>\n </li>\n )\n}\n\nexport function ArticleFAQ({\n items,\n title = 'Frequently Asked Questions',\n allowMultiple = false,\n styles,\n unstyled = false,\n}: ArticleFAQProps) {\n const [openIndices, setOpenIndices] = useState<Set<number>>(new Set())\n\n const toggle = useCallback((index: number) => {\n setOpenIndices(prev => {\n const next = new Set(allowMultiple ? prev : [])\n if (prev.has(index)) {\n next.delete(index)\n } else {\n next.add(index)\n }\n return next\n })\n }, [allowMultiple])\n\n if (!items || items.length === 0) return null\n\n return (\n <section\n className={styles?.section}\n style={unstyled ? undefined : defaultStyles.section}\n aria-label=\"Frequently Asked Questions\"\n >\n <h2\n className={styles?.title}\n style={unstyled ? undefined : defaultStyles.title}\n >\n {title}\n </h2>\n <ul\n className={styles?.list}\n style={unstyled ? undefined : defaultStyles.list}\n >\n {items.map((item, index) => (\n <FAQItem\n key={index}\n item={item}\n isOpen={openIndices.has(index)}\n onToggle={() => toggle(index)}\n styles={styles}\n unstyled={unstyled}\n />\n ))}\n </ul>\n </section>\n )\n}\n"]}
@@ -12,5 +12,5 @@ var SEARCH_CONTRACT_VECTORS = [
12
12
  ];
13
13
 
14
14
  export { SEARCH_CONTRACT_VECTORS, SEARCH_ENDPOINT };
15
- //# sourceMappingURL=chunk-75A4KY4X.mjs.map
16
- //# sourceMappingURL=chunk-75A4KY4X.mjs.map
15
+ //# sourceMappingURL=chunk-CFRJ2MK5.mjs.map
16
+ //# sourceMappingURL=chunk-CFRJ2MK5.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/search/contract.ts"],"names":[],"mappings":";AAmBO,IAAM,eAAA,GAAkB;AAkCxB,IAAM,uBAAA,GAA0B;AAAA,EACrC;AAAA,IACE,IAAA,EAAM,iBAAA;AAAA,IACN,OAAA,EAAS,EAAE,CAAA,EAAG,SAAA;AAAU,GAC1B;AAAA,EACA;AAAA,IACE,IAAA,EAAM,kBAAA;AAAA,IACN,OAAA,EAAS,EAAE,CAAA,EAAG,aAAA,EAAe,IAAA,EAAM,eAAA,EAAiB,KAAA,EAAO,CAAC,MAAA,EAAQ,MAAM,CAAA,EAAG,KAAA,EAAO,CAAA;AAAE;AAE1F","file":"chunk-CFRJ2MK5.mjs","sourcesContent":["/**\n * @sonordev/site-kit/search/contract — site search wire contract.\n *\n * CANONICAL SOURCE for the shape of POST /api/public/search. sonor-api keeps\n * an inline mirror per the cross-repo contract pattern (APIs do not depend on\n * site-kit at runtime); drift is caught by test vectors on both sides.\n *\n * Design notes (4.0 exploration):\n * - One endpoint, unified across content types the project already manages:\n * pages (seo_pages), articles, and commerce offerings. The site's whole\n * navigable surface, ranked together.\n * - Tenant scoping comes from the API key (ApiKeyGuard) — requests carry no\n * project id, same as every public endpoint.\n * - `site` narrows multi-site projects (TPS microsites) using the standard\n * host convention from sites/contract.\n * - Results carry a `url` the site can link directly plus a typed `kind`\n * so UIs can group (\"Pages / Posts / Events\").\n */\n\nexport const SEARCH_ENDPOINT = '/api/public/search'\n\nexport type SearchKind = 'page' | 'post' | 'offering'\n\nexport interface SearchRequest {\n /** The user's query. Server trims; empty queries return empty results. */\n q: string\n /** Multi-site narrowing (normalized host, e.g. 'ohiopowerstudies.com'). */\n site?: string\n /** Restrict to specific kinds. Default: all. */\n kinds?: SearchKind[]\n /** Max results across kinds. Server clamps to 25. Default 10. */\n limit?: number\n}\n\nexport interface SearchResult {\n kind: SearchKind\n /** Path or absolute URL the site should link to. */\n url: string\n title: string\n /** Short excerpt with the match context when the backend can produce one. */\n excerpt?: string\n /** Higher = better. Only comparable within a single response. */\n score: number\n}\n\nexport interface SearchResponse {\n query: string\n results: SearchResult[]\n /** Total matches before the limit, per kind — lets UIs show \"12 more posts\". */\n totals?: Partial<Record<SearchKind, number>>\n}\n\n/** Shared test vectors — mirrored by sonor-api's contract test. */\nexport const SEARCH_CONTRACT_VECTORS = [\n {\n name: 'minimal request',\n request: { q: 'bonfire' } satisfies SearchRequest,\n },\n {\n name: 'narrowed request',\n request: { q: 'supply list', site: 'ludlowpto.org', kinds: ['page', 'post'], limit: 5 } satisfies SearchRequest,\n },\n] as const\n"]}
@@ -15,5 +15,5 @@ var SEARCH_CONTRACT_VECTORS = [
15
15
 
16
16
  exports.SEARCH_CONTRACT_VECTORS = SEARCH_CONTRACT_VECTORS;
17
17
  exports.SEARCH_ENDPOINT = SEARCH_ENDPOINT;
18
- //# sourceMappingURL=chunk-G2WC3CXW.js.map
19
- //# sourceMappingURL=chunk-G2WC3CXW.js.map
18
+ //# sourceMappingURL=chunk-CLO3K7PF.js.map
19
+ //# sourceMappingURL=chunk-CLO3K7PF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/search/contract.ts"],"names":[],"mappings":";;;AAmBO,IAAM,eAAA,GAAkB;AAkCxB,IAAM,uBAAA,GAA0B;AAAA,EACrC;AAAA,IACE,IAAA,EAAM,iBAAA;AAAA,IACN,OAAA,EAAS,EAAE,CAAA,EAAG,SAAA;AAAU,GAC1B;AAAA,EACA;AAAA,IACE,IAAA,EAAM,kBAAA;AAAA,IACN,OAAA,EAAS,EAAE,CAAA,EAAG,aAAA,EAAe,IAAA,EAAM,eAAA,EAAiB,KAAA,EAAO,CAAC,MAAA,EAAQ,MAAM,CAAA,EAAG,KAAA,EAAO,CAAA;AAAE;AAE1F","file":"chunk-CLO3K7PF.js","sourcesContent":["/**\n * @sonordev/site-kit/search/contract — site search wire contract.\n *\n * CANONICAL SOURCE for the shape of POST /api/public/search. sonor-api keeps\n * an inline mirror per the cross-repo contract pattern (APIs do not depend on\n * site-kit at runtime); drift is caught by test vectors on both sides.\n *\n * Design notes (4.0 exploration):\n * - One endpoint, unified across content types the project already manages:\n * pages (seo_pages), articles, and commerce offerings. The site's whole\n * navigable surface, ranked together.\n * - Tenant scoping comes from the API key (ApiKeyGuard) — requests carry no\n * project id, same as every public endpoint.\n * - `site` narrows multi-site projects (TPS microsites) using the standard\n * host convention from sites/contract.\n * - Results carry a `url` the site can link directly plus a typed `kind`\n * so UIs can group (\"Pages / Posts / Events\").\n */\n\nexport const SEARCH_ENDPOINT = '/api/public/search'\n\nexport type SearchKind = 'page' | 'post' | 'offering'\n\nexport interface SearchRequest {\n /** The user's query. Server trims; empty queries return empty results. */\n q: string\n /** Multi-site narrowing (normalized host, e.g. 'ohiopowerstudies.com'). */\n site?: string\n /** Restrict to specific kinds. Default: all. */\n kinds?: SearchKind[]\n /** Max results across kinds. Server clamps to 25. Default 10. */\n limit?: number\n}\n\nexport interface SearchResult {\n kind: SearchKind\n /** Path or absolute URL the site should link to. */\n url: string\n title: string\n /** Short excerpt with the match context when the backend can produce one. */\n excerpt?: string\n /** Higher = better. Only comparable within a single response. */\n score: number\n}\n\nexport interface SearchResponse {\n query: string\n results: SearchResult[]\n /** Total matches before the limit, per kind — lets UIs show \"12 more posts\". */\n totals?: Partial<Record<SearchKind, number>>\n}\n\n/** Shared test vectors — mirrored by sonor-api's contract test. */\nexport const SEARCH_CONTRACT_VECTORS = [\n {\n name: 'minimal request',\n request: { q: 'bonfire' } satisfies SearchRequest,\n },\n {\n name: 'narrowed request',\n request: { q: 'supply list', site: 'ludlowpto.org', kinds: ['page', 'post'], limit: 5 } satisfies SearchRequest,\n },\n] as const\n"]}
@@ -1,4 +1,4 @@
1
- import { widgetStyle, widgetTitleStyle } from './chunk-YFX3Q56O.mjs';
1
+ import { widgetStyle, widgetTitleStyle } from './chunk-4KAMU5HD.mjs';
2
2
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
3
3
 
4
4
  function NewsletterShell({
@@ -61,5 +61,5 @@ function NewsletterShell({
61
61
  }
62
62
 
63
63
  export { NewsletterShell };
64
- //# sourceMappingURL=chunk-AK6JZ3OE.mjs.map
65
- //# sourceMappingURL=chunk-AK6JZ3OE.mjs.map
64
+ //# sourceMappingURL=chunk-EDLNMGQC.mjs.map
65
+ //# sourceMappingURL=chunk-EDLNMGQC.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/blog/NewsletterShell.tsx"],"names":["jsxs","widgetStyle","jsx","widgetTitleStyle","Fragment"],"mappings":";;;;;AAsBO,SAAS,eAAA,CAAgB;AAAA,EAC9B,KAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,aAAA;AAAA,EACA,YAAA;AAAA,EACA,MAAA;AAAA,EACA,cAAA;AAAA,EACA;AACF,CAAA,EAAyB;AACvB,EAAA,uBACEA,eAAA,CAAC,SAAI,KAAA,EAAO,EAAE,GAAGC,4BAAA,EAAa,eAAA,EAAiB,oCAAmC,EAChF,QAAA,EAAA;AAAA,oBAAAC,cAAA,CAAC,IAAA,EAAA,EAAG,OAAO,EAAE,GAAGC,mCAAkB,KAAA,EAAO,mBAAA,IAAwB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,IACtE,MAAA,KAAW,SAAA,mBACVD,cAAA,CAAC,GAAA,EAAA,EAAE,OAAO,EAAE,QAAA,EAAU,EAAA,EAAI,KAAA,EAAO,4BAA4B,MAAA,EAAQ,CAAA,EAAE,EACpE,QAAA,EAAA,cAAA,EACH,oBAEAF,eAAA,CAAAI,mBAAA,EAAA,EACE,QAAA,EAAA;AAAA,sBAAAF,cAAA,CAAC,GAAA,EAAA,EAAE,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,EAAI,OAAO,0BAAA,EAA4B,YAAA,EAAc,EAAA,EAAG,EAC3E,QAAA,EAAA,WAAA,EACH,CAAA;AAAA,sBACAF,eAAA,CAAC,MAAA,EAAA,EAAK,QAAA,EAAU,YAAA,EAAc,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,GAAA,EAAK,CAAA,EAAE,EAC7D,QAAA,EAAA;AAAA,wBAAAE,cAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,OAAA;AAAA,YACL,IAAA,EAAK,OAAA;AAAA,YACL,WAAA,EAAY,kBAAA;AAAA,YACZ,QAAA,EAAQ,IAAA;AAAA,YACR,KAAA,EAAO,KAAA;AAAA,YACP,UAAU,CAAC,CAAA,KAAM,aAAA,CAAc,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,YAC7C,UAAU,MAAA,KAAW,YAAA;AAAA,YACrB,KAAA,EAAO;AAAA,cACL,IAAA,EAAM,CAAA;AAAA,cACN,OAAA,EAAS,WAAA;AAAA,cACT,MAAA,EAAQ,4BAAA;AAAA,cACR,YAAA,EAAc,CAAA;AAAA,cACd,QAAA,EAAU;AAAA;AACZ;AAAA,SACF;AAAA,wBACAA,cAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,UAAU,MAAA,KAAW,YAAA;AAAA,YACrB,KAAA,EAAO;AAAA,cACL,OAAA,EAAS,WAAA;AAAA,cACT,eAAA,EAAiB,mBAAA;AAAA,cACjB,KAAA,EAAO,cAAA;AAAA,cACP,MAAA,EAAQ,MAAA;AAAA,cACR,YAAA,EAAc,CAAA;AAAA,cACd,QAAA,EAAU,EAAA;AAAA,cACV,UAAA,EAAY,GAAA;AAAA,cACZ,MAAA,EAAQ,MAAA,KAAW,YAAA,GAAe,MAAA,GAAS;AAAA,aAC7C;AAAA,YAEC,QAAA,EAAA,MAAA,KAAW,eAAe,QAAA,GAAM;AAAA;AAAA;AACnC,OAAA,EACF,CAAA;AAAA,MACC,MAAA,KAAW,OAAA,oBACVA,cAAA,CAAC,GAAA,EAAA,EAAE,OAAO,EAAE,QAAA,EAAU,EAAA,EAAI,KAAA,EAAO,0BAAA,EAA4B,MAAA,EAAQ,SAAA,EAAU,EAC5E,0BAAgB,yCAAA,EACnB;AAAA,KAAA,EAEJ;AAAA,GAAA,EAEJ,CAAA;AAEJ","file":"chunk-DO6ATNLN.js","sourcesContent":["'use client'\n\n/**\n * Presentational shell shared by NewsletterWidget's two modes. No data\n * imports — keep it that way, it renders in the eager blog bundle.\n */\n\nimport React from 'react'\nimport { widgetStyle, widgetTitleStyle } from './widget-styles'\n\nexport interface NewsletterShellProps {\n title: string\n description: string\n buttonText: string\n email: string\n onEmailChange: (value: string) => void\n onFormSubmit: (e: React.FormEvent) => void\n status: 'idle' | 'submitting' | 'success' | 'error'\n successMessage: string\n errorMessage?: string | null\n}\n\nexport function NewsletterShell({\n title,\n description,\n buttonText,\n email,\n onEmailChange,\n onFormSubmit,\n status,\n successMessage,\n errorMessage,\n}: NewsletterShellProps) {\n return (\n <div style={{ ...widgetStyle, backgroundColor: 'rgba(var(--sk-primary-rgb), 0.1)' }}>\n <h4 style={{ ...widgetTitleStyle, color: 'var(--sk-primary)' }}>{title}</h4>\n {status === 'success' ? (\n <p style={{ fontSize: 14, color: 'var(--sk-text-secondary)', margin: 0 }}>\n {successMessage}\n </p>\n ) : (\n <>\n <p style={{ fontSize: 14, color: 'var(--sk-text-secondary)', marginBottom: 16 }}>\n {description}\n </p>\n <form onSubmit={onFormSubmit} style={{ display: 'flex', gap: 8 }}>\n <input\n type=\"email\"\n name=\"email\"\n placeholder=\"Enter your email\"\n required\n value={email}\n onChange={(e) => onEmailChange(e.target.value)}\n disabled={status === 'submitting'}\n style={{\n flex: 1,\n padding: '10px 12px',\n border: '1px solid var(--sk-border)',\n borderRadius: 8,\n fontSize: 14,\n }}\n />\n <button\n type=\"submit\"\n disabled={status === 'submitting'}\n style={{\n padding: '10px 16px',\n backgroundColor: 'var(--sk-primary)',\n color: 'var(--sk-bg)',\n border: 'none',\n borderRadius: 8,\n fontSize: 14,\n fontWeight: 500,\n cursor: status === 'submitting' ? 'wait' : 'pointer',\n }}\n >\n {status === 'submitting' ? '…' : buttonText}\n </button>\n </form>\n {status === 'error' && (\n <p style={{ fontSize: 13, color: 'var(--sk-error, #dc2626)', margin: '8px 0 0' }}>\n {errorMessage || 'Something went wrong. Please try again.'}\n </p>\n )}\n </>\n )}\n </div>\n )\n}\n"]}
1
+ {"version":3,"sources":["../src/articles/NewsletterShell.tsx"],"names":[],"mappings":";;;AAsBO,SAAS,eAAA,CAAgB;AAAA,EAC9B,KAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,aAAA;AAAA,EACA,YAAA;AAAA,EACA,MAAA;AAAA,EACA,cAAA;AAAA,EACA;AACF,CAAA,EAAyB;AACvB,EAAA,uBACE,IAAA,CAAC,SAAI,KAAA,EAAO,EAAE,GAAG,WAAA,EAAa,eAAA,EAAiB,oCAAmC,EAChF,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,IAAA,EAAA,EAAG,OAAO,EAAE,GAAG,kBAAkB,KAAA,EAAO,mBAAA,IAAwB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,IACtE,MAAA,KAAW,SAAA,mBACV,GAAA,CAAC,GAAA,EAAA,EAAE,OAAO,EAAE,QAAA,EAAU,EAAA,EAAI,KAAA,EAAO,4BAA4B,MAAA,EAAQ,CAAA,EAAE,EACpE,QAAA,EAAA,cAAA,EACH,oBAEA,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,GAAA,EAAA,EAAE,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,EAAI,OAAO,0BAAA,EAA4B,YAAA,EAAc,EAAA,EAAG,EAC3E,QAAA,EAAA,WAAA,EACH,CAAA;AAAA,sBACA,IAAA,CAAC,MAAA,EAAA,EAAK,QAAA,EAAU,YAAA,EAAc,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,GAAA,EAAK,CAAA,EAAE,EAC7D,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,OAAA;AAAA,YACL,IAAA,EAAK,OAAA;AAAA,YACL,WAAA,EAAY,kBAAA;AAAA,YACZ,QAAA,EAAQ,IAAA;AAAA,YACR,KAAA,EAAO,KAAA;AAAA,YACP,UAAU,CAAC,CAAA,KAAM,aAAA,CAAc,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,YAC7C,UAAU,MAAA,KAAW,YAAA;AAAA,YACrB,KAAA,EAAO;AAAA,cACL,IAAA,EAAM,CAAA;AAAA,cACN,OAAA,EAAS,WAAA;AAAA,cACT,MAAA,EAAQ,4BAAA;AAAA,cACR,YAAA,EAAc,CAAA;AAAA,cACd,QAAA,EAAU;AAAA;AACZ;AAAA,SACF;AAAA,wBACA,GAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,UAAU,MAAA,KAAW,YAAA;AAAA,YACrB,KAAA,EAAO;AAAA,cACL,OAAA,EAAS,WAAA;AAAA,cACT,eAAA,EAAiB,mBAAA;AAAA,cACjB,KAAA,EAAO,cAAA;AAAA,cACP,MAAA,EAAQ,MAAA;AAAA,cACR,YAAA,EAAc,CAAA;AAAA,cACd,QAAA,EAAU,EAAA;AAAA,cACV,UAAA,EAAY,GAAA;AAAA,cACZ,MAAA,EAAQ,MAAA,KAAW,YAAA,GAAe,MAAA,GAAS;AAAA,aAC7C;AAAA,YAEC,QAAA,EAAA,MAAA,KAAW,eAAe,QAAA,GAAM;AAAA;AAAA;AACnC,OAAA,EACF,CAAA;AAAA,MACC,MAAA,KAAW,OAAA,oBACV,GAAA,CAAC,GAAA,EAAA,EAAE,OAAO,EAAE,QAAA,EAAU,EAAA,EAAI,KAAA,EAAO,0BAAA,EAA4B,MAAA,EAAQ,SAAA,EAAU,EAC5E,0BAAgB,yCAAA,EACnB;AAAA,KAAA,EAEJ;AAAA,GAAA,EAEJ,CAAA;AAEJ","file":"chunk-EDLNMGQC.mjs","sourcesContent":["'use client'\n\n/**\n * Presentational shell shared by NewsletterWidget's two modes. No data\n * imports — keep it that way, it renders in the eager article bundle.\n */\n\nimport React from 'react'\nimport { widgetStyle, widgetTitleStyle } from './widget-styles'\n\nexport interface NewsletterShellProps {\n title: string\n description: string\n buttonText: string\n email: string\n onEmailChange: (value: string) => void\n onFormSubmit: (e: React.FormEvent) => void\n status: 'idle' | 'submitting' | 'success' | 'error'\n successMessage: string\n errorMessage?: string | null\n}\n\nexport function NewsletterShell({\n title,\n description,\n buttonText,\n email,\n onEmailChange,\n onFormSubmit,\n status,\n successMessage,\n errorMessage,\n}: NewsletterShellProps) {\n return (\n <div style={{ ...widgetStyle, backgroundColor: 'rgba(var(--sk-primary-rgb), 0.1)' }}>\n <h4 style={{ ...widgetTitleStyle, color: 'var(--sk-primary)' }}>{title}</h4>\n {status === 'success' ? (\n <p style={{ fontSize: 14, color: 'var(--sk-text-secondary)', margin: 0 }}>\n {successMessage}\n </p>\n ) : (\n <>\n <p style={{ fontSize: 14, color: 'var(--sk-text-secondary)', marginBottom: 16 }}>\n {description}\n </p>\n <form onSubmit={onFormSubmit} style={{ display: 'flex', gap: 8 }}>\n <input\n type=\"email\"\n name=\"email\"\n placeholder=\"Enter your email\"\n required\n value={email}\n onChange={(e) => onEmailChange(e.target.value)}\n disabled={status === 'submitting'}\n style={{\n flex: 1,\n padding: '10px 12px',\n border: '1px solid var(--sk-border)',\n borderRadius: 8,\n fontSize: 14,\n }}\n />\n <button\n type=\"submit\"\n disabled={status === 'submitting'}\n style={{\n padding: '10px 16px',\n backgroundColor: 'var(--sk-primary)',\n color: 'var(--sk-bg)',\n border: 'none',\n borderRadius: 8,\n fontSize: 14,\n fontWeight: 500,\n cursor: status === 'submitting' ? 'wait' : 'pointer',\n }}\n >\n {status === 'submitting' ? '…' : buttonText}\n </button>\n </form>\n {status === 'error' && (\n <p style={{ fontSize: 13, color: 'var(--sk-error, #dc2626)', margin: '8px 0 0' }}>\n {errorMessage || 'Something went wrong. Please try again.'}\n </p>\n )}\n </>\n )}\n </div>\n )\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- // src/blog/widget-styles.ts
3
+ // src/articles/widget-styles.ts
4
4
  var widgetStyle = {
5
5
  padding: 20,
6
6
  backgroundColor: "var(--sk-bg-elevated)",
@@ -15,5 +15,5 @@ var widgetTitleStyle = {
15
15
 
16
16
  exports.widgetStyle = widgetStyle;
17
17
  exports.widgetTitleStyle = widgetTitleStyle;
18
- //# sourceMappingURL=chunk-HX6ZG3PP.js.map
19
- //# sourceMappingURL=chunk-HX6ZG3PP.js.map
18
+ //# sourceMappingURL=chunk-EMHSHAVW.js.map
19
+ //# sourceMappingURL=chunk-EMHSHAVW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/articles/widget-styles.ts"],"names":[],"mappings":";;;AAOO,IAAM,WAAA,GAAmC;AAAA,EAC9C,OAAA,EAAS,EAAA;AAAA,EACT,eAAA,EAAiB,uBAAA;AAAA,EACjB,YAAA,EAAc;AAChB;AAEO,IAAM,gBAAA,GAAwC;AAAA,EACnD,MAAA,EAAQ,UAAA;AAAA,EACR,QAAA,EAAU,EAAA;AAAA,EACV,UAAA,EAAY,GAAA;AAAA,EACZ,KAAA,EAAO;AACT","file":"chunk-EMHSHAVW.js","sourcesContent":["import type React from 'react'\n\n/**\n * Shared sidebar-widget chrome, extracted from PublicationSidebar so the client-side\n * NewsletterWidget (its own module — it needs hooks, and PublicationSidebar is also\n * bundled into the un-stamped server entry articles/server-ui) can reuse it.\n */\nexport const widgetStyle: React.CSSProperties = {\n padding: 20,\n backgroundColor: 'var(--sk-bg-elevated)',\n borderRadius: 12,\n}\n\nexport const widgetTitleStyle: React.CSSProperties = {\n margin: '0 0 16px',\n fontSize: 16,\n fontWeight: 600,\n color: 'var(--sk-text-primary)',\n}\n"]}
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ // src/shared/version.ts
4
+ var SITE_KIT_VERSION = "6.0.1";
5
+
6
+ exports.SITE_KIT_VERSION = SITE_KIT_VERSION;
7
+ //# sourceMappingURL=chunk-F3EAAAZ3.js.map
8
+ //# sourceMappingURL=chunk-F3EAAAZ3.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/shared/version.ts"],"names":[],"mappings":";;;AASO,IAAM,gBAAA,GAAmB","file":"chunk-7R6H3GQ4.js","sourcesContent":["/**\n * @sonordev/site-kit shared - Package version constant\n *\n * Single source of truth for the version the kit reports at runtime (the\n * x-sitekit-version request header set by sonorFetch). Kept as a plain const\n * so client bundles don't need JSON imports; scripts/verify-dts.cjs asserts\n * it matches package.json at publish time, and version.test.ts asserts it in\n * dev, so it can't silently drift.\n */\nexport const SITE_KIT_VERSION = '5.8.3'\n"]}
1
+ {"version":3,"sources":["../src/shared/version.ts"],"names":[],"mappings":";;;AASO,IAAM,gBAAA,GAAmB","file":"chunk-F3EAAAZ3.js","sourcesContent":["/**\n * @sonordev/site-kit shared - Package version constant\n *\n * Single source of truth for the version the kit reports at runtime (the\n * x-sitekit-version request header set by sonorFetch). Kept as a plain const\n * so client bundles don't need JSON imports; scripts/verify-dts.cjs asserts\n * it matches package.json at publish time, and version.test.ts asserts it in\n * dev, so it can't silently drift.\n */\nexport const SITE_KIT_VERSION = '6.0.1'\n"]}
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  'use strict';
3
3
 
4
- var chunkNMM27UOF_js = require('./chunk-NMM27UOF.js');
4
+ var chunkZRWIMNQF_js = require('./chunk-ZRWIMNQF.js');
5
5
  var React = require('react');
6
6
  var jsxRuntime = require('react/jsx-runtime');
7
7
 
@@ -16,8 +16,8 @@ function SignalExperiment({
16
16
  trackImpression = true,
17
17
  children
18
18
  }) {
19
- const { assignment, variant, isControl } = chunkNMM27UOF_js.useSignalExperiment(experimentId);
20
- const trackEvent = chunkNMM27UOF_js.useSignalEvent();
19
+ const { assignment, variant, isControl } = chunkZRWIMNQF_js.useSignalExperiment(experimentId);
20
+ const trackEvent = chunkZRWIMNQF_js.useSignalEvent();
21
21
  React.useEffect(() => {
22
22
  if (trackImpression && variant) {
23
23
  trackEvent({
@@ -44,7 +44,7 @@ function SignalExperiment({
44
44
  return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: variants.control || null });
45
45
  }
46
46
  function useExperimentVariant(experimentId) {
47
- return chunkNMM27UOF_js.useSignalExperiment(experimentId);
47
+ return chunkZRWIMNQF_js.useSignalExperiment(experimentId);
48
48
  }
49
49
  function ExperimentConversion({
50
50
  experimentId,
@@ -52,8 +52,8 @@ function ExperimentConversion({
52
52
  value,
53
53
  children
54
54
  }) {
55
- const trackEvent = chunkNMM27UOF_js.useSignalEvent();
56
- const { variant } = chunkNMM27UOF_js.useSignalExperiment(experimentId);
55
+ const trackEvent = chunkZRWIMNQF_js.useSignalEvent();
56
+ const { variant } = chunkZRWIMNQF_js.useSignalExperiment(experimentId);
57
57
  const handleInteraction = () => {
58
58
  trackEvent({
59
59
  event_type: "experiment",
@@ -79,5 +79,5 @@ function ExperimentConversion({
79
79
  exports.ExperimentConversion = ExperimentConversion;
80
80
  exports.SignalExperiment = SignalExperiment;
81
81
  exports.useExperimentVariant = useExperimentVariant;
82
- //# sourceMappingURL=chunk-MYMZRHTC.js.map
83
- //# sourceMappingURL=chunk-MYMZRHTC.js.map
82
+ //# sourceMappingURL=chunk-FKFVN3GT.js.map
83
+ //# sourceMappingURL=chunk-FKFVN3GT.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/signal/SignalExperiment.tsx"],"names":["useSignalExperiment","useSignalEvent","useEffect","jsx","Fragment","React"],"mappings":";;;;;;;;;;AAgDO,SAAS,gBAAA,CAAiB;AAAA,EAC/B,YAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,eAAA,GAAkB,IAAA;AAAA,EAClB;AACF,CAAA,EAA0B;AACxB,EAAA,MAAM,EAAE,UAAA,EAAY,OAAA,EAAS,SAAA,EAAU,GAAIA,qCAAoB,YAAY,CAAA;AAC3E,EAAA,MAAM,aAAaC,+BAAA,EAAe;AAGlC,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,mBAAmB,OAAA,EAAS;AAC9B,MAAA,UAAA,CAAW;AAAA,QACT,UAAA,EAAY,YAAA;AAAA,QACZ,UAAA,EAAY,YAAA;AAAA,QACZ,UAAA,EAAY;AAAA,UACV,aAAA,EAAe,YAAA;AAAA,UACf,WAAA,EAAa;AAAA;AACf,OACD,CAAA;AAAA,IACH;AAAA,EACF,GAAG,CAAC,YAAA,EAAc,OAAA,EAAS,eAAA,EAAiB,UAAU,CAAC,CAAA;AAGvD,EAAA,IAAI,QAAA,EAAU;AACZ,IAAA,uBAAOC,cAAA,CAAAC,mBAAA,EAAA,EAAG,mBAAS,EAAE,OAAA,EAAS,WAAW,SAAA,EAAW,SAAA,EAAW,CAAA,EAAE,CAAA;AAAA,EACnE;AAGA,EAAA,MAAM,kBAAkB,OAAA,IAAW,SAAA;AACnC,EAAA,MAAM,OAAA,GAAU,SAAS,eAAe,CAAA;AAExC,EAAA,IAAI,YAAY,MAAA,EAAW;AACzB,IAAA,6DAAU,QAAA,EAAA,OAAA,EAAQ,CAAA;AAAA,EACpB;AAGA,EAAA,IAAI,QAAA,EAAU;AACZ,IAAA,6DAAU,QAAA,EAAA,QAAA,EAAS,CAAA;AAAA,EACrB;AAEA,EAAA,uBAAOD,cAAA,CAAAC,mBAAA,EAAA,EAAG,QAAA,EAAA,QAAA,CAAS,OAAA,IAAW,IAAA,EAAK,CAAA;AACrC;AAYO,SAAS,qBAAqB,YAAA,EAAsB;AACzD,EAAA,OAAOJ,qCAAoB,YAAY,CAAA;AACzC;AAoBO,SAAS,oBAAA,CAAqB;AAAA,EACnC,YAAA;AAAA,EACA,WAAA,GAAc,OAAA;AAAA,EACd,KAAA;AAAA,EACA;AACF,CAAA,EAKG;AACD,EAAA,MAAM,aAAaC,+BAAA,EAAe;AAClC,EAAA,MAAM,EAAE,OAAA,EAAQ,GAAID,oCAAA,CAAoB,YAAY,CAAA;AAEpD,EAAA,MAAM,oBAAoB,MAAM;AAC9B,IAAA,UAAA,CAAW;AAAA,MACT,UAAA,EAAY,YAAA;AAAA,MACZ,UAAA,EAAY,YAAA;AAAA,MACZ,UAAA,EAAY;AAAA,QACV,aAAA,EAAe,YAAA;AAAA,QACf,WAAA,EAAa,OAAA;AAAA,QACb,YAAA,EAAc,WAAA;AAAA,QACd;AAAA;AACF,KACD,CAAA;AAAA,EACH,CAAA;AAEA,EAAA,OAAOK,sBAAA,CAAM,aAAa,QAAA,EAAU;AAAA,IAClC,OAAA,EAAS,CAAC,CAAA,KAAwB;AAChC,MAAA,iBAAA,EAAkB;AAElB,MAAA,IAAK,QAAA,CAAS,MAAsD,OAAA,EAAS;AAC3E,QAAC,QAAA,CAAS,KAAA,CAAsD,OAAA,CAAS,CAAC,CAAA;AAAA,MAC5E;AAAA,IACF;AAAA,GACD,CAAA;AACH","file":"chunk-MYMZRHTC.js","sourcesContent":["/**\n * @sonordev/site-kit/signal - SignalExperiment\n * \n * A/B test component that renders different variants based on Signal assignment.\n * Uses Thompson Sampling (Bayesian bandit) for optimization.\n */\n\n'use client'\n\nimport React, { useMemo, useEffect } from 'react'\nimport { useSignalExperiment, useSignalEvent } from './SignalBridge'\n\ninterface SignalExperimentProps {\n /** Unique experiment ID */\n experimentId: string\n \n /** Variants to test - keys are variant names, values are React nodes */\n variants: Record<string, React.ReactNode>\n \n /** Fallback content if no assignment (defaults to 'control' variant) */\n fallback?: React.ReactNode\n \n /** Track impression automatically */\n trackImpression?: boolean\n \n /** Children function for more control */\n children?: (props: { variant: string; isControl: boolean }) => React.ReactNode\n}\n\n/**\n * Renders different content variants based on Signal's A/B assignment.\n * \n * @example\n * // Simple variant switching\n * <SignalExperiment experimentId=\"hero-cta\" variants={{\n * control: <Button>Get Started</Button>,\n * variant_a: <Button variant=\"primary\">Start Free Trial</Button>,\n * variant_b: <Button variant=\"secondary\">Book a Demo</Button>,\n * }} />\n * \n * @example\n * // With render prop for more control\n * <SignalExperiment experimentId=\"pricing-layout\">\n * {({ variant, isControl }) => (\n * <PricingSection layout={isControl ? 'cards' : 'table'} />\n * )}\n * </SignalExperiment>\n */\nexport function SignalExperiment({\n experimentId,\n variants,\n fallback,\n trackImpression = true,\n children,\n}: SignalExperimentProps) {\n const { assignment, variant, isControl } = useSignalExperiment(experimentId)\n const trackEvent = useSignalEvent()\n \n // Track impression when variant is rendered\n useEffect(() => {\n if (trackImpression && variant) {\n trackEvent({\n event_type: 'experiment',\n event_name: 'impression',\n event_data: {\n experiment_id: experimentId,\n variant_key: variant,\n },\n })\n }\n }, [experimentId, variant, trackImpression, trackEvent])\n \n // If using render prop\n if (children) {\n return <>{children({ variant: variant || 'control', isControl })}</>\n }\n \n // Determine what to render\n const selectedVariant = variant || 'control'\n const content = variants[selectedVariant]\n \n if (content !== undefined) {\n return <>{content}</>\n }\n \n // Fallback to provided fallback or control\n if (fallback) {\n return <>{fallback}</>\n }\n \n return <>{variants.control || null}</>\n}\n\n/**\n * Hook for conditional experiment logic\n * \n * @example\n * const { variant, isControl } = useExperimentVariant('pricing-test')\n * \n * return isControl \n * ? <OldPricing />\n * : <NewPricing showAnnual={variant === 'annual_first'} />\n */\nexport function useExperimentVariant(experimentId: string) {\n return useSignalExperiment(experimentId)\n}\n\n/**\n * Component for tracking experiment conversions\n * Wraps interactive elements to track when they convert\n * \n * @example\n * <SignalExperiment experimentId=\"signup-button\" variants={{\n * control: (\n * <ExperimentConversion experimentId=\"signup-button\" outcomeType=\"click\">\n * <Button>Sign Up</Button>\n * </ExperimentConversion>\n * ),\n * variant_a: (\n * <ExperimentConversion experimentId=\"signup-button\" outcomeType=\"click\">\n * <Button variant=\"large\">Join Now - It's Free!</Button>\n * </ExperimentConversion>\n * ),\n * }} />\n */\nexport function ExperimentConversion({\n experimentId,\n outcomeType = 'click',\n value,\n children,\n}: {\n experimentId: string\n outcomeType?: string\n value?: number\n children: React.ReactElement<{ onClick?: (e: React.MouseEvent) => void }>\n}) {\n const trackEvent = useSignalEvent()\n const { variant } = useSignalExperiment(experimentId)\n\n const handleInteraction = () => {\n trackEvent({\n event_type: 'experiment',\n event_name: 'conversion',\n event_data: {\n experiment_id: experimentId,\n variant_key: variant,\n outcome_type: outcomeType,\n value,\n },\n })\n }\n\n return React.cloneElement(children, {\n onClick: (e: React.MouseEvent) => {\n handleInteraction()\n // Call original onClick if exists\n if ((children.props as { onClick?: (e: React.MouseEvent) => void }).onClick) {\n (children.props as { onClick?: (e: React.MouseEvent) => void }).onClick!(e)\n }\n },\n })\n}\n"]}
1
+ {"version":3,"sources":["../src/signal/SignalExperiment.tsx"],"names":["useSignalExperiment","useSignalEvent","useEffect","jsx","Fragment","React"],"mappings":";;;;;;;;;;AAgDO,SAAS,gBAAA,CAAiB;AAAA,EAC/B,YAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,eAAA,GAAkB,IAAA;AAAA,EAClB;AACF,CAAA,EAA0B;AACxB,EAAA,MAAM,EAAE,UAAA,EAAY,OAAA,EAAS,SAAA,EAAU,GAAIA,qCAAoB,YAAY,CAAA;AAC3E,EAAA,MAAM,aAAaC,+BAAA,EAAe;AAGlC,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,mBAAmB,OAAA,EAAS;AAC9B,MAAA,UAAA,CAAW;AAAA,QACT,UAAA,EAAY,YAAA;AAAA,QACZ,UAAA,EAAY,YAAA;AAAA,QACZ,UAAA,EAAY;AAAA,UACV,aAAA,EAAe,YAAA;AAAA,UACf,WAAA,EAAa;AAAA;AACf,OACD,CAAA;AAAA,IACH;AAAA,EACF,GAAG,CAAC,YAAA,EAAc,OAAA,EAAS,eAAA,EAAiB,UAAU,CAAC,CAAA;AAGvD,EAAA,IAAI,QAAA,EAAU;AACZ,IAAA,uBAAOC,cAAA,CAAAC,mBAAA,EAAA,EAAG,mBAAS,EAAE,OAAA,EAAS,WAAW,SAAA,EAAW,SAAA,EAAW,CAAA,EAAE,CAAA;AAAA,EACnE;AAGA,EAAA,MAAM,kBAAkB,OAAA,IAAW,SAAA;AACnC,EAAA,MAAM,OAAA,GAAU,SAAS,eAAe,CAAA;AAExC,EAAA,IAAI,YAAY,MAAA,EAAW;AACzB,IAAA,6DAAU,QAAA,EAAA,OAAA,EAAQ,CAAA;AAAA,EACpB;AAGA,EAAA,IAAI,QAAA,EAAU;AACZ,IAAA,6DAAU,QAAA,EAAA,QAAA,EAAS,CAAA;AAAA,EACrB;AAEA,EAAA,uBAAOD,cAAA,CAAAC,mBAAA,EAAA,EAAG,QAAA,EAAA,QAAA,CAAS,OAAA,IAAW,IAAA,EAAK,CAAA;AACrC;AAYO,SAAS,qBAAqB,YAAA,EAAsB;AACzD,EAAA,OAAOJ,qCAAoB,YAAY,CAAA;AACzC;AAoBO,SAAS,oBAAA,CAAqB;AAAA,EACnC,YAAA;AAAA,EACA,WAAA,GAAc,OAAA;AAAA,EACd,KAAA;AAAA,EACA;AACF,CAAA,EAKG;AACD,EAAA,MAAM,aAAaC,+BAAA,EAAe;AAClC,EAAA,MAAM,EAAE,OAAA,EAAQ,GAAID,oCAAA,CAAoB,YAAY,CAAA;AAEpD,EAAA,MAAM,oBAAoB,MAAM;AAC9B,IAAA,UAAA,CAAW;AAAA,MACT,UAAA,EAAY,YAAA;AAAA,MACZ,UAAA,EAAY,YAAA;AAAA,MACZ,UAAA,EAAY;AAAA,QACV,aAAA,EAAe,YAAA;AAAA,QACf,WAAA,EAAa,OAAA;AAAA,QACb,YAAA,EAAc,WAAA;AAAA,QACd;AAAA;AACF,KACD,CAAA;AAAA,EACH,CAAA;AAEA,EAAA,OAAOK,sBAAA,CAAM,aAAa,QAAA,EAAU;AAAA,IAClC,OAAA,EAAS,CAAC,CAAA,KAAwB;AAChC,MAAA,iBAAA,EAAkB;AAElB,MAAA,IAAK,QAAA,CAAS,MAAsD,OAAA,EAAS;AAC3E,QAAC,QAAA,CAAS,KAAA,CAAsD,OAAA,CAAS,CAAC,CAAA;AAAA,MAC5E;AAAA,IACF;AAAA,GACD,CAAA;AACH","file":"chunk-FKFVN3GT.js","sourcesContent":["/**\n * @sonordev/site-kit/signal - SignalExperiment\n * \n * A/B test component that renders different variants based on Signal assignment.\n * Uses Thompson Sampling (Bayesian bandit) for optimization.\n */\n\n'use client'\n\nimport React, { useMemo, useEffect } from 'react'\nimport { useSignalExperiment, useSignalEvent } from './SignalBridge'\n\ninterface SignalExperimentProps {\n /** Unique experiment ID */\n experimentId: string\n \n /** Variants to test - keys are variant names, values are React nodes */\n variants: Record<string, React.ReactNode>\n \n /** Fallback content if no assignment (defaults to 'control' variant) */\n fallback?: React.ReactNode\n \n /** Track impression automatically */\n trackImpression?: boolean\n \n /** Children function for more control */\n children?: (props: { variant: string; isControl: boolean }) => React.ReactNode\n}\n\n/**\n * Renders different content variants based on Signal's A/B assignment.\n * \n * @example\n * // Simple variant switching\n * <SignalExperiment experimentId=\"hero-cta\" variants={{\n * control: <Button>Get Started</Button>,\n * variant_a: <Button variant=\"primary\">Start Free Trial</Button>,\n * variant_b: <Button variant=\"secondary\">Book a Demo</Button>,\n * }} />\n * \n * @example\n * // With render prop for more control\n * <SignalExperiment experimentId=\"pricing-layout\">\n * {({ variant, isControl }) => (\n * <PricingSection layout={isControl ? 'cards' : 'table'} />\n * )}\n * </SignalExperiment>\n */\nexport function SignalExperiment({\n experimentId,\n variants,\n fallback,\n trackImpression = true,\n children,\n}: SignalExperimentProps) {\n const { assignment, variant, isControl } = useSignalExperiment(experimentId)\n const trackEvent = useSignalEvent()\n \n // Track impression when variant is rendered\n useEffect(() => {\n if (trackImpression && variant) {\n trackEvent({\n event_type: 'experiment',\n event_name: 'impression',\n event_data: {\n experiment_id: experimentId,\n variant_key: variant,\n },\n })\n }\n }, [experimentId, variant, trackImpression, trackEvent])\n \n // If using render prop\n if (children) {\n return <>{children({ variant: variant || 'control', isControl })}</>\n }\n \n // Determine what to render\n const selectedVariant = variant || 'control'\n const content = variants[selectedVariant]\n \n if (content !== undefined) {\n return <>{content}</>\n }\n \n // Fallback to provided fallback or control\n if (fallback) {\n return <>{fallback}</>\n }\n \n return <>{variants.control || null}</>\n}\n\n/**\n * Hook for conditional experiment logic\n * \n * @example\n * const { variant, isControl } = useExperimentVariant('pricing-test')\n * \n * return isControl \n * ? <OldPricing />\n * : <NewPricing showAnnual={variant === 'annual_first'} />\n */\nexport function useExperimentVariant(experimentId: string) {\n return useSignalExperiment(experimentId)\n}\n\n/**\n * Component for tracking experiment conversions\n * Wraps interactive elements to track when they convert\n * \n * @example\n * <SignalExperiment experimentId=\"signup-button\" variants={{\n * control: (\n * <ExperimentConversion experimentId=\"signup-button\" outcomeType=\"click\">\n * <Button>Sign Up</Button>\n * </ExperimentConversion>\n * ),\n * variant_a: (\n * <ExperimentConversion experimentId=\"signup-button\" outcomeType=\"click\">\n * <Button variant=\"large\">Join Now - It's Free!</Button>\n * </ExperimentConversion>\n * ),\n * }} />\n */\nexport function ExperimentConversion({\n experimentId,\n outcomeType = 'click',\n value,\n children,\n}: {\n experimentId: string\n outcomeType?: string\n value?: number\n children: React.ReactElement<{ onClick?: (e: React.MouseEvent) => void }>\n}) {\n const trackEvent = useSignalEvent()\n const { variant } = useSignalExperiment(experimentId)\n\n const handleInteraction = () => {\n trackEvent({\n event_type: 'experiment',\n event_name: 'conversion',\n event_data: {\n experiment_id: experimentId,\n variant_key: variant,\n outcome_type: outcomeType,\n value,\n },\n })\n }\n\n return React.cloneElement(children, {\n onClick: (e: React.MouseEvent) => {\n handleInteraction()\n // Call original onClick if exists\n if ((children.props as { onClick?: (e: React.MouseEvent) => void }).onClick) {\n (children.props as { onClick?: (e: React.MouseEvent) => void }).onClick!(e)\n }\n },\n })\n}\n"]}
@@ -1,11 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var chunkK4TCEAUX_js = require('./chunk-K4TCEAUX.js');
3
+ var chunkKR7ATPAN_js = require('./chunk-KR7ATPAN.js');
4
+ var chunkZR43XFUM_js = require('./chunk-ZR43XFUM.js');
4
5
  var chunkLVGSOW2F_js = require('./chunk-LVGSOW2F.js');
5
6
  var chunkH6AU3WKF_js = require('./chunk-H6AU3WKF.js');
6
- var chunkYN7QHLWF_js = require('./chunk-YN7QHLWF.js');
7
- var chunkR7GHP3FY_js = require('./chunk-R7GHP3FY.js');
8
- var chunkH5NBFNND_js = require('./chunk-H5NBFNND.js');
7
+ var chunkBBBJHYPH_js = require('./chunk-BBBJHYPH.js');
8
+ var chunkJONWE26J_js = require('./chunk-JONWE26J.js');
9
+ var chunkUZKXOZHR_js = require('./chunk-UZKXOZHR.js');
9
10
  var fs = require('fs');
10
11
  var path = require('path');
11
12
  var react = require('react');
@@ -44,7 +45,7 @@ async function apiGet(endpoint, options) {
44
45
  }
45
46
  }
46
47
  var getLLMsData = react.cache(async (projectId, site, fresh) => {
47
- const data = await apiGet(chunkYN7QHLWF_js.withSiteParam(`/api/public/llms/data`, site), { fresh });
48
+ const data = await apiGet(chunkBBBJHYPH_js.withSiteParam(`/api/public/llms/data`, site), { fresh });
48
49
  if (data?.meta && data.meta.contract_version != null && data.meta.contract_version !== chunkH6AU3WKF_js.LLM_GEO_CONTRACT_VERSION && typeof process !== "undefined" && process.env.NODE_ENV !== "production") {
49
50
  console.warn(
50
51
  `[site-kit/llms] API meta.contract_version (${data.meta.contract_version}) !== site-kit LLM_GEO_CONTRACT_VERSION (${chunkH6AU3WKF_js.LLM_GEO_CONTRACT_VERSION}).`
@@ -57,17 +58,17 @@ var getBusinessInfo = react.cache(async (projectId) => {
57
58
  return result?.business || null;
58
59
  });
59
60
  var getServices = react.cache(async (projectId, site) => {
60
- const result = await apiGet(chunkYN7QHLWF_js.withSiteParam(`/api/public/llms/services`, site));
61
+ const result = await apiGet(chunkBBBJHYPH_js.withSiteParam(`/api/public/llms/services`, site));
61
62
  return result?.services || [];
62
63
  });
63
64
  var getFAQItems = react.cache(async (projectId, limit, site) => {
64
65
  const endpoint = limit ? `/api/public/llms/faq?limit=${limit}` : "/api/public/llms/faq";
65
- const result = await apiGet(chunkYN7QHLWF_js.withSiteParam(endpoint, site));
66
+ const result = await apiGet(chunkBBBJHYPH_js.withSiteParam(endpoint, site));
66
67
  return result?.faq || [];
67
68
  });
68
69
  var getPageSummaries = react.cache(async (projectId, limit, site) => {
69
70
  const endpoint = limit ? `/api/public/llms/pages?limit=${limit}` : "/api/public/llms/pages";
70
- const result = await apiGet(chunkYN7QHLWF_js.withSiteParam(endpoint, site));
71
+ const result = await apiGet(chunkBBBJHYPH_js.withSiteParam(endpoint, site));
71
72
  return result?.pages || [];
72
73
  });
73
74
  async function getOptimizedLLMsTxt(options) {
@@ -81,7 +82,7 @@ async function getOptimizedLLMsTxt(options) {
81
82
  if (options?.full) params.set("full", "true");
82
83
  if (options?.publicSummaryOnly) params.set("publicSummaryOnly", "true");
83
84
  const qs = params.toString();
84
- const endpoint = chunkYN7QHLWF_js.withSiteParam(`/api/public/llms/txt${qs ? `?${qs}` : ""}`, options?.site);
85
+ const endpoint = chunkBBBJHYPH_js.withSiteParam(`/api/public/llms/txt${qs ? `?${qs}` : ""}`, options?.site);
85
86
  try {
86
87
  const response = await chunkLVGSOW2F_js.freshFetch(`${apiUrl}${endpoint}`, {
87
88
  method: "GET",
@@ -114,17 +115,17 @@ var RELATIVE_LINK_TARGET = /\]\((\/(?!\/)[^)\s]*)/g;
114
115
  var TRAILING_PUNCTUATION = /[.,;:!?]+$/;
115
116
  function applyTrailingSlashToSiteLinks(markdown, site, trailingSlash) {
116
117
  if (!trailingSlash || !markdown) return markdown;
117
- const siteHost = site ? chunkK4TCEAUX_js.linkClassificationHost(site) : "";
118
- let out = markdown.replace(RELATIVE_LINK_TARGET, (_match, path) => `](${chunkR7GHP3FY_js.applyTrailingSlash(path, true)}`);
118
+ const siteHost = site ? chunkKR7ATPAN_js.linkClassificationHost(site) : "";
119
+ let out = markdown.replace(RELATIVE_LINK_TARGET, (_match, path) => `](${chunkJONWE26J_js.applyTrailingSlash(path, true)}`);
119
120
  if (!siteHost) return out;
120
121
  out = out.replace(ABSOLUTE_URL, (raw) => {
121
122
  const punctuation = raw.match(TRAILING_PUNCTUATION)?.[0] ?? "";
122
123
  const url = punctuation ? raw.slice(0, -punctuation.length) : raw;
123
124
  const match = /^(https?:\/\/[^/?#]+)(.*)$/.exec(url);
124
- if (!match || chunkK4TCEAUX_js.linkClassificationHost(match[1]) !== siteHost) return raw;
125
+ if (!match || chunkKR7ATPAN_js.linkClassificationHost(match[1]) !== siteHost) return raw;
125
126
  const [, origin, rest] = match;
126
127
  if (!rest.startsWith("/")) return raw;
127
- return `${origin}${chunkR7GHP3FY_js.applyTrailingSlash(rest, true)}${punctuation}`;
128
+ return `${origin}${chunkJONWE26J_js.applyTrailingSlash(rest, true)}${punctuation}`;
128
129
  });
129
130
  return out;
130
131
  }
@@ -177,6 +178,7 @@ async function generateLLMsTxt(options) {
177
178
  maxPortfolioItems = 20,
178
179
  maxEntities = 50,
179
180
  maxArticlesPerCluster = 5,
181
+ publication = {},
180
182
  customSections = [],
181
183
  optionalPagePaths = [],
182
184
  linkToFullLlms = false,
@@ -213,7 +215,7 @@ async function generateLLMsTxt(options) {
213
215
  headerDisclaimer
214
216
  );
215
217
  const baseUrl = resolveBaseUrl(baseUrlOption, data.business?.website);
216
- const trailingSlash = chunkR7GHP3FY_js.resolveTrailingSlash(trailingSlashOption);
218
+ const trailingSlash = chunkJONWE26J_js.resolveTrailingSlash(trailingSlashOption);
217
219
  const sections = [];
218
220
  const sectionNames = [];
219
221
  const attemptedSections = [];
@@ -318,7 +320,7 @@ async function generateLLMsTxt(options) {
318
320
  if (includeEntities) {
319
321
  attemptedSections.push("knowledge-graph");
320
322
  optionalFetches.push(
321
- import('./server-api-IWTZ7C3O.js').then(async ({ getEntities, getPrimaryEntity }) => {
323
+ import('./server-api-OC5JNK6R.js').then(async ({ getEntities, getPrimaryEntity }) => {
322
324
  const [entities, primaryEntity] = await Promise.all([
323
325
  getEntities().then((e) => e.slice(0, maxEntities)),
324
326
  getPrimaryEntity()
@@ -333,7 +335,7 @@ async function generateLLMsTxt(options) {
333
335
  }
334
336
  attemptedSections.push("topic-clusters");
335
337
  optionalFetches.push(
336
- import('./blog/server.js').then(async ({ getTopicClusters }) => {
338
+ import('./articles/server.js').then(async ({ getTopicClusters }) => {
337
339
  const clusters = await getTopicClusters({ site });
338
340
  return { kind: "clusters", clusters };
339
341
  }).catch((err) => {
@@ -364,14 +366,14 @@ async function generateLLMsTxt(options) {
364
366
  clusterLines.push(`Service page: ${baseUrl}${cluster.target_service_page}`);
365
367
  }
366
368
  if (cluster.pillar) {
367
- const pillarUrl = cluster.pillar.slug ? `${baseUrl}/blog/${cluster.pillar.slug}` : "";
369
+ const pillarUrl = cluster.pillar.slug ? chunkZR43XFUM_js.resolveArticleUrl(cluster.pillar, { ...publication, siteUrl: baseUrl }) : "";
368
370
  clusterLines.push(`Pillar: [${cluster.pillar.title || cluster.cluster_name}](${pillarUrl})`);
369
371
  }
370
372
  const supports = cluster.supports || [];
371
373
  if (supports.length > 0) {
372
374
  const sorted = [...supports].sort((a, b) => (b.published_at || "").localeCompare(a.published_at || "")).slice(0, maxArticlesPerCluster);
373
375
  for (const article of sorted) {
374
- const articleUrl = article.slug ? `${baseUrl}/blog/${article.slug}` : "";
376
+ const articleUrl = article.slug ? chunkZR43XFUM_js.resolveArticleUrl(article, { ...publication, siteUrl: baseUrl }) : "";
375
377
  const dateStr = article.published_at ? ` (${new Date(article.published_at).toLocaleDateString("en-US", { month: "short", day: "numeric", year: "numeric" })})` : "";
376
378
  clusterLines.push(`- [${article.title}](${articleUrl})${dateStr}`);
377
379
  }
@@ -603,7 +605,7 @@ function generateOptionalPagesSection(paths, pages, baseUrl, publicSummaryOnly,
603
605
  continue;
604
606
  }
605
607
  const title = key.split("/").filter(Boolean).pop() || key;
606
- lines.push(`- [${title}](${baseUrl}${chunkR7GHP3FY_js.applyTrailingSlash(key, trailingSlash)})`);
608
+ lines.push(`- [${title}](${baseUrl}${chunkJONWE26J_js.applyTrailingSlash(key, trailingSlash)})`);
607
609
  }
608
610
  return seen.size > 0 ? lines.join("\n") : null;
609
611
  }
@@ -650,13 +652,14 @@ async function writeLLMsTxtToPublic(options = {}) {
650
652
  apiKey,
651
653
  fallbackToLocal = true,
652
654
  site,
655
+ publication,
653
656
  trailingSlash: trailingSlashOption,
654
657
  getLocalData,
655
658
  publicSummaryOnly,
656
659
  customSections
657
660
  } = options;
658
- const trailingSlash = chunkR7GHP3FY_js.resolveTrailingSlash(trailingSlashOption);
659
- const linkHost = chunkH5NBFNND_js.resolveSiteHost(site);
661
+ const trailingSlash = chunkJONWE26J_js.resolveTrailingSlash(trailingSlashOption);
662
+ const linkHost = chunkUZKXOZHR_js.resolveSiteHost(site);
660
663
  const shapeLinks = (md) => applyTrailingSlashToSiteLinks(md, linkHost, trailingSlash);
661
664
  const cwd = typeof process !== "undefined" ? process.cwd() : ".";
662
665
  const outPath = path.join(cwd, outputDir);
@@ -668,6 +671,7 @@ async function writeLLMsTxtToPublic(options = {}) {
668
671
  const apiOptions = { apiUrl, apiKey, publicSummaryOnly, site };
669
672
  const genOpts = {
670
673
  site,
674
+ publication,
671
675
  trailingSlash,
672
676
  getLocalData,
673
677
  pageListNotesFromPublicSummaryOnly: !!publicSummaryOnly,
@@ -763,5 +767,5 @@ exports.getOptimizedLLMsTxt = getOptimizedLLMsTxt;
763
767
  exports.getPageSummaries = getPageSummaries;
764
768
  exports.getServices = getServices;
765
769
  exports.writeLLMsTxtToPublic = writeLLMsTxtToPublic;
766
- //# sourceMappingURL=chunk-7TC3GRXQ.js.map
767
- //# sourceMappingURL=chunk-7TC3GRXQ.js.map
770
+ //# sourceMappingURL=chunk-G3L26XQ7.js.map
771
+ //# sourceMappingURL=chunk-G3L26XQ7.js.map