@sonordev/site-kit 8.8.1 → 8.10.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 (468) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +9 -0
  3. package/agent-manifest.json +49 -42
  4. package/dist/AddressAutocomplete-LQS6GQ4R.js +241 -0
  5. package/dist/AnalyticsProvider-JWS7BLFY.js +19 -0
  6. package/dist/{ArticleViewTracker-PV2RD3P6.js → ArticleViewTracker-CDPVMUAO.js} +11 -10
  7. package/dist/{BlocksPopup-NEEFV2L3.js → BlocksPopup-C5PNJ7U6.js} +4 -5
  8. package/dist/ChatWidget-HEPOE3YC.js +30 -0
  9. package/dist/{FileField-MJ3RCNFJ.js → FileField-6R5LS5NU.js} +1 -3
  10. package/dist/{FormSpotlight-NQPQFZS7.js → FormSpotlight-2BSE7PD2.js} +5 -4
  11. package/dist/{FormStage-4T5PJR5K.js → FormStage-3G46OPPO.js} +5 -4
  12. package/dist/ManagedForm-LTXEU25N.js +29 -0
  13. package/dist/{ManagedNewsletterForm-TUYGN6O3.js → ManagedNewsletterForm-WE6P5DMV.js} +21 -11
  14. package/dist/{SignalCore-OW3YIH6M.js → SignalCore-IP7FE6SN.js} +90 -36
  15. package/dist/{SiteChat-XMKHBSEK.js → SiteChat-3FQYMHCP.js} +2 -2
  16. package/dist/{SiteDesignReporter-BRH7ORQS.js → SiteDesignReporter-HGTX4FX2.js} +5 -6
  17. package/dist/SitePopups-V7MCNSGE.js +19 -0
  18. package/dist/SitemapSync-OAJ7SIET.js +7 -0
  19. package/dist/SitemapSync.d.ts +1 -1
  20. package/dist/_client/booking-widget.d.ts +1 -1
  21. package/dist/_client/booking-widget.js +6 -7
  22. package/dist/_client/reviewed-signal-experiment.d.ts +9 -0
  23. package/dist/_client/reviewed-signal-experiment.js +89 -0
  24. package/dist/_client/testimonial-section.d.ts +1 -1
  25. package/dist/admin-auth/index.d.ts +3 -3
  26. package/dist/affiliates/AffiliatesWidget.d.ts +1 -1
  27. package/dist/affiliates/api.d.ts +1 -1
  28. package/dist/affiliates/index.d.ts +6 -6
  29. package/dist/affiliates/index.js +1 -3
  30. package/dist/affiliates/useAffiliates.d.ts +1 -1
  31. package/dist/analytics/AnalyticsProvider.d.ts +1 -1
  32. package/dist/analytics/dispatch.d.ts +1 -1
  33. package/dist/analytics/index.d.ts +6 -6
  34. package/dist/analytics/index.js +22 -12
  35. package/dist/analytics/publication-cta.d.ts +1 -1
  36. package/dist/analytics/send-gate.d.ts +8 -4
  37. package/dist/api-X6N6V2H3.js +5 -0
  38. package/dist/articles/Article.d.ts +1 -1
  39. package/dist/articles/ArticleFAQ.d.ts +1 -1
  40. package/dist/articles/ArticleFaqSection.d.ts +1 -1
  41. package/dist/articles/ArticleList.d.ts +1 -1
  42. package/dist/articles/ArticleViewTracker.d.ts +1 -1
  43. package/dist/articles/AuthorCard.d.ts +1 -1
  44. package/dist/articles/AuthorPage.d.ts +1 -1
  45. package/dist/articles/ClusterLandingPage.d.ts +1 -1
  46. package/dist/articles/ClusterNavigation.d.ts +1 -1
  47. package/dist/articles/ManagedNewsletterForm.d.ts +2 -2
  48. package/dist/articles/NewsletterShell.d.ts +1 -1
  49. package/dist/articles/NewsletterWidget.d.ts +1 -1
  50. package/dist/articles/PublicationLayout.d.ts +1 -1
  51. package/dist/articles/PublicationSidebar.d.ts +1 -1
  52. package/dist/articles/RelatedPosts.d.ts +1 -1
  53. package/dist/articles/ServiceCallout.d.ts +1 -1
  54. package/dist/articles/TableOfContents.d.ts +1 -1
  55. package/dist/articles/article-photos.d.ts +1 -1
  56. package/dist/articles/article-styles.d.ts +1 -1
  57. package/dist/articles/article-tables.d.ts +1 -1
  58. package/dist/articles/artwork.d.ts +1 -1
  59. package/dist/articles/author-schema.d.ts +1 -1
  60. package/dist/articles/author-social.d.ts +1 -1
  61. package/dist/articles/excerpt.d.ts +1 -1
  62. package/dist/articles/index.d.ts +1 -1
  63. package/dist/articles/index.js +3 -3
  64. package/dist/articles/news-sitemap.d.ts +1 -1
  65. package/dist/articles/processArticleHtml.d.ts +1 -1
  66. package/dist/articles/public-reads.d.ts +1 -1
  67. package/dist/articles/reading-time.d.ts +1 -1
  68. package/dist/articles/routes.d.ts +1 -1
  69. package/dist/articles/server-core.d.ts +1 -1
  70. package/dist/articles/server-ui.d.ts +1 -1
  71. package/dist/articles/server-ui.js +6 -6
  72. package/dist/articles/server.d.ts +1 -1
  73. package/dist/articles/server.js +5 -5
  74. package/dist/articles/types.d.ts +1 -1
  75. package/dist/articles/widget-styles.d.ts +1 -1
  76. package/dist/brand/extract-brand-profile.d.ts +1 -1
  77. package/dist/chat/ChatWidget.d.ts +1 -1
  78. package/dist/chat/EchoUiActions.d.ts +1 -1
  79. package/dist/chat/SiteChat.d.ts +2 -2
  80. package/dist/chat/chat-messages.d.ts +1 -1
  81. package/dist/chat/index.d.ts +7 -7
  82. package/dist/chat/index.js +17 -9
  83. package/dist/chat/launcher-placement.d.ts +1 -1
  84. package/dist/{chunk-OPUY4RS6.js → chunk-2LBKIE2K.js} +2 -1
  85. package/dist/chunk-3RBOES2C.js +36 -0
  86. package/dist/{chunk-XIDWNXZN.js → chunk-3W3MN6Z7.js} +2 -2
  87. package/dist/{chunk-CVADNHJ4.js → chunk-3WMNHFZH.js} +9 -0
  88. package/dist/chunk-533ZSRJF.js +147 -0
  89. package/dist/{chunk-UPFU63L4.js → chunk-55GFMOI6.js} +1 -1
  90. package/dist/chunk-5IVD6G77.js +37 -0
  91. package/dist/chunk-6CIO4X6P.js +77 -0
  92. package/dist/{chunk-G7BRCSV6.js → chunk-727353NY.js} +11 -7
  93. package/dist/{chunk-PSS6M4CG.js → chunk-75N2WALV.js} +2 -2
  94. package/dist/{chunk-ZQSCMYZO.js → chunk-7643MCD2.js} +6 -3
  95. package/dist/chunk-7IZUUXXO.js +1 -0
  96. package/dist/{chunk-GXWM5KNS.js → chunk-7PWXPN53.js} +40 -45
  97. package/dist/{chunk-C7TLGL3R.js → chunk-7VMA3KCN.js} +30 -4
  98. package/dist/{chunk-IDC5CVBR.js → chunk-A66TIJWU.js} +1 -1
  99. package/dist/chunk-ACZ5JNSL.js +78 -0
  100. package/dist/chunk-AG2RDHYZ.js +45 -0
  101. package/dist/{chunk-LNSNA3W4.js → chunk-C4XK472G.js} +4 -3
  102. package/dist/chunk-D4M5K6JN.js +25 -0
  103. package/dist/{chunk-F6WLHVMQ.js → chunk-D4R3FQED.js} +1 -1
  104. package/dist/{chunk-URLTBVRX.js → chunk-DW5X4BC7.js} +3 -3
  105. package/dist/chunk-FRY6PBT6.js +31 -0
  106. package/dist/{chunk-JYITKUUB.js → chunk-G5WUX7VE.js} +1 -1
  107. package/dist/{chunk-VPZJ7ZTL.js → chunk-HHEDRZOJ.js} +1 -1
  108. package/dist/{chunk-2WM4TNDF.js → chunk-HLN7A4GL.js} +1 -1
  109. package/dist/{chunk-DYROJGI2.js → chunk-HNVLINPI.js} +1 -1
  110. package/dist/{chunk-NFGAXWCN.js → chunk-J4R7MHV2.js} +31 -13
  111. package/dist/chunk-JT7GHHMV.js +56 -0
  112. package/dist/chunk-KMNHNCVG.js +20 -0
  113. package/dist/chunk-KQKUXIUD.js +25 -0
  114. package/dist/chunk-MDBXGN6W.js +13 -0
  115. package/dist/{chunk-IWNJCRXW.js → chunk-MIKVCYGX.js} +125 -118
  116. package/dist/{chunk-GQN4BGK6.js → chunk-MKU5ZORB.js} +2 -31
  117. package/dist/chunk-MOACHHOJ.js +20 -0
  118. package/dist/{chunk-M5JIHQ42.js → chunk-NBNDH2J6.js} +2 -2
  119. package/dist/{chunk-YRQS7VAH.js → chunk-NH7K252M.js} +6 -4
  120. package/dist/chunk-NHDRA4Y5.js +6 -0
  121. package/dist/{chunk-SLFYTELD.js → chunk-NWEIHCSE.js} +3 -1
  122. package/dist/{chunk-EATJPSTS.js → chunk-O5LQUBBN.js} +1 -1
  123. package/dist/chunk-OCNODBH4.js +2 -0
  124. package/dist/{chunk-TP32MRXV.js → chunk-OEHIXCYS.js} +2 -2
  125. package/dist/{chunk-Y6SHFILE.js → chunk-OEOSR5EG.js} +1 -1
  126. package/dist/{chunk-KG5IEV7I.js → chunk-ORSQKTMN.js} +1 -1
  127. package/dist/{chunk-SVHPILS3.js → chunk-P7S45DD7.js} +1 -1
  128. package/dist/chunk-PVY7X5UR.js +21 -0
  129. package/dist/{chunk-HN7GVGWC.js → chunk-Q2OE32TH.js} +3 -3
  130. package/dist/chunk-RMPXSEEU.js +62 -0
  131. package/dist/{chunk-THXELZTQ.js → chunk-RUV6DCKL.js} +1 -1
  132. package/dist/{chunk-2WDWQI7K.js → chunk-RYR6N4X4.js} +1 -1
  133. package/dist/{chunk-ODOV76VW.js → chunk-STIVFCWM.js} +1 -1
  134. package/dist/{chunk-6BFQI3ZE.js → chunk-TLKLHSRJ.js} +2 -2
  135. package/dist/chunk-TPHOIE4I.js +73 -0
  136. package/dist/{chunk-SBPUFTMP.js → chunk-UMF5OILQ.js} +2 -2
  137. package/dist/chunk-WYNDBJG7.js +66 -0
  138. package/dist/{chunk-OWZWRP7Y.js → chunk-XAPSYDVT.js} +2 -2
  139. package/dist/{chunk-PAYCK7FC.js → chunk-XJZLXUTG.js} +1 -1
  140. package/dist/{chunk-YEX5RAEU.js → chunk-Y7DZ2ND2.js} +38 -27
  141. package/dist/{chunk-AYQEIMGS.js → chunk-YJ6PRJ7Y.js} +103 -22
  142. package/dist/chunk-Z4XJOVQX.js +9 -0
  143. package/dist/{chunk-6DXQHNZK.js → chunk-Z62W7Q3T.js} +1 -1
  144. package/dist/client/index.d.ts +8 -8
  145. package/dist/client/index.js +9 -8
  146. package/dist/config/index.d.ts +1 -1
  147. package/dist/contracts/broadcast-layouts.d.ts +8 -0
  148. package/dist/contracts/crm-disposition.d.ts +87 -0
  149. package/dist/contracts/decision-roles.d.ts +39 -0
  150. package/dist/contracts/entries.d.ts +1 -1
  151. package/dist/contracts/funnels.d.ts +85 -2
  152. package/dist/contracts/portfolio.d.ts +1 -1
  153. package/dist/contracts/publication-branding.d.ts +3 -3
  154. package/dist/contracts/resonance-constants.d.ts +4 -0
  155. package/dist/contracts/resonance.d.ts +8461 -0
  156. package/dist/contracts/signal-experiments.d.ts +219 -0
  157. package/dist/contracts/site-edit.d.ts +2 -2
  158. package/dist/contracts/sites.d.ts +1 -1
  159. package/dist/contracts/slots.d.ts +2 -2
  160. package/dist/contracts/wire-schema.d.ts +36 -0
  161. package/dist/controls-KLG6VQLO.js +14 -0
  162. package/dist/cta-bar/CtaBar.d.ts +1 -1
  163. package/dist/cta-bar/client.js +3 -2
  164. package/dist/cta-bar/index.d.ts +4 -4
  165. package/dist/cta-bar/index.js +4 -3
  166. package/dist/fleet/FleetHeartbeat.d.ts +2 -2
  167. package/dist/fleet/contract.d.ts +1 -1
  168. package/dist/fleet/heartbeat.d.ts +2 -2
  169. package/dist/fleet/index.d.ts +6 -6
  170. package/dist/fleet/index.js +4 -5
  171. package/dist/forms/AddressAutocomplete.d.ts +20 -0
  172. package/dist/forms/FileField.d.ts +1 -1
  173. package/dist/forms/FormClient.d.ts +4 -3
  174. package/dist/forms/FormEnhancer.d.ts +3 -2
  175. package/dist/forms/FormField.d.ts +3 -1
  176. package/dist/forms/FormSpotlight.d.ts +2 -2
  177. package/dist/forms/FormStage.d.ts +2 -2
  178. package/dist/forms/ManagedForm.d.ts +2 -2
  179. package/dist/forms/PrivateFileField.d.ts +1 -1
  180. package/dist/forms/ServerForm.d.ts +5 -4
  181. package/dist/forms/StaticForm.d.ts +1 -1
  182. package/dist/forms/contract.d.ts +1 -1
  183. package/dist/forms/controls.d.ts +5 -0
  184. package/dist/forms/experience-plan.d.ts +1 -1
  185. package/dist/forms/field-autocomplete.d.ts +1 -1
  186. package/dist/forms/field-controls.d.ts +4 -2
  187. package/dist/forms/field-rules.d.ts +1 -1
  188. package/dist/forms/form-dom-values.d.ts +1 -1
  189. package/dist/forms/index.d.ts +18 -18
  190. package/dist/forms/index.js +21 -11
  191. package/dist/forms/normalize-config.d.ts +1 -1
  192. package/dist/forms/server.d.ts +4 -4
  193. package/dist/forms/server.js +5 -5
  194. package/dist/forms/static.d.ts +2 -2
  195. package/dist/forms/static.js +2 -2
  196. package/dist/forms/submitForm.d.ts +2 -2
  197. package/dist/forms/tracking-session.d.ts +1 -1
  198. package/dist/forms/types.d.ts +9 -0
  199. package/dist/forms/useForm.d.ts +2 -2
  200. package/dist/forms/webmcp.d.ts +2 -2
  201. package/dist/images/api.d.ts +1 -1
  202. package/dist/images/index.d.ts +6 -6
  203. package/dist/images/index.js +2 -4
  204. package/dist/images/server.d.ts +2 -2
  205. package/dist/index.d.ts +13 -13
  206. package/dist/index.js +1 -1
  207. package/dist/landing/contract.d.ts +1 -1
  208. package/dist/landing/contract.js +2 -1
  209. package/dist/landing/index.d.ts +3 -3
  210. package/dist/landing/index.js +3 -2
  211. package/dist/landing/managed-server.d.ts +2 -2
  212. package/dist/landing/managed.d.ts +10 -2
  213. package/dist/landing/server.d.ts +7 -7
  214. package/dist/landing/server.js +13 -8
  215. package/dist/layout/AiDiscoveryLinks.d.ts +1 -1
  216. package/dist/layout/SiteKitClientProviders.d.ts +1 -1
  217. package/dist/layout/SiteKitLayout.d.ts +2 -2
  218. package/dist/layout/client.d.ts +1 -1
  219. package/dist/layout/client.js +15 -11
  220. package/dist/layout/index.d.ts +5 -5
  221. package/dist/layout/index.js +17 -13
  222. package/dist/layout/types.d.ts +2 -2
  223. package/dist/llms/AEOComponents.d.ts +1 -1
  224. package/dist/llms/SpeakableSchema.d.ts +1 -1
  225. package/dist/llms/api.d.ts +1 -1
  226. package/dist/llms/client.d.ts +3 -3
  227. package/dist/llms/contract.d.ts +1 -1
  228. package/dist/llms/generateLLMsTxt.d.ts +1 -1
  229. package/dist/llms/handlers.d.ts +1 -1
  230. package/dist/llms/index.d.ts +21 -21
  231. package/dist/llms/index.js +5 -5
  232. package/dist/llms/merge.d.ts +1 -1
  233. package/dist/llms/sourcedFacts.d.ts +1 -1
  234. package/dist/llms/types.d.ts +5 -5
  235. package/dist/llms/writeLLMsTxt.d.ts +3 -3
  236. package/dist/maps/GoogleMap.d.ts +1 -1
  237. package/dist/maps/NeighborhoodMap.d.ts +1 -1
  238. package/dist/maps/api.d.ts +1 -1
  239. package/dist/maps/index.d.ts +5 -5
  240. package/dist/maps/index.js +8 -80
  241. package/dist/maps/places-library.d.ts +34 -0
  242. package/dist/mcp/WebMcpTools.d.ts +1 -1
  243. package/dist/mcp/client.d.ts +2 -2
  244. package/dist/mcp/discovery.d.ts +2 -2
  245. package/dist/mcp/handlers.d.ts +4 -4
  246. package/dist/mcp/index.d.ts +12 -12
  247. package/dist/mcp/protocol.d.ts +1 -1
  248. package/dist/mcp/report.d.ts +1 -1
  249. package/dist/mcp/serverCard.d.ts +1 -1
  250. package/dist/mcp/sonor.d.ts +5 -5
  251. package/dist/mcp/sonor.js +12 -12
  252. package/dist/mcp/transport.d.ts +1 -1
  253. package/dist/motion/Parallax.d.ts +1 -1
  254. package/dist/motion/ScrollScene.d.ts +1 -1
  255. package/dist/motion/gsap.d.ts +2 -2
  256. package/dist/motion/index.d.ts +9 -9
  257. package/dist/motion/three.d.ts +1 -1
  258. package/dist/og/index.d.ts +5 -5
  259. package/dist/og/pages.d.ts +1 -1
  260. package/dist/og/route-fit.d.ts +17 -0
  261. package/dist/og/template.d.ts +1 -1
  262. package/dist/places-library-RU2YNKFK.js +54 -0
  263. package/dist/portfolio/contract.d.ts +1 -1
  264. package/dist/press-kit/articles/Article.d.ts +2 -2
  265. package/dist/press-kit/articles/ArticleFaqSection.d.ts +1 -1
  266. package/dist/press-kit/articles/ArticleList.d.ts +2 -2
  267. package/dist/press-kit/articles/AuthorCard.d.ts +1 -1
  268. package/dist/press-kit/articles/AuthorPage.d.ts +1 -1
  269. package/dist/press-kit/articles/ClusterLandingPage.d.ts +2 -2
  270. package/dist/press-kit/articles/ClusterNavigation.d.ts +2 -2
  271. package/dist/press-kit/articles/ManagedNewsletterForm.d.ts +2 -2
  272. package/dist/press-kit/articles/PublicationLayout.d.ts +2 -2
  273. package/dist/press-kit/articles/PublicationSidebar.d.ts +1 -1
  274. package/dist/press-kit/articles/RelatedPosts.d.ts +2 -2
  275. package/dist/press-kit/articles/TableOfContents.d.ts +1 -1
  276. package/dist/press-kit/articles/article-body.d.ts +1 -1
  277. package/dist/press-kit/articles/article-headings.d.ts +1 -1
  278. package/dist/press-kit/articles/article-photos.d.ts +1 -1
  279. package/dist/press-kit/articles/artwork.d.ts +2 -2
  280. package/dist/press-kit/articles/author-schema.d.ts +2 -2
  281. package/dist/press-kit/articles/author-social.d.ts +1 -1
  282. package/dist/press-kit/articles/index.d.ts +23 -23
  283. package/dist/press-kit/articles/news-sitemap.d.ts +2 -2
  284. package/dist/press-kit/articles/public-reads.d.ts +1 -1
  285. package/dist/press-kit/articles/publication-reads.d.ts +2 -2
  286. package/dist/press-kit/articles/reading-time.d.ts +1 -1
  287. package/dist/press-kit/articles/server-core.d.ts +20 -20
  288. package/dist/press-kit/articles/server-ui.d.ts +20 -20
  289. package/dist/press-kit/articles/types.d.ts +1 -1
  290. package/dist/proxy/index.d.ts +5 -5
  291. package/dist/proxy/index.js +1 -1
  292. package/dist/reputation/TestimonialSection.d.ts +1 -1
  293. package/dist/reputation/VisualReviewCard.d.ts +1 -1
  294. package/dist/reputation/api.d.ts +1 -1
  295. package/dist/reputation/index.d.ts +4 -4
  296. package/dist/reputation/server.d.ts +3 -3
  297. package/dist/resonance/ResonanceRuntime.d.ts +7 -0
  298. package/dist/resonance/bridge.d.ts +16 -0
  299. package/dist/resonance/consent-adapter.d.ts +26 -0
  300. package/dist/resonance/controller-registry.d.ts +14 -0
  301. package/dist/resonance/controller.d.ts +103 -0
  302. package/dist/resonance/form-context.d.ts +5 -0
  303. package/dist/resonance/index.d.ts +4 -0
  304. package/dist/resonance/index.js +9 -0
  305. package/dist/resonance/meta-pixel.d.ts +67 -0
  306. package/dist/resonance/providers.d.ts +32 -0
  307. package/dist/resonance/runtime-core.d.ts +5 -0
  308. package/dist/revalidate/index.d.ts +3 -3
  309. package/dist/revalidate/index.js +2 -2
  310. package/dist/robots/index.d.ts +3 -3
  311. package/dist/robots/indexnow.js +2 -2
  312. package/dist/runtime/index.d.ts +7 -7
  313. package/dist/runtime/index.js +4 -5
  314. package/dist/runtime-core-EU2RZMOL.js +2213 -0
  315. package/dist/seo/ManagedFAQ.d.ts +1 -1
  316. package/dist/seo/ManagedInternalLinks.d.ts +1 -1
  317. package/dist/seo/ManagedSchema.d.ts +1 -1
  318. package/dist/seo/ManagedScripts.d.ts +1 -1
  319. package/dist/seo/client.d.ts +1 -1
  320. package/dist/seo/client.js +3 -5
  321. package/dist/seo/entry-indexnow.d.ts +1 -1
  322. package/dist/seo/entry-llms-client.d.ts +1 -1
  323. package/dist/seo/entry-llms-contract.d.ts +1 -1
  324. package/dist/seo/entry-llms.d.ts +1 -1
  325. package/dist/seo/entry-meta-contract.d.ts +1 -1
  326. package/dist/seo/entry-og-route.d.ts +1 -1
  327. package/dist/seo/entry-og.d.ts +1 -1
  328. package/dist/seo/entry-pages-contract.d.ts +1 -1
  329. package/dist/seo/entry-redirects.d.ts +1 -1
  330. package/dist/seo/entry-robots.d.ts +1 -1
  331. package/dist/seo/entry-sitemap.d.ts +1 -1
  332. package/dist/seo/getManagedMetadata.d.ts +1 -1
  333. package/dist/seo/index.d.ts +12 -12
  334. package/dist/seo/index.js +9 -11
  335. package/dist/seo/indexnow.d.ts +1 -1
  336. package/dist/seo/indexnow.js +2 -2
  337. package/dist/seo/llms/client.d.ts +1 -1
  338. package/dist/seo/llms/contract.d.ts +1 -1
  339. package/dist/seo/llms.d.ts +1 -1
  340. package/dist/seo/llms.js +5 -5
  341. package/dist/seo/meta/contract.d.ts +1 -1
  342. package/dist/seo/og.d.ts +1 -1
  343. package/dist/seo/pages/contract.d.ts +1 -1
  344. package/dist/seo/redirects.d.ts +1 -1
  345. package/dist/seo/register-sitemap-cli-impl.d.ts +1 -1
  346. package/dist/seo/register-sitemap-cli.js +1 -1
  347. package/dist/seo/robots.d.ts +1 -1
  348. package/dist/seo/routing.d.ts +1 -1
  349. package/dist/seo/server.d.ts +4 -4
  350. package/dist/seo/server.js +3 -3
  351. package/dist/seo/sitemap.d.ts +1 -1
  352. package/dist/seo/sitemap.js +3 -3
  353. package/dist/seo/types.d.ts +1 -1
  354. package/dist/seo-meta/contract.d.ts +1 -1
  355. package/dist/seo-pages/contract.d.ts +1 -1
  356. package/dist/server/index.d.ts +5 -5
  357. package/dist/server/index.js +3 -3
  358. package/dist/server/mint-site-token.d.ts +1 -1
  359. package/dist/server/server-fetch.d.ts +8 -0
  360. package/dist/{server-api-XIKDWSNO.js → server-api-A34TABT2.js} +2 -2
  361. package/dist/shared/build-entries.d.ts +3 -1
  362. package/dist/shared/color.d.ts +1 -1
  363. package/dist/shared/fetchWithRetry.d.ts +6 -0
  364. package/dist/shared/frame.d.ts +1 -1
  365. package/dist/shared/identity-storage.d.ts +6 -4
  366. package/dist/shared/identity.d.ts +1 -3
  367. package/dist/shared/index.d.ts +5 -5
  368. package/dist/shared/index.js +1 -1
  369. package/dist/shared/measurement-analytics.d.ts +1 -0
  370. package/dist/shared/measurement-policy.d.ts +6 -0
  371. package/dist/shared/measurement-proof.d.ts +5 -0
  372. package/dist/shared/measurement-store.d.ts +34 -0
  373. package/dist/shared/measurement-writer.d.ts +6 -0
  374. package/dist/shared/publishCredential.d.ts +1 -1
  375. package/dist/shared/reporting-gate.d.ts +3 -1
  376. package/dist/shared/site-token-claims.d.ts +18 -0
  377. package/dist/shared/site-token-configuration.d.ts +9 -0
  378. package/dist/shared/site-token-refresh.d.ts +7 -0
  379. package/dist/shared/site-token-state.d.ts +23 -0
  380. package/dist/shared/siteToken.d.ts +5 -39
  381. package/dist/shared/sonor-auth-state.d.ts +3 -0
  382. package/dist/shared/sonor-beacon.d.ts +13 -0
  383. package/dist/shared/sonor-fetch-runtime.d.ts +2 -0
  384. package/dist/shared/sonor-fetch.d.ts +7 -0
  385. package/dist/shared/sonorFetch.d.ts +4 -49
  386. package/dist/shared/version.d.ts +1 -1
  387. package/dist/signal/ReviewedSignalExperiment.d.ts +9 -0
  388. package/dist/signal/SignalBridge.d.ts +4 -4
  389. package/dist/signal/SignalCore.d.ts +2 -1
  390. package/dist/signal/SignalExperiment.d.ts +13 -5
  391. package/dist/signal/index.d.ts +3 -3
  392. package/dist/signal/index.js +4 -73
  393. package/dist/signal/store.d.ts +10 -7
  394. package/dist/signal/types.d.ts +4 -0
  395. package/dist/sitemap/index.d.ts +5 -5
  396. package/dist/sitemap/index.js +3 -3
  397. package/dist/sites/contract.d.ts +1 -1
  398. package/dist/sites/normalize.d.ts +1 -1
  399. package/dist/slots/ManagedLink.d.ts +2 -2
  400. package/dist/slots/ManagedList.d.ts +2 -2
  401. package/dist/slots/ManagedRichText.d.ts +1 -1
  402. package/dist/slots/ManagedSlot.d.ts +1 -1
  403. package/dist/slots/contract.d.ts +1 -1
  404. package/dist/slots/edit/locate.d.ts +1 -1
  405. package/dist/slots/index.d.ts +14 -14
  406. package/dist/slots/index.js +2 -2
  407. package/dist/slots/server-api.d.ts +1 -1
  408. package/dist/{chunk-FLOJUMFR.js → sonor-fetch-runtime-SLPBNZY4.js} +27 -36
  409. package/dist/sync/AddToCalendar.d.ts +1 -1
  410. package/dist/sync/BookingWidget.d.ts +1 -1
  411. package/dist/sync/MeetingFormatStep.d.ts +1 -1
  412. package/dist/sync/api.d.ts +2 -2
  413. package/dist/sync/booking-flow.d.ts +1 -1
  414. package/dist/sync/index.d.ts +3 -3
  415. package/dist/sync/index.js +6 -7
  416. package/dist/types.d.ts +6 -6
  417. package/dist/website/BlocksPopup.d.ts +1 -1
  418. package/dist/website/PopupBlocks.d.ts +1 -1
  419. package/dist/website/SiteDesignReporter.d.ts +2 -2
  420. package/dist/website/SitePopups.d.ts +1 -1
  421. package/dist/website/contract.d.ts +1 -1
  422. package/dist/website/cta-bar.d.ts +1 -1
  423. package/dist/website/cta-bar.js +4 -3
  424. package/dist/website/design.d.ts +2 -2
  425. package/dist/website/images/server.d.ts +1 -1
  426. package/dist/website/images-server.d.ts +1 -1
  427. package/dist/website/images.d.ts +1 -1
  428. package/dist/website/images.js +2 -4
  429. package/dist/website/index.d.ts +4 -4
  430. package/dist/website/index.js +5 -6
  431. package/dist/website/landing/server.d.ts +1 -1
  432. package/dist/website/landing/server.js +13 -8
  433. package/dist/website/landing-server.d.ts +1 -1
  434. package/dist/website/landing.d.ts +1 -1
  435. package/dist/website/landing.js +3 -2
  436. package/dist/website/popup-rules.d.ts +2 -2
  437. package/dist/website/popup-types.d.ts +1 -1
  438. package/dist/website/popups.d.ts +4 -4
  439. package/dist/website/popups.js +14 -8
  440. package/dist/website/slots/contract.d.ts +1 -1
  441. package/dist/website/slots-contract.d.ts +1 -1
  442. package/dist/website/slots.d.ts +2 -2
  443. package/dist/website/slots.js +2 -2
  444. package/dist/{writeLLMsTxt-4HHUAOA6.js → writeLLMsTxt-2CBYGKZO.js} +2 -2
  445. package/docs.json +5 -0
  446. package/package.json +8 -2
  447. package/src/analytics/README.md +21 -0
  448. package/src/cta-bar/README.md +4 -0
  449. package/src/forms/README.md +76 -0
  450. package/src/landing/README.md +14 -0
  451. package/src/layout/README.md +3 -0
  452. package/src/resonance/README.md +273 -0
  453. package/src/runtime/README.md +6 -1
  454. package/src/signal/README.md +21 -0
  455. package/src/website/README.md +14 -2
  456. package/dist/AnalyticsProvider-7SBJ27SI.js +0 -13
  457. package/dist/ChatWidget-V46UBDOM.js +0 -20
  458. package/dist/ManagedForm-DDDVMKLJ.js +0 -19
  459. package/dist/SitePopups-VU2C3Z6B.js +0 -13
  460. package/dist/SitemapSync-C4H3HF3L.js +0 -9
  461. package/dist/chunk-5ROTTMBL.js +0 -19
  462. package/dist/chunk-5TM3WPCI.js +0 -7
  463. package/dist/chunk-7HW4TZB5.js +0 -148
  464. package/dist/chunk-IPQKQEWI.js +0 -52
  465. package/dist/chunk-LCDVPAMR.js +0 -24
  466. package/dist/chunk-LQJC5S2M.js +0 -236
  467. package/dist/chunk-SHAUX2MQ.js +0 -163
  468. /package/dist/{chunk-3MJNBOUO.js → chunk-2QPVU63T.js} +0 -0
