@sonordev/site-kit 4.2.4 → 4.3.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 (345) hide show
  1. package/README.md +14 -6
  2. package/agent-manifest.json +20 -3
  3. package/dist/AnalyticsProvider-7AR6JHXJ.js +31 -0
  4. package/dist/{AnalyticsProvider-LFSSF7MQ.js.map → AnalyticsProvider-7AR6JHXJ.js.map} +1 -1
  5. package/dist/AnalyticsProvider-VWYCBDBH.mjs +10 -0
  6. package/dist/{AnalyticsProvider-HVPZPHZI.mjs.map → AnalyticsProvider-VWYCBDBH.mjs.map} +1 -1
  7. package/dist/ChatWidget-CIDC64OF.js +20 -0
  8. package/dist/{ChatWidget-RFVIYV5C.js.map → ChatWidget-CIDC64OF.js.map} +1 -1
  9. package/dist/ChatWidget-XZQXPCLI.mjs +11 -0
  10. package/dist/{ChatWidget-7E4PLIYQ.mjs.map → ChatWidget-XZQXPCLI.mjs.map} +1 -1
  11. package/dist/EngageWidget-27RJHFFZ.js +18 -0
  12. package/dist/{EngageWidget-LPMSXVT6.js.map → EngageWidget-27RJHFFZ.js.map} +1 -1
  13. package/dist/EngageWidget-RDX5XJ3V.mjs +9 -0
  14. package/dist/{EngageWidget-N7EQGSSL.mjs.map → EngageWidget-RDX5XJ3V.mjs.map} +1 -1
  15. package/dist/{FileField-Y7NOLT27.js → FileField-ASOR3XG5.js} +6 -6
  16. package/dist/{FileField-Y7NOLT27.js.map → FileField-ASOR3XG5.js.map} +1 -1
  17. package/dist/{FileField-AS6TUTXA.mjs → FileField-HSPQLACF.mjs} +5 -5
  18. package/dist/{FileField-AS6TUTXA.mjs.map → FileField-HSPQLACF.mjs.map} +1 -1
  19. package/dist/{FormSpotlight-RMYOXT2T.js → FormSpotlight-VTWP4X6H.js} +15 -15
  20. package/dist/{FormSpotlight-RMYOXT2T.js.map → FormSpotlight-VTWP4X6H.js.map} +1 -1
  21. package/dist/{FormSpotlight-I6FEUYAA.mjs → FormSpotlight-VZPPMBJU.mjs} +3 -3
  22. package/dist/{FormSpotlight-I6FEUYAA.mjs.map → FormSpotlight-VZPPMBJU.mjs.map} +1 -1
  23. package/dist/{FormStage-44OWEWZM.js → FormStage-DUCY4VGI.js} +13 -13
  24. package/dist/{FormStage-44OWEWZM.js.map → FormStage-DUCY4VGI.js.map} +1 -1
  25. package/dist/{FormStage-G3MUJMTC.mjs → FormStage-MTUODSRC.mjs} +3 -3
  26. package/dist/{FormStage-G3MUJMTC.mjs.map → FormStage-MTUODSRC.mjs.map} +1 -1
  27. package/dist/ManagedForm-6MTTWEER.js +23 -0
  28. package/dist/{ManagedForm-YC6WLYVJ.js.map → ManagedForm-6MTTWEER.js.map} +1 -1
  29. package/dist/ManagedForm-GKCCHPIX.mjs +14 -0
  30. package/dist/{ManagedForm-LVBNVUZE.mjs.map → ManagedForm-GKCCHPIX.mjs.map} +1 -1
  31. package/dist/{SignalCore-AW5VDA4Y.js → SignalCore-HWTGSUMC.js} +11 -11
  32. package/dist/{SignalCore-AW5VDA4Y.js.map → SignalCore-HWTGSUMC.js.map} +1 -1
  33. package/dist/{SignalCore-DYBIG4JP.mjs → SignalCore-TG3G3VYI.mjs} +5 -5
  34. package/dist/{SignalCore-DYBIG4JP.mjs.map → SignalCore-TG3G3VYI.mjs.map} +1 -1
  35. package/dist/SitemapSync-62VTFZDI.mjs +8 -0
  36. package/dist/{SitemapSync-2JJOGL7D.mjs.map → SitemapSync-62VTFZDI.mjs.map} +1 -1
  37. package/dist/SitemapSync-PQMQAZMH.js +17 -0
  38. package/dist/{SitemapSync-S54TSZLM.js.map → SitemapSync-PQMQAZMH.js.map} +1 -1
  39. package/dist/analytics/index.js +9 -9
  40. package/dist/analytics/index.mjs +4 -4
  41. package/dist/blog/server-ui.js +3 -3
  42. package/dist/blog/server-ui.mjs +2 -2
  43. package/dist/blog/server.js +41 -41
  44. package/dist/blog/server.mjs +2 -2
  45. package/dist/{chunk-LSNIDSLQ.js → chunk-22UZYZKI.js} +18 -18
  46. package/dist/{chunk-LSNIDSLQ.js.map → chunk-22UZYZKI.js.map} +1 -1
  47. package/dist/{chunk-KPSESCYA.js → chunk-2MAYXWJI.js} +15 -15
  48. package/dist/{chunk-KPSESCYA.js.map → chunk-2MAYXWJI.js.map} +1 -1
  49. package/dist/{chunk-2MFLOK2I.js → chunk-3FYSBRMT.js} +3 -3
  50. package/dist/{chunk-2MFLOK2I.js.map → chunk-3FYSBRMT.js.map} +1 -1
  51. package/dist/{chunk-QCZBXG7G.js → chunk-3TXX5KIN.js} +5 -5
  52. package/dist/{chunk-QCZBXG7G.js.map → chunk-3TXX5KIN.js.map} +1 -1
  53. package/dist/{chunk-KDWKSL7U.js → chunk-3YW4TAK2.js} +9 -9
  54. package/dist/{chunk-KDWKSL7U.js.map → chunk-3YW4TAK2.js.map} +1 -1
  55. package/dist/{chunk-ZJNIM4GQ.js → chunk-3ZWY6S4V.js} +15 -15
  56. package/dist/{chunk-ZJNIM4GQ.js.map → chunk-3ZWY6S4V.js.map} +1 -1
  57. package/dist/{chunk-GC3BC6HQ.js → chunk-46BMNWE6.js} +2 -2
  58. package/dist/chunk-46BMNWE6.js.map +1 -0
  59. package/dist/{chunk-OVIDFJIK.mjs → chunk-5YKMHPJL.mjs} +3 -3
  60. package/dist/chunk-5YKMHPJL.mjs.map +1 -0
  61. package/dist/{chunk-CPJA5XTO.mjs → chunk-5Z44EOL6.mjs} +4 -4
  62. package/dist/{chunk-CPJA5XTO.mjs.map → chunk-5Z44EOL6.mjs.map} +1 -1
  63. package/dist/{chunk-33OSUHPZ.mjs → chunk-6726TSBB.mjs} +4 -4
  64. package/dist/{chunk-33OSUHPZ.mjs.map → chunk-6726TSBB.mjs.map} +1 -1
  65. package/dist/{chunk-SACGTFCK.js → chunk-6CJP7BFM.js} +2 -2
  66. package/dist/chunk-6CJP7BFM.js.map +1 -0
  67. package/dist/{chunk-PA7ENTUZ.mjs → chunk-6VHVIBLQ.mjs} +3 -3
  68. package/dist/{chunk-PA7ENTUZ.mjs.map → chunk-6VHVIBLQ.mjs.map} +1 -1
  69. package/dist/{chunk-UDBUK5ZJ.mjs → chunk-6XNEGG5B.mjs} +28 -5
  70. package/dist/chunk-6XNEGG5B.mjs.map +1 -0
  71. package/dist/{chunk-RH5WIBIA.js → chunk-7M7LNHVD.js} +7 -7
  72. package/dist/{chunk-RH5WIBIA.js.map → chunk-7M7LNHVD.js.map} +1 -1
  73. package/dist/{chunk-6ZQFCZPW.mjs → chunk-ACAMCJJQ.mjs} +3 -3
  74. package/dist/{chunk-6ZQFCZPW.mjs.map → chunk-ACAMCJJQ.mjs.map} +1 -1
  75. package/dist/{chunk-KRARQ2ZF.mjs → chunk-AJQI3WTN.mjs} +2 -2
  76. package/dist/chunk-AJQI3WTN.mjs.map +1 -0
  77. package/dist/{chunk-XWBQLPTZ.mjs → chunk-AVFXLKIP.mjs} +4 -4
  78. package/dist/{chunk-XWBQLPTZ.mjs.map → chunk-AVFXLKIP.mjs.map} +1 -1
  79. package/dist/{chunk-U2CJZ6O5.mjs → chunk-B4BFQSSS.mjs} +4 -4
  80. package/dist/{chunk-U2CJZ6O5.mjs.map → chunk-B4BFQSSS.mjs.map} +1 -1
  81. package/dist/{chunk-OIY5O3SE.js → chunk-BL26HJKE.js} +8 -8
  82. package/dist/{chunk-OIY5O3SE.js.map → chunk-BL26HJKE.js.map} +1 -1
  83. package/dist/{chunk-XLD6K3BV.mjs → chunk-BW6DSJEJ.mjs} +4 -4
  84. package/dist/{chunk-XLD6K3BV.mjs.map → chunk-BW6DSJEJ.mjs.map} +1 -1
  85. package/dist/{chunk-SYR7YSB2.mjs → chunk-CCGFWAPD.mjs} +3 -3
  86. package/dist/{chunk-SYR7YSB2.mjs.map → chunk-CCGFWAPD.mjs.map} +1 -1
  87. package/dist/{chunk-HP7V2DI3.mjs → chunk-CJTU5EUQ.mjs} +4 -4
  88. package/dist/{chunk-HP7V2DI3.mjs.map → chunk-CJTU5EUQ.mjs.map} +1 -1
  89. package/dist/{chunk-A7O7IWL7.js → chunk-DDP6XUF5.js} +3 -3
  90. package/dist/{chunk-A7O7IWL7.js.map → chunk-DDP6XUF5.js.map} +1 -1
  91. package/dist/{chunk-UHVII7W7.mjs → chunk-E637QPCS.mjs} +3 -3
  92. package/dist/{chunk-UHVII7W7.mjs.map → chunk-E637QPCS.mjs.map} +1 -1
  93. package/dist/{chunk-TMKLH6MY.js → chunk-FBI6LYTM.js} +14 -14
  94. package/dist/{chunk-TMKLH6MY.js.map → chunk-FBI6LYTM.js.map} +1 -1
  95. package/dist/chunk-GFMUUALQ.js +8 -0
  96. package/dist/{chunk-4JVFWTER.js.map → chunk-GFMUUALQ.js.map} +1 -1
  97. package/dist/{chunk-5K2CX5LK.js → chunk-HSPDHVSJ.js} +6 -6
  98. package/dist/{chunk-5K2CX5LK.js.map → chunk-HSPDHVSJ.js.map} +1 -1
  99. package/dist/{chunk-BX6FFL2Y.js → chunk-HXHDOIV6.js} +5 -5
  100. package/dist/{chunk-BX6FFL2Y.js.map → chunk-HXHDOIV6.js.map} +1 -1
  101. package/dist/{chunk-YHGMM2XF.js → chunk-IM4OVQ4O.js} +14 -14
  102. package/dist/{chunk-YHGMM2XF.js.map → chunk-IM4OVQ4O.js.map} +1 -1
  103. package/dist/{chunk-UVRB4SQU.mjs → chunk-ISILFNCI.mjs} +3 -3
  104. package/dist/{chunk-UVRB4SQU.mjs.map → chunk-ISILFNCI.mjs.map} +1 -1
  105. package/dist/{chunk-E3F6OOVQ.mjs → chunk-JEEWKAAY.mjs} +3 -3
  106. package/dist/{chunk-E3F6OOVQ.mjs.map → chunk-JEEWKAAY.mjs.map} +1 -1
  107. package/dist/{chunk-BJW6YR6W.mjs → chunk-JPHPRD4Z.mjs} +3 -3
  108. package/dist/{chunk-BJW6YR6W.mjs.map → chunk-JPHPRD4Z.mjs.map} +1 -1
  109. package/dist/{chunk-NF3QVKWU.js → chunk-JX3PO2MH.js} +4 -4
  110. package/dist/{chunk-NF3QVKWU.js.map → chunk-JX3PO2MH.js.map} +1 -1
  111. package/dist/{chunk-ARFWE2EL.js → chunk-KI6LGZYL.js} +14 -14
  112. package/dist/{chunk-ARFWE2EL.js.map → chunk-KI6LGZYL.js.map} +1 -1
  113. package/dist/{chunk-A624YYDG.js → chunk-L2LJQIM3.js} +11 -11
  114. package/dist/{chunk-A624YYDG.js.map → chunk-L2LJQIM3.js.map} +1 -1
  115. package/dist/{chunk-2MLIU6OJ.mjs → chunk-LHQ5IEFS.mjs} +4 -4
  116. package/dist/{chunk-2MLIU6OJ.mjs.map → chunk-LHQ5IEFS.mjs.map} +1 -1
  117. package/dist/{chunk-V3HJLXAI.mjs → chunk-LYOM356F.mjs} +3 -3
  118. package/dist/{chunk-V3HJLXAI.mjs.map → chunk-LYOM356F.mjs.map} +1 -1
  119. package/dist/{chunk-C6HDI464.js → chunk-M5ZCJ34F.js} +14 -14
  120. package/dist/{chunk-C6HDI464.js.map → chunk-M5ZCJ34F.js.map} +1 -1
  121. package/dist/{chunk-LUXCT2NU.js → chunk-MIYP7WFZ.js} +4 -4
  122. package/dist/{chunk-LUXCT2NU.js.map → chunk-MIYP7WFZ.js.map} +1 -1
  123. package/dist/{chunk-2XLWCYB3.js → chunk-MPL42FJL.js} +12 -12
  124. package/dist/{chunk-2XLWCYB3.js.map → chunk-MPL42FJL.js.map} +1 -1
  125. package/dist/{chunk-C6CNCDIN.mjs → chunk-MTKE7ASR.mjs} +3 -3
  126. package/dist/{chunk-C6CNCDIN.mjs.map → chunk-MTKE7ASR.mjs.map} +1 -1
  127. package/dist/{chunk-QPIKPWAZ.js → chunk-O5GHP7UO.js} +28 -5
  128. package/dist/chunk-O5GHP7UO.js.map +1 -0
  129. package/dist/{chunk-SSRQHRZB.mjs → chunk-OAOT72JI.mjs} +8 -8
  130. package/dist/{chunk-SSRQHRZB.mjs.map → chunk-OAOT72JI.mjs.map} +1 -1
  131. package/dist/{chunk-UBSZ466T.mjs → chunk-PK43IK7S.mjs} +3 -3
  132. package/dist/{chunk-UBSZ466T.mjs.map → chunk-PK43IK7S.mjs.map} +1 -1
  133. package/dist/{chunk-77CIIDE6.js → chunk-PXAALKTP.js} +3 -3
  134. package/dist/chunk-PXAALKTP.js.map +1 -0
  135. package/dist/chunk-Q3VBSR4M.mjs +6 -0
  136. package/dist/{chunk-EFMPOC6L.mjs.map → chunk-Q3VBSR4M.mjs.map} +1 -1
  137. package/dist/{chunk-QQCOIGLN.js → chunk-QC6EOISZ.js} +8 -8
  138. package/dist/{chunk-QQCOIGLN.js.map → chunk-QC6EOISZ.js.map} +1 -1
  139. package/dist/{chunk-BDDTZJKC.js → chunk-QIJIOKNT.js} +4 -4
  140. package/dist/{chunk-BDDTZJKC.js.map → chunk-QIJIOKNT.js.map} +1 -1
  141. package/dist/{chunk-XKBADVXN.mjs → chunk-RJBW2JFO.mjs} +3 -3
  142. package/dist/{chunk-XKBADVXN.mjs.map → chunk-RJBW2JFO.mjs.map} +1 -1
  143. package/dist/{chunk-FSSVIYQ7.mjs → chunk-RPLZIPTB.mjs} +3 -3
  144. package/dist/{chunk-FSSVIYQ7.mjs.map → chunk-RPLZIPTB.mjs.map} +1 -1
  145. package/dist/{chunk-YDOWCCE2.mjs → chunk-RRAUM373.mjs} +4 -4
  146. package/dist/{chunk-YDOWCCE2.mjs.map → chunk-RRAUM373.mjs.map} +1 -1
  147. package/dist/{chunk-IUZ2RH4V.mjs → chunk-SFMNUVDN.mjs} +3 -3
  148. package/dist/{chunk-IUZ2RH4V.mjs.map → chunk-SFMNUVDN.mjs.map} +1 -1
  149. package/dist/{chunk-L5GUV4M7.mjs → chunk-SMCNQWEU.mjs} +7 -7
  150. package/dist/{chunk-L5GUV4M7.mjs.map → chunk-SMCNQWEU.mjs.map} +1 -1
  151. package/dist/{chunk-U3X6AKCN.mjs → chunk-SS74PQTF.mjs} +3 -3
  152. package/dist/{chunk-U3X6AKCN.mjs.map → chunk-SS74PQTF.mjs.map} +1 -1
  153. package/dist/{chunk-NK6K4VHD.js → chunk-ST7YQMYN.js} +4 -4
  154. package/dist/{chunk-NK6K4VHD.js.map → chunk-ST7YQMYN.js.map} +1 -1
  155. package/dist/{chunk-NB4MK2Q5.js → chunk-SWIKKSKL.js} +3 -2
  156. package/dist/chunk-SWIKKSKL.js.map +1 -0
  157. package/dist/{chunk-ICJ7EU4Z.js → chunk-U2V6WHKY.js} +7 -7
  158. package/dist/{chunk-ICJ7EU4Z.js.map → chunk-U2V6WHKY.js.map} +1 -1
  159. package/dist/{chunk-JHOMOLZA.js → chunk-U7WGZOJY.js} +12 -12
  160. package/dist/{chunk-JHOMOLZA.js.map → chunk-U7WGZOJY.js.map} +1 -1
  161. package/dist/{chunk-U7L7FW3K.js → chunk-UE537WQU.js} +4 -4
  162. package/dist/{chunk-U7L7FW3K.js.map → chunk-UE537WQU.js.map} +1 -1
  163. package/dist/{chunk-SRJSR6YP.mjs → chunk-UJ6CHZAI.mjs} +2 -2
  164. package/dist/chunk-UJ6CHZAI.mjs.map +1 -0
  165. package/dist/{chunk-2CHOHLB7.mjs → chunk-UOTXSWKZ.mjs} +3 -3
  166. package/dist/{chunk-2CHOHLB7.mjs.map → chunk-UOTXSWKZ.mjs.map} +1 -1
  167. package/dist/{chunk-GU5OTUQS.mjs → chunk-VS67QHNX.mjs} +3 -3
  168. package/dist/{chunk-GU5OTUQS.mjs.map → chunk-VS67QHNX.mjs.map} +1 -1
  169. package/dist/{chunk-CBUGUKRD.js → chunk-WMKE5XNV.js} +3 -3
  170. package/dist/{chunk-CBUGUKRD.js.map → chunk-WMKE5XNV.js.map} +1 -1
  171. package/dist/{chunk-YZ6UYIXD.js → chunk-Y5SN5HTO.js} +3 -3
  172. package/dist/{chunk-YZ6UYIXD.js.map → chunk-Y5SN5HTO.js.map} +1 -1
  173. package/dist/{chunk-WX6VKFHW.mjs → chunk-YLZNSSNI.mjs} +4 -4
  174. package/dist/{chunk-WX6VKFHW.mjs.map → chunk-YLZNSSNI.mjs.map} +1 -1
  175. package/dist/{chunk-ULV3DZ27.mjs → chunk-YXZTCBS7.mjs} +3 -3
  176. package/dist/{chunk-ULV3DZ27.mjs.map → chunk-YXZTCBS7.mjs.map} +1 -1
  177. package/dist/{chunk-NI7OY4FW.mjs → chunk-ZN4HBK5C.mjs} +3 -2
  178. package/dist/chunk-ZN4HBK5C.mjs.map +1 -0
  179. package/dist/{chunk-CLD3IE6D.js → chunk-ZZV4EWMF.js} +5 -5
  180. package/dist/{chunk-CLD3IE6D.js.map → chunk-ZZV4EWMF.js.map} +1 -1
  181. package/dist/cli/commands/og.d.ts +33 -0
  182. package/dist/cli/commands/og.d.ts.map +1 -1
  183. package/dist/cli/commands/og.test.d.ts +2 -0
  184. package/dist/cli/commands/og.test.d.ts.map +1 -0
  185. package/dist/cli/index.js +61 -25
  186. package/dist/cli/index.js.map +1 -1
  187. package/dist/cli/index.mjs +54 -18
  188. package/dist/cli/index.mjs.map +1 -1
  189. package/dist/client/index.js +5 -5
  190. package/dist/client/index.mjs +4 -4
  191. package/dist/cms/index.js +3 -3
  192. package/dist/cms/index.mjs +2 -2
  193. package/dist/cms/server.js +5 -5
  194. package/dist/cms/server.mjs +2 -2
  195. package/dist/commerce/index.js +56 -56
  196. package/dist/commerce/index.mjs +5 -5
  197. package/dist/config/index.d.ts +1 -1
  198. package/dist/config/index.d.ts.map +1 -1
  199. package/dist/config/index.js +2 -2
  200. package/dist/config/index.js.map +1 -1
  201. package/dist/config/index.mjs +1 -1
  202. package/dist/config/index.mjs.map +1 -1
  203. package/dist/engage/index.js +13 -13
  204. package/dist/engage/index.mjs +7 -7
  205. package/dist/fleet/index.js +8 -8
  206. package/dist/fleet/index.mjs +4 -4
  207. package/dist/forms/index.js +21 -21
  208. package/dist/forms/index.mjs +10 -10
  209. package/dist/forms/server.js +12 -12
  210. package/dist/forms/server.mjs +9 -9
  211. package/dist/forms/static.js +7 -7
  212. package/dist/forms/static.mjs +6 -6
  213. package/dist/images/index.js +11 -11
  214. package/dist/images/index.mjs +4 -4
  215. package/dist/index.js +68 -68
  216. package/dist/index.mjs +10 -10
  217. package/dist/layout/client.js +9 -9
  218. package/dist/layout/client.mjs +8 -8
  219. package/dist/layout/index.js +13 -13
  220. package/dist/layout/index.mjs +10 -10
  221. package/dist/llms/index.js +12 -12
  222. package/dist/llms/index.mjs +2 -2
  223. package/dist/maps/index.js +5 -5
  224. package/dist/maps/index.mjs +3 -3
  225. package/dist/mcp/WebMcpTools.d.ts +60 -0
  226. package/dist/mcp/WebMcpTools.d.ts.map +1 -0
  227. package/dist/mcp/client.d.ts +9 -0
  228. package/dist/mcp/client.d.ts.map +1 -0
  229. package/dist/mcp/client.js +132 -0
  230. package/dist/mcp/client.js.map +1 -0
  231. package/dist/mcp/client.mjs +129 -0
  232. package/dist/mcp/client.mjs.map +1 -0
  233. package/dist/mcp/declarative.d.ts +77 -0
  234. package/dist/mcp/declarative.d.ts.map +1 -0
  235. package/dist/mcp/handlers.d.ts +92 -0
  236. package/dist/mcp/handlers.d.ts.map +1 -0
  237. package/dist/mcp/index.d.ts +29 -0
  238. package/dist/mcp/index.d.ts.map +1 -0
  239. package/dist/mcp/index.js +537 -0
  240. package/dist/mcp/index.js.map +1 -0
  241. package/dist/mcp/index.mjs +509 -0
  242. package/dist/mcp/index.mjs.map +1 -0
  243. package/dist/mcp/protocol.d.ts +140 -0
  244. package/dist/mcp/protocol.d.ts.map +1 -0
  245. package/dist/mcp/protocol.test.d.ts +2 -0
  246. package/dist/mcp/protocol.test.d.ts.map +1 -0
  247. package/dist/mcp/serverCard.d.ts +77 -0
  248. package/dist/mcp/serverCard.d.ts.map +1 -0
  249. package/dist/mcp/types.d.ts +154 -0
  250. package/dist/mcp/types.d.ts.map +1 -0
  251. package/dist/og/config.d.ts +6 -0
  252. package/dist/og/config.d.ts.map +1 -1
  253. package/dist/og/index.js +5 -5
  254. package/dist/og/index.mjs +1 -1
  255. package/dist/og/pages.d.ts +39 -1
  256. package/dist/og/pages.d.ts.map +1 -1
  257. package/dist/{middleware → proxy}/index.d.ts +19 -9
  258. package/dist/proxy/index.d.ts.map +1 -0
  259. package/dist/{middleware → proxy}/index.js +10 -10
  260. package/dist/proxy/index.js.map +1 -0
  261. package/dist/{middleware → proxy}/index.mjs +7 -7
  262. package/dist/proxy/index.mjs.map +1 -0
  263. package/dist/proxy/securityHeaders.d.ts.map +1 -0
  264. package/dist/proxy/securityHeaders.test.d.ts.map +1 -0
  265. package/dist/{middleware → proxy}/segment.d.ts +1 -1
  266. package/dist/proxy/segment.d.ts.map +1 -0
  267. package/dist/proxy/segment.test.d.ts.map +1 -0
  268. package/dist/redirects/index.d.ts +2 -2
  269. package/dist/redirects/index.js +8 -8
  270. package/dist/redirects/index.mjs +1 -1
  271. package/dist/redirects/not-found.js +5 -5
  272. package/dist/redirects/not-found.mjs +1 -1
  273. package/dist/search/index.js +4 -4
  274. package/dist/search/index.mjs +3 -3
  275. package/dist/seo/client.js +5 -5
  276. package/dist/seo/client.mjs +4 -4
  277. package/dist/seo/index.js +43 -43
  278. package/dist/seo/index.mjs +9 -9
  279. package/dist/seo/routing.d.ts +3 -3
  280. package/dist/seo/server.js +19 -19
  281. package/dist/seo/server.mjs +3 -3
  282. package/dist/seo-pages/contract.js +6 -6
  283. package/dist/seo-pages/contract.mjs +2 -2
  284. package/dist/server/index.js +8 -8
  285. package/dist/server/index.mjs +3 -3
  286. package/dist/server/server-fetch.d.ts +7 -0
  287. package/dist/server/server-fetch.d.ts.map +1 -1
  288. package/dist/server/server-fetch.test.d.ts +2 -0
  289. package/dist/server/server-fetch.test.d.ts.map +1 -0
  290. package/dist/{server-api-GRZ3ZBCC.js → server-api-DB2SIUP4.js} +22 -22
  291. package/dist/{server-api-GRZ3ZBCC.js.map → server-api-DB2SIUP4.js.map} +1 -1
  292. package/dist/{server-api-2RAXJS3T.mjs → server-api-HW4PL2L2.mjs} +4 -4
  293. package/dist/{server-api-2RAXJS3T.mjs.map → server-api-HW4PL2L2.mjs.map} +1 -1
  294. package/dist/shared/build-entries.d.ts +5 -2
  295. package/dist/shared/build-entries.d.ts.map +1 -1
  296. package/dist/shared/version.d.ts +1 -1
  297. package/dist/signal/index.js +11 -11
  298. package/dist/signal/index.mjs +2 -2
  299. package/dist/sitemap/index.d.ts +24 -0
  300. package/dist/sitemap/index.d.ts.map +1 -1
  301. package/dist/sitemap/index.js +24 -10
  302. package/dist/sitemap/index.js.map +1 -1
  303. package/dist/sitemap/index.mjs +24 -10
  304. package/dist/sitemap/index.mjs.map +1 -1
  305. package/dist/sites/contract.js +9 -9
  306. package/dist/sites/contract.mjs +2 -2
  307. package/dist/sites/normalize.d.ts +2 -1
  308. package/dist/sites/normalize.d.ts.map +1 -1
  309. package/dist/slots/index.js +2 -2
  310. package/dist/slots/index.mjs +1 -1
  311. package/dist/sync/index.js +16 -16
  312. package/dist/sync/index.mjs +4 -4
  313. package/package.json +19 -4
  314. package/dist/AnalyticsProvider-HVPZPHZI.mjs +0 -10
  315. package/dist/AnalyticsProvider-LFSSF7MQ.js +0 -31
  316. package/dist/ChatWidget-7E4PLIYQ.mjs +0 -11
  317. package/dist/ChatWidget-RFVIYV5C.js +0 -20
  318. package/dist/EngageWidget-LPMSXVT6.js +0 -18
  319. package/dist/EngageWidget-N7EQGSSL.mjs +0 -9
  320. package/dist/ManagedForm-LVBNVUZE.mjs +0 -14
  321. package/dist/ManagedForm-YC6WLYVJ.js +0 -23
  322. package/dist/SitemapSync-2JJOGL7D.mjs +0 -8
  323. package/dist/SitemapSync-S54TSZLM.js +0 -17
  324. package/dist/chunk-4JVFWTER.js +0 -8
  325. package/dist/chunk-77CIIDE6.js.map +0 -1
  326. package/dist/chunk-EFMPOC6L.mjs +0 -6
  327. package/dist/chunk-GC3BC6HQ.js.map +0 -1
  328. package/dist/chunk-KRARQ2ZF.mjs.map +0 -1
  329. package/dist/chunk-NB4MK2Q5.js.map +0 -1
  330. package/dist/chunk-NI7OY4FW.mjs.map +0 -1
  331. package/dist/chunk-OVIDFJIK.mjs.map +0 -1
  332. package/dist/chunk-QPIKPWAZ.js.map +0 -1
  333. package/dist/chunk-SACGTFCK.js.map +0 -1
  334. package/dist/chunk-SRJSR6YP.mjs.map +0 -1
  335. package/dist/chunk-UDBUK5ZJ.mjs.map +0 -1
  336. package/dist/middleware/index.d.ts.map +0 -1
  337. package/dist/middleware/index.js.map +0 -1
  338. package/dist/middleware/index.mjs.map +0 -1
  339. package/dist/middleware/securityHeaders.d.ts.map +0 -1
  340. package/dist/middleware/securityHeaders.test.d.ts.map +0 -1
  341. package/dist/middleware/segment.d.ts.map +0 -1
  342. package/dist/middleware/segment.test.d.ts.map +0 -1
  343. /package/dist/{middleware → proxy}/securityHeaders.d.ts +0 -0
  344. /package/dist/{middleware → proxy}/securityHeaders.test.d.ts +0 -0
  345. /package/dist/{middleware → proxy}/segment.test.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/signal/SignalCore.tsx"],"names":[],"mappings":"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","file":"SignalCore-DYBIG4JP.mjs","sourcesContent":["/**\n * @sonordev/site-kit/signal - SignalCore\n *\n * The heavy half of SignalBridge: config fetching, SSE streaming, experiment\n * assignment, event queue/flush, and behavioral tracking. Mounted by the\n * SignalBridge shell as a CHILDLESS lazy sibling — it never wraps page\n * content, so the signal machinery stays out of the server-render path and\n * off the critical hydration chunk. It reports state up to the shell via\n * `onState` and registers its imperative API via `onRegister`.\n */\n\n'use client'\n\nimport { useCallback, useEffect, useRef, useState } from 'react'\n// Single source of truth for visitor/session IDs (storage keys _sk_vid/_sk_sid)\n// — shared with Analytics and Engage. Do NOT re-fork ID logic into this module.\nimport { getOrCreateVisitorId, getOrCreateSessionId } from '../shared/identity'\n// Canonical client transport — the same wrapper Analytics/Forms/Engage route\n// through (see shared/sonorFetch header). It gives every request a per-attempt\n// AbortSignal timeout, so a hung API aborts cleanly instead of being left to log\n// net::ERR_TIMED_OUT — the console error that fails Lighthouse best-practices.\n// It also sets x-api-key from the `apiKey` option, so callers drop the header.\nimport { sonorFetch } from '../shared/sonorFetch'\nimport { getFreshCredential, isSiteToken } from '../shared/siteToken'\nimport type {\n SignalConfig,\n SignalEvent,\n SignalOutcome,\n ExperimentAssignment,\n} from './types'\n\n// ============================================\n// Shell ↔ core contract\n// ============================================\n\nexport interface SignalCoreApi {\n trackEvent: (event: Partial<SignalEvent>) => void\n trackOutcome: (outcome: SignalOutcome) => void\n getExperiment: (experimentId: string) => ExperimentAssignment | null\n refreshConfig: () => Promise<void>\n}\n\nexport interface SignalCoreState {\n config: SignalConfig | null\n loading: boolean\n error: Error | null\n}\n\nexport interface SignalCoreProps {\n enabled: boolean\n realtime: boolean\n experiments: boolean\n behaviorTracking: boolean\n externalVisitorId?: string\n externalSessionId?: string\n pageMetadataRef?: React.RefObject<Record<string, unknown> | null>\n /** Called with the imperative API on mount, and with null on unmount. */\n onRegister: (api: SignalCoreApi | null) => void\n /** Called whenever config/loading/error change, so the shell can re-render consumers. */\n onState: (state: SignalCoreState) => void\n}\n\n// ============================================\n// Utility Functions\n// ============================================\n\nfunction getApiConfig() {\n const apiUrl = typeof window !== 'undefined'\n ? (window as any).__SITE_KIT_API_URL__ || 'https://api.sonor.io'\n : 'https://api.sonor.io'\n const apiKey = typeof window !== 'undefined'\n ? (window as any).__SITE_KIT_API_KEY__\n : undefined\n return { apiUrl, apiKey }\n}\n\n// A visitor's console must stay clean (Lighthouse \"errors logged to the console\"\n// best-practice) — Signal's diagnostics only surface when the site opts into\n// debug via SiteKitClientProviders' __SITE_KIT_DEBUG__ global, mirroring how\n// AnalyticsProvider gates every one of its logs behind its `debug` prop.\nfunction isDebug(): boolean {\n return typeof window !== 'undefined' && !!(window as any).__SITE_KIT_DEBUG__\n}\n\nfunction getDeviceType(): 'desktop' | 'mobile' | 'tablet' {\n if (typeof window === 'undefined') return 'desktop'\n const ua = navigator.userAgent\n if (/tablet|ipad|playbook|silk/i.test(ua)) return 'tablet'\n if (/mobile|iphone|ipod|android|blackberry|opera mini|iemobile/i.test(ua)) return 'mobile'\n return 'desktop'\n}\n\nfunction getBrowser(): string {\n if (typeof window === 'undefined') return 'unknown'\n const ua = navigator.userAgent\n if (ua.includes('Firefox')) return 'Firefox'\n if (ua.includes('Edg')) return 'Edge'\n if (ua.includes('Chrome')) return 'Chrome'\n if (ua.includes('Safari')) return 'Safari'\n return 'Other'\n}\n\nfunction getOS(): string {\n if (typeof window === 'undefined') return 'unknown'\n const ua = navigator.userAgent\n if (ua.includes('Windows')) return 'Windows'\n if (ua.includes('Mac')) return 'macOS'\n if (ua.includes('iPhone') || ua.includes('iPad')) return 'iOS'\n if (ua.includes('Android')) return 'Android'\n if (ua.includes('Linux')) return 'Linux'\n return 'Other'\n}\n\n// ============================================\n// SignalCore Component (childless)\n// ============================================\n\nexport function SignalCore({\n enabled,\n realtime,\n experiments,\n behaviorTracking,\n externalVisitorId,\n externalSessionId,\n pageMetadataRef,\n onRegister,\n onState,\n}: SignalCoreProps) {\n const [config, setConfig] = useState<SignalConfig | null>(null)\n const [loading, setLoading] = useState(true)\n const [error, setError] = useState<Error | null>(null)\n\n // Refs for SSE and tracking\n const eventSourceRef = useRef<EventSource | null>(null)\n const eventQueueRef = useRef<Partial<SignalEvent>[]>([])\n const flushTimeoutRef = useRef<NodeJS.Timeout | null>(null)\n const assignmentsRef = useRef<Map<string, ExperimentAssignment>>(new Map())\n\n // Behavioral tracking state\n const pageLoadTimeRef = useRef<number>(Date.now())\n const scrollDepthRef = useRef<number>(0)\n const clickCountRef = useRef<number>(0)\n\n const { apiUrl, apiKey } = getApiConfig()\n\n // Use external IDs from shared identity, fall back to the shared generators\n const resolvedVisitorId = externalVisitorId || getOrCreateVisitorId()\n const resolvedSessionId = externalSessionId || getOrCreateSessionId()\n\n // Mirror state up to the shell so context consumers re-render\n useEffect(() => {\n onState({ config, loading, error })\n }, [config, loading, error, onState])\n\n // ============================================\n // Experiment Assignment\n // ============================================\n\n const loadExperimentAssignment = useCallback(async (experimentId: string): Promise<ExperimentAssignment | null> => {\n // Check localStorage first\n const storageKey = `_signal_exp_${experimentId}`\n const stored = localStorage.getItem(storageKey)\n\n if (stored) {\n try {\n const assignment = JSON.parse(stored) as ExperimentAssignment\n if (assignment.expires > Date.now()) {\n assignmentsRef.current.set(experimentId, assignment)\n return assignment\n }\n } catch {\n // Invalid stored data, continue to fetch\n }\n }\n\n // Fetch from API — idempotent read, so the transport's default retries apply.\n try {\n const response = await sonorFetch(\n `${apiUrl}/api/public/signal/experiment/${experimentId}`,\n {\n headers: {\n 'x-visitor-id': resolvedVisitorId,\n },\n },\n { apiKey },\n )\n\n if (!response.ok) return null\n\n const assignment = await response.json() as ExperimentAssignment\n\n // Store assignment\n localStorage.setItem(storageKey, JSON.stringify(assignment))\n assignmentsRef.current.set(experimentId, assignment)\n\n return assignment\n } catch (err) {\n if (isDebug()) console.error('[Signal] Experiment assignment error:', err)\n return null\n }\n }, [apiUrl, apiKey])\n\n const getExperiment = useCallback((experimentId: string): ExperimentAssignment | null => {\n return assignmentsRef.current.get(experimentId) || null\n }, [])\n\n // ============================================\n // Config Fetching\n // ============================================\n\n const fetchConfig = useCallback(async () => {\n if (!apiKey || !enabled) {\n setLoading(false)\n return\n }\n\n try {\n const response = await sonorFetch(\n `${apiUrl}/api/public/signal/config`,\n {\n headers: {\n 'x-visitor-id': resolvedVisitorId,\n },\n },\n { apiKey },\n )\n\n if (!response.ok) {\n throw new Error(`Failed to fetch Signal config: ${response.statusText}`)\n }\n\n const data = await response.json()\n setConfig(data.config)\n setError(null)\n\n // Load experiment assignments\n if (experiments && data.config?.experiments) {\n for (const exp of data.config.experiments) {\n if (exp.status === 'running') {\n await loadExperimentAssignment(exp.id)\n }\n }\n }\n } catch (err) {\n if (isDebug()) console.error('[Signal] Config fetch error:', err)\n setError(err as Error)\n } finally {\n setLoading(false)\n }\n }, [apiUrl, apiKey, enabled, experiments, resolvedVisitorId, loadExperimentAssignment])\n\n // ============================================\n // SSE Real-time Updates\n // ============================================\n\n const connectSSE = useCallback(() => {\n if (!apiKey || !enabled || !realtime) return\n\n // Close existing connection\n if (eventSourceRef.current) {\n eventSourceRef.current.close()\n eventSourceRef.current = null\n }\n\n // EventSource cannot send headers, so the credential rides in the URL —\n // which server/CDN access logs capture. Per the transport contract in\n // sonorFetch.ts, the raw API key NEVER goes in a URL: only the\n // short-lived minted site token may (bounded exposure, unforgeable HMAC).\n // Raw-key mode (2.x layouts, mint-failure fallback) skips the stream —\n // config still loads via POST, only live push is lost.\n void (async () => {\n const credential = await getFreshCredential(apiKey)\n if (!credential || !isSiteToken(credential)) {\n if (isDebug()) {\n console.warn('[Signal] Realtime stream disabled: requires site-token mode (raw keys never go in URLs)')\n }\n return\n }\n if (eventSourceRef.current) return\n\n const url = `${apiUrl}/api/public/signal/stream?token=${encodeURIComponent(credential)}`\n connectEventSource(url)\n })()\n\n function connectEventSource(url: string) {\n const eventSource = new EventSource(url)\n\n eventSource.addEventListener('config_update', (e) => {\n try {\n const { config: newConfig, version } = JSON.parse(e.data)\n setConfig(prev => {\n if (prev?.version !== version) {\n if (isDebug()) console.log('[Signal] Config updated to version:', version)\n return newConfig\n }\n return prev\n })\n } catch (err) {\n if (isDebug()) console.error('[Signal] SSE parse error:', err)\n }\n })\n\n eventSource.addEventListener('experiment_update', (e) => {\n try {\n const { experiment_id, action } = JSON.parse(e.data)\n if (action === 'started' || action === 'updated') {\n loadExperimentAssignment(experiment_id)\n } else if (action === 'stopped') {\n assignmentsRef.current.delete(experiment_id)\n }\n } catch (err) {\n if (isDebug()) console.error('[Signal] Experiment update error:', err)\n }\n })\n\n eventSource.onerror = () => {\n if (isDebug()) console.warn('[Signal] SSE connection error, reconnecting...')\n eventSource.close()\n if (eventSourceRef.current === eventSource) {\n eventSourceRef.current = null\n }\n // Reconnect after 5 seconds (re-mints the token if it expired)\n setTimeout(connectSSE, 5000)\n }\n\n eventSourceRef.current = eventSource\n }\n }, [apiUrl, apiKey, enabled, realtime, loadExperimentAssignment])\n\n // ============================================\n // Event Tracking\n // ============================================\n\n const flushEvents = useCallback(async () => {\n if (eventQueueRef.current.length === 0) return\n\n const events = [...eventQueueRef.current]\n eventQueueRef.current = []\n\n try {\n // retries: 0 — fire-and-forget tracking; a retried flush after a lost\n // response would double-count events. The transport still aborts a hung\n // request at its timeout (no net::ERR_TIMED_OUT).\n await sonorFetch(\n `${apiUrl}/api/public/signal/events`,\n {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n visitor_id: resolvedVisitorId,\n session_id: resolvedSessionId,\n events,\n }),\n },\n { apiKey, retries: 0 },\n )\n } catch (err) {\n // Re-queue failed events\n eventQueueRef.current = [...events, ...eventQueueRef.current]\n if (isDebug()) console.error('[Signal] Event flush error:', err)\n }\n }, [apiUrl, apiKey])\n\n const trackEvent = useCallback((event: Partial<SignalEvent>) => {\n if (!enabled || !apiKey) return\n\n // Enrich event with context\n const enrichedEvent: Partial<SignalEvent> = {\n ...event,\n page_url: window.location.href,\n page_path: window.location.pathname,\n referrer: document.referrer,\n device_type: getDeviceType(),\n browser: getBrowser(),\n os: getOS(),\n viewport_width: window.innerWidth,\n viewport_height: window.innerHeight,\n time_on_page: Date.now() - pageLoadTimeRef.current,\n scroll_depth: scrollDepthRef.current,\n click_count: clickCountRef.current,\n experiments: Array.from(assignmentsRef.current.values()).map(a => ({\n experiment_id: a.experiment_id,\n variant_key: a.variant_key,\n })),\n // Merge page metadata from Analytics if available\n page_metadata: pageMetadataRef?.current ?? undefined,\n timestamp: new Date().toISOString(),\n }\n\n eventQueueRef.current.push(enrichedEvent)\n\n // Debounce flush\n if (flushTimeoutRef.current) {\n clearTimeout(flushTimeoutRef.current)\n }\n flushTimeoutRef.current = setTimeout(flushEvents, 1000)\n }, [enabled, apiKey, flushEvents])\n\n // ============================================\n // Outcome Tracking\n // ============================================\n\n const trackOutcome = useCallback(async (outcome: SignalOutcome) => {\n if (!enabled || !apiKey) return\n\n try {\n // retries: 0 — fire-and-forget conversion signal; never double-fire on a\n // lost response. Still aborts a hung request at the transport timeout.\n await sonorFetch(\n `${apiUrl}/api/public/signal/outcome`,\n {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n ...outcome,\n visitor_id: resolvedVisitorId,\n session_id: resolvedSessionId,\n experiments: Array.from(assignmentsRef.current.keys()),\n page_url: window.location.href,\n timestamp: new Date().toISOString(),\n }),\n },\n { apiKey, retries: 0 },\n )\n } catch (err) {\n if (isDebug()) console.error('[Signal] Outcome tracking error:', err)\n }\n }, [apiUrl, apiKey, enabled])\n\n // ============================================\n // Behavioral Tracking\n // ============================================\n\n useEffect(() => {\n if (!behaviorTracking || typeof window === 'undefined') return\n\n // Track scroll depth\n const handleScroll = () => {\n const scrollTop = window.scrollY\n const docHeight = document.documentElement.scrollHeight - window.innerHeight\n const depth = docHeight > 0 ? Math.round((scrollTop / docHeight) * 100) : 0\n scrollDepthRef.current = Math.max(scrollDepthRef.current, depth)\n }\n\n // Track clicks\n const handleClick = () => {\n clickCountRef.current++\n }\n\n window.addEventListener('scroll', handleScroll, { passive: true })\n window.addEventListener('click', handleClick)\n\n // Flush on visibility change or page hide.\n // `pagehide` (not `beforeunload`): fires on iOS Safari, bfcache-safe.\n const handleVisibilityChange = () => {\n if (document.visibilityState === 'hidden') {\n flushEvents()\n }\n }\n\n document.addEventListener('visibilitychange', handleVisibilityChange)\n window.addEventListener('pagehide', flushEvents)\n\n return () => {\n window.removeEventListener('scroll', handleScroll)\n window.removeEventListener('click', handleClick)\n document.removeEventListener('visibilitychange', handleVisibilityChange)\n window.removeEventListener('pagehide', flushEvents)\n }\n }, [behaviorTracking, flushEvents])\n\n // ============================================\n // Initialization + shell registration\n // ============================================\n\n useEffect(() => {\n fetchConfig()\n }, [fetchConfig])\n\n useEffect(() => {\n if (config && realtime) {\n connectSSE()\n }\n\n return () => {\n if (eventSourceRef.current) {\n eventSourceRef.current.close()\n }\n }\n }, [config, realtime, connectSSE])\n\n // Hand the imperative API to the shell; buffered calls drain on register.\n useEffect(() => {\n onRegister({\n trackEvent,\n trackOutcome: (outcome: SignalOutcome) => { void trackOutcome(outcome) },\n getExperiment,\n refreshConfig: fetchConfig,\n })\n return () => onRegister(null)\n }, [onRegister, trackEvent, trackOutcome, getExperiment, fetchConfig])\n\n return null\n}\n"]}
