@sonordev/site-kit 5.3.1 → 5.3.2

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 (236) hide show
  1. package/agent-manifest.json +1 -1
  2. package/dist/AnalyticsProvider-2XK54UZW.mjs +11 -0
  3. package/dist/{AnalyticsProvider-NA7EMJCA.mjs.map → AnalyticsProvider-2XK54UZW.mjs.map} +1 -1
  4. package/dist/AnalyticsProvider-PM7SOGOS.js +32 -0
  5. package/dist/{AnalyticsProvider-XE3ADUUH.js.map → AnalyticsProvider-PM7SOGOS.js.map} +1 -1
  6. package/dist/{BlogViewTracker-DVJHZ7CM.js → BlogViewTracker-3BIUF5TI.js} +6 -6
  7. package/dist/{BlogViewTracker-DVJHZ7CM.js.map → BlogViewTracker-3BIUF5TI.js.map} +1 -1
  8. package/dist/{BlogViewTracker-MKJYTTJQ.mjs → BlogViewTracker-KFUDRDQK.mjs} +5 -5
  9. package/dist/{BlogViewTracker-MKJYTTJQ.mjs.map → BlogViewTracker-KFUDRDQK.mjs.map} +1 -1
  10. package/dist/ChatWidget-4PHZHGG5.mjs +11 -0
  11. package/dist/{ChatWidget-BD4F4XLD.mjs.map → ChatWidget-4PHZHGG5.mjs.map} +1 -1
  12. package/dist/ChatWidget-7BYSGNO2.js +20 -0
  13. package/dist/{ChatWidget-BZ3KOSXG.js.map → ChatWidget-7BYSGNO2.js.map} +1 -1
  14. package/dist/EngageWidget-D6M6QWEC.mjs +9 -0
  15. package/dist/{EngageWidget-L7B6PCM3.mjs.map → EngageWidget-D6M6QWEC.mjs.map} +1 -1
  16. package/dist/EngageWidget-Q4ITKTMJ.js +18 -0
  17. package/dist/{EngageWidget-JPP6EDCJ.js.map → EngageWidget-Q4ITKTMJ.js.map} +1 -1
  18. package/dist/{FileField-7WPRONDS.mjs → FileField-PQQDX4IR.mjs} +5 -5
  19. package/dist/{FileField-7WPRONDS.mjs.map → FileField-PQQDX4IR.mjs.map} +1 -1
  20. package/dist/{FileField-GHT7444Y.js → FileField-YBBIJOCK.js} +6 -6
  21. package/dist/{FileField-GHT7444Y.js.map → FileField-YBBIJOCK.js.map} +1 -1
  22. package/dist/{FormSpotlight-WZVS6HHR.mjs → FormSpotlight-7TIIWFTP.mjs} +3 -3
  23. package/dist/{FormSpotlight-WZVS6HHR.mjs.map → FormSpotlight-7TIIWFTP.mjs.map} +1 -1
  24. package/dist/{FormSpotlight-BB2IB7IX.js → FormSpotlight-WUN24F3P.js} +15 -15
  25. package/dist/{FormSpotlight-BB2IB7IX.js.map → FormSpotlight-WUN24F3P.js.map} +1 -1
  26. package/dist/{FormStage-FLBLXENZ.js → FormStage-CM7OVLUT.js} +13 -13
  27. package/dist/{FormStage-FLBLXENZ.js.map → FormStage-CM7OVLUT.js.map} +1 -1
  28. package/dist/{FormStage-Y3NHHMV2.mjs → FormStage-TFN2GIBO.mjs} +3 -3
  29. package/dist/{FormStage-Y3NHHMV2.mjs.map → FormStage-TFN2GIBO.mjs.map} +1 -1
  30. package/dist/ManagedForm-N63YGVNY.js +23 -0
  31. package/dist/{ManagedForm-2OPCHDNJ.js.map → ManagedForm-N63YGVNY.js.map} +1 -1
  32. package/dist/ManagedForm-ZUXLHEQU.mjs +14 -0
  33. package/dist/{ManagedForm-AJM6D4SK.mjs.map → ManagedForm-ZUXLHEQU.mjs.map} +1 -1
  34. package/dist/{ManagedNewsletterForm-MJI2JXIB.mjs → ManagedNewsletterForm-4AVKTZ2A.mjs} +7 -7
  35. package/dist/{ManagedNewsletterForm-MJI2JXIB.mjs.map → ManagedNewsletterForm-4AVKTZ2A.mjs.map} +1 -1
  36. package/dist/{ManagedNewsletterForm-L2ZHJ7F4.js → ManagedNewsletterForm-PIVJTU5L.js} +8 -8
  37. package/dist/{ManagedNewsletterForm-L2ZHJ7F4.js.map → ManagedNewsletterForm-PIVJTU5L.js.map} +1 -1
  38. package/dist/{SignalCore-G2VM7NUP.js → SignalCore-2M5TISM7.js} +11 -11
  39. package/dist/{SignalCore-G2VM7NUP.js.map → SignalCore-2M5TISM7.js.map} +1 -1
  40. package/dist/{SignalCore-23YDDSWO.mjs → SignalCore-LT4NCPOR.mjs} +5 -5
  41. package/dist/{SignalCore-23YDDSWO.mjs.map → SignalCore-LT4NCPOR.mjs.map} +1 -1
  42. package/dist/SitemapSync-7OBOJG2L.js +18 -0
  43. package/dist/{SitemapSync-T2N3TCWF.js.map → SitemapSync-7OBOJG2L.js.map} +1 -1
  44. package/dist/SitemapSync-G3OLECFI.mjs +9 -0
  45. package/dist/{SitemapSync-YLWMU6J3.mjs.map → SitemapSync-G3OLECFI.mjs.map} +1 -1
  46. package/dist/SitemapSync.d.ts.map +1 -1
  47. package/dist/analytics/AnalyticsProvider.d.ts +11 -1
  48. package/dist/analytics/AnalyticsProvider.d.ts.map +1 -1
  49. package/dist/analytics/WebVitals.d.ts +7 -1
  50. package/dist/analytics/WebVitals.d.ts.map +1 -1
  51. package/dist/analytics/index.d.ts +1 -0
  52. package/dist/analytics/index.d.ts.map +1 -1
  53. package/dist/analytics/index.js +25 -12
  54. package/dist/analytics/index.mjs +6 -5
  55. package/dist/analytics/send-gate.d.ts +119 -0
  56. package/dist/analytics/send-gate.d.ts.map +1 -0
  57. package/dist/analytics/send-gate.test.d.ts +20 -0
  58. package/dist/analytics/send-gate.test.d.ts.map +1 -0
  59. package/dist/blog/index.js +20 -20
  60. package/dist/blog/index.mjs +3 -3
  61. package/dist/blog/server-ui.js +14 -14
  62. package/dist/blog/server-ui.mjs +2 -2
  63. package/dist/blog/types.d.ts +3 -0
  64. package/dist/blog/types.d.ts.map +1 -1
  65. package/dist/{chunk-EDZWNCSE.js → chunk-3EPMDPWI.js} +2 -2
  66. package/dist/{chunk-EDZWNCSE.js.map → chunk-3EPMDPWI.js.map} +1 -1
  67. package/dist/{chunk-7UPPYERC.mjs → chunk-42F5EK24.mjs} +4 -4
  68. package/dist/{chunk-7UPPYERC.mjs.map → chunk-42F5EK24.mjs.map} +1 -1
  69. package/dist/{chunk-5HMN3FXL.js → chunk-4DE2KJ7R.js} +8 -8
  70. package/dist/{chunk-5HMN3FXL.js.map → chunk-4DE2KJ7R.js.map} +1 -1
  71. package/dist/{chunk-DTX4R45S.js → chunk-5BZDHZCN.js} +4 -4
  72. package/dist/{chunk-DTX4R45S.js.map → chunk-5BZDHZCN.js.map} +1 -1
  73. package/dist/{chunk-I72AUITZ.mjs → chunk-67CHHDBL.mjs} +3 -3
  74. package/dist/{chunk-I72AUITZ.mjs.map → chunk-67CHHDBL.mjs.map} +1 -1
  75. package/dist/{chunk-UJOEN4X6.js → chunk-6AZTRTCG.js} +15 -15
  76. package/dist/{chunk-UJOEN4X6.js.map → chunk-6AZTRTCG.js.map} +1 -1
  77. package/dist/{chunk-PA5ZVCW2.mjs → chunk-6QABCGM6.mjs} +3 -3
  78. package/dist/{chunk-PA5ZVCW2.mjs.map → chunk-6QABCGM6.mjs.map} +1 -1
  79. package/dist/{chunk-77HT6TYK.mjs → chunk-6VG65AIA.mjs} +3 -3
  80. package/dist/{chunk-77HT6TYK.mjs.map → chunk-6VG65AIA.mjs.map} +1 -1
  81. package/dist/{chunk-2MPOO6QJ.js → chunk-757HXAYX.js} +3 -3
  82. package/dist/{chunk-2MPOO6QJ.js.map → chunk-757HXAYX.js.map} +1 -1
  83. package/dist/{chunk-ZMFJXFUY.js → chunk-A3NNUKFA.js} +3 -3
  84. package/dist/{chunk-ZMFJXFUY.js.map → chunk-A3NNUKFA.js.map} +1 -1
  85. package/dist/{chunk-NW5CBNRU.mjs → chunk-AVM4OZHR.mjs} +3 -3
  86. package/dist/{chunk-NW5CBNRU.mjs.map → chunk-AVM4OZHR.mjs.map} +1 -1
  87. package/dist/{chunk-FH4LLJFL.mjs → chunk-AXAIUCSF.mjs} +9 -8
  88. package/dist/chunk-AXAIUCSF.mjs.map +1 -0
  89. package/dist/{chunk-AKQA5ZYZ.mjs → chunk-CQUA2AUA.mjs} +3 -3
  90. package/dist/{chunk-AKQA5ZYZ.mjs.map → chunk-CQUA2AUA.mjs.map} +1 -1
  91. package/dist/chunk-D37M7MIH.js +8 -0
  92. package/dist/{chunk-TMQKZ4DO.js.map → chunk-D37M7MIH.js.map} +1 -1
  93. package/dist/{chunk-ISKJLXB4.mjs → chunk-DVH3JHZ3.mjs} +4 -4
  94. package/dist/{chunk-ISKJLXB4.mjs.map → chunk-DVH3JHZ3.mjs.map} +1 -1
  95. package/dist/{chunk-LHD45PGP.js → chunk-DYKFC7WY.js} +8 -8
  96. package/dist/{chunk-LHD45PGP.js.map → chunk-DYKFC7WY.js.map} +1 -1
  97. package/dist/{chunk-X4PL7R63.mjs → chunk-DZDWBQKA.mjs} +3 -3
  98. package/dist/{chunk-X4PL7R63.mjs.map → chunk-DZDWBQKA.mjs.map} +1 -1
  99. package/dist/{chunk-GTK3CGWF.js → chunk-E33HJMRP.js} +6 -6
  100. package/dist/{chunk-GTK3CGWF.js.map → chunk-E33HJMRP.js.map} +1 -1
  101. package/dist/{chunk-4S7BHFGT.js → chunk-FDVE56JS.js} +3 -3
  102. package/dist/{chunk-4S7BHFGT.js.map → chunk-FDVE56JS.js.map} +1 -1
  103. package/dist/{chunk-SHZXSIRH.js → chunk-FFJVQWKO.js} +4 -4
  104. package/dist/{chunk-SHZXSIRH.js.map → chunk-FFJVQWKO.js.map} +1 -1
  105. package/dist/{chunk-HIV5YK5G.js → chunk-G3YUSRCL.js} +4 -4
  106. package/dist/{chunk-HIV5YK5G.js.map → chunk-G3YUSRCL.js.map} +1 -1
  107. package/dist/{chunk-APL44ZVK.js → chunk-GFNXWS3I.js} +5 -5
  108. package/dist/{chunk-APL44ZVK.js.map → chunk-GFNXWS3I.js.map} +1 -1
  109. package/dist/{chunk-GPH3VVLP.js → chunk-GPNBBUEN.js} +3 -3
  110. package/dist/{chunk-GPH3VVLP.js.map → chunk-GPNBBUEN.js.map} +1 -1
  111. package/dist/{chunk-VGX6G3TA.mjs → chunk-HDQTZAGE.mjs} +3 -3
  112. package/dist/{chunk-VGX6G3TA.mjs.map → chunk-HDQTZAGE.mjs.map} +1 -1
  113. package/dist/{chunk-COAVBUMS.mjs → chunk-HVFXFPUJ.mjs} +3 -3
  114. package/dist/{chunk-COAVBUMS.mjs.map → chunk-HVFXFPUJ.mjs.map} +1 -1
  115. package/dist/{chunk-XR47TOGW.mjs → chunk-JSLYNYTB.mjs} +3 -3
  116. package/dist/{chunk-XR47TOGW.mjs.map → chunk-JSLYNYTB.mjs.map} +1 -1
  117. package/dist/{chunk-W47J6ZZG.mjs → chunk-JTO3K5B7.mjs} +4 -4
  118. package/dist/{chunk-W47J6ZZG.mjs.map → chunk-JTO3K5B7.mjs.map} +1 -1
  119. package/dist/{chunk-QG7WHAGD.js → chunk-K37JPEQW.js} +15 -15
  120. package/dist/{chunk-QG7WHAGD.js.map → chunk-K37JPEQW.js.map} +1 -1
  121. package/dist/{chunk-DBJRJ2Q2.mjs → chunk-KOP3DPIR.mjs} +4 -4
  122. package/dist/{chunk-DBJRJ2Q2.mjs.map → chunk-KOP3DPIR.mjs.map} +1 -1
  123. package/dist/{chunk-LFJRMY4V.js → chunk-KPFPSOYS.js} +12 -12
  124. package/dist/{chunk-LFJRMY4V.js.map → chunk-KPFPSOYS.js.map} +1 -1
  125. package/dist/{chunk-KP56C66Z.js → chunk-M7FWXEXC.js} +126 -188
  126. package/dist/chunk-M7FWXEXC.js.map +1 -0
  127. package/dist/{chunk-UYR22S67.js → chunk-MANX6422.js} +7 -7
  128. package/dist/{chunk-UYR22S67.js.map → chunk-MANX6422.js.map} +1 -1
  129. package/dist/{chunk-WZZYTFDV.mjs → chunk-N3C323NY.mjs} +8 -3
  130. package/dist/chunk-N3C323NY.mjs.map +1 -0
  131. package/dist/{chunk-R4PFWVGZ.mjs → chunk-NSLYY62T.mjs} +4 -4
  132. package/dist/{chunk-R4PFWVGZ.mjs.map → chunk-NSLYY62T.mjs.map} +1 -1
  133. package/dist/chunk-NVSWTDWU.mjs +25 -0
  134. package/dist/chunk-NVSWTDWU.mjs.map +1 -0
  135. package/dist/{chunk-WD57YWY5.mjs → chunk-OC6PU7U2.mjs} +3 -3
  136. package/dist/{chunk-WD57YWY5.mjs.map → chunk-OC6PU7U2.mjs.map} +1 -1
  137. package/dist/{chunk-2VQ5YXOD.js → chunk-OIJ435IZ.js} +18 -18
  138. package/dist/{chunk-2VQ5YXOD.js.map → chunk-OIJ435IZ.js.map} +1 -1
  139. package/dist/chunk-OL2QBWAU.js +29 -0
  140. package/dist/chunk-OL2QBWAU.js.map +1 -0
  141. package/dist/chunk-OUERH2T4.mjs +6 -0
  142. package/dist/{chunk-HRQ4367C.mjs.map → chunk-OUERH2T4.mjs.map} +1 -1
  143. package/dist/{chunk-VLR2UYO4.js → chunk-PEEQMI7U.js} +12 -11
  144. package/dist/chunk-PEEQMI7U.js.map +1 -0
  145. package/dist/{chunk-47566YF4.js → chunk-PZXKFHPO.js} +14 -14
  146. package/dist/{chunk-47566YF4.js.map → chunk-PZXKFHPO.js.map} +1 -1
  147. package/dist/{chunk-SI7R3IJX.mjs → chunk-QZ54OCWD.mjs} +7 -7
  148. package/dist/{chunk-SI7R3IJX.mjs.map → chunk-QZ54OCWD.mjs.map} +1 -1
  149. package/dist/{chunk-GQTSQR63.js → chunk-R3LYTIVN.js} +10 -5
  150. package/dist/chunk-R3LYTIVN.js.map +1 -0
  151. package/dist/{chunk-26JXNW7B.mjs → chunk-RO55G3OA.mjs} +2 -2
  152. package/dist/{chunk-26JXNW7B.mjs.map → chunk-RO55G3OA.mjs.map} +1 -1
  153. package/dist/{chunk-4IMZ45YA.mjs → chunk-TS3N3LGZ.mjs} +4 -4
  154. package/dist/{chunk-4IMZ45YA.mjs.map → chunk-TS3N3LGZ.mjs.map} +1 -1
  155. package/dist/{chunk-TAIGHH5J.js → chunk-W23TMUKB.js} +9 -9
  156. package/dist/{chunk-TAIGHH5J.js.map → chunk-W23TMUKB.js.map} +1 -1
  157. package/dist/{chunk-5TGSM5EQ.js → chunk-XQZTOWS3.js} +14 -14
  158. package/dist/{chunk-5TGSM5EQ.js.map → chunk-XQZTOWS3.js.map} +1 -1
  159. package/dist/{chunk-GM5E6R5W.mjs → chunk-XW5KNCWJ.mjs} +3 -3
  160. package/dist/{chunk-GM5E6R5W.mjs.map → chunk-XW5KNCWJ.mjs.map} +1 -1
  161. package/dist/{chunk-AJBJH3BA.mjs → chunk-Y7SRO7MJ.mjs} +127 -189
  162. package/dist/chunk-Y7SRO7MJ.mjs.map +1 -0
  163. package/dist/{chunk-AVPMSJCQ.js → chunk-Z7K5AMCE.js} +4 -4
  164. package/dist/{chunk-AVPMSJCQ.js.map → chunk-Z7K5AMCE.js.map} +1 -1
  165. package/dist/{chunk-4HL6CAZ7.mjs → chunk-ZKR5AJV5.mjs} +4 -4
  166. package/dist/{chunk-4HL6CAZ7.mjs.map → chunk-ZKR5AJV5.mjs.map} +1 -1
  167. package/dist/{chunk-DN6A6KXH.mjs → chunk-ZOJ3TLO5.mjs} +3 -3
  168. package/dist/{chunk-DN6A6KXH.mjs.map → chunk-ZOJ3TLO5.mjs.map} +1 -1
  169. package/dist/cli/index.js +3 -3
  170. package/dist/cli/index.mjs +1 -1
  171. package/dist/client/index.js +4 -4
  172. package/dist/client/index.mjs +3 -3
  173. package/dist/commerce/index.js +58 -57
  174. package/dist/commerce/index.mjs +7 -6
  175. package/dist/engage/index.js +10 -10
  176. package/dist/engage/index.mjs +7 -7
  177. package/dist/fleet/index.js +8 -8
  178. package/dist/fleet/index.mjs +4 -4
  179. package/dist/forms/index.js +16 -16
  180. package/dist/forms/index.mjs +9 -9
  181. package/dist/forms/server.js +10 -10
  182. package/dist/forms/server.mjs +8 -8
  183. package/dist/forms/static.js +7 -7
  184. package/dist/forms/static.mjs +6 -6
  185. package/dist/images/index.js +11 -11
  186. package/dist/images/index.mjs +4 -4
  187. package/dist/index.js +65 -64
  188. package/dist/index.js.map +1 -1
  189. package/dist/index.mjs +11 -10
  190. package/dist/index.mjs.map +1 -1
  191. package/dist/layout/SiteKitClientProviders.d.ts.map +1 -1
  192. package/dist/layout/client.d.ts.map +1 -1
  193. package/dist/layout/client.js +8 -8
  194. package/dist/layout/client.mjs +7 -7
  195. package/dist/layout/index.js +10 -10
  196. package/dist/layout/index.mjs +8 -8
  197. package/dist/layout/types.d.ts +16 -0
  198. package/dist/layout/types.d.ts.map +1 -1
  199. package/dist/maps/index.js +5 -5
  200. package/dist/maps/index.mjs +3 -3
  201. package/dist/search/index.js +4 -4
  202. package/dist/search/index.mjs +3 -3
  203. package/dist/seo/client.js +6 -5
  204. package/dist/seo/client.mjs +5 -4
  205. package/dist/seo/index.js +6 -5
  206. package/dist/seo/index.js.map +1 -1
  207. package/dist/seo/index.mjs +5 -4
  208. package/dist/seo/index.mjs.map +1 -1
  209. package/dist/server/index.js +3 -3
  210. package/dist/server/index.mjs +2 -2
  211. package/dist/shared/frame.d.ts +71 -0
  212. package/dist/shared/frame.d.ts.map +1 -0
  213. package/dist/shared/version.d.ts +1 -1
  214. package/dist/signal/index.js +11 -11
  215. package/dist/signal/index.mjs +2 -2
  216. package/dist/sync/index.js +16 -16
  217. package/dist/sync/index.mjs +4 -4
  218. package/package.json +1 -1
  219. package/dist/AnalyticsProvider-NA7EMJCA.mjs +0 -10
  220. package/dist/AnalyticsProvider-XE3ADUUH.js +0 -31
  221. package/dist/ChatWidget-BD4F4XLD.mjs +0 -11
  222. package/dist/ChatWidget-BZ3KOSXG.js +0 -20
  223. package/dist/EngageWidget-JPP6EDCJ.js +0 -18
  224. package/dist/EngageWidget-L7B6PCM3.mjs +0 -9
  225. package/dist/ManagedForm-2OPCHDNJ.js +0 -23
  226. package/dist/ManagedForm-AJM6D4SK.mjs +0 -14
  227. package/dist/SitemapSync-T2N3TCWF.js +0 -17
  228. package/dist/SitemapSync-YLWMU6J3.mjs +0 -8
  229. package/dist/chunk-AJBJH3BA.mjs.map +0 -1
  230. package/dist/chunk-FH4LLJFL.mjs.map +0 -1
  231. package/dist/chunk-GQTSQR63.js.map +0 -1
  232. package/dist/chunk-HRQ4367C.mjs +0 -6
  233. package/dist/chunk-KP56C66Z.js.map +0 -1
  234. package/dist/chunk-TMQKZ4DO.js +0 -8
  235. package/dist/chunk-VLR2UYO4.js.map +0 -1
  236. package/dist/chunk-WZZYTFDV.mjs.map +0 -1