@@ -2,8 +2,8 @@
2
2
  * @sonordev/site-kit/og — Open Graph card factory (build-time tier).
3
3
  * Config contract + HTML template. Rendering happens via `sonor-setup og`.
4
4
  */
5
- export { defineOgCard, OG_WIDTH, OG_HEIGHT } from './config';
6
- export type { OgCardConfig, OgTheme, OgFont, OgBackground, OgContent, OgPhoto, OgTemplateHelpers } from './config';
7
- export { buildOgHtml } from './template';
8
- export { paramCardImage, paramCardUrl, codeCardImage, PARAM_CARD_DIR } from './pages';
9
- export type { OgImageDescriptor } from './pages';
5
+ export { defineOgCard, OG_WIDTH, OG_HEIGHT } from "./config.js";
6
+ export type { OgCardConfig, OgTheme, OgFont, OgBackground, OgContent, OgPhoto, OgTemplateHelpers } from "./config.js";
7
+ export { buildOgHtml } from "./template.js";
8
+ export { paramCardImage, paramCardUrl, codeCardImage, PARAM_CARD_DIR } from "./pages.js";
9
+ export type { OgImageDescriptor } from "./pages.js";
@@ -14,7 +14,7 @@
14
14
  * Everything else — theme, fonts, logo, photo, bar — is inherited from the