1
+ {"version":3,"sources":["../src/signal/SignalCore.tsx"],"names":[],"mappings":"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","file":"SignalCore-TG3G3VYI.mjs","sourcesContent":["/**\n * @sonordev/site-kit/signal - SignalCore\n *\n * The heavy half of SignalBridge: config fetching, SSE streaming, experiment\n * assignment, event queue/flush, and behavioral tracking. Mounted by the\n * SignalBridge shell as a CHILDLESS lazy sibling — it never wraps page\n * content, so the signal machinery stays out of the server-render path and\n * off the critical hydration chunk. It reports state up to the shell via\n * `onState` and registers its imperative API via `onRegister`.\n */\n\n'use client'\n\nimport { useCallback, useEffect, useRef, useState } from 'react'\n// Single source of truth for visitor/session IDs (storage keys _sk_vid/_sk_sid)\n// — shared with Analytics and Engage. Do NOT re-fork ID logic into this module.\nimport { getOrCreateVisitorId, getOrCreateSessionId } from '../shared/identity'\n// Canonical client transport — the same wrapper Analytics/Forms/Engage route\n// through (see shared/sonorFetch header). It gives every request a per-attempt\n// AbortSignal timeout, so a hung API aborts cleanly instead of being left to log\n// net::ERR_TIMED_OUT — the console error that fails Lighthouse best-practices.\n// It also sets x-api-key from the `apiKey` option, so callers drop the header.\nimport { sonorFetch } from '../shared/sonorFetch'\nimport { getFreshCredential, isSiteToken } from '../shared/siteToken'\nimport type {\n SignalConfig,\n SignalEvent,\n SignalOutcome,\n ExperimentAssignment,\n} from './types'\n\n// ============================================\n// Shell ↔ core contract\n// ============================================\n\nexport interface SignalCoreApi {\n trackEvent: (event: Partial<SignalEvent>) => void\n trackOutcome: (outcome: SignalOutcome) => void\n getExperiment: (experimentId: string) => ExperimentAssignment | null\n refreshConfig: () => Promise<void>\n}\n\nexport interface SignalCoreState {\n config: SignalConfig | null\n loading: boolean\n error: Error | null\n}\n\nexport interface SignalCoreProps {\n enabled: boolean\n realtime: boolean\n experiments: boolean\n behaviorTracking: boolean\n externalVisitorId?: string\n externalSessionId?: string\n pageMetadataRef?: React.RefObject<Record<string, unknown> | null>\n /** Called with the imperative API on mount, and with null on unmount. */\n onRegister: (api: SignalCoreApi | null) => void\n /** Called whenever config/loading/error change, so the shell can re-render consumers. */\n onState: (state: SignalCoreState) => void\n}\n\n// ============================================\n// Utility Functions\n// ============================================\n\nfunction getApiConfig() {\n const apiUrl = typeof window !== 'undefined'\n ? (window as any).__SITE_KIT_API_URL__ || 'https://api.sonor.io'\n : 'https://api.sonor.io'\n const apiKey = typeof window !== 'undefined'\n ? (window as any).__SITE_KIT_API_KEY__\n : undefined\n return { apiUrl, apiKey }\n}\n\n// A visitor's console must stay clean (Lighthouse \"errors logged to the console\"\n// best-practice) — Signal's diagnostics only surface when the site opts into\n// debug via SiteKitClientProviders' __SITE_KIT_DEBUG__ global, mirroring how\n// AnalyticsProvider gates every one of its logs behind its `debug` prop.\nfunction isDebug(): boolean {\n return typeof window !== 'undefined' && !!(window as any).__SITE_KIT_DEBUG__\n}\n\nfunction getDeviceType(): 'desktop' | 'mobile' | 'tablet' {\n if (typeof window === 'undefined') return 'desktop'\n const ua = navigator.userAgent\n if (/tablet|ipad|playbook|silk/i.test(ua)) return 'tablet'\n if (/mobile|iphone|ipod|android|blackberry|opera mini|iemobile/i.test(ua)) return 'mobile'\n return 'desktop'\n}\n\nfunction getBrowser(): string {\n if (typeof window === 'undefined') return 'unknown'\n const ua = navigator.userAgent\n if (ua.includes('Firefox')) return 'Firefox'\n if (ua.includes('Edg')) return 'Edge'\n if (ua.includes('Chrome')) return 'Chrome'\n if (ua.includes('Safari')) return 'Safari'\n return 'Other'\n}\n\nfunction getOS(): string {\n if (typeof window === 'undefined') return 'unknown'\n const ua = navigator.userAgent\n if (ua.includes('Windows')) return 'Windows'\n if (ua.includes('Mac')) return 'macOS'\n if (ua.includes('iPhone') || ua.includes('iPad')) return 'iOS'\n if (ua.includes('Android')) return 'Android'\n if (ua.includes('Linux')) return 'Linux'\n return 'Other'\n}\n\n// ============================================\n// SignalCore Component (childless)\n// ============================================\n\nexport function SignalCore({\n enabled,\n realtime,\n experiments,\n behaviorTracking,\n externalVisitorId,\n externalSessionId,\n pageMetadataRef,\n onRegister,\n onState,\n}: SignalCoreProps) {\n const [config, setConfig] = useState<SignalConfig | null>(null)\n const [loading, setLoading] = useState(true)\n const [error, setError] = useState<Error | null>(null)\n\n // Refs for SSE and tracking\n const eventSourceRef = useRef<EventSource | null>(null)\n const eventQueueRef = useRef<Partial<SignalEvent>[]>([])\n const flushTimeoutRef = useRef<NodeJS.Timeout | null>(null)\n const assignmentsRef = useRef<Map<string, ExperimentAssignment>>(new Map())\n\n // Behavioral tracking state\n const pageLoadTimeRef = useRef<number>(Date.now())\n const scrollDepthRef = useRef<number>(0)\n const clickCountRef = useRef<number>(0)\n\n const { apiUrl, apiKey } = getApiConfig()\n\n // Use external IDs from shared identity, fall back to the shared generators\n const resolvedVisitorId = externalVisitorId || getOrCreateVisitorId()\n const resolvedSessionId = externalSessionId || getOrCreateSessionId()\n\n // Mirror state up to the shell so context consumers re-render\n useEffect(() => {\n onState({ config, loading, error })\n }, [config, loading, error, onState])\n\n // ============================================\n // Experiment Assignment\n // ============================================\n\n const loadExperimentAssignment = useCallback(async (experimentId: string): Promise<ExperimentAssignment | null> => {\n // Check localStorage first\n const storageKey = `_signal_exp_${experimentId}`\n const stored = localStorage.getItem(storageKey)\n\n if (stored) {\n try {\n const assignment = JSON.parse(stored) as ExperimentAssignment\n if (assignment.expires > Date.now()) {\n assignmentsRef.current.set(experimentId, assignment)\n return assignment\n }\n } catch {\n // Invalid stored data, continue to fetch\n }\n }\n\n // Fetch from API — idempotent read, so the transport's default retries apply.\n try {\n const response = await sonorFetch(\n `${apiUrl}/api/public/signal/experiment/${experimentId}`,\n {\n headers: {\n 'x-visitor-id': resolvedVisitorId,\n },\n },\n { apiKey },\n )\n\n if (!response.ok) return null\n\n const assignment = await response.json() as ExperimentAssignment\n\n // Store assignment\n localStorage.setItem(storageKey, JSON.stringify(assignment))\n assignmentsRef.current.set(experimentId, assignment)\n\n return assignment\n } catch (err) {\n if (isDebug()) console.error('[Signal] Experiment assignment error:', err)\n return null\n }\n }, [apiUrl, apiKey])\n\n const getExperiment = useCallback((experimentId: string): ExperimentAssignment | null => {\n return assignmentsRef.current.get(experimentId) || null\n }, [])\n\n // ============================================\n // Config Fetching\n // ============================================\n\n const fetchConfig = useCallback(async () => {\n if (!apiKey || !enabled) {\n setLoading(false)\n return\n }\n\n try {\n const response = await sonorFetch(\n `${apiUrl}/api/public/signal/config`,\n {\n headers: {\n 'x-visitor-id': resolvedVisitorId,\n },\n },\n { apiKey },\n )\n\n if (!response.ok) {\n throw new Error(`Failed to fetch Signal config: ${response.statusText}`)\n }\n\n const data = await response.json()\n setConfig(data.config)\n setError(null)\n\n // Load experiment assignments\n if (experiments && data.config?.experiments) {\n for (const exp of data.config.experiments) {\n if (exp.status === 'running') {\n await loadExperimentAssignment(exp.id)\n }\n }\n }\n } catch (err) {\n if (isDebug()) console.error('[Signal] Config fetch error:', err)\n setError(err as Error)\n } finally {\n setLoading(false)\n }\n }, [apiUrl, apiKey, enabled, experiments, resolvedVisitorId, loadExperimentAssignment])\n\n // ============================================\n // SSE Real-time Updates\n // ============================================\n\n const connectSSE = useCallback(() => {\n if (!apiKey || !enabled || !realtime) return\n\n // Close existing connection\n if (eventSourceRef.current) {\n eventSourceRef.current.close()\n eventSourceRef.current = null\n }\n\n // EventSource cannot send headers, so the credential rides in the URL —\n // which server/CDN access logs capture. Per the transport contract in\n // sonorFetch.ts, the raw API key NEVER goes in a URL: only the\n // short-lived minted site token may (bounded exposure, unforgeable HMAC).\n // Raw-key mode (2.x layouts, mint-failure fallback) skips the stream —\n // config still loads via POST, only live push is lost.\n void (async () => {\n const credential = await getFreshCredential(apiKey)\n if (!credential || !isSiteToken(credential)) {\n if (isDebug()) {\n console.warn('[Signal] Realtime stream disabled: requires site-token mode (raw keys never go in URLs)')\n }\n return\n }\n if (eventSourceRef.current) return\n\n const url = `${apiUrl}/api/public/signal/stream?token=${encodeURIComponent(credential)}`\n connectEventSource(url)\n })()\n\n function connectEventSource(url: string) {\n const eventSource = new EventSource(url)\n\n eventSource.addEventListener('config_update', (e) => {\n try {\n const { config: newConfig, version } = JSON.parse(e.data)\n setConfig(prev => {\n if (prev?.version !== version) {\n if (isDebug()) console.log('[Signal] Config updated to version:', version)\n return newConfig\n }\n return prev\n })\n } catch (err) {\n if (isDebug()) console.error('[Signal] SSE parse error:', err)\n }\n })\n\n eventSource.addEventListener('experiment_update', (e) => {\n try {\n const { experiment_id, action } = JSON.parse(e.data)\n if (action === 'started' || action === 'updated') {\n loadExperimentAssignment(experiment_id)\n } else if (action === 'stopped') {\n assignmentsRef.current.delete(experiment_id)\n }\n } catch (err) {\n if (isDebug()) console.error('[Signal] Experiment update error:', err)\n }\n })\n\n eventSource.onerror = () => {\n if (isDebug()) console.warn('[Signal] SSE connection error, reconnecting...')\n eventSource.close()\n if (eventSourceRef.current === eventSource) {\n eventSourceRef.current = null\n }\n // Reconnect after 5 seconds (re-mints the token if it expired)\n setTimeout(connectSSE, 5000)\n }\n\n eventSourceRef.current = eventSource\n }\n }, [apiUrl, apiKey, enabled, realtime, loadExperimentAssignment])\n\n // ============================================\n // Event Tracking\n // ============================================\n\n const flushEvents = useCallback(async () => {\n if (eventQueueRef.current.length === 0) return\n\n const events = [...eventQueueRef.current]\n eventQueueRef.current = []\n\n try {\n // retries: 0 — fire-and-forget tracking; a retried flush after a lost\n // response would double-count events. The transport still aborts a hung\n // request at its timeout (no net::ERR_TIMED_OUT).\n await sonorFetch(\n `${apiUrl}/api/public/signal/events`,\n {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n visitor_id: resolvedVisitorId,\n session_id: resolvedSessionId,\n events,\n }),\n },\n { apiKey, retries: 0 },\n )\n } catch (err) {\n // Re-queue failed events\n eventQueueRef.current = [...events, ...eventQueueRef.current]\n if (isDebug()) console.error('[Signal] Event flush error:', err)\n }\n }, [apiUrl, apiKey])\n\n const trackEvent = useCallback((event: Partial<SignalEvent>) => {\n if (!enabled || !apiKey) return\n\n // Enrich event with context\n const enrichedEvent: Partial<SignalEvent> = {\n ...event,\n page_url: window.location.href,\n page_path: window.location.pathname,\n referrer: document.referrer,\n device_type: getDeviceType(),\n browser: getBrowser(),\n os: getOS(),\n viewport_width: window.innerWidth,\n viewport_height: window.innerHeight,\n time_on_page: Date.now() - pageLoadTimeRef.current,\n scroll_depth: scrollDepthRef.current,\n click_count: clickCountRef.current,\n experiments: Array.from(assignmentsRef.current.values()).map(a => ({\n experiment_id: a.experiment_id,\n variant_key: a.variant_key,\n })),\n // Merge page metadata from Analytics if available\n page_metadata: pageMetadataRef?.current ?? undefined,\n timestamp: new Date().toISOString(),\n }\n\n eventQueueRef.current.push(enrichedEvent)\n\n // Debounce flush\n if (flushTimeoutRef.current) {\n clearTimeout(flushTimeoutRef.current)\n }\n flushTimeoutRef.current = setTimeout(flushEvents, 1000)\n }, [enabled, apiKey, flushEvents])\n\n // ============================================\n // Outcome Tracking\n // ============================================\n\n const trackOutcome = useCallback(async (outcome: SignalOutcome) => {\n if (!enabled || !apiKey) return\n\n try {\n // retries: 0 — fire-and-forget conversion signal; never double-fire on a\n // lost response. Still aborts a hung request at the transport timeout.\n await sonorFetch(\n `${apiUrl}/api/public/signal/outcome`,\n {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n ...outcome,\n visitor_id: resolvedVisitorId,\n session_id: resolvedSessionId,\n experiments: Array.from(assignmentsRef.current.keys()),\n page_url: window.location.href,\n timestamp: new Date().toISOString(),\n }),\n },\n { apiKey, retries: 0 },\n )\n } catch (err) {\n if (isDebug()) console.error('[Signal] Outcome tracking error:', err)\n }\n }, [apiUrl, apiKey, enabled])\n\n // ============================================\n // Behavioral Tracking\n // ============================================\n\n useEffect(() => {\n if (!behaviorTracking || typeof window === 'undefined') return\n\n // Track scroll depth\n const handleScroll = () => {\n const scrollTop = window.scrollY\n const docHeight = document.documentElement.scrollHeight - window.innerHeight\n const depth = docHeight > 0 ? Math.round((scrollTop / docHeight) * 100) : 0\n scrollDepthRef.current = Math.max(scrollDepthRef.current, depth)\n }\n\n // Track clicks\n const handleClick = () => {\n clickCountRef.current++\n }\n\n window.addEventListener('scroll', handleScroll, { passive: true })\n window.addEventListener('click', handleClick)\n\n // Flush on visibility change or page hide.\n // `pagehide` (not `beforeunload`): fires on iOS Safari, bfcache-safe.\n const handleVisibilityChange = () => {\n if (document.visibilityState === 'hidden') {\n flushEvents()\n }\n }\n\n document.addEventListener('visibilitychange', handleVisibilityChange)\n window.addEventListener('pagehide', flushEvents)\n\n return () => {\n window.removeEventListener('scroll', handleScroll)\n window.removeEventListener('click', handleClick)\n document.removeEventListener('visibilitychange', handleVisibilityChange)\n window.removeEventListener('pagehide', flushEvents)\n }\n }, [behaviorTracking, flushEvents])\n\n // ============================================\n // Initialization + shell registration\n // ============================================\n\n useEffect(() => {\n fetchConfig()\n }, [fetchConfig])\n\n useEffect(() => {\n if (config && realtime) {\n connectSSE()\n }\n\n return () => {\n if (eventSourceRef.current) {\n eventSourceRef.current.close()\n }\n }\n }, [config, realtime, connectSSE])\n\n // Hand the imperative API to the shell; buffered calls drain on register.\n useEffect(() => {\n onRegister({\n trackEvent,\n trackOutcome: (outcome: SignalOutcome) => { void trackOutcome(outcome) },\n getExperiment,\n refreshConfig: fetchConfig,\n })\n return () => onRegister(null)\n }, [onRegister, trackEvent, trackOutcome, getExperiment, fetchConfig])\n\n return null\n}\n"]}
@@ -0,0 +1,8 @@
1
+ export { SitemapSync } from './chunk-RJBW2JFO.mjs';
2
+ import './chunk-QJU6HBSK.mjs';
3
+ import './chunk-AVFXLKIP.mjs';
4
+ import './chunk-RPLZIPTB.mjs';
5
+ import './chunk-Q3VBSR4M.mjs';
6
+ import './chunk-BEXTDHO4.mjs';
7
+ //# sourceMappingURL=SitemapSync-62VTFZDI.mjs.map
8
+ //# sourceMappingURL=SitemapSync-62VTFZDI.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"SitemapSync-2JJOGL7D.mjs"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"SitemapSync-62VTFZDI.mjs"}
@@ -0,0 +1,17 @@
1
+ 'use strict';
2
+
3
+ var chunkZZV4EWMF_js = require('./chunk-ZZV4EWMF.js');
4
+ require('./chunk-JEOKDUPQ.js');
5
+ require('./chunk-3ZWY6S4V.js');
6
+ require('./chunk-ST7YQMYN.js');
7
+ require('./chunk-GFMUUALQ.js');
8
+ require('./chunk-SNAQBZPT.js');
9
+
10
+
11
+
12
+ Object.defineProperty(exports, "SitemapSync", {
13
+ enumerable: true,
14
+ get: function () { return chunkZZV4EWMF_js.SitemapSync; }
15
+ });
16
+ //# sourceMappingURL=SitemapSync-PQMQAZMH.js.map
17
+ //# sourceMappingURL=SitemapSync-PQMQAZMH.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"SitemapSync-S54TSZLM.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"SitemapSync-PQMQAZMH.js"}
@@ -2,13 +2,13 @@
2
2
  'use strict';