@@ -2,17 +2,61 @@
2
2
  'use strict';
3
3
 
4
4
  var chunkHMFFAUCD_js = require('./chunk-HMFFAUCD.js');
5
+ var chunkOL2QBWAU_js = require('./chunk-OL2QBWAU.js');
5
6
  var chunkRC4WWQXR_js = require('./chunk-RC4WWQXR.js');
6
- var chunkUJOEN4X6_js = require('./chunk-UJOEN4X6.js');
7
+ var chunk6AZTRTCG_js = require('./chunk-6AZTRTCG.js');
7
8
  var react = require('react');
8
9
  var navigation = require('next/navigation');
9
10
  var jsxRuntime = require('react/jsx-runtime');
10
11
 
11
- function getApiConfig() {
12
- const apiUrl = typeof window !== "undefined" ? window.__SITE_KIT_API_URL__ || "https://api.sonor.io" : "https://api.sonor.io";
12
+ // src/analytics/send-gate.ts
13
+ function windowConfig() {
14
+ const apiUrl = typeof window !== "undefined" && window.__SITE_KIT_API_URL__ || "https://api.sonor.io";
13
15
  const apiKey = typeof window !== "undefined" ? window.__SITE_KIT_API_KEY__ : void 0;
14
16
  return { apiUrl, apiKey };
15
17
  }
18
+ var announcedSuppression = false;
19
+ function resolveAnalyticsTarget(options = {}) {
20
+ const { apiUrl: globalApiUrl, apiKey: globalApiKey } = windowConfig();
21
+ const apiUrl = options.apiUrl || globalApiUrl;
22
+ const apiKey = options.apiKey || globalApiKey;
23
+ if (!apiKey) return null;
24
+ if (!options.allowInFrame && chunkOL2QBWAU_js.isCrossOriginFrame()) {
25
+ if (options.debug && !announcedSuppression) {
26
+ announcedSuppression = true;
27
+ console.info(
28
+ "[Analytics] This page is embedded in a cross-origin frame, so nothing is being reported. Set analytics.allowInFrame if this site is meant to be tracked as an embed."
29
+ );
30
+ }
31
+ return null;
32
+ }
33
+ return { apiUrl, apiKey };
34
+ }
35
+ async function analyticsSend(path, body, options = {}) {
36
+ const target = resolveAnalyticsTarget(options);
37
+ if (!target) return null;
38
+ try {
39
+ return await chunk6AZTRTCG_js.sonorFetch(
40
+ `${target.apiUrl}${path}`,
41
+ {
42
+ method: options.method || "POST",
43
+ headers: { "Content-Type": "application/json" },
44
+ ...options.keepalive ? { keepalive: true } : {},
45
+ ...body === void 0 ? {} : { body: JSON.stringify(body) }
46
+ },
47
+ { apiKey: target.apiKey, retries: options.retries ?? 0 }
48
+ );
49
+ } catch {
50
+ return null;
51
+ }
52
+ }
53
+ function analyticsBeacon(path, body, options = {}) {
54
+ const target = resolveAnalyticsTarget(options);
55
+ if (!target) return;
56
+ chunk6AZTRTCG_js.sonorBeacon(`${target.apiUrl}${path}`, body, target.apiKey);
57
+ }
58
+
59
+ // src/analytics/WebVitals.tsx
16
60
  function pathForMetric(metric, fallback) {
17
61
  const url = metric.navigationURL;
18
62
  if (url) {
@@ -63,29 +107,28 @@ function summarizeAttribution(metric) {
63
107
  return void 0;
64
108
  }
65
109
  }
66
- function WebVitals({ apiUrl: propApiUrl, apiKey: propApiKey, site: propSite, debug = false }) {
110
+ function WebVitals({
111
+ apiUrl: propApiUrl,
112
+ apiKey: propApiKey,
113
+ site: propSite,
114
+ allowInFrame = false,
115
+ debug = false
116
+ }) {
67
117
  const pathname = navigation.usePathname();
68
118
  const landingPathRef = react.useRef(pathname || "/");
69
- const propsRef = react.useRef({ propApiUrl, propApiKey, propSite, debug });
70
- propsRef.current = { propApiUrl, propApiKey, propSite, debug };
119
+ const propsRef = react.useRef({ propApiUrl, propApiKey, propSite, allowInFrame, debug });
120
+ propsRef.current = { propApiUrl, propApiKey, propSite, allowInFrame, debug };
71
121
  react.useEffect(() => {
72
122
  let cancelled = false;
73
123
  let teardown;
74
124
  import('./web-vitals.attribution-ONVYQNRB.js').then(({ onCLS, onLCP, onTTFB, onINP, onFCP }) => {
75
125
  if (cancelled) return;
76
- const { propApiUrl: propApiUrl2, propApiKey: propApiKey2, propSite: propSite2, debug: debug2 } = propsRef.current;
126
+ const { propApiUrl: propApiUrl2, propApiKey: propApiKey2, propSite: propSite2, allowInFrame: allowInFrame2, debug: debug2 } = propsRef.current;
77
127
  const sent = /* @__PURE__ */ new Map();
78
128
  const report = (metric, viaBeacon = false) => {
79
129
  if (sent.get(metric.id) === metric.value) return;
80
130
  sent.set(metric.id, metric.value);
81
- const { apiUrl: globalApiUrl, apiKey: globalApiKey } = getApiConfig();
82
- const apiUrl = propApiUrl2 || globalApiUrl;
83
- const apiKey = propApiKey2 || globalApiKey;
84
131
  const site = propSite2 || (typeof window !== "undefined" ? window.__SITE_KIT_SITE__ || window.location.host : "");
85
- if (!apiKey) {
86
- if (debug2) console.warn("[Analytics] No API key configured for Web Vitals");
87
- return;
88
- }
89
132
  const data = {
90
133
  site,
91
134
  pagePath: pathForMetric(metric, landingPathRef.current),
@@ -99,22 +142,13 @@ function WebVitals({ apiUrl: propApiUrl, apiKey: propApiKey, site: propSite, deb
99
142
  attribution: summarizeAttribution(metric)
100
143
  };
101
144
  if (debug2) console.log("[Analytics] Web Vital:", data);
102
- const endpoint = `${apiUrl}/api/public/analytics/web-vitals`;
145
+ const endpoint = "/api/public/analytics/web-vitals";
146
+ const gate = { apiUrl: propApiUrl2, apiKey: propApiKey2, allowInFrame: allowInFrame2, debug: debug2 };
103
147
  if (viaBeacon) {
104
- chunkUJOEN4X6_js.sonorBeacon(endpoint, data, apiKey);
148
+ analyticsBeacon(endpoint, data, gate);
105
149
  return;
106
150
  }
107
- void chunkUJOEN4X6_js.sonorFetch(
108
- endpoint,
109
- {
110
- method: "POST",
111
- headers: { "Content-Type": "application/json" },
112
- body: JSON.stringify(data)
113
- },
114
- { apiKey, retries: 0 }
115
- ).catch((error) => {
116
- if (debug2) console.error("[Analytics] Error reporting Web Vital:", error);
117
- });
151
+ void analyticsSend(endpoint, data, gate);
118
152
  };
119
153
  const opts = { reportSoftNavs: true };
120
154
  const pending = [];
@@ -549,11 +583,6 @@ async function collectPageMetadata(isStale) {
549
583
  const content = getContentPageMetadata();
550
584
  return { ...light, ...media, ...content };
551
585
  }
552
- function getApiConfig2() {
553
- const apiUrl = typeof window !== "undefined" ? window.__SITE_KIT_API_URL__ || "https://api.sonor.io" : "https://api.sonor.io";
554
- const apiKey = typeof window !== "undefined" ? window.__SITE_KIT_API_KEY__ : void 0;
555
- return { apiUrl, apiKey };
556
- }
557
586
  function AnalyticsProvider({
558
587
  children,
559
588
  apiUrl: propApiUrl,
@@ -571,11 +600,16 @@ function AnalyticsProvider({
571
600
  externalVisitorId,
572
601
  externalSessionId,
573
602
  onPageMetadata,
574
- site: propSite
603
+ site: propSite,
604
+ allowInFrame = false
575
605
  }) {
576
606
  const pathname = navigation.usePathname();
577
607
  const [queryString, setQueryString] = react.useState("");
578
608
  const site = propSite || (typeof window !== "undefined" ? window.__SITE_KIT_SITE__ || window.location.host : "");
609
+ const gate = react.useMemo(
610
+ () => ({ apiUrl: propApiUrl, apiKey: propApiKey, allowInFrame, debug }),
611
+ [propApiUrl, propApiKey, allowInFrame, debug]
612
+ );
579
613
  react.useEffect(() => {
580
614
  if (typeof window === "undefined") return;
581
615
  setQueryString(window.location.search);
@@ -603,19 +637,17 @@ function AnalyticsProvider({
603
637
  return;
604
638
  }
605
639
  const fetchValidPages = async () => {
606
- const { apiUrl: globalApiUrl, apiKey: globalApiKey } = getApiConfig2();
607
- const apiUrl = propApiUrl || globalApiUrl;
608
- const apiKey = propApiKey || globalApiKey;
609
- if (!apiKey) {
610
- if (debug) console.warn("[Analytics] No API key for page validation");
611
- return;
612
- }
613
640
  try {
614
- const response = await chunkUJOEN4X6_js.sonorFetch(
615
- `${apiUrl}/api/public/seo/pages`,
616
- { method: "GET", headers: { "Content-Type": "application/json" } },
617
- { apiKey }
641
+ const response = await analyticsSend(
642
+ "/api/public/seo/pages",
643
+ void 0,
644
+ { ...gate, method: "GET", retries: 2 }
618
645
  );
646
+ if (!response) {
647
+ if (debug) console.warn("[Analytics] Page validation skipped (no key, or embedded)");
648
+ sitemapLoadedRef.current = true;
649
+ return;
650
+ }
619
651
  if (response.ok) {
620
652
  const data = await response.json();
621
653
  const pages = data?.pages || [];
@@ -638,7 +670,7 @@ function AnalyticsProvider({
638
670
  }
639
671
  };
640
672
  fetchValidPages();
641
- }, [propApiUrl, propApiKey, validateAgainstSitemap, debug]);
673
+ }, [gate, validateAgainstSitemap, debug]);
642
674
  react.useEffect(() => {
643
675
  if (!trackPageViews) return;
644
676
  if (!pathname) return;
@@ -647,11 +679,8 @@ function AnalyticsProvider({
647
679
  if (normalizedPath === lastPathRef.current) return;
648
680
  lastPathRef.current = normalizedPath;
649
681
  const trackPageView = async () => {
650
- const { apiUrl: globalApiUrl, apiKey: globalApiKey } = getApiConfig2();
651
- const apiUrl = propApiUrl || globalApiUrl;
652
- const apiKey = propApiKey || globalApiKey;
653
- if (!apiKey) {
654
- if (debug) console.warn("[Analytics] No API key configured");
682
+ if (!resolveAnalyticsTarget(gate)) {
683
+ if (debug) console.warn("[Analytics] Page view skipped (no key, or embedded)");
655
684
  return;
656
685
  }
657
686
  const utmParams = getUTMParams();
@@ -694,25 +723,13 @@ function AnalyticsProvider({
694
723
  if (debug) {
695
724
  console.log("[Analytics] Page view:", pageView);
696
725
  }
697
- try {
698
- const response = await chunkUJOEN4X6_js.sonorFetch(
699
- `${apiUrl}/api/public/analytics/page-view`,
700
- {
701
- method: "POST",
702
- headers: { "Content-Type": "application/json" },
703
- body: JSON.stringify(pageView)
704
- },
705
- { apiKey, retries: 0 }
706
- );
707
- if (debug) {
708
- console.log("[Analytics] Page view response:", response.status, response.statusText, "url:", `${apiUrl}/api/public/analytics/page-view`);
709
- }
710
- if (!response.ok && debug) {
726
+ const response = await analyticsSend("/api/public/analytics/page-view", pageView, gate);
727
+ if (debug && response) {
728
+ console.log("[Analytics] Page view response:", response.status, response.statusText);
729
+ if (!response.ok) {
711
730
  const text = await response.text().catch(() => "");
712
731
  console.error("[Analytics] Error tracking page view:", response.status, response.statusText, text);
713
732
  }
714
- } catch (error) {
715
- if (debug) console.error("[Analytics] Error tracking page view (fetch failed):", error);
716
733
  }
717
734
  if (validateAgainstSitemap && debug) {
718
735
  if (sitemapLoadedRef.current && validPathsRef.current && validPathsRef.current.size > 0) {
@@ -725,15 +742,12 @@ function AnalyticsProvider({
725
742
  }
726
743
  };
727
744
  scheduleIdleTask(() => trackPageView());
728
- }, [pathname, queryString, propApiUrl, propApiKey, trackPageViews, excludePaths, debug, validateAgainstSitemap]);
745
+ }, [pathname, queryString, gate, trackPageViews, excludePaths, debug, validateAgainstSitemap]);
729
746
  react.useEffect(() => {
730
747
  if (!trackJourneys) return;
731
748
  if (!pathname) return;
732
749
  if (typeof window === "undefined") return;
733
- const { apiUrl: globalApiUrl, apiKey: globalApiKey } = getApiConfig2();
734
- const apiUrl = propApiUrl || globalApiUrl;
735
- const apiKey = propApiKey || globalApiKey;
736
- if (!apiKey) return;
750
+ if (!resolveAnalyticsTarget(gate)) return;
737
751
  const now = Date.now();
738
752
  const previousPath = lastPathRef.current;
739
753
  const previousDuration = pageEnterTimeRef.current > 0 ? Math.round((now - pageEnterTimeRef.current) / 1e3) : 0;
@@ -784,48 +798,36 @@ function AnalyticsProvider({
784
798
  if (debug) {
785
799
  console.log("[Analytics] Journey step:", sessionData);
786
800
  }
787
- try {
788
- await chunkUJOEN4X6_js.sonorFetch(
789
- `${apiUrl}/api/public/analytics/session`,
790
- {
791
- method: "POST",
792
- headers: { "Content-Type": "application/json" },
793
- body: JSON.stringify(sessionData)
794
- },
795
- { apiKey, retries: 0 }
796
- );
797
- } catch (error) {
798
- if (debug) console.error("[Analytics] Error tracking journey:", error);
799
- }
801
+ await analyticsSend("/api/public/analytics/session", sessionData, gate);
800
802
  };
801
803
  scheduleIdleTask(() => trackJourneyStep());
802
804
  const handleUnload = () => {
803
805
  const duration = Math.round((Date.now() - journeyStartTimeRef.current) / 1e3);
804
- const payload = JSON.stringify({
805
- sessionId: sessionIdRef.current,
806
- site,
807
- action: "end",
808
- duration,
809
- lastPage: pathname,
810
- previousPageDuration: Math.round((Date.now() - pageEnterTimeRef.current) / 1e3),
811
- previousPageScrollDepth: currentScrollDepthRef.current
812
- });
813
- chunkUJOEN4X6_js.sonorBeacon(`${apiUrl}/api/public/analytics/session`, payload, apiKey);
806
+ analyticsBeacon(
807
+ "/api/public/analytics/session",
808
+ {
809
+ sessionId: sessionIdRef.current,
810
+ site,
811
+ action: "end",
812
+ duration,
813
+ lastPage: pathname,
814
+ previousPageDuration: Math.round((Date.now() - pageEnterTimeRef.current) / 1e3),
815
+ previousPageScrollDepth: currentScrollDepthRef.current
816
+ },
817
+ gate
818
+ );
814
819
  };
815
820
  window.addEventListener("pagehide", handleUnload);
816
821
  return () => {
817
822
  window.removeEventListener("pagehide", handleUnload);
818
823
  };
819
- }, [pathname, propApiUrl, propApiKey, trackJourneys, debug]);
824
+ }, [pathname, gate, trackJourneys, debug]);
820
825
  react.useEffect(() => {
821
826
  if (typeof window === "undefined") return;
822
827
  if (debug) console.log("[Analytics] Scroll tracking setup:", { trackScrollDepth, hasApiKey: !!propApiKey });
823
828
  if (!trackScrollDepth) return;
824
- const { apiUrl: globalApiUrl, apiKey: globalApiKey } = getApiConfig2();
825
- const apiUrl = propApiUrl || globalApiUrl;
826
- const apiKey = propApiKey || globalApiKey;
827
- if (!apiKey) {
828
- if (debug) console.warn("[Analytics] Scroll tracking disabled - no API key");
829
+ if (!resolveAnalyticsTarget(gate)) {
830
+ if (debug) console.warn("[Analytics] Scroll tracking disabled (no key, or embedded)");
829
831
  return;
830
832
  }
831
833
  if (debug) console.log("[Analytics] Scroll tracking enabled for:", pathname);
@@ -861,7 +863,7 @@ function AnalyticsProvider({
861
863
  if (hasTracked || maxDepth === 0) return;
862
864
  hasTracked = true;
863
865
  const totalTime = (Date.now() - startTime) / 1e3;
864
- const payload = JSON.stringify({
866
+ const payload = {
865
867
  sessionId: sessionIdRef.current,
866
868
  visitorId: visitorIdRef.current,
867
869
  site,
@@ -873,28 +875,16 @@ function AnalyticsProvider({
873
875
  timeTo100: milestone100,
874
876
  totalTimeSeconds: totalTime,
875
877
  deviceType: getDeviceType()
876
- });
878
+ };
877
879
  if (useBeacon) {
878
- chunkUJOEN4X6_js.sonorBeacon(`${apiUrl}/api/public/analytics/scroll-depth`, payload, apiKey);
879
- if (debug) console.log("[Analytics] Scroll depth (beacon):", { maxDepth, totalTime });
880
+ analyticsBeacon("/api/public/analytics/scroll-depth", payload, gate);
880
881
  } else {
881
- try {
882
- await chunkUJOEN4X6_js.sonorFetch(
883
- `${apiUrl}/api/public/analytics/scroll-depth`,
884
- {
885
- method: "POST",
886
- headers: { "Content-Type": "application/json" },
887
- body: payload,
888
- keepalive: true
889
- // Allows request to outlive the page
890
- },
891
- { apiKey, retries: 0 }
892
- );
893
- if (debug) console.log("[Analytics] Scroll depth:", { maxDepth, totalTime });
894
- } catch (error) {
895
- if (debug) console.error("[Analytics] Error tracking scroll depth:", error);
896
- }
882
+ await analyticsSend("/api/public/analytics/scroll-depth", payload, {
883
+ ...gate,
884
+ keepalive: true
885
+ });
897
886
  }
887
+ if (debug) console.log("[Analytics] Scroll depth:", { maxDepth, totalTime, useBeacon });
898
888
  };
899
889
  maxDepth = 0;
900
890
  startTime = Date.now();
@@ -917,14 +907,11 @@ function AnalyticsProvider({
917
907
  document.removeEventListener("visibilitychange", handleVisibilityChange);
918
908
  sendScrollData(false);
919
909
  };
920
- }, [pathname, propApiUrl, propApiKey, trackScrollDepth, debug]);
910
+ }, [pathname, gate, trackScrollDepth, debug]);
921
911
  react.useEffect(() => {
922
912
  if (!trackClicks) return;
923
913
  if (typeof window === "undefined") return;
924
- const { apiUrl: globalApiUrl, apiKey: globalApiKey } = getApiConfig2();
925
- const apiUrl = propApiUrl || globalApiUrl;
926
- const apiKey = propApiKey || globalApiKey;
927
- if (!apiKey) return;
914
+ if (!resolveAnalyticsTarget(gate)) return;
928
915
  const handleClick = async (e) => {
929
916
  const target = e.target;
930
917
  if (!target) return;
@@ -955,36 +942,17 @@ function AnalyticsProvider({
955
942
  elementText
956
943
  };
957
944
  if (debug) console.log("[Analytics] Click:", clickData);
958
- scheduleIdleTask(async () => {
959
- try {
960
- await chunkUJOEN4X6_js.sonorFetch(
961
- `${apiUrl}/api/public/analytics/heatmap-click`,
962
- {
963
- method: "POST",
964
- headers: { "Content-Type": "application/json" },
965
- body: JSON.stringify(clickData)
966
- },
967
- { apiKey, retries: 0 }
968
- );
969
- } catch (error) {
970
- if (debug) console.error("[Analytics] Error tracking click:", error);
971
- }
945
+ scheduleIdleTask(() => {
946
+ void analyticsSend("/api/public/analytics/heatmap-click", clickData, gate);
972
947
  }, 500);
973
948
  };
974
949
  document.addEventListener("click", handleClick, { passive: true });
975
950
  return () => {
976
951
  document.removeEventListener("click", handleClick);
977
952
  };
978
- }, [pathname, propApiUrl, propApiKey, trackClicks, debug]);
953
+ }, [pathname, gate, trackClicks, debug]);
979
954
  const trackEvent = react.useCallback((options) => {
980
955
  const doTrack = async () => {
981
- const { apiUrl: globalApiUrl, apiKey: globalApiKey } = getApiConfig2();
982
- const apiUrl = propApiUrl || globalApiUrl;
983
- const apiKey = propApiKey || globalApiKey;
984
- if (!apiKey) {
985
- if (debug) console.warn("[Analytics] No API key configured");
986
- return;
987
- }
988
956
  const event = {
989
957
  sessionId: sessionIdRef.current,
990
958
  visitorId: visitorIdRef.current,
@@ -999,34 +967,15 @@ function AnalyticsProvider({
999
967
  if (debug) {
1000
968
  console.log("[Analytics] Event:", event);
1001
969
  }
1002
- try {
1003
- const response = await chunkUJOEN4X6_js.sonorFetch(
1004
- `${apiUrl}/api/public/analytics/event`,
1005
- {
1006
- method: "POST",
1007
- headers: { "Content-Type": "application/json" },
1008
- body: JSON.stringify(event)
1009
- },
1010
- { apiKey, retries: 0 }
1011
- );
1012
- if (!response.ok && debug) {
1013
- console.error("[Analytics] Error tracking event:", response.statusText);
1014
- }
1015
- } catch (error) {
1016
- if (debug) console.error("[Analytics] Error tracking event:", error);
970
+ const response = await analyticsSend("/api/public/analytics/event", event, gate);
971
+ if (response && !response.ok && debug) {
972
+ console.error("[Analytics] Error tracking event:", response.statusText);
1017
973
  }
1018
974
  };
1019
975
  scheduleIdleTask(doTrack, 1e3);
1020
- }, [propApiUrl, propApiKey, pathname, debug]);
976
+ }, [gate, site, pathname, debug]);
1021
977
  const trackConversion = react.useCallback((options) => {
1022
978
  const doTrack = async () => {
1023
- const { apiUrl: globalApiUrl, apiKey: globalApiKey } = getApiConfig2();
1024
- const apiUrl = propApiUrl || globalApiUrl;
1025
- const apiKey = propApiKey || globalApiKey;
1026
- if (!apiKey) {
1027
- if (debug) console.warn("[Analytics] No API key configured");
1028
- return;
1029
- }
1030
979
  const conversion = {
1031
980
  sessionId: sessionIdRef.current,
1032
981
  visitorId: visitorIdRef.current,
@@ -1042,25 +991,13 @@ function AnalyticsProvider({
1042
991
  if (debug) {
1043
992
  console.log("[Analytics] Conversion:", conversion);
1044
993
  }
1045
- try {
1046
- const response = await chunkUJOEN4X6_js.sonorFetch(
1047
- `${apiUrl}/api/public/analytics/conversion`,
1048
- {
1049
- method: "POST",
1050
- headers: { "Content-Type": "application/json" },
1051
- body: JSON.stringify(conversion)
1052
- },
1053
- { apiKey, retries: 0 }
1054
- );
1055
- if (!response.ok && debug) {
1056
- console.error("[Analytics] Error tracking conversion:", response.statusText);
1057
- }
1058
- } catch (error) {
1059
- if (debug) console.error("[Analytics] Error tracking conversion:", error);
994
+ const response = await analyticsSend("/api/public/analytics/conversion", conversion, gate);
995
+ if (response && !response.ok && debug) {
996
+ console.error("[Analytics] Error tracking conversion:", response.statusText);
1060
997
  }
1061
998
  };
1062
999
  doTrack();
1063
- }, [propApiUrl, propApiKey, pathname, debug]);
1000
+ }, [gate, site, pathname, debug]);
1064
1001
  react.useEffect(() => {
1065
1002
  chunkHMFFAUCD_js.registerAnalyticsDispatcher({ trackEvent, trackConversion });
1066
1003
  return () => chunkHMFFAUCD_js.registerAnalyticsDispatcher(null);
@@ -1078,6 +1015,7 @@ function AnalyticsProvider({
1078
1015
  apiUrl: propApiUrl,
1079
1016
  apiKey: propApiKey,
1080
1017
  site,
1018
+ allowInFrame,
1081
1019
  debug
1082
1020
  }
1083
1021
  ),
@@ -1104,5 +1042,5 @@ exports.WebVitals = WebVitals;
1104
1042
  exports.useAnalytics = useAnalytics;
1105
1043
  exports.useAnalyticsOptional = useAnalyticsOptional;
1106
1044
  exports.useTrackEvent = useTrackEvent;
1107
- //# sourceMappingURL=chunk-KP56C66Z.js.map
1108
- //# sourceMappingURL=chunk-KP56C66Z.js.map
1045
+ //# sourceMappingURL=chunk-M7FWXEXC.js.map
1046
+ //# sourceMappingURL=chunk-M7FWXEXC.js.map