15
15
  * site's own og.config.ts, so the whole set reads as one family.
16
16
  */
17
- import type { OgCardConfig } from './config';
17
+ import type { OgCardConfig } from "./config.js";
18
18
  /** A route to build a card for. */
19
19
  export interface OgPageRoute {
20
20
  /** URL path, e.g. `/services/garage`. */
@@ -74,3 +74,20 @@ export interface RouteFit {
74
74
  * the full width. If that fails too, the title sits at the floor and clips.
75
75
  */
76
76
  export declare function fitRouteTitle(input: RouteFitInput): RouteFit;
77
+ /** Fixed geometry for the optional wordmark layout; the photo never yields to copy. */
78
+ export declare const BRANDED_ROUTE_CARD: {
79
+ readonly pad: 56;
80
+ readonly photoWidth: 480;
81
+ readonly logoHeight: 104;
82
+ readonly titleHeight: 302;
83
+ readonly titleLineHeight: 1.1;
84
+ readonly titleMaxPx: 64;
85
+ readonly titleMinPx: 36;
86
+ };
87
+ /** Fit a branded headline without removing either the logo or photograph.
88
+ * Exceptionally long copy is shortened on the card; page metadata keeps its full title. */
89
+ export declare function fitBrandedRouteTitle(title: string, photo: boolean): {
90
+ title: string;
91
+ titlePx: number;
92
+ truncated: boolean;
93
+ };
@@ -9,5 +9,5 @@
9
9
  * iMessage thumbnail width (~300px)
10
10
  * - the plate + title must survive alone if everything else is cropped
11
11
  */
12
- import type { OgCardConfig } from './config';
12
+ import type { OgCardConfig } from "./config.js";
13
13
  export declare function buildOgHtml(config: OgCardConfig): string;
@@ -0,0 +1,54 @@
1
+ import './chunk-PKBMQBKP.js';
2
+
3
+ // src/maps/places-library.ts
4
+ async function loadAddressPlaces(apiKey) {
5
+ var _a;
6
+ const host = window;
7
+ const maps = (_a = host.google ?? (host.google = {})).maps ?? (_a.maps = {});
8
+ if (!maps.importLibrary) {
9
+ if (document.querySelector('script[src*="maps.googleapis.com/maps/api/js"], script[src*="maps.google.com/maps/api/js"]')) {
10
+ throw new Error("Existing Google loader does not support dynamic libraries");
11
+ }
12
+ let pending;
13
+ const bootstrap = (name) => {
14
+ pending ?? (pending = new Promise((resolve, reject) => {
15
+ const script = document.createElement("script");
16
+ const url = new URL("https://maps.googleapis.com/maps/api/js");
17
+ url.search = new URLSearchParams({ key: apiKey, v: "weekly", loading: "async", libraries: "places", callback: "google.maps.__ib__" }).toString();
18
+ const nonce = document.querySelector("script[nonce]")?.nonce;
19
+ if (nonce) script.nonce = nonce;
20
+ const timer = setTimeout(() => fail(), 15e3);
21
+ const fail = () => {
22
+ clearTimeout(timer);
23
+ script.remove();
24
+ if (maps.importLibrary === bootstrap) {
25
+ delete maps.importLibrary;
26
+ delete maps.__ib__;
27
+ }
28
+ reject(new Error("Google address suggestions could not load"));
29
+ };
30
+ maps.__ib__ = () => {
31
+ clearTimeout(timer);
32
+ delete maps.__ib__;
33
+ resolve();
34
+ };
35
+ script.onerror = fail;
36
+ script.src = url.toString();
37
+ script.async = true;
38
+ try {
39
+ document.head.append(script);
40
+ } catch {
41
+ fail();
42
+ }
43
+ }));
44
+ return pending.then(() => {
45
+ if (!maps.importLibrary || maps.importLibrary === bootstrap) throw new Error("Google dynamic library unavailable");
46
+ return maps.importLibrary(name);
47
+ });
48
+ };
49
+ maps.importLibrary = bootstrap;
50
+ }
51
+ return await maps.importLibrary("places");
52
+ }
53
+
54
+ export { loadAddressPlaces };
@@ -1 +1 @@
1
- export * from '../contracts/portfolio';
1
+ export * from "../contracts/portfolio.js";
@@ -11,8 +11,8 @@
11
11
  * complete control. The `children` render prop gives full data access.
12
12
  */
13
13
  import React from 'react';
14
- import type { Article as ArticleType, TocItem } from './types';
15
- import { type PublicationRoutingOptions } from './routes';
14
+ import type { Article as ArticleType, TocItem } from "./types.js";
15
+ import { type PublicationRoutingOptions } from "./routes.js";
16
16
  export interface ArticleStyles {
17
17
  article?: string;
18
18
  header?: string;
@@ -1,2 +1,2 @@
1
- import type { ArticleFAQProps } from './ArticleFAQ';
1
+ import type { ArticleFAQProps } from "./ArticleFAQ.js";
2
2
  export declare function ArticleFaqSection(props: ArticleFAQProps): import("react").JSX.Element;
@@ -10,8 +10,8 @@
10
10
  * complete control. The `children` render prop gives full data access.
11
11
  */
12
12
  import React from 'react';
13
- import type { ArticleListResult, Article, ArticleCategory } from './types';
14
- import { type PublicationRoutingOptions } from './routes';
13
+ import type { ArticleListResult, Article, ArticleCategory } from "./types.js";
14
+ import { type PublicationRoutingOptions } from "./routes.js";
15
15
  export interface ArticleListStyles {
16
16
  container?: string;
17
17
  categoryNav?: string;
@@ -2,7 +2,7 @@
2
2
  * @sonordev/press-kit/articles - Author Card Component
3
3
  */
4
4
  import React from 'react';
5
- import type { AuthorCardProps, ArticleAuthor } from './types';
5
+ import type { AuthorCardProps, ArticleAuthor } from "./types.js";
6
6
  declare function TrustBlock({ author }: {
7
7
  author: ArticleAuthor;
8
8
  }): React.JSX.Element | null;
@@ -4,5 +4,5 @@
4
4
  * Full author profile page with hero, trust block, social links, and articles grid.
5
5
  */
6
6
  import React from 'react';
7
- import type { AuthorPageProps } from './types';
7
+ import type { AuthorPageProps } from "./types.js";
8
8
  export declare function AuthorPage({ author, posts, basePath, routing, siteUrl, siteName, jsonLd }: AuthorPageProps): React.JSX.Element;
@@ -11,8 +11,8 @@
11
11
  * Ships with `.sk-cluster-landing-*` scoped styles.
12
12
  */
13
13
  import React from 'react';
14
- import { type PublicationRoutingOptions } from './routes';
15
- import type { TopicCluster } from './types';
14
+ import { type PublicationRoutingOptions } from "./routes.js";
15
+ import type { TopicCluster } from "./types.js";
16
16
  export interface ClusterLandingPageProps {
17
17
  /** Cluster slug to fetch */
18
18
  slug: string;
@@ -9,8 +9,8 @@
9
9
  * as the rest of site-kit, with currentColor-based fallbacks.
10
10
  */
11
11
  import React from 'react';
12
- import type { ClusterNavigation as ClusterNavigationType } from './types';
13
- import { type PublicationRoutingOptions } from './routes';
12
+ import type { ClusterNavigation as ClusterNavigationType } from "./types.js";
13
+ import { type PublicationRoutingOptions } from "./routes.js";
14
14
  export interface ClusterNavigationProps {
15
15
  /** Cluster navigation data */
16
16
  navigation: ClusterNavigationType;
@@ -7,6 +7,6 @@
7
7
  * static-import graph).
8
8
  */
9
9
  import React from 'react';
10
- import { type NewsletterShellProps } from './NewsletterShell';
11
- import type { NewsletterWidgetProps } from './NewsletterWidget';
10
+ import { type NewsletterShellProps } from "./NewsletterShell.js";
11
+ import type { NewsletterWidgetProps } from "./NewsletterWidget.js";
12
12
  export default function ManagedNewsletterForm({ formSlug, title, description, buttonText, successMessage, }: Required<Pick<NewsletterWidgetProps, 'formSlug'>> & Pick<NewsletterShellProps, 'title' | 'description' | 'buttonText' | 'successMessage'>): React.JSX.Element | null;
@@ -5,8 +5,8 @@
5
5
  * Use this to wrap your article pages for consistent styling.
6
6
  */
7
7
  import React from 'react';
8
- import { PublicationSidebarProps } from './PublicationSidebar';
9
- import type { PublicationRoutingOptions } from './routes';
8
+ import { PublicationSidebarProps } from "./PublicationSidebar.js";
9
+ import type { PublicationRoutingOptions } from "./routes.js";
10
10
  export interface PublicationLayoutProps {
11
11
  /** Sonor API URL */
12
12
  apiUrl?: string;
@@ -5,7 +5,7 @@
5
5
  * tags, newsletter signup, and custom widgets.
6
6
  */
7
7
  import React from 'react';
8
- import { type PublicationRoutingOptions } from './routes';
8
+ import { type PublicationRoutingOptions } from "./routes.js";
9
9
  export interface PublicationSidebarProps {
10
10
  /** Sonor API URL */
11
11
  apiUrl?: string;
@@ -4,8 +4,8 @@
4
4
  * Fetches and displays related articles via Sonor API
5
5
  */
6
6
  import React from 'react';
7
- import type { Article } from './types';
8
- import { type PublicationRoutingOptions } from './routes';
7
+ import type { Article } from "./types.js";
8
+ import { type PublicationRoutingOptions } from "./routes.js";
9
9
  interface RelatedPostsServerProps {
10
10
  apiUrl?: string;
11
11
  apiKey?: string;
@@ -2,5 +2,5 @@
2
2
  * @sonordev/press-kit/articles - Table of Contents Component
3
3
  */
4
4
  import React from 'react';
5
- import type { TableOfContentsProps } from './types';
5
+ import type { TableOfContentsProps } from "./types.js";
6
6
  export declare function TableOfContents({ content, className, maxDepth, }: TableOfContentsProps): React.JSX.Element | null;
@@ -1,4 +1,4 @@
1
- import type { Article } from './types';
1
+ import type { Article } from "./types.js";
2
2
  /**
3
3
  * Single source of truth for the HTML an article renders: the stock `Article`
4
4
  * and the RSS and Atom feeds all read the body through here, so a fix to the
@@ -11,7 +11,7 @@
11
11
  * (scripts/bundle-baseline.json). Keep code only the server needs, such as the
12
12
  * writer, out of it: a shared chunk ships every export either side uses.
13
13
  */
14
- import type { TocItem } from './types';
14
+ import type { TocItem } from "./types.js";
15
15
  /**
16
16
  * The value of attribute `name` in an open tag's attributes (the string
17
17
  * `openTagAttributes` returns), or null when the tag doesn't have it. Reads
@@ -1,4 +1,4 @@
1
- import type { ArticleEditorialPhoto } from './types';
1
+ import type { ArticleEditorialPhoto } from "./types.js";
2
2
  export interface ArticlePhotoImageAttributes {
3
3
  src: string;
4
4
  srcSet?: string;
@@ -1,5 +1,5 @@
1
1
  import type { CSSProperties } from 'react';
2
- import type { Article } from './types';
2
+ import type { Article } from "./types.js";
3
3
  export interface ArticleArtwork {
4
4
  src: string | undefined;
5
5
  alt: string;
@@ -11,6 +11,6 @@ export declare function resolveArticleArtwork(post: ArtworkSource, placement?: '
11
11
  /** Preserve generated text and graphics across every stock card surface. */
12
12
  export declare function articleArtworkImageStyle(artwork: ArticleArtwork): CSSProperties | undefined;
13
13
  /** Search/discovery artwork is the representative photograph; social cards stay available separately. */
14
- export declare function resolveRepresentativeImage(post: Partial<Pick<Article, 'title' | 'representative_image' | 'editorial_image' | 'editorial_image_alt' | 'editorial_image_width' | 'editorial_image_height' | 'featured_image' | 'featured_image_alt' | 'featured_image_width' | 'featured_image_height'>>): import('./types').ArticleImage | undefined;
14
+ export declare function resolveRepresentativeImage(post: Partial<Pick<Article, 'title' | 'representative_image' | 'editorial_image' | 'editorial_image_alt' | 'editorial_image_width' | 'editorial_image_height' | 'featured_image' | 'featured_image_alt' | 'featured_image_width' | 'featured_image_height'>>): import("./types.js").ArticleImage | undefined;
15
15
  export declare function articleImageSchema(post: Partial<Article>): object | string | undefined;
16
16
  export {};
@@ -25,8 +25,8 @@
25
25
  * so an article, its author page and the person's own site describe one
26
26
  * person, which is what a Knowledge Panel is built from.
27
27
  */
28
- import type { ArticleAuthor } from './types';
29
- import { type PublicationRoutingOptions } from './routes';
28
+ import type { ArticleAuthor } from "./types.js";
29
+ import { type PublicationRoutingOptions } from "./routes.js";
30
30
  export type AuthorSchemaOptions = PublicationRoutingOptions & {
31
31
  siteUrl?: string;
32
32
  siteName?: string;
@@ -1,4 +1,4 @@
1
- import type { ArticleAuthor } from './types';
1
+ import type { ArticleAuthor } from "./types.js";
2
2
  export interface AuthorSocialLink {
3
3
  label: string;
4
4
  href: string;
@@ -39,23 +39,23 @@
39
39
  * }
40
40
  * ```
41
41
  */
42
- export type { PublicationDefinition } from './publication-definition';
43
- export type { ArticleServerProps, ArticleStyles } from './Article';
44
- export type { ArticleListServerProps, ArticleListStyles } from './ArticleList';
45
- export type { PublicationSidebarProps } from './PublicationSidebar';
46
- export { NewsletterWidget } from './NewsletterWidget';
47
- export type { NewsletterWidgetProps } from './NewsletterWidget';
48
- export type { PublicationLayoutProps, PublicationPageProps, ArticlePageProps, CategoryPageProps } from './PublicationLayout';
49
- export { AuthorCard } from './AuthorCard';
50
- export { AuthorPage } from './AuthorPage';
51
- export { TableOfContents } from './TableOfContents';
52
- export { ServiceCallout, ServiceCallouts } from './ServiceCallout';
53
- export type { ServiceCalloutProps } from './ServiceCallout';
54
- export { ArticleFAQ } from './ArticleFAQ';
55
- export type { ArticleEditorialPhoto } from './types';
56
- export type { ArticleFAQProps, FaqItem } from './ArticleFAQ';
57
- export { ClusterNavigation } from './ClusterNavigation';
58
- export type { ClusterNavigationProps } from './ClusterNavigation';
42
+ export type { PublicationDefinition } from "./publication-definition.js";
43
+ export type { ArticleServerProps, ArticleStyles } from "./Article.js";
44
+ export type { ArticleListServerProps, ArticleListStyles } from "./ArticleList.js";
45
+ export type { PublicationSidebarProps } from "./PublicationSidebar.js";
46
+ export { NewsletterWidget } from "./NewsletterWidget.js";
47
+ export type { NewsletterWidgetProps } from "./NewsletterWidget.js";
48
+ export type { PublicationLayoutProps, PublicationPageProps, ArticlePageProps, CategoryPageProps } from "./PublicationLayout.js";
49
+ export { AuthorCard } from "./AuthorCard.js";
50
+ export { AuthorPage } from "./AuthorPage.js";
51
+ export { TableOfContents } from "./TableOfContents.js";
52
+ export { ServiceCallout, ServiceCallouts } from "./ServiceCallout.js";
53
+ export type { ServiceCalloutProps } from "./ServiceCallout.js";
54
+ export { ArticleFAQ } from "./ArticleFAQ.js";
55
+ export type { ArticleEditorialPhoto } from "./types.js";
56
+ export type { ArticleFAQProps, FaqItem } from "./ArticleFAQ.js";
57
+ export { ClusterNavigation } from "./ClusterNavigation.js";
58
+ export type { ClusterNavigationProps } from "./ClusterNavigation.js";
59
59
  /**
60
60
  * `ClusterLandingPage` is deliberately NOT re-exported here — import it from
61
61
  * `@sonordev/press-kit/articles/server-ui`.
@@ -72,9 +72,9 @@ export type { ClusterNavigationProps } from './ClusterNavigation';
72
72
  * module, so it keeps `import type { ClusterLandingPageProps }` working for
73
73
  * existing consumers.
74
74
  */
75
- export type { ClusterLandingPageProps } from './ClusterLandingPage';
76
- export * from './types';
77
- export { articleCategorySlug, createPublicationRoutes, resolveArticleUrl, resolvePublicationUrl } from './routes';
78
- export type { ArticleRoutePost, PublicationRoutingOptions } from './routes';
79
- export { resolveArticleArtwork } from './artwork';
80
- export { addExternalLinkTargets, linkClassificationHost, normalizeSiteHost, resolvePublicationSiteUrl, } from './processArticleHtml';
75
+ export type { ClusterLandingPageProps } from "./ClusterLandingPage.js";
76
+ export * from "./types.js";
77
+ export { articleCategorySlug, createPublicationRoutes, resolveArticleUrl, resolvePublicationUrl } from "./routes.js";
78
+ export type { ArticleRoutePost, PublicationRoutingOptions } from "./routes.js";
79
+ export { resolveArticleArtwork } from "./artwork.js";
80
+ export { addExternalLinkTargets, linkClassificationHost, normalizeSiteHost, resolvePublicationSiteUrl, } from "./processArticleHtml.js";
@@ -1,5 +1,5 @@
1
- import type { Article } from './types';
2
- import { type PublicationRoutingOptions, type ArticleRoutePost } from './routes';
1
+ import type { Article } from "./types.js";
2
+ import { type PublicationRoutingOptions, type ArticleRoutePost } from "./routes.js";
3
3
  /** Google only reads articles from the last two days in a News sitemap. */
4
4
  export declare const NEWS_SITEMAP_WINDOW_MS: number;
5
5
  /** Google's cap per News sitemap. */
@@ -1,4 +1,4 @@
1
- import type { ArticleCategory, Article } from './types';
1
+ import type { ArticleCategory, Article } from "./types.js";
2
2
  export interface ArticleReadConfig {
3
3
  apiUrl: string;
4
4
  apiKey: string;
@@ -1,6 +1,6 @@
1
1
  import 'server-only';
2
- import type { Article } from './types';
3
- import type { ArticleReadResult } from './public-reads';
2
+ import type { Article } from "./types.js";
3
+ import type { ArticleReadResult } from "./public-reads.js";
4
4
  export interface PublicationIssue {
5
5
  id: string;
6
6
  title: string;
@@ -1,4 +1,4 @@
1
- import type { Article } from './types';
1
+ import type { Article } from "./types.js";
2
2
  /**
3
3
  * Single source of truth for reading-time display.
4
4
  *
@@ -6,14 +6,14 @@
6
6
  * treats `getAllArticleSlugs` / `generateArticleStaticParams` as client code.
7
7
  */
8
8
  import type { Metadata } from 'next';
9
- import type { Article as ArticleRecord, ArticleAuthor, TopicCluster, ClusterNavigation } from './types';
10
- import { ArticleUnavailableError } from './public-reads';
11
- import { sanitizeExcerpt } from './excerpt';
12
- import { articleImageSchema, resolveRepresentativeImage } from './artwork';
13
- import { type PublicationRoutingOptions } from './routes';
14
- import { type NewsSitemapOptions } from './news-sitemap';
9
+ import type { Article as ArticleRecord, ArticleAuthor, TopicCluster, ClusterNavigation } from "./types.js";
10
+ import { ArticleUnavailableError } from "./public-reads.js";
11
+ import { sanitizeExcerpt } from "./excerpt.js";
12
+ import { articleImageSchema, resolveRepresentativeImage } from "./artwork.js";
13
+ import { type PublicationRoutingOptions } from "./routes.js";
14
+ import { type NewsSitemapOptions } from "./news-sitemap.js";
15
15
  export { sanitizeExcerpt, ArticleUnavailableError, resolveRepresentativeImage, articleImageSchema };
16
- export type { ArticleReadResult } from './public-reads';
16
+ export type { ArticleReadResult } from "./public-reads.js";
17
17
  export declare function getArticleResult(slug: string, options?: {
18
18
  site?: string;
19
19
  }): Promise<{
@@ -466,17 +466,17 @@ export declare function generateAuthorPageMetadata(author: ArticleAuthor, option
466
466
  * into the browser bundle. Re-exported so `@sonordev/press-kit/articles/server`
467
467
  * keeps its existing public API.
468
468
  */
469
- export { authorEntityId, generateArticleAuthorNode, generateAuthorPersonSchema, generateAuthorSchema, withArticleAuthorIdentity, type AuthorSchemaOptions, } from './author-schema';
469
+ export { authorEntityId, generateArticleAuthorNode, generateAuthorPersonSchema, generateAuthorSchema, withArticleAuthorIdentity, type AuthorSchemaOptions, } from "./author-schema.js";
470
470
  /** Sonor article document shape (alias of `Article` from `./types`) */
471
- export type { Article as ArticleRecord } from './types';
472
- export { articleCategorySlug, createPublicationRoutes, resolveArticleUrl, resolvePublicationUrl } from './routes';
473
- export type { ArticleRoutePost, PublicationRoutingOptions } from './routes';
474
- export { resolveArticleArtwork } from './artwork';
475
- export { wrapArticleTables, articleTableCss } from './article-tables';
476
- export { insertArticlePhotos, articlePhotoCss } from './article-photos';
477
- export type { ArticlePhotoOptions, ArticlePhotoImageAttributes } from './article-photos';
478
- export type { ArticleEditorialPhoto } from './types';
479
- export { FEED_DEFAULT_ITEMS, NEWS_SITEMAP_MAX_URLS, NEWS_SITEMAP_WINDOW_MS, buildNewsSitemapXml, cdata, recentNewsPosts } from './news-sitemap';
480
- export type { NewsSitemapOptions, NewsSitemapPost } from './news-sitemap';
481
- export { getPublicationIssues, getPublicationIssue, getArticlePreview, createPublicationPreviewHandler, PUBLICATION_PREVIEW_COOKIE, PUBLICATION_PREVIEW_HEADERS } from './publication-reads';
482
- export type { PublicationIssue, PublicationIssueList, ArticlePreview } from './publication-reads';
471
+ export type { Article as ArticleRecord } from "./types.js";
472
+ export { articleCategorySlug, createPublicationRoutes, resolveArticleUrl, resolvePublicationUrl } from "./routes.js";
473
+ export type { ArticleRoutePost, PublicationRoutingOptions } from "./routes.js";
474
+ export { resolveArticleArtwork } from "./artwork.js";
475
+ export { wrapArticleTables, articleTableCss } from "./article-tables.js";
476
+ export { insertArticlePhotos, articlePhotoCss } from "./article-photos.js";
477
+ export type { ArticlePhotoOptions, ArticlePhotoImageAttributes } from "./article-photos.js";
478
+ export type { ArticleEditorialPhoto } from "./types.js";
479
+ export { FEED_DEFAULT_ITEMS, NEWS_SITEMAP_MAX_URLS, NEWS_SITEMAP_WINDOW_MS, buildNewsSitemapXml, cdata, recentNewsPosts } from "./news-sitemap.js";
480
+ export type { NewsSitemapOptions, NewsSitemapPost } from "./news-sitemap.js";
481
+ export { getPublicationIssues, getPublicationIssue, getArticlePreview, createPublicationPreviewHandler, PUBLICATION_PREVIEW_COOKIE, PUBLICATION_PREVIEW_HEADERS } from "./publication-reads.js";
482
+ export type { PublicationIssue, PublicationIssueList, ArticlePreview } from "./publication-reads.js";
@@ -10,23 +10,23 @@ import 'server-only';
10
10
  * Use `@sonordev/press-kit/articles/server` for getArticle, getAllArticleSlugs,
11
11
  * metadata, RSS, etc.
12
12
  */
13
- export { Article } from './Article';
14
- export type { ArticleServerProps, ArticleStyles } from './Article';
15
- export { ArticleList } from './ArticleList';
16
- export type { ArticleListServerProps, ArticleListStyles } from './ArticleList';
17
- export { ClusterLandingPage } from './ClusterLandingPage';
18
- export type { ClusterLandingPageProps } from './ClusterLandingPage';
19
- export { ClusterNavigation } from './ClusterNavigation';
20
- export type { ClusterNavigationProps } from './ClusterNavigation';
21
- export { PublicationLayout, PublicationPage, ArticlePage, CategoryPage } from './PublicationLayout';
22
- export type { PublicationLayoutProps, PublicationPageProps, ArticlePageProps, CategoryPageProps, } from './PublicationLayout';
23
- export { PublicationSidebar } from './PublicationSidebar';
24
- export type { PublicationSidebarProps } from './PublicationSidebar';
25
- export { RelatedPosts } from './RelatedPosts';
26
- export { articleCategorySlug, createPublicationRoutes, resolveArticleUrl, resolvePublicationUrl } from './routes';
27
- export type { ArticleRoutePost, PublicationRoutingOptions } from './routes';
28
- export { resolveArticleArtwork } from './artwork';
29
- export { wrapArticleTables, articleTableCss } from './article-tables';
30
- export { insertArticlePhotos, articlePhotoCss } from './article-photos';
31
- export type { ArticlePhotoOptions, ArticlePhotoImageAttributes } from './article-photos';
32
- export type { ArticleEditorialPhoto } from './types';
13
+ export { Article } from "./Article.js";
14
+ export type { ArticleServerProps, ArticleStyles } from "./Article.js";
15
+ export { ArticleList } from "./ArticleList.js";
16
+ export type { ArticleListServerProps, ArticleListStyles } from "./ArticleList.js";
17
+ export { ClusterLandingPage } from "./ClusterLandingPage.js";
18
+ export type { ClusterLandingPageProps } from "./ClusterLandingPage.js";
19
+ export { ClusterNavigation } from "./ClusterNavigation.js";
20
+ export type { ClusterNavigationProps } from "./ClusterNavigation.js";
21
+ export { PublicationLayout, PublicationPage, ArticlePage, CategoryPage } from "./PublicationLayout.js";
22
+ export type { PublicationLayoutProps, PublicationPageProps, ArticlePageProps, CategoryPageProps, } from "./PublicationLayout.js";
23
+ export { PublicationSidebar } from "./PublicationSidebar.js";
24
+ export type { PublicationSidebarProps } from "./PublicationSidebar.js";
25
+ export { RelatedPosts } from "./RelatedPosts.js";
26
+ export { articleCategorySlug, createPublicationRoutes, resolveArticleUrl, resolvePublicationUrl } from "./routes.js";
27
+ export type { ArticleRoutePost, PublicationRoutingOptions } from "./routes.js";
28
+ export { resolveArticleArtwork } from "./artwork.js";
29
+ export { wrapArticleTables, articleTableCss } from "./article-tables.js";
30
+ export { insertArticlePhotos, articlePhotoCss } from "./article-photos.js";
31
+ export type { ArticlePhotoOptions, ArticlePhotoImageAttributes } from "./article-photos.js";
32
+ export type { ArticleEditorialPhoto } from "./types.js";
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @sonordev/press-kit/articles - Type definitions
3
3
  */
4
- import type { PublicationRoutingOptions } from './routes';
4
+ import type { PublicationRoutingOptions } from "./routes.js";
5
5
  /** Public, approved photo snapshot. Planning briefs and private source metadata stay in Sonor. */
6
6
  export interface ArticleEditorialPhoto {
7
7
  url: string;
@@ -41,11 +41,11 @@
41
41
  * ```
42
42
  */
43
43
  import { NextRequest, NextResponse } from 'next/server';
44
- import { type RedirectConfig } from '../redirects';
45
- import { type SecurityHeadersConfig } from './securityHeaders';
46
- export type { SecurityHeadersConfig } from './securityHeaders';
47
- export { DEFAULT_FRAME_ANCESTORS } from './securityHeaders';
48
- export { resolveVisitorSegment, encodeSegment, decodeSegment, type VisitorSegment, type SegmentSource, } from './segment';
44
+ import { type RedirectConfig } from "../redirects/index.js";
45
+ import { type SecurityHeadersConfig } from "./securityHeaders.js";
46
+ export type { SecurityHeadersConfig } from "./securityHeaders.js";
47
+ export { DEFAULT_FRAME_ANCESTORS } from "./securityHeaders.js";
48
+ export { resolveVisitorSegment, encodeSegment, decodeSegment, type VisitorSegment, type SegmentSource, } from "./segment.js";
49
49
  export interface IdentityConfig {
50
50
  /**
51
51
  * Also resolve + persist a coarse visitor segment (new-vs-returning + source
@@ -5,8 +5,8 @@ import { handleManagedRedirects } from '../chunk-HXJ54KAM.js';
5
5
  import '../chunk-Z22QVHT4.js';
6
6
  import '../chunk-MJP63SSS.js';
7
7
  import '../chunk-FESKKJAS.js';
8
- import '../chunk-A4CC4ZG3.js';
9
8
  import { uuid } from '../chunk-GJWI74ZZ.js';
9
+ import '../chunk-A4CC4ZG3.js';
10
10
  import '../chunk-PKBMQBKP.js';
11
11
  import { NextResponse } from 'next/server.js';
12
12
 
@@ -7,5 +7,5 @@
7
7
  * Minimal styling - let site CSS control appearance
8
8
  */
9
9
  import React from 'react';
10
- import type { TestimonialSectionProps } from './types';
10
+ import type { TestimonialSectionProps } from "./types.js";
11
11
  export declare function TestimonialSection({ title, subtitle, autoplay, autoplayInterval, showRating, showPhoto, maxReviews, featuredOnly, service, className, }: TestimonialSectionProps): React.JSX.Element | null;
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import type { VisualReviewCardProps, VisualReviewGalleryProps } from './types';
2
+ import type { VisualReviewCardProps, VisualReviewGalleryProps } from "./types.js";
3
3
  /** Static, server-renderable photo and review card. Review quotes are rendered verbatim. */
4
4
  export declare function VisualReviewCard(props: VisualReviewCardProps): React.JSX.Element;
5
5
  /** Responsive server-renderable gallery; reviews without photos keep their quote card. */
@@ -5,7 +5,7 @@
5
5
  * Uses API key authentication (x-api-key header) - project is resolved server-side.
6
6
  * Includes retry with backoff for rate limiting (429).
7
7
  */
8
- import type { Review, ReviewStats } from './types';
8
+ import type { Review, ReviewStats } from "./types.js";
9
9
  interface FetchReviewsOptions {
10
10
  service?: string;
11
11
  limit?: number;
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Display client reviews and testimonials on your website
5
5
  */
6
- export { TestimonialSection } from './TestimonialSection';
7
- export { VisualReviewCard, VisualReviewGallery } from './VisualReviewCard';
8
- export { fetchReviews, fetchReviewStats } from './api';
9
- export type { Review, ReviewPhoto, ReviewStats, TestimonialSectionProps, VisualReviewCardProps, VisualReviewGalleryProps } from './types';
6
+ export { TestimonialSection } from "./TestimonialSection.js";
7
+ export { VisualReviewCard, VisualReviewGallery } from "./VisualReviewCard.js";
8
+ export { fetchReviews, fetchReviewStats } from "./api.js";
9
+ export type { Review, ReviewPhoto, ReviewStats, TestimonialSectionProps, VisualReviewCardProps, VisualReviewGalleryProps } from "./types.js";
@@ -5,6 +5,6 @@
5
5
  * Importing from `./reputation` (which includes TestimonialSection) pulls in a
6
6
  * client-tainted bundle that can't be called from RSC.
7
7
  */
8
- export { fetchReviews, fetchReviewStats } from './api';
9
- export { VisualReviewCard, VisualReviewGallery } from './VisualReviewCard';
10
- export type { Review, ReviewPhoto, ReviewStats, TestimonialSectionProps, VisualReviewCardProps, VisualReviewGalleryProps } from './types';
8
+ export { fetchReviews, fetchReviewStats } from "./api.js";
9
+ export { VisualReviewCard, VisualReviewGallery } from "./VisualReviewCard.js";
10
+ export type { Review, ReviewPhoto, ReviewStats, TestimonialSectionProps, VisualReviewCardProps, VisualReviewGalleryProps } from "./types.js";
@@ -0,0 +1,7 @@
1
+ export interface ResonanceRuntimeProps {
2
+ site: string;
3
+ apiUrl: string;
4
+ apiKey: string;
5
+ }
6
+ /** Childless shell: policy is primed before identity effects; controller code loads after hydration. */
7
+ export declare function ResonanceRuntime({ site, apiUrl, apiKey }: ResonanceRuntimeProps): null;