3
3
 
4
4
  var chunkEDZWNCSE_js = require('../chunk-EDZWNCSE.js');
5
- var chunkYHGMM2XF_js = require('../chunk-YHGMM2XF.js');
5
+ var chunkIM4OVQ4O_js = require('../chunk-IM4OVQ4O.js');
6
6
  var chunkHMFFAUCD_js = require('../chunk-HMFFAUCD.js');
7
7
  require('../chunk-RC4WWQXR.js');
8
8
  require('../chunk-VJMPIRSD.js');
9
- require('../chunk-ZJNIM4GQ.js');
10
- require('../chunk-NK6K4VHD.js');
11
- require('../chunk-4JVFWTER.js');
9
+ require('../chunk-3ZWY6S4V.js');
10
+ require('../chunk-ST7YQMYN.js');
11
+ require('../chunk-GFMUUALQ.js');
12
12
  require('../chunk-SNAQBZPT.js');
13
13
 
14
14
 
@@ -23,23 +23,23 @@ Object.defineProperty(exports, "useContactTracking", {
23
23
  });
24
24
  Object.defineProperty(exports, "AnalyticsProvider", {
25
25
  enumerable: true,
26
- get: function () { return chunkYHGMM2XF_js.AnalyticsProvider; }
26
+ get: function () { return chunkIM4OVQ4O_js.AnalyticsProvider; }
27
27
  });
28
28
  Object.defineProperty(exports, "WebVitals", {
29
29
  enumerable: true,
30
- get: function () { return chunkYHGMM2XF_js.WebVitals; }
30
+ get: function () { return chunkIM4OVQ4O_js.WebVitals; }
31
31
  });
32
32
  Object.defineProperty(exports, "useAnalytics", {
33
33
  enumerable: true,
34
- get: function () { return chunkYHGMM2XF_js.useAnalytics; }
34
+ get: function () { return chunkIM4OVQ4O_js.useAnalytics; }
35
35
  });
36
36
  Object.defineProperty(exports, "useAnalyticsOptional", {
37
37
  enumerable: true,
38
- get: function () { return chunkYHGMM2XF_js.useAnalyticsOptional; }
38
+ get: function () { return chunkIM4OVQ4O_js.useAnalyticsOptional; }
39
39
  });
40
40
  Object.defineProperty(exports, "useTrackEvent", {
41
41
  enumerable: true,
42
- get: function () { return chunkYHGMM2XF_js.useTrackEvent; }
42
+ get: function () { return chunkIM4OVQ4O_js.useTrackEvent; }
43
43
  });
44
44
  Object.defineProperty(exports, "trackConversion", {
45
45
  enumerable: true,
@@ -1,12 +1,12 @@
1
1
  'use client';
2
2
  export { ContactTracking, useContactTracking } from '../chunk-26JXNW7B.mjs';
3
- export { AnalyticsProvider, WebVitals, useAnalytics, useAnalyticsOptional, useTrackEvent } from '../chunk-6ZQFCZPW.mjs';
3
+ export { AnalyticsProvider, WebVitals, useAnalytics, useAnalyticsOptional, useTrackEvent } from '../chunk-ACAMCJJQ.mjs';
4
4
  export { trackConversion, trackEvent } from '../chunk-3DPXOZAU.mjs';
5
5
  import '../chunk-ZZQAGCSI.mjs';
6
6
  import '../chunk-6EDVCUAG.mjs';
7
- import '../chunk-XWBQLPTZ.mjs';
8
- import '../chunk-FSSVIYQ7.mjs';
9
- import '../chunk-EFMPOC6L.mjs';
7
+ import '../chunk-AVFXLKIP.mjs';
8
+ import '../chunk-RPLZIPTB.mjs';
9
+ import '../chunk-Q3VBSR4M.mjs';
10
10
  import '../chunk-BEXTDHO4.mjs';
11
11
  //# sourceMappingURL=index.mjs.map
12
12
  //# sourceMappingURL=index.mjs.map
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
3
  var chunk5EFSD7VM_js = require('../chunk-5EFSD7VM.js');
4
- var chunkTMKLH6MY_js = require('../chunk-TMKLH6MY.js');
4
+ var chunkFBI6LYTM_js = require('../chunk-FBI6LYTM.js');
5
5
  require('../chunk-TPL2IHFI.js');
6
- require('../chunk-QPIKPWAZ.js');
6
+ require('../chunk-O5GHP7UO.js');
7
7
  require('../chunk-SNAQBZPT.js');
8
8
  var jsxRuntime = require('react/jsx-runtime');
9
9
 
@@ -122,7 +122,7 @@ async function ClusterLandingPage({
122
122
  className,
123
123
  children
124
124
  }) {
125
- const cluster = await chunkTMKLH6MY_js.getTopicCluster(slug);
125
+ const cluster = await chunkFBI6LYTM_js.getTopicCluster(slug);
126
126
  if (!cluster) {
127
127
  return /* @__PURE__ */ jsxRuntime.jsx("div", { style: { padding: "4rem 1rem", textAlign: "center", color: "#6b7280" }, children: /* @__PURE__ */ jsxRuntime.jsx("p", { children: "Topic cluster not found." }) });
128
128
  }
@@ -1,7 +1,7 @@
1
1
  export { BlogList, BlogPost, ClusterNavigation } from '../chunk-JJS63TDR.mjs';
2
- import { getTopicCluster } from '../chunk-PA7ENTUZ.mjs';
2
+ import { getTopicCluster } from '../chunk-6VHVIBLQ.mjs';
3
3
  import '../chunk-CGCYZJYX.mjs';
4
- import '../chunk-UDBUK5ZJ.mjs';
4
+ import '../chunk-6XNEGG5B.mjs';
5
5
  import '../chunk-BEXTDHO4.mjs';
6
6
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
7
7
 
@@ -1,167 +1,167 @@
1
1
  'use strict';
2
2
 
3
- var chunkTMKLH6MY_js = require('../chunk-TMKLH6MY.js');
3
+ var chunkFBI6LYTM_js = require('../chunk-FBI6LYTM.js');
4
4
  var chunkTPL2IHFI_js = require('../chunk-TPL2IHFI.js');
5
- require('../chunk-QPIKPWAZ.js');
5
+ require('../chunk-O5GHP7UO.js');
6
6
  require('../chunk-SNAQBZPT.js');
7
7
 
8
8
 
9
9
 
10
10
  Object.defineProperty(exports, "SEO_LIMITS", {
11
11
  enumerable: true,
12
- get: function () { return chunkTMKLH6MY_js.SEO_LIMITS; }
12
+ get: function () { return chunkFBI6LYTM_js.SEO_LIMITS; }
13
13
  });
14
14
  Object.defineProperty(exports, "generateAllBlogSchemas", {
15
15
  enumerable: true,
16
- get: function () { return chunkTMKLH6MY_js.generateAllBlogSchemas; }
16
+ get: function () { return chunkFBI6LYTM_js.generateAllBlogSchemas; }
17
17
  });
18
18
  Object.defineProperty(exports, "generateAtomFeed", {
19
19
  enumerable: true,
20
- get: function () { return chunkTMKLH6MY_js.generateAtomFeed; }
20
+ get: function () { return chunkFBI6LYTM_js.generateAtomFeed; }
21
21
  });
22
22
  Object.defineProperty(exports, "generateAuthorPageMetadata", {
23
23
  enumerable: true,
24
- get: function () { return chunkTMKLH6MY_js.generateAuthorPageMetadata; }
24
+ get: function () { return chunkFBI6LYTM_js.generateAuthorPageMetadata; }
25
25
  });
26
26
  Object.defineProperty(exports, "generateAuthorStaticParams", {
27
27
  enumerable: true,
28
- get: function () { return chunkTMKLH6MY_js.generateAuthorStaticParams; }
28
+ get: function () { return chunkFBI6LYTM_js.generateAuthorStaticParams; }
29
29
  });
30
30
  Object.defineProperty(exports, "generateBlogCategoryMetadata", {
31
31
  enumerable: true,
32
- get: function () { return chunkTMKLH6MY_js.generateBlogCategoryMetadata; }
32
+ get: function () { return chunkFBI6LYTM_js.generateBlogCategoryMetadata; }
33
33
  });
34
34
  Object.defineProperty(exports, "generateBlogIndexMetadata", {
35
35
  enumerable: true,
36
- get: function () { return chunkTMKLH6MY_js.generateBlogIndexMetadata; }
36
+ get: function () { return chunkFBI6LYTM_js.generateBlogIndexMetadata; }
37
37
  });
38
38
  Object.defineProperty(exports, "generateBlogListSchema", {
39
39
  enumerable: true,
40
- get: function () { return chunkTMKLH6MY_js.generateBlogListSchema; }
40
+ get: function () { return chunkFBI6LYTM_js.generateBlogListSchema; }
41
41
  });
42
42
  Object.defineProperty(exports, "generateBlogPostMetadata", {
43
43
  enumerable: true,
44
- get: function () { return chunkTMKLH6MY_js.generateBlogPostMetadata; }
44
+ get: function () { return chunkFBI6LYTM_js.generateBlogPostMetadata; }
45
45
  });
46
46
  Object.defineProperty(exports, "generateBlogPostSchema", {
47
47
  enumerable: true,
48
- get: function () { return chunkTMKLH6MY_js.generateBlogPostSchema; }
48
+ get: function () { return chunkFBI6LYTM_js.generateBlogPostSchema; }
49
49
  });
50
50
  Object.defineProperty(exports, "generateBlogSitemap", {
51
51
  enumerable: true,
52
- get: function () { return chunkTMKLH6MY_js.generateBlogSitemap; }
52
+ get: function () { return chunkFBI6LYTM_js.generateBlogSitemap; }
53
53
  });
54
54
  Object.defineProperty(exports, "generateBlogStaticParams", {
55
55
  enumerable: true,
56
- get: function () { return chunkTMKLH6MY_js.generateBlogStaticParams; }
56
+ get: function () { return chunkFBI6LYTM_js.generateBlogStaticParams; }
57
57
  });
58
58
  Object.defineProperty(exports, "generateBreadcrumbSchema", {
59
59
  enumerable: true,
60
- get: function () { return chunkTMKLH6MY_js.generateBreadcrumbSchema; }
60
+ get: function () { return chunkFBI6LYTM_js.generateBreadcrumbSchema; }
61
61
  });
62
62
  Object.defineProperty(exports, "generateCategoryStaticParams", {
63
63
  enumerable: true,
64
- get: function () { return chunkTMKLH6MY_js.generateCategoryStaticParams; }
64
+ get: function () { return chunkFBI6LYTM_js.generateCategoryStaticParams; }
65
65
  });
66
66
  Object.defineProperty(exports, "generateClusterArticleSchema", {
67
67
  enumerable: true,
68
- get: function () { return chunkTMKLH6MY_js.generateClusterArticleSchema; }
68
+ get: function () { return chunkFBI6LYTM_js.generateClusterArticleSchema; }
69
69
  });
70
70
  Object.defineProperty(exports, "generateClusterBreadcrumbSchema", {
71
71
  enumerable: true,
72
- get: function () { return chunkTMKLH6MY_js.generateClusterBreadcrumbSchema; }
72
+ get: function () { return chunkFBI6LYTM_js.generateClusterBreadcrumbSchema; }
73
73
  });
74
74
  Object.defineProperty(exports, "generateClusterItemListSchema", {
75
75
  enumerable: true,
76
- get: function () { return chunkTMKLH6MY_js.generateClusterItemListSchema; }
76
+ get: function () { return chunkFBI6LYTM_js.generateClusterItemListSchema; }
77
77
  });
78
78
  Object.defineProperty(exports, "generateClusterLandingSchema", {
79
79
  enumerable: true,
80
- get: function () { return chunkTMKLH6MY_js.generateClusterLandingSchema; }
80
+ get: function () { return chunkFBI6LYTM_js.generateClusterLandingSchema; }
81
81
  });
82
82
  Object.defineProperty(exports, "generateClusterPageMetadata", {
83
83
  enumerable: true,
84
- get: function () { return chunkTMKLH6MY_js.generateClusterPageMetadata; }
84
+ get: function () { return chunkFBI6LYTM_js.generateClusterPageMetadata; }
85
85
  });
86
86
  Object.defineProperty(exports, "generateFaqSchema", {
87
87
  enumerable: true,
88
- get: function () { return chunkTMKLH6MY_js.generateFaqSchema; }
88
+ get: function () { return chunkFBI6LYTM_js.generateFaqSchema; }
89
89
  });
90
90
  Object.defineProperty(exports, "generateHowToSchema", {
91
91
  enumerable: true,
92
- get: function () { return chunkTMKLH6MY_js.generateHowToSchema; }
92
+ get: function () { return chunkFBI6LYTM_js.generateHowToSchema; }
93
93
  });
94
94
  Object.defineProperty(exports, "generateRssFeed", {
95
95
  enumerable: true,
96
- get: function () { return chunkTMKLH6MY_js.generateRssFeed; }
96
+ get: function () { return chunkFBI6LYTM_js.generateRssFeed; }
97
97
  });
98
98
  Object.defineProperty(exports, "getAllAuthorSlugs", {
99
99
  enumerable: true,
100
- get: function () { return chunkTMKLH6MY_js.getAllAuthorSlugs; }
100
+ get: function () { return chunkFBI6LYTM_js.getAllAuthorSlugs; }
101
101
  });
102
102
  Object.defineProperty(exports, "getAllBlogPosts", {
103
103
  enumerable: true,
104
- get: function () { return chunkTMKLH6MY_js.getAllBlogPosts; }
104
+ get: function () { return chunkFBI6LYTM_js.getAllBlogPosts; }
105
105
  });
106
106
  Object.defineProperty(exports, "getAllBlogSlugs", {
107
107
  enumerable: true,
108
- get: function () { return chunkTMKLH6MY_js.getAllBlogSlugs; }
108
+ get: function () { return chunkFBI6LYTM_js.getAllBlogSlugs; }
109
109
  });
110
110
  Object.defineProperty(exports, "getAuthorBySlug", {
111
111
  enumerable: true,
112
- get: function () { return chunkTMKLH6MY_js.getAuthorBySlug; }
112
+ get: function () { return chunkFBI6LYTM_js.getAuthorBySlug; }
113
113
  });
114
114
  Object.defineProperty(exports, "getAuthorPosts", {
115
115
  enumerable: true,
116
- get: function () { return chunkTMKLH6MY_js.getAuthorPosts; }
116
+ get: function () { return chunkFBI6LYTM_js.getAuthorPosts; }
117
117
  });
118
118
  Object.defineProperty(exports, "getBlogCategories", {
119
119
  enumerable: true,
120
- get: function () { return chunkTMKLH6MY_js.getBlogCategories; }
120
+ get: function () { return chunkFBI6LYTM_js.getBlogCategories; }
121
121
  });
122
122
  Object.defineProperty(exports, "getBlogPost", {
123
123
  enumerable: true,
124
- get: function () { return chunkTMKLH6MY_js.getBlogPost; }
124
+ get: function () { return chunkFBI6LYTM_js.getBlogPost; }
125
125
  });
126
126
  Object.defineProperty(exports, "getClusterNavigation", {
127
127
  enumerable: true,
128
- get: function () { return chunkTMKLH6MY_js.getClusterNavigation; }
128
+ get: function () { return chunkFBI6LYTM_js.getClusterNavigation; }
129
129
  });
130
130
  Object.defineProperty(exports, "getPostsByCategory", {
131
131
  enumerable: true,
132
- get: function () { return chunkTMKLH6MY_js.getPostsByCategory; }
132
+ get: function () { return chunkFBI6LYTM_js.getPostsByCategory; }
133
133
  });
134
134
  Object.defineProperty(exports, "getRelatedInsights", {
135
135
  enumerable: true,
136
- get: function () { return chunkTMKLH6MY_js.getRelatedInsights; }
136
+ get: function () { return chunkFBI6LYTM_js.getRelatedInsights; }
137
137
  });
138
138
  Object.defineProperty(exports, "getTopicCluster", {
139
139
  enumerable: true,
140
- get: function () { return chunkTMKLH6MY_js.getTopicCluster; }
140
+ get: function () { return chunkFBI6LYTM_js.getTopicCluster; }
141
141
  });
142
142
  Object.defineProperty(exports, "getTopicClusters", {
143
143
  enumerable: true,
144
- get: function () { return chunkTMKLH6MY_js.getTopicClusters; }
144
+ get: function () { return chunkFBI6LYTM_js.getTopicClusters; }
145
145
  });
146
146
  Object.defineProperty(exports, "identifyTopicClusters", {
147
147
  enumerable: true,
148
- get: function () { return chunkTMKLH6MY_js.identifyTopicClusters; }
148
+ get: function () { return chunkFBI6LYTM_js.identifyTopicClusters; }
149
149
  });
150
150
  Object.defineProperty(exports, "sanitizeExcerpt", {
151
151
  enumerable: true,
152
- get: function () { return chunkTMKLH6MY_js.sanitizeExcerpt; }
152
+ get: function () { return chunkFBI6LYTM_js.sanitizeExcerpt; }
153
153
  });
154
154
  Object.defineProperty(exports, "validateBlogPostSeo", {
155
155
  enumerable: true,
156
- get: function () { return chunkTMKLH6MY_js.validateBlogPostSeo; }
156
+ get: function () { return chunkFBI6LYTM_js.validateBlogPostSeo; }
157
157
  });
158
158
  Object.defineProperty(exports, "validateMetaDescription", {
159
159
  enumerable: true,
160
- get: function () { return chunkTMKLH6MY_js.validateMetaDescription; }
160
+ get: function () { return chunkFBI6LYTM_js.validateMetaDescription; }
161
161
  });
162
162
  Object.defineProperty(exports, "validateSeoTitle", {
163
163
  enumerable: true,
164
- get: function () { return chunkTMKLH6MY_js.validateSeoTitle; }
164
+ get: function () { return chunkFBI6LYTM_js.validateSeoTitle; }
165
165
  });
166
166
  Object.defineProperty(exports, "generateAuthorSchema", {
167
167
  enumerable: true,
@@ -1,6 +1,6 @@
1
- export { SEO_LIMITS, generateAllBlogSchemas, generateAtomFeed, generateAuthorPageMetadata, generateAuthorStaticParams, generateBlogCategoryMetadata, generateBlogIndexMetadata, generateBlogListSchema, generateBlogPostMetadata, generateBlogPostSchema, generateBlogSitemap, generateBlogStaticParams, generateBreadcrumbSchema, generateCategoryStaticParams, generateClusterArticleSchema, generateClusterBreadcrumbSchema, generateClusterItemListSchema, generateClusterLandingSchema, generateClusterPageMetadata, generateFaqSchema, generateHowToSchema, generateRssFeed, getAllAuthorSlugs, getAllBlogPosts, getAllBlogSlugs, getAuthorBySlug, getAuthorPosts, getBlogCategories, getBlogPost, getClusterNavigation, getPostsByCategory, getRelatedInsights, getTopicCluster, getTopicClusters, identifyTopicClusters, sanitizeExcerpt, validateBlogPostSeo, validateMetaDescription, validateSeoTitle } from '../chunk-PA7ENTUZ.mjs';
1
+ export { SEO_LIMITS, generateAllBlogSchemas, generateAtomFeed, generateAuthorPageMetadata, generateAuthorStaticParams, generateBlogCategoryMetadata, generateBlogIndexMetadata, generateBlogListSchema, generateBlogPostMetadata, generateBlogPostSchema, generateBlogSitemap, generateBlogStaticParams, generateBreadcrumbSchema, generateCategoryStaticParams, generateClusterArticleSchema, generateClusterBreadcrumbSchema, generateClusterItemListSchema, generateClusterLandingSchema, generateClusterPageMetadata, generateFaqSchema, generateHowToSchema, generateRssFeed, getAllAuthorSlugs, getAllBlogPosts, getAllBlogSlugs, getAuthorBySlug, getAuthorPosts, getBlogCategories, getBlogPost, getClusterNavigation, getPostsByCategory, getRelatedInsights, getTopicCluster, getTopicClusters, identifyTopicClusters, sanitizeExcerpt, validateBlogPostSeo, validateMetaDescription, validateSeoTitle } from '../chunk-6VHVIBLQ.mjs';
2
2
  export { generateAuthorSchema } from '../chunk-CGCYZJYX.mjs';
3
- import '../chunk-UDBUK5ZJ.mjs';
3
+ import '../chunk-6XNEGG5B.mjs';
4
4
  import '../chunk-BEXTDHO4.mjs';
5
5
  //# sourceMappingURL=server.mjs.map
6
6
  //# sourceMappingURL=server.mjs.map
@@ -1,11 +1,11 @@
1
1
  'use client';
2
2
  'use strict';
3
3
 
4
- var chunkA7O7IWL7_js = require('./chunk-A7O7IWL7.js');
5
- var chunkLUXCT2NU_js = require('./chunk-LUXCT2NU.js');
4
+ var chunkDDP6XUF5_js = require('./chunk-DDP6XUF5.js');
5
+ var chunkMIYP7WFZ_js = require('./chunk-MIYP7WFZ.js');
6
6
  var chunk2ACKOMAL_js = require('./chunk-2ACKOMAL.js');
7
- var chunk2XLWCYB3_js = require('./chunk-2XLWCYB3.js');
8
- var chunkBDDTZJKC_js = require('./chunk-BDDTZJKC.js');
7
+ var chunkMPL42FJL_js = require('./chunk-MPL42FJL.js');
8
+ var chunkQIJIOKNT_js = require('./chunk-QIJIOKNT.js');
9
9
  var chunkKHPJ3CEL_js = require('./chunk-KHPJ3CEL.js');
10
10
  var react = require('react');
11
11
  var jsxRuntime = require('react/jsx-runtime');
@@ -40,12 +40,12 @@ function FormClient({
40
40
  const honeypotFieldName = config.honeypot_field || chunkKHPJ3CEL_js.DEFAULT_HONEYPOT_FIELD;
41
41
  const formLoadedAt = react.useRef(Date.now());
42
42
  const isSubmittingRef = react.useRef(false);
43
- const stageBeatCount = react.useMemo(() => chunkA7O7IWL7_js.countStageViews(config), [config]);
44
- const questionCount = react.useMemo(() => chunkA7O7IWL7_js.countStageQuestions(config), [config]);
43
+ const stageBeatCount = react.useMemo(() => chunkDDP6XUF5_js.countStageViews(config), [config]);
44
+ const questionCount = react.useMemo(() => chunkDDP6XUF5_js.countStageQuestions(config), [config]);
45
45
  const requested = experience ?? (config.layout === "stage" ? "stage" : config.layout === "classic" ? "classic" : "spotlight");
46
46
  const resolvedExperience = !customRender && questionCount > 0 && requested !== "classic" ? requested : "classic";
47
- const fieldControls = chunkA7O7IWL7_js.useFieldControls(config.fields);
48
- const { trackStepChange, trackComplete } = chunk2XLWCYB3_js.useFormTracking({
47
+ const fieldControls = chunkDDP6XUF5_js.useFieldControls(config.fields);
48
+ const { trackStepChange, trackComplete } = chunkMPL42FJL_js.useFormTracking({
49
49
  formId: config.id,
50
50
  // Alternate experiences report their unit (beat / field index) as the
51
51
  // step — form_analytics becomes a drop-off funnel with zero API changes.
@@ -70,7 +70,7 @@ function FormClient({
70
70
  return;
71
71
  }
72
72
  let cancelled = false;
73
- const load = resolvedExperience === "stage" ? import('./FormStage-44OWEWZM.js').then((m) => m.FormStage) : import('./FormSpotlight-RMYOXT2T.js').then((m) => m.FormSpotlight);
73
+ const load = resolvedExperience === "stage" ? import('./FormStage-DUCY4VGI.js').then((m) => m.FormStage) : import('./FormSpotlight-VTWP4X6H.js').then((m) => m.FormSpotlight);
74
74
  load.then((Component) => {
75
75
  if (!cancelled) setExperience(() => Component);
76
76
  }).catch((err) => {
@@ -255,7 +255,7 @@ function FormClient({
255
255
  setIsSubmitting(true);
256
256
  setSubmitError(null);
257
257
  try {
258
- const data = await chunkBDDTZJKC_js.submitForm({
258
+ const data = await chunkQIJIOKNT_js.submitForm({
259
259
  config,
260
260
  values: buildVisibleValues(),
261
261
  honeypotValue: config.honeypot_enabled ? honeypotValue : "",
@@ -311,7 +311,7 @@ function FormClient({
311
311
  };
312
312
  if (isComplete) {
313
313
  const raw = config.success_message;
314
- const message = typeof raw === "string" && raw.trim().length > 0 ? raw.trim() : chunkBDDTZJKC_js.DEFAULT_FORM_SUCCESS_MESSAGE;
314
+ const message = typeof raw === "string" && raw.trim().length > 0 ? raw.trim() : chunkQIJIOKNT_js.DEFAULT_FORM_SUCCESS_MESSAGE;
315
315
  if (Celebration) return /* @__PURE__ */ jsxRuntime.jsx(Celebration, { message, className });
316
316
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className, "data-sk-part": "celebration-fallback", role: "status", children: /* @__PURE__ */ jsxRuntime.jsx("p", { children: message }) });
317
317
  }
@@ -336,7 +336,7 @@ function FormClient({
336
336
  submit,
337
337
  trackStepChange,
338
338
  honeypot: config.honeypot_enabled ? /* @__PURE__ */ jsxRuntime.jsx(
339
- chunkLUXCT2NU_js.HoneypotField,
339
+ chunkMIYP7WFZ_js.HoneypotField,
340
340
  {
341
341
  name: honeypotFieldName,
342
342
  value: honeypotValue,
@@ -355,7 +355,7 @@ function FormClient({
355
355
  "data-sk-state": isSubmitting ? "submitting" : "idle",
356
356
  "data-sk-ready": momentum.total > 0 && momentum.done >= momentum.total && step >= config.total_steps ? "true" : void 0,
357
357
  className: `sk-form ${className || ""}`,
358
- ...chunkLUXCT2NU_js.nativeFormProps(config),
358
+ ...chunkMIYP7WFZ_js.nativeFormProps(config),
359
359
  onSubmit: (e) => {
360
360
  e.preventDefault();
361
361
  if (step < config.total_steps) {
@@ -450,14 +450,14 @@ function FormClient({
450
450
  }
451
451
  ),
452
452
  config.honeypot_enabled && /* @__PURE__ */ jsxRuntime.jsx(
453
- chunkLUXCT2NU_js.HoneypotField,
453
+ chunkMIYP7WFZ_js.HoneypotField,
454
454
  {
455
455
  name: honeypotFieldName,
456
456
  value: honeypotValue,
457
457
  onChange: setHoneypotValue
458
458
  }
459
459
  ),
460
- /* @__PURE__ */ jsxRuntime.jsx(chunkLUXCT2NU_js.NativeFallbackFields, { config, returnTo: nativeReturnTo })
460
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMIYP7WFZ_js.NativeFallbackFields, { config, returnTo: nativeReturnTo })
461
461
  ]
462
462
  }
463
463
  );
@@ -478,7 +478,7 @@ function ManagedForm({
478
478
  form,
479
479
  isLoading,
480
480
  fetchError
481
- } = chunk2XLWCYB3_js.useForm(formId, {
481
+ } = chunkMPL42FJL_js.useForm(formId, {
482
482
  projectId,
483
483
  onSuccess,
484
484
  onError,
@@ -517,5 +517,5 @@ function ManagedForm({
517
517
 
518
518
  exports.FormClient = FormClient;
519
519
  exports.ManagedForm = ManagedForm;
520
- //# sourceMappingURL=chunk-LSNIDSLQ.js.map
521
- //# sourceMappingURL=chunk-LSNIDSLQ.js.map
520
+ //# sourceMappingURL=chunk-22UZYZKI.js.map
521
+ //# sourceMappingURL=chunk-22UZYZKI.js.map