@sonordev/site-kit 4.1.0 → 4.2.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 +6 -1
  2. package/dist/AnalyticsProvider-4BQIFRWP.js +31 -0
  3. package/dist/{AnalyticsProvider-G5P5RQOA.js.map → AnalyticsProvider-4BQIFRWP.js.map} +1 -1
  4. package/dist/AnalyticsProvider-EQSG7FGL.mjs +10 -0
  5. package/dist/{AnalyticsProvider-NGQLQL5N.mjs.map → AnalyticsProvider-EQSG7FGL.mjs.map} +1 -1
  6. package/dist/ChatWidget-EXJD6YVW.js +20 -0
  7. package/dist/{ChatWidget-AYKZBKJH.js.map → ChatWidget-EXJD6YVW.js.map} +1 -1
  8. package/dist/ChatWidget-ZTKWIKXR.mjs +11 -0
  9. package/dist/{ChatWidget-LPFHRK7U.mjs.map → ChatWidget-ZTKWIKXR.mjs.map} +1 -1
  10. package/dist/EngageWidget-BJLSXG2V.mjs +9 -0
  11. package/dist/{EngageWidget-KDE7BYAK.mjs.map → EngageWidget-BJLSXG2V.mjs.map} +1 -1
  12. package/dist/EngageWidget-HY523XM4.js +18 -0
  13. package/dist/{EngageWidget-HKPAJAMR.js.map → EngageWidget-HY523XM4.js.map} +1 -1
  14. package/dist/{FileField-SU4HTY4F.mjs → FileField-5U4FYTLN.mjs} +5 -5
  15. package/dist/{FileField-SU4HTY4F.mjs.map → FileField-5U4FYTLN.mjs.map} +1 -1
  16. package/dist/{FileField-DDDNSRMR.js → FileField-FV46FKRM.js} +6 -6
  17. package/dist/{FileField-DDDNSRMR.js.map → FileField-FV46FKRM.js.map} +1 -1
  18. package/dist/{FormSpotlight-M4S57VC6.js → FormSpotlight-TUHLSY3O.js} +15 -15
  19. package/dist/{FormSpotlight-M4S57VC6.js.map → FormSpotlight-TUHLSY3O.js.map} +1 -1
  20. package/dist/{FormSpotlight-B6TJPNYN.mjs → FormSpotlight-W6BNVKNN.mjs} +3 -3
  21. package/dist/{FormSpotlight-B6TJPNYN.mjs.map → FormSpotlight-W6BNVKNN.mjs.map} +1 -1
  22. package/dist/{FormStage-2ASJGNOX.js → FormStage-MNXNKSPP.js} +13 -13
  23. package/dist/{FormStage-2ASJGNOX.js.map → FormStage-MNXNKSPP.js.map} +1 -1
  24. package/dist/{FormStage-GH7SA6FQ.mjs → FormStage-NKWP3C2S.mjs} +3 -3
  25. package/dist/{FormStage-GH7SA6FQ.mjs.map → FormStage-NKWP3C2S.mjs.map} +1 -1
  26. package/dist/ManagedForm-K4UHRVYV.js +23 -0
  27. package/dist/{ManagedForm-D2JT3QV3.js.map → ManagedForm-K4UHRVYV.js.map} +1 -1
  28. package/dist/ManagedForm-M3XW66FH.mjs +14 -0
  29. package/dist/{ManagedForm-RCC7NEV2.mjs.map → ManagedForm-M3XW66FH.mjs.map} +1 -1
  30. package/dist/{SignalCore-7H4ZGFZO.js → SignalCore-7PVCUG2S.js} +11 -11
  31. package/dist/{SignalCore-7H4ZGFZO.js.map → SignalCore-7PVCUG2S.js.map} +1 -1
  32. package/dist/{SignalCore-36PY3SRB.mjs → SignalCore-S6PCGTHS.mjs} +5 -5
  33. package/dist/{SignalCore-36PY3SRB.mjs.map → SignalCore-S6PCGTHS.mjs.map} +1 -1
  34. package/dist/SitemapSync-2HLGUZES.mjs +8 -0
  35. package/dist/{SitemapSync-HKAG3JU3.mjs.map → SitemapSync-2HLGUZES.mjs.map} +1 -1
  36. package/dist/SitemapSync-66HQ4SG2.js +17 -0
  37. package/dist/{SitemapSync-AYVBNCH4.js.map → SitemapSync-66HQ4SG2.js.map} +1 -1
  38. package/dist/analytics/index.js +9 -9
  39. package/dist/analytics/index.mjs +4 -4
  40. package/dist/{chunk-7JES77WC.mjs → chunk-2GUDSTNH.mjs} +89 -20
  41. package/dist/chunk-2GUDSTNH.mjs.map +1 -0
  42. package/dist/{chunk-LAWESLXJ.js → chunk-2LU7BV5K.js} +29 -19
  43. package/dist/chunk-2LU7BV5K.js.map +1 -0
  44. package/dist/{chunk-UTANIZUO.js → chunk-3BXQP54K.js} +3 -3
  45. package/dist/{chunk-UTANIZUO.js.map → chunk-3BXQP54K.js.map} +1 -1
  46. package/dist/{chunk-FNOCLT4A.mjs → chunk-4E7NFYL5.mjs} +3 -3
  47. package/dist/{chunk-FNOCLT4A.mjs.map → chunk-4E7NFYL5.mjs.map} +1 -1
  48. package/dist/{chunk-HK33JRWA.js → chunk-4MBD6PPV.js} +15 -15
  49. package/dist/{chunk-HK33JRWA.js.map → chunk-4MBD6PPV.js.map} +1 -1
  50. package/dist/{chunk-WJJQWAG2.mjs → chunk-4SJITKBL.mjs} +3 -3
  51. package/dist/{chunk-WJJQWAG2.mjs.map → chunk-4SJITKBL.mjs.map} +1 -1
  52. package/dist/{chunk-SEH2K6NG.js → chunk-524SIFK7.js} +13 -13
  53. package/dist/chunk-524SIFK7.js.map +1 -0
  54. package/dist/{chunk-MKQZVTD3.js → chunk-55FJN7VQ.js} +6 -6
  55. package/dist/{chunk-MKQZVTD3.js.map → chunk-55FJN7VQ.js.map} +1 -1
  56. package/dist/{chunk-DCITIONV.js → chunk-645TOMKQ.js} +4 -4
  57. package/dist/{chunk-DCITIONV.js.map → chunk-645TOMKQ.js.map} +1 -1
  58. package/dist/{chunk-MXPGAJLM.mjs → chunk-7723NZQW.mjs} +4 -4
  59. package/dist/{chunk-MXPGAJLM.mjs.map → chunk-7723NZQW.mjs.map} +1 -1
  60. package/dist/{chunk-2IH5FM2A.js → chunk-7YVFFQWH.js} +14 -14
  61. package/dist/{chunk-2IH5FM2A.js.map → chunk-7YVFFQWH.js.map} +1 -1
  62. package/dist/chunk-AAZNH3MA.mjs +23 -0
  63. package/dist/chunk-AAZNH3MA.mjs.map +1 -0
  64. package/dist/{chunk-7CYSA5EN.mjs → chunk-BEHHWRZM.mjs} +3 -3
  65. package/dist/{chunk-7CYSA5EN.mjs.map → chunk-BEHHWRZM.mjs.map} +1 -1
  66. package/dist/{chunk-3GJBSUVS.js → chunk-BUZSBUYJ.js} +14 -14
  67. package/dist/{chunk-3GJBSUVS.js.map → chunk-BUZSBUYJ.js.map} +1 -1
  68. package/dist/chunk-CIM5W3UO.js +26 -0
  69. package/dist/chunk-CIM5W3UO.js.map +1 -0
  70. package/dist/{chunk-4ROQDPUE.mjs → chunk-CM5QUX2T.mjs} +3 -3
  71. package/dist/{chunk-4ROQDPUE.mjs.map → chunk-CM5QUX2T.mjs.map} +1 -1
  72. package/dist/{chunk-XCCMVJUA.mjs → chunk-D6CPHVMV.mjs} +3 -3
  73. package/dist/{chunk-XCCMVJUA.mjs.map → chunk-D6CPHVMV.mjs.map} +1 -1
  74. package/dist/{chunk-L6WWNP2N.js → chunk-DEPDYVUH.js} +5 -5
  75. package/dist/{chunk-L6WWNP2N.js.map → chunk-DEPDYVUH.js.map} +1 -1
  76. package/dist/{chunk-VOYLJCHB.js → chunk-F46DCSUI.js} +9 -9
  77. package/dist/{chunk-VOYLJCHB.js.map → chunk-F46DCSUI.js.map} +1 -1
  78. package/dist/{chunk-LRHECSZK.js → chunk-HYRKVST7.js} +14 -14
  79. package/dist/{chunk-LRHECSZK.js.map → chunk-HYRKVST7.js.map} +1 -1
  80. package/dist/chunk-JA77WXRE.js +30 -0
  81. package/dist/chunk-JA77WXRE.js.map +1 -0
  82. package/dist/{chunk-UDHQNYBD.mjs → chunk-K7XOPTOE.mjs} +4 -4
  83. package/dist/{chunk-UDHQNYBD.mjs.map → chunk-K7XOPTOE.mjs.map} +1 -1
  84. package/dist/{chunk-S4U44UUD.mjs → chunk-KJSYSRMD.mjs} +3 -3
  85. package/dist/{chunk-S4U44UUD.mjs.map → chunk-KJSYSRMD.mjs.map} +1 -1
  86. package/dist/{chunk-A4E6EOU4.mjs → chunk-L4ZLL6TE.mjs} +4 -4
  87. package/dist/{chunk-A4E6EOU4.mjs.map → chunk-L4ZLL6TE.mjs.map} +1 -1
  88. package/dist/{chunk-XRQ47XDA.js → chunk-LSW5QBW2.js} +4 -4
  89. package/dist/{chunk-XRQ47XDA.js.map → chunk-LSW5QBW2.js.map} +1 -1
  90. package/dist/{chunk-5GAOZTMW.mjs → chunk-MOKM6STG.mjs} +3 -3
  91. package/dist/{chunk-5GAOZTMW.mjs.map → chunk-MOKM6STG.mjs.map} +1 -1
  92. package/dist/chunk-NPCWPOCE.mjs +6 -0
  93. package/dist/{chunk-PKCEJWLD.mjs.map → chunk-NPCWPOCE.mjs.map} +1 -1
  94. package/dist/{chunk-5JFJJNWS.js → chunk-OB6DNGYK.js} +97 -28
  95. package/dist/chunk-OB6DNGYK.js.map +1 -0
  96. package/dist/{chunk-FJ5EMPCK.mjs → chunk-P37FFMOZ.mjs} +9 -9
  97. package/dist/chunk-P37FFMOZ.mjs.map +1 -0
  98. package/dist/{chunk-O554YMPI.js → chunk-PLY5AP72.js} +3 -3
  99. package/dist/{chunk-O554YMPI.js.map → chunk-PLY5AP72.js.map} +1 -1
  100. package/dist/{chunk-ZDXGB3UC.js → chunk-QQFWEHYU.js} +4 -4
  101. package/dist/{chunk-ZDXGB3UC.js.map → chunk-QQFWEHYU.js.map} +1 -1
  102. package/dist/chunk-QZF5NTXQ.mjs +28 -0
  103. package/dist/chunk-QZF5NTXQ.mjs.map +1 -0
  104. package/dist/{chunk-G7IMEY5T.mjs → chunk-SED7E3P5.mjs} +4 -4
  105. package/dist/{chunk-G7IMEY5T.mjs.map → chunk-SED7E3P5.mjs.map} +1 -1
  106. package/dist/{chunk-GJVC7KKL.mjs → chunk-SS5S43I4.mjs} +18 -8
  107. package/dist/chunk-SS5S43I4.mjs.map +1 -0
  108. package/dist/{chunk-VJAUA77N.js → chunk-THBZCEA7.js} +5 -5
  109. package/dist/{chunk-VJAUA77N.js.map → chunk-THBZCEA7.js.map} +1 -1
  110. package/dist/{chunk-NTFLRRTQ.js → chunk-TWPLJ27S.js} +7 -7
  111. package/dist/{chunk-NTFLRRTQ.js.map → chunk-TWPLJ27S.js.map} +1 -1
  112. package/dist/{chunk-FQ4BDJXG.js → chunk-UEOGMRTL.js} +8 -8
  113. package/dist/{chunk-FQ4BDJXG.js.map → chunk-UEOGMRTL.js.map} +1 -1
  114. package/dist/{chunk-NSIRG3C3.js → chunk-UF33ENG6.js} +3 -3
  115. package/dist/{chunk-NSIRG3C3.js.map → chunk-UF33ENG6.js.map} +1 -1
  116. package/dist/{chunk-WNUUVBD7.js → chunk-UIKGLLTU.js} +4 -4
  117. package/dist/{chunk-WNUUVBD7.js.map → chunk-UIKGLLTU.js.map} +1 -1
  118. package/dist/chunk-UUBW2NJZ.js +8 -0
  119. package/dist/{chunk-R35CW6MM.js.map → chunk-UUBW2NJZ.js.map} +1 -1
  120. package/dist/{chunk-2RJ5UHAC.mjs → chunk-W3QLA5MI.mjs} +3 -3
  121. package/dist/{chunk-2RJ5UHAC.mjs.map → chunk-W3QLA5MI.mjs.map} +1 -1
  122. package/dist/{chunk-VPBLW4ZN.mjs → chunk-WARTV6ZP.mjs} +4 -4
  123. package/dist/{chunk-VPBLW4ZN.mjs.map → chunk-WARTV6ZP.mjs.map} +1 -1
  124. package/dist/{chunk-QYLGVXRX.mjs → chunk-WHHBOYAW.mjs} +4 -4
  125. package/dist/{chunk-QYLGVXRX.mjs.map → chunk-WHHBOYAW.mjs.map} +1 -1
  126. package/dist/{chunk-DBZU2TRZ.mjs → chunk-WNK2OK5G.mjs} +3 -3
  127. package/dist/{chunk-DBZU2TRZ.mjs.map → chunk-WNK2OK5G.mjs.map} +1 -1
  128. package/dist/{chunk-FYPA5GLS.js → chunk-XBKNPBRB.js} +15 -15
  129. package/dist/{chunk-FYPA5GLS.js.map → chunk-XBKNPBRB.js.map} +1 -1
  130. package/dist/{chunk-TH2ANDPK.mjs → chunk-XFVI3SNM.mjs} +3 -3
  131. package/dist/{chunk-TH2ANDPK.mjs.map → chunk-XFVI3SNM.mjs.map} +1 -1
  132. package/dist/{chunk-DAGLPS6P.js → chunk-XMZQUC2J.js} +8 -8
  133. package/dist/{chunk-DAGLPS6P.js.map → chunk-XMZQUC2J.js.map} +1 -1
  134. package/dist/{chunk-ANTVZSQI.mjs → chunk-YN5WYGHK.mjs} +3 -3
  135. package/dist/{chunk-ANTVZSQI.mjs.map → chunk-YN5WYGHK.mjs.map} +1 -1
  136. package/dist/{chunk-LMKDQCU7.mjs → chunk-YV2TG7JR.mjs} +3 -3
  137. package/dist/{chunk-LMKDQCU7.mjs.map → chunk-YV2TG7JR.mjs.map} +1 -1
  138. package/dist/{chunk-D7IY27X5.mjs → chunk-ZXVMP6SY.mjs} +3 -3
  139. package/dist/{chunk-D7IY27X5.mjs.map → chunk-ZXVMP6SY.mjs.map} +1 -1
  140. package/dist/cli/index.js +3 -3
  141. package/dist/cli/index.mjs +1 -1
  142. package/dist/client/index.js +4 -4
  143. package/dist/client/index.mjs +3 -3
  144. package/dist/commerce/index.js +56 -56
  145. package/dist/commerce/index.mjs +5 -5
  146. package/dist/engage/index.js +10 -10
  147. package/dist/engage/index.mjs +7 -7
  148. package/dist/fleet/index.js +8 -8
  149. package/dist/fleet/index.mjs +4 -4
  150. package/dist/forms/ManagedForm.d.ts.map +1 -1
  151. package/dist/forms/index.js +16 -16
  152. package/dist/forms/index.mjs +9 -9
  153. package/dist/forms/server.js +10 -10
  154. package/dist/forms/server.mjs +8 -8
  155. package/dist/forms/static.js +7 -7
  156. package/dist/forms/static.mjs +6 -6
  157. package/dist/forms/tracking-session.d.ts +63 -0
  158. package/dist/forms/tracking-session.d.ts.map +1 -0
  159. package/dist/forms/tracking-session.test.d.ts +22 -0
  160. package/dist/forms/tracking-session.test.d.ts.map +1 -0
  161. package/dist/forms/useForm.d.ts +11 -0
  162. package/dist/forms/useForm.d.ts.map +1 -1
  163. package/dist/forms/useFormTracking.d.ts +6 -1
  164. package/dist/forms/useFormTracking.d.ts.map +1 -1
  165. package/dist/images/index.js +11 -11
  166. package/dist/images/index.mjs +4 -4
  167. package/dist/index.js +67 -66
  168. package/dist/index.js.map +1 -1
  169. package/dist/index.mjs +11 -10
  170. package/dist/index.mjs.map +1 -1
  171. package/dist/landing/index.d.ts +12 -0
  172. package/dist/landing/index.d.ts.map +1 -1
  173. package/dist/landing/index.js +5 -4
  174. package/dist/landing/index.mjs +2 -1
  175. package/dist/landing/server-entry.test.d.ts +2 -0
  176. package/dist/landing/server-entry.test.d.ts.map +1 -0
  177. package/dist/landing/server.d.ts +32 -0
  178. package/dist/landing/server.d.ts.map +1 -0
  179. package/dist/landing/server.js +17 -0
  180. package/dist/landing/server.js.map +1 -0
  181. package/dist/landing/server.mjs +4 -0
  182. package/dist/landing/server.mjs.map +1 -0
  183. package/dist/layout/SiteKitClientProviders.d.ts +7 -0
  184. package/dist/layout/SiteKitClientProviders.d.ts.map +1 -1
  185. package/dist/layout/SiteKitLayout.d.ts +18 -1
  186. package/dist/layout/SiteKitLayout.d.ts.map +1 -1
  187. package/dist/layout/client.d.ts +7 -0
  188. package/dist/layout/client.d.ts.map +1 -1
  189. package/dist/layout/client.js +8 -8
  190. package/dist/layout/client.mjs +7 -7
  191. package/dist/layout/index.js +11 -11
  192. package/dist/layout/index.js.map +1 -1
  193. package/dist/layout/index.mjs +9 -9
  194. package/dist/layout/index.mjs.map +1 -1
  195. package/dist/maps/index.js +5 -5
  196. package/dist/maps/index.mjs +3 -3
  197. package/dist/search/index.js +4 -4
  198. package/dist/search/index.mjs +3 -3
  199. package/dist/seo/client.js +5 -5
  200. package/dist/seo/client.mjs +4 -4
  201. package/dist/seo/index.js +5 -5
  202. package/dist/seo/index.mjs +4 -4
  203. package/dist/server/index.js +3 -3
  204. package/dist/server/index.mjs +2 -2
  205. package/dist/shared/build-entries.d.ts +7 -0
  206. package/dist/shared/build-entries.d.ts.map +1 -1
  207. package/dist/shared/version.d.ts +1 -1
  208. package/dist/signal/index.js +11 -11
  209. package/dist/signal/index.mjs +2 -2
  210. package/dist/sync/index.js +16 -16
  211. package/dist/sync/index.mjs +4 -4
  212. package/dist/types.d.ts +5 -2
  213. package/dist/types.d.ts.map +1 -1
  214. package/package.json +8 -3
  215. package/dist/AnalyticsProvider-G5P5RQOA.js +0 -31
  216. package/dist/AnalyticsProvider-NGQLQL5N.mjs +0 -10
  217. package/dist/ChatWidget-AYKZBKJH.js +0 -20
  218. package/dist/ChatWidget-LPFHRK7U.mjs +0 -11
  219. package/dist/EngageWidget-HKPAJAMR.js +0 -18
  220. package/dist/EngageWidget-KDE7BYAK.mjs +0 -9
  221. package/dist/ManagedForm-D2JT3QV3.js +0 -23
  222. package/dist/ManagedForm-RCC7NEV2.mjs +0 -14
  223. package/dist/SitemapSync-AYVBNCH4.js +0 -17
  224. package/dist/SitemapSync-HKAG3JU3.mjs +0 -8
  225. package/dist/chunk-5JFJJNWS.js.map +0 -1
  226. package/dist/chunk-7JES77WC.mjs.map +0 -1
  227. package/dist/chunk-EU2UGO25.js +0 -52
  228. package/dist/chunk-EU2UGO25.js.map +0 -1
  229. package/dist/chunk-FJ5EMPCK.mjs.map +0 -1
  230. package/dist/chunk-GJVC7KKL.mjs.map +0 -1
  231. package/dist/chunk-IBMOX3YE.mjs +0 -48
  232. package/dist/chunk-IBMOX3YE.mjs.map +0 -1
  233. package/dist/chunk-LAWESLXJ.js.map +0 -1
  234. package/dist/chunk-PKCEJWLD.mjs +0 -6
  235. package/dist/chunk-R35CW6MM.js +0 -8
  236. package/dist/chunk-SEH2K6NG.js.map +0 -1
@@ -1,20 +1,20 @@
1
1
  'use strict';
2
2
 
3
- var chunkFQ4BDJXG_js = require('../chunk-FQ4BDJXG.js');
4
- require('../chunk-WNUUVBD7.js');
3
+ var chunkUEOGMRTL_js = require('../chunk-UEOGMRTL.js');
4
+ require('../chunk-UIKGLLTU.js');
5
5
  require('../chunk-2ACKOMAL.js');
6
- require('../chunk-XRQ47XDA.js');
6
+ require('../chunk-LSW5QBW2.js');
7
7
  require('../chunk-KHPJ3CEL.js');
8
- require('../chunk-FYPA5GLS.js');
9
- require('../chunk-ZDXGB3UC.js');
10
- require('../chunk-R35CW6MM.js');
8
+ require('../chunk-XBKNPBRB.js');
9
+ require('../chunk-QQFWEHYU.js');
10
+ require('../chunk-UUBW2NJZ.js');
11
11
  require('../chunk-SNAQBZPT.js');
12
12
 
13
13
 
14
14
 
15
15
  Object.defineProperty(exports, "StaticForm", {
16
16
  enumerable: true,
17
- get: function () { return chunkFQ4BDJXG_js.StaticForm; }
17
+ get: function () { return chunkUEOGMRTL_js.StaticForm; }
18
18
  });
19
19
  //# sourceMappingURL=static.js.map
20
20
  //# sourceMappingURL=static.js.map
@@ -1,11 +1,11 @@
1
- export { StaticForm } from '../chunk-G7IMEY5T.mjs';
2
- import '../chunk-4ROQDPUE.mjs';
1
+ export { StaticForm } from '../chunk-SED7E3P5.mjs';
2
+ import '../chunk-CM5QUX2T.mjs';
3
3
  import '../chunk-LB7LHVWI.mjs';
4
- import '../chunk-ANTVZSQI.mjs';
4
+ import '../chunk-YN5WYGHK.mjs';
5
5
  import '../chunk-TMVKRQGJ.mjs';
6
- import '../chunk-UDHQNYBD.mjs';
7
- import '../chunk-7CYSA5EN.mjs';
8
- import '../chunk-PKCEJWLD.mjs';
6
+ import '../chunk-K7XOPTOE.mjs';
7
+ import '../chunk-BEHHWRZM.mjs';
8
+ import '../chunk-NPCWPOCE.mjs';
9
9
  import '../chunk-BEXTDHO4.mjs';
10
10
  //# sourceMappingURL=static.mjs.map
11
11
  //# sourceMappingURL=static.mjs.map
@@ -0,0 +1,63 @@
1
+ /**
2
+ * @sonordev/site-kit/forms - Form tracking session registry
3
+ *
4
+ * SINGLE SOURCE OF TRUTH for a form's `form_analytics` row: one
5
+ * `/analytics/start` per formId per page load, shared by every tracker
6
+ * mounted for that form. Do NOT re-fork start logic into a caller.
7
+ *
8
+ * The lesson from the double-count bug fixed in 4.2.2: `ManagedForm` called
9
+ * `useForm` (which tracks) AND rendered `FormClient` (which also tracks). Two
10
+ * independent hook instances each minted their own session uuid and POSTed
11
+ * their own start, so a single page load wrote TWO `form_analytics` rows —
12
+ * present in every release up to and including 4.2.1. That halved every reported
13
+ * start -> submission conversion rate, and because each instance registered its
14
+ * own `beforeunload` it wrote two abandonment rows per visit as well. The
15
+ * signature in the data was unmistakable: paired rows where exactly one ever
16
+ * completed (only FormClient's instance owns submit) but BOTH abandoned.
17
+ *
18
+ * Trackers SHARE the resulting analytics row id, so whichever component owns
19
+ * submission can still complete the row no matter which one opened it. That
20
+ * sharing is what makes this safe as a guard rather than a gamble on which
21
+ * instance mounts first.
22
+ */
23
+ export interface TrackingSession {
24
+ /** The uuid reported to the API as this form visit's session. */
25
+ readonly sessionId: string;
26
+ readonly startedAt: number;
27
+ /** Resolves to the analytics row id, or null when the start POST failed. */
28
+ readonly analyticsId: Promise<string | null>;
29
+ /**
30
+ * Abandonment belongs to the ROW, not to a tracker. Every mounted tracker
31
+ * registers its own `beforeunload`; only the first beacon may fire, or one
32
+ * visit reports abandonment as many times as it has trackers.
33
+ */
34
+ abandonSent: boolean;
35
+ /** @internal */
36
+ refCount: number;
37
+ /** @internal */
38
+ releaseTimer: ReturnType<typeof setTimeout> | null;
39
+ }
40
+ /**
41
+ * How long a session outlives its last unmount before a fresh start POST is
42
+ * allowed. Covers React StrictMode's dev-mode mount -> unmount -> mount and the
43
+ * FormEnhancer static -> interactive swap; both remount a form within the same
44
+ * page load and would otherwise mint a second row for one visit.
45
+ */
46
+ export declare const SESSION_GRACE_MS = 2000;
47
+ /**
48
+ * Join the tracking session for `formId`, opening one if none is live.
49
+ *
50
+ * `start` is invoked at most once per session and must resolve to the analytics
51
+ * row id (or null when the POST failed). Callers MUST pair this with
52
+ * {@link releaseTrackingSession} on unmount.
53
+ */
54
+ export declare function acquireTrackingSession(formId: string, start: (sessionId: string) => Promise<string | null>): TrackingSession;
55
+ /**
56
+ * Leave the tracking session. The last tracker out schedules teardown after
57
+ * {@link SESSION_GRACE_MS} rather than deleting immediately, so a remount
58
+ * within the same page load reuses the row instead of opening another.
59
+ */
60
+ export declare function releaseTrackingSession(formId: string, session: TrackingSession): void;
61
+ /** Test-only: drop all live sessions so cases start from a clean registry. */
62
+ export declare function __resetTrackingSessions(): void;
63
+ //# sourceMappingURL=tracking-session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracking-session.d.ts","sourceRoot":"","sources":["../../src/forms/tracking-session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAMH,MAAM,WAAW,eAAe;IAC9B,iEAAiE;IACjE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,4EAA4E;IAC5E,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAC5C;;;;OAIG;IACH,WAAW,EAAE,OAAO,CAAA;IACpB,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,gBAAgB;IAChB,YAAY,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,IAAI,CAAA;CACnD;AAED;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,OAAO,CAAA;AAIpC;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GACnD,eAAe,CAgCjB;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,IAAI,CAgBrF;AAED,8EAA8E;AAC9E,wBAAgB,uBAAuB,IAAI,IAAI,CAK9C"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Regression guard: ONE `form_analytics` row per form per page load.
3
+ *
4
+ * The bug, fixed in 4.2.2: `ManagedForm` called `useForm` (which tracks) AND
5
+ * rendered `FormClient` (which also tracks). Two `useFormTracking`
6
+ * instances each minted their own session uuid and POSTed their own
7
+ * `/analytics/start`, so a single page load wrote TWO rows — halving every
8
+ * reported start -> submission conversion rate across the fleet.
9
+ *
10
+ * It went unnoticed for months because both rows look individually plausible.
11
+ * What gave it away in the data was the asymmetry: paired rows where exactly
12
+ * one ever completed (only FormClient's instance owns submit) but BOTH
13
+ * abandoned (each instance registered its own beforeunload) — a shape a single
14
+ * tracker firing twice physically cannot produce, since it has one analytics
15
+ * row id and one listener.
16
+ *
17
+ * These tests pin the two things that keep it fixed:
18
+ * 1. Concurrent trackers collapse to one session and one start POST.
19
+ * 2. Nothing composes two trackers over one form again.
20
+ */
21
+ export {};
22
+ //# sourceMappingURL=tracking-session.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracking-session.test.d.ts","sourceRoot":"","sources":["../../src/forms/tracking-session.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG"}
@@ -43,6 +43,17 @@ export interface UseFormOptions {
43
43
  * Accepts the RAW API payload; normalized here exactly like a client fetch.
44
44
  */
45
45
  initialForm?: Record<string, unknown> | null;
46
+ /**
47
+ * Report this form's funnel to Sonor (`form_analytics`). Defaults to true —
48
+ * a headless `useForm` consumer renders and submits the form itself, so this
49
+ * hook is the only thing that can track it.
50
+ *
51
+ * `ManagedForm` passes FALSE: it delegates rendering, step navigation and
52
+ * submission to `FormClient`, which tracks that path. Exactly one component
53
+ * may own a form's tracking — two owners was the double-count bug fixed
54
+ * in 4.2.2.
55
+ */
56
+ trackAnalytics?: boolean;
46
57
  }
47
58
  export interface UseFormReturn {
48
59
  /** Form configuration (null while loading) */
@@ -1 +1 @@
1
- {"version":3,"file":"useForm.d.ts","sourceRoot":"","sources":["../../src/forms/useForm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAWH,OAAO,KAAK,EACV,iBAAiB,EACjB,SAAS,EACT,cAAc,EACf,MAAM,SAAS,CAAA;AAOhB,MAAM,WAAW,cAAc;IAC7B,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,cAAc,KAAK,IAAI,CAAA;IAChD,qCAAqC;IACrC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAChC,gCAAgC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;IAC5B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;CAC7C;AAGD,MAAM,WAAW,aAAa;IAC5B,8CAA8C;IAC9C,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAAA;IAC9B,oBAAoB;IACpB,SAAS,EAAE,OAAO,CAAA;IAClB,0BAA0B;IAC1B,UAAU,EAAE,KAAK,GAAG,IAAI,CAAA;IACxB,yEAAyE;IACzE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAE1B,sBAAsB;IACtB,SAAS,EAAE,SAAS,EAAE,CAAA;IACtB,uEAAuE;IACvE,MAAM,EAAE,SAAS,EAAE,CAAA;IACnB,yDAAyD;IACzD,aAAa,EAAE,SAAS,EAAE,CAAA;IAE1B,0BAA0B;IAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE9B,+BAA+B;IAC/B,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IACpD,wCAAwC;IACxC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IACpD,uBAAuB;IACvB,WAAW,EAAE,MAAM,IAAI,CAAA;IAEvB,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAEhB,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,OAAO,CAAA;IACvB,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAChC,SAAS,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;IAClB,UAAU,EAAE,OAAO,CAAA;IAEnB,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,OAAO,CAAA;IACvB,8BAA8B;IAC9B,aAAa,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,MAAM,GAAG,IAAI,CAAA;IAClD,sDAAsD;IACtD,cAAc,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAA;IAE7C,sBAAsB;IACtB,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3B,uBAAuB;IACvB,YAAY,EAAE,OAAO,CAAA;IACrB,UAAU,EAAE,OAAO,CAAA;IACnB,kCAAkC;IAClC,KAAK,EAAE,MAAM,IAAI,CAAA;CAClB;AAMD,wBAAgB,OAAO,CACrB,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,cAAmB,GAC3B,aAAa,CA2af"}
1
+ {"version":3,"file":"useForm.d.ts","sourceRoot":"","sources":["../../src/forms/useForm.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,12 @@
1
1
  /**
2
2
  * @sonordev/site-kit/forms - Form Tracking Hook
3
3
  *
4
- * Tracks form analytics including step progress and abandonment
4
+ * Tracks form analytics including step progress and abandonment.
5
+ *
6
+ * The `form_analytics` row is owned by the shared session registry, not by this
7
+ * hook — see `tracking-session.ts`. Every tracker mounted for the same form
8
+ * joins ONE session and shares its analytics row id, so composing two trackers
9
+ * over a single form (as ManagedForm once did) can no longer double-count.
5
10
  */
6
11
  interface UseFormTrackingOptions {
7
12
  formId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"useFormTracking.d.ts","sourceRoot":"","sources":["../../src/forms/useFormTracking.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,UAAU,sBAAsB;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,UAAU,kBAAkB;IAC1B,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,aAAa,EAAE,MAAM,IAAI,CAAA;IACzB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,UAAU,EACV,OAAc,EACd,KAAa,GACd,EAAE,sBAAsB,GAAG,kBAAkB,CA+M7C"}
1
+ {"version":3,"file":"useFormTracking.d.ts","sourceRoot":"","sources":["../../src/forms/useFormTracking.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAYH,UAAU,sBAAsB;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,UAAU,kBAAkB;IAC1B,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,aAAa,EAAE,MAAM,IAAI,CAAA;IACzB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,UAAU,EACV,OAAc,EACd,KAAa,GACd,EAAE,sBAAsB,GAAG,kBAAkB,CAuP7C"}
@@ -1,41 +1,41 @@
1
1
  'use strict';
2
2
 
3
- var chunkLRHECSZK_js = require('../chunk-LRHECSZK.js');
3
+ var chunkHYRKVST7_js = require('../chunk-HYRKVST7.js');
4
4
  var chunkGCPPXUAI_js = require('../chunk-GCPPXUAI.js');
5
- require('../chunk-FYPA5GLS.js');
6
- require('../chunk-ZDXGB3UC.js');
7
- require('../chunk-R35CW6MM.js');
5
+ require('../chunk-XBKNPBRB.js');
6
+ require('../chunk-QQFWEHYU.js');
7
+ require('../chunk-UUBW2NJZ.js');
8
8
  require('../chunk-SNAQBZPT.js');
9
9
 
10
10
 
11
11
 
12
12
  Object.defineProperty(exports, "ManagedImage", {
13
13
  enumerable: true,
14
- get: function () { return chunkLRHECSZK_js.ManagedImage; }
14
+ get: function () { return chunkHYRKVST7_js.ManagedImage; }
15
15
  });
16
16
  Object.defineProperty(exports, "assignImageToSlot", {
17
17
  enumerable: true,
18
- get: function () { return chunkLRHECSZK_js.assignImageToSlot; }
18
+ get: function () { return chunkHYRKVST7_js.assignImageToSlot; }
19
19
  });
20
20
  Object.defineProperty(exports, "clearImageSlot", {
21
21
  enumerable: true,
22
- get: function () { return chunkLRHECSZK_js.clearImageSlot; }
22
+ get: function () { return chunkHYRKVST7_js.clearImageSlot; }
23
23
  });
24
24
  Object.defineProperty(exports, "fetchManagedImage", {
25
25
  enumerable: true,
26
- get: function () { return chunkLRHECSZK_js.fetchManagedImage; }
26
+ get: function () { return chunkHYRKVST7_js.fetchManagedImage; }
27
27
  });
28
28
  Object.defineProperty(exports, "fetchManagedImages", {
29
29
  enumerable: true,
30
- get: function () { return chunkLRHECSZK_js.fetchManagedImages; }
30
+ get: function () { return chunkHYRKVST7_js.fetchManagedImages; }
31
31
  });
32
32
  Object.defineProperty(exports, "listImageFiles", {
33
33
  enumerable: true,
34
- get: function () { return chunkLRHECSZK_js.listImageFiles; }
34
+ get: function () { return chunkHYRKVST7_js.listImageFiles; }
35
35
  });
36
36
  Object.defineProperty(exports, "uploadImage", {
37
37
  enumerable: true,
38
- get: function () { return chunkLRHECSZK_js.uploadImage; }
38
+ get: function () { return chunkHYRKVST7_js.uploadImage; }
39
39
  });
40
40
  Object.defineProperty(exports, "ManagedFavicon", {
41
41
  enumerable: true,
@@ -1,8 +1,8 @@
1
- export { ManagedImage, assignImageToSlot, clearImageSlot, fetchManagedImage, fetchManagedImages, listImageFiles, uploadImage } from '../chunk-DBZU2TRZ.mjs';
1
+ export { ManagedImage, assignImageToSlot, clearImageSlot, fetchManagedImage, fetchManagedImages, listImageFiles, uploadImage } from '../chunk-WNK2OK5G.mjs';
2
2
  export { ManagedFavicon, getManagedFaviconUrl } from '../chunk-CU6OGBKK.mjs';
3
- import '../chunk-UDHQNYBD.mjs';
4
- import '../chunk-7CYSA5EN.mjs';
5
- import '../chunk-PKCEJWLD.mjs';
3
+ import '../chunk-K7XOPTOE.mjs';
4
+ import '../chunk-BEHHWRZM.mjs';
5
+ import '../chunk-NPCWPOCE.mjs';
6
6
  import '../chunk-BEXTDHO4.mjs';
7
7
  //# sourceMappingURL=index.mjs.map
8
8
  //# sourceMappingURL=index.mjs.map
package/dist/index.js CHANGED
@@ -1,24 +1,25 @@
1
1
  'use strict';
2
2
 
3
- var chunkEU2UGO25_js = require('./chunk-EU2UGO25.js');
3
+ var chunkJA77WXRE_js = require('./chunk-JA77WXRE.js');
4
+ var chunkCIM5W3UO_js = require('./chunk-CIM5W3UO.js');
4
5
  var chunkGC3BC6HQ_js = require('./chunk-GC3BC6HQ.js');
5
- var chunkLRHECSZK_js = require('./chunk-LRHECSZK.js');
6
+ var chunkHYRKVST7_js = require('./chunk-HYRKVST7.js');
6
7
  require('./chunk-GCPPXUAI.js');
7
8
  var chunkEHJANA5C_js = require('./chunk-EHJANA5C.js');
8
9
  var chunkGSRT66PA_js = require('./chunk-GSRT66PA.js');
9
- var chunk2IH5FM2A_js = require('./chunk-2IH5FM2A.js');
10
- var chunkVOYLJCHB_js = require('./chunk-VOYLJCHB.js');
10
+ var chunk7YVFFQWH_js = require('./chunk-7YVFFQWH.js');
11
+ var chunkF46DCSUI_js = require('./chunk-F46DCSUI.js');
11
12
  require('./chunk-JP5WGL75.js');
12
- var chunkDAGLPS6P_js = require('./chunk-DAGLPS6P.js');
13
- var chunkO554YMPI_js = require('./chunk-O554YMPI.js');
13
+ var chunkXMZQUC2J_js = require('./chunk-XMZQUC2J.js');
14
+ var chunkPLY5AP72_js = require('./chunk-PLY5AP72.js');
14
15
  require('./chunk-EDZWNCSE.js');
15
- require('./chunk-3GJBSUVS.js');
16
+ require('./chunk-BUZSBUYJ.js');
16
17
  require('./chunk-HMFFAUCD.js');
17
18
  require('./chunk-RC4WWQXR.js');
18
19
  require('./chunk-VJMPIRSD.js');
19
- var chunkFYPA5GLS_js = require('./chunk-FYPA5GLS.js');
20
- require('./chunk-ZDXGB3UC.js');
21
- require('./chunk-R35CW6MM.js');
20
+ var chunkXBKNPBRB_js = require('./chunk-XBKNPBRB.js');
21
+ require('./chunk-QQFWEHYU.js');
22
+ require('./chunk-UUBW2NJZ.js');
22
23
  require('./chunk-SNAQBZPT.js');
23
24
  var react = require('react');
24
25
  var jsxRuntime = require('react/jsx-runtime');
@@ -36,7 +37,7 @@ async function apiGet(endpoint) {
36
37
  return null;
37
38
  }
38
39
  try {
39
- const response = await chunkFYPA5GLS_js.sonorFetch(
40
+ const response = await chunkXBKNPBRB_js.sonorFetch(
40
41
  `${apiUrl}${endpoint}`,
41
42
  { method: "GET" },
42
43
  { apiKey, retries: 0 }
@@ -165,11 +166,11 @@ function AffiliatesWidget({
165
166
 
166
167
  Object.defineProperty(exports, "LandingPage", {
167
168
  enumerable: true,
168
- get: function () { return chunkEU2UGO25_js.LandingPage; }
169
+ get: function () { return chunkJA77WXRE_js.LandingPage; }
169
170
  });
170
171
  Object.defineProperty(exports, "landingPageMetadata", {
171
172
  enumerable: true,
172
- get: function () { return chunkEU2UGO25_js.landingPageMetadata; }
173
+ get: function () { return chunkCIM5W3UO_js.landingPageMetadata; }
173
174
  });
174
175
  Object.defineProperty(exports, "clearRedirectCache", {
175
176
  enumerable: true,
@@ -189,31 +190,31 @@ Object.defineProperty(exports, "handleManagedRedirects", {
189
190
  });
190
191
  Object.defineProperty(exports, "ManagedImage", {
191
192
  enumerable: true,
192
- get: function () { return chunkLRHECSZK_js.ManagedImage; }
193
+ get: function () { return chunkHYRKVST7_js.ManagedImage; }
193
194
  });
194
195
  Object.defineProperty(exports, "assignImageToSlot", {
195
196
  enumerable: true,
196
- get: function () { return chunkLRHECSZK_js.assignImageToSlot; }
197
+ get: function () { return chunkHYRKVST7_js.assignImageToSlot; }
197
198
  });
198
199
  Object.defineProperty(exports, "clearImageSlot", {
199
200
  enumerable: true,
200
- get: function () { return chunkLRHECSZK_js.clearImageSlot; }
201
+ get: function () { return chunkHYRKVST7_js.clearImageSlot; }
201
202
  });
202
203
  Object.defineProperty(exports, "fetchManagedImage", {
203
204
  enumerable: true,
204
- get: function () { return chunkLRHECSZK_js.fetchManagedImage; }
205
+ get: function () { return chunkHYRKVST7_js.fetchManagedImage; }
205
206
  });
206
207
  Object.defineProperty(exports, "fetchManagedImages", {
207
208
  enumerable: true,
208
- get: function () { return chunkLRHECSZK_js.fetchManagedImages; }
209
+ get: function () { return chunkHYRKVST7_js.fetchManagedImages; }
209
210
  });
210
211
  Object.defineProperty(exports, "listImageFiles", {
211
212
  enumerable: true,
212
- get: function () { return chunkLRHECSZK_js.listImageFiles; }
213
+ get: function () { return chunkHYRKVST7_js.listImageFiles; }
213
214
  });
214
215
  Object.defineProperty(exports, "uploadImage", {
215
216
  enumerable: true,
216
- get: function () { return chunkLRHECSZK_js.uploadImage; }
217
+ get: function () { return chunkHYRKVST7_js.uploadImage; }
217
218
  });
218
219
  Object.defineProperty(exports, "TestimonialSection", {
219
220
  enumerable: true,
@@ -229,187 +230,187 @@ Object.defineProperty(exports, "fetchReviews", {
229
230
  });
230
231
  Object.defineProperty(exports, "CalendarView", {
231
232
  enumerable: true,
232
- get: function () { return chunk2IH5FM2A_js.CalendarView; }
233
+ get: function () { return chunk7YVFFQWH_js.CalendarView; }
233
234
  });
234
235
  Object.defineProperty(exports, "CheckoutForm", {
235
236
  enumerable: true,
236
- get: function () { return chunk2IH5FM2A_js.CheckoutForm; }
237
+ get: function () { return chunk7YVFFQWH_js.CheckoutForm; }
237
238
  });
238
239
  Object.defineProperty(exports, "EventCalendar", {
239
240
  enumerable: true,
240
- get: function () { return chunk2IH5FM2A_js.EventCalendar; }
241
+ get: function () { return chunk7YVFFQWH_js.EventCalendar; }
241
242
  });
242
243
  Object.defineProperty(exports, "EventCheckout", {
243
244
  enumerable: true,
244
- get: function () { return chunk2IH5FM2A_js.EventCheckout; }
245
+ get: function () { return chunk7YVFFQWH_js.EventCheckout; }
245
246
  });
246
247
  Object.defineProperty(exports, "EventEmbed", {
247
248
  enumerable: true,
248
- get: function () { return chunk2IH5FM2A_js.EventEmbed; }
249
+ get: function () { return chunk7YVFFQWH_js.EventEmbed; }
249
250
  });
250
251
  Object.defineProperty(exports, "EventModal", {
251
252
  enumerable: true,
252
- get: function () { return chunk2IH5FM2A_js.EventModal; }
253
+ get: function () { return chunk7YVFFQWH_js.EventModal; }
253
254
  });
254
255
  Object.defineProperty(exports, "EventTile", {
255
256
  enumerable: true,
256
- get: function () { return chunk2IH5FM2A_js.EventTile; }
257
+ get: function () { return chunk7YVFFQWH_js.EventTile; }
257
258
  });
258
259
  Object.defineProperty(exports, "OfferingCard", {
259
260
  enumerable: true,
260
- get: function () { return chunk2IH5FM2A_js.OfferingCard; }
261
+ get: function () { return chunk7YVFFQWH_js.OfferingCard; }
261
262
  });
262
263
  Object.defineProperty(exports, "OfferingList", {
263
264
  enumerable: true,
264
- get: function () { return chunk2IH5FM2A_js.OfferingList; }
265
+ get: function () { return chunk7YVFFQWH_js.OfferingList; }
265
266
  });
266
267
  Object.defineProperty(exports, "ProductEmbed", {
267
268
  enumerable: true,
268
- get: function () { return chunk2IH5FM2A_js.ProductEmbed; }
269
+ get: function () { return chunk7YVFFQWH_js.ProductEmbed; }
269
270
  });
270
271
  Object.defineProperty(exports, "RegistrationForm", {
271
272
  enumerable: true,
272
- get: function () { return chunk2IH5FM2A_js.RegistrationForm; }
273
+ get: function () { return chunk7YVFFQWH_js.RegistrationForm; }
273
274
  });
274
275
  Object.defineProperty(exports, "UpcomingEvents", {
275
276
  enumerable: true,
276
- get: function () { return chunk2IH5FM2A_js.UpcomingEvents; }
277
+ get: function () { return chunk7YVFFQWH_js.UpcomingEvents; }
277
278
  });
278
279
  Object.defineProperty(exports, "createCheckoutSession", {
279
280
  enumerable: true,
280
- get: function () { return chunk2IH5FM2A_js.createCheckoutSession; }
281
+ get: function () { return chunk7YVFFQWH_js.createCheckoutSession; }
281
282
  });
282
283
  Object.defineProperty(exports, "fetchNextEvent", {
283
284
  enumerable: true,
284
- get: function () { return chunk2IH5FM2A_js.fetchNextEvent; }
285
+ get: function () { return chunk7YVFFQWH_js.fetchNextEvent; }
285
286
  });
286
287
  Object.defineProperty(exports, "fetchOffering", {
287
288
  enumerable: true,
288
- get: function () { return chunk2IH5FM2A_js.fetchOffering; }
289
+ get: function () { return chunk7YVFFQWH_js.fetchOffering; }
289
290
  });
290
291
  Object.defineProperty(exports, "fetchOfferings", {
291
292
  enumerable: true,
292
- get: function () { return chunk2IH5FM2A_js.fetchOfferings; }
293
+ get: function () { return chunk7YVFFQWH_js.fetchOfferings; }
293
294
  });
294
295
  Object.defineProperty(exports, "fetchProducts", {
295
296
  enumerable: true,
296
- get: function () { return chunk2IH5FM2A_js.fetchProducts; }
297
+ get: function () { return chunk7YVFFQWH_js.fetchProducts; }
297
298
  });
298
299
  Object.defineProperty(exports, "fetchServices", {
299
300
  enumerable: true,
300
- get: function () { return chunk2IH5FM2A_js.fetchServices; }
301
+ get: function () { return chunk7YVFFQWH_js.fetchServices; }
301
302
  });
302
303
  Object.defineProperty(exports, "fetchUpcomingEvents", {
303
304
  enumerable: true,
304
- get: function () { return chunk2IH5FM2A_js.fetchUpcomingEvents; }
305
+ get: function () { return chunk7YVFFQWH_js.fetchUpcomingEvents; }
305
306
  });
306
307
  Object.defineProperty(exports, "formatDate", {
307
308
  enumerable: true,
308
- get: function () { return chunk2IH5FM2A_js.formatDate; }
309
+ get: function () { return chunk7YVFFQWH_js.formatDate; }
309
310
  });
310
311
  Object.defineProperty(exports, "formatDateTime", {
311
312
  enumerable: true,
312
- get: function () { return chunk2IH5FM2A_js.formatDateTime; }
313
+ get: function () { return chunk7YVFFQWH_js.formatDateTime; }
313
314
  });
314
315
  Object.defineProperty(exports, "formatPrice", {
315
316
  enumerable: true,
316
- get: function () { return chunk2IH5FM2A_js.formatPrice; }
317
+ get: function () { return chunk7YVFFQWH_js.formatPrice; }
317
318
  });
318
319
  Object.defineProperty(exports, "getOfferingUrl", {
319
320
  enumerable: true,
320
- get: function () { return chunk2IH5FM2A_js.getOfferingUrl; }
321
+ get: function () { return chunk7YVFFQWH_js.getOfferingUrl; }
321
322
  });
322
323
  Object.defineProperty(exports, "registerForEvent", {
323
324
  enumerable: true,
324
- get: function () { return chunk2IH5FM2A_js.registerForEvent; }
325
+ get: function () { return chunk7YVFFQWH_js.registerForEvent; }
325
326
  });
326
327
  Object.defineProperty(exports, "useEventModal", {
327
328
  enumerable: true,
328
- get: function () { return chunk2IH5FM2A_js.useEventModal; }
329
+ get: function () { return chunk7YVFFQWH_js.useEventModal; }
329
330
  });
330
331
  Object.defineProperty(exports, "BookingWidget", {
331
332
  enumerable: true,
332
- get: function () { return chunkVOYLJCHB_js.BookingWidget; }
333
+ get: function () { return chunkF46DCSUI_js.BookingWidget; }
333
334
  });
334
335
  Object.defineProperty(exports, "createBooking", {
335
336
  enumerable: true,
336
- get: function () { return chunkVOYLJCHB_js.createBooking; }
337
+ get: function () { return chunkF46DCSUI_js.createBooking; }
337
338
  });
338
339
  Object.defineProperty(exports, "createSlotHold", {
339
340
  enumerable: true,
340
- get: function () { return chunkVOYLJCHB_js.createSlotHold; }
341
+ get: function () { return chunkF46DCSUI_js.createSlotHold; }
341
342
  });
342
343
  Object.defineProperty(exports, "detectTimezone", {
343
344
  enumerable: true,
344
- get: function () { return chunkVOYLJCHB_js.detectTimezone; }
345
+ get: function () { return chunkF46DCSUI_js.detectTimezone; }
345
346
  });
346
347
  Object.defineProperty(exports, "fetchAvailability", {
347
348
  enumerable: true,
348
- get: function () { return chunkVOYLJCHB_js.fetchAvailability; }
349
+ get: function () { return chunkF46DCSUI_js.fetchAvailability; }
349
350
  });
350
351
  Object.defineProperty(exports, "fetchAvailableDates", {
351
352
  enumerable: true,
352
- get: function () { return chunkVOYLJCHB_js.fetchAvailableDates; }
353
+ get: function () { return chunkF46DCSUI_js.fetchAvailableDates; }
353
354
  });
354
355
  Object.defineProperty(exports, "fetchBookingTypeDetails", {
355
356
  enumerable: true,
356
- get: function () { return chunkVOYLJCHB_js.fetchBookingTypeDetails; }
357
+ get: function () { return chunkF46DCSUI_js.fetchBookingTypeDetails; }
357
358
  });
358
359
  Object.defineProperty(exports, "fetchBookingTypes", {
359
360
  enumerable: true,
360
- get: function () { return chunkVOYLJCHB_js.fetchBookingTypes; }
361
+ get: function () { return chunkF46DCSUI_js.fetchBookingTypes; }
361
362
  });
362
363
  Object.defineProperty(exports, "formatBookingDate", {
363
364
  enumerable: true,
364
- get: function () { return chunkVOYLJCHB_js.formatDate; }
365
+ get: function () { return chunkF46DCSUI_js.formatDate; }
365
366
  });
366
367
  Object.defineProperty(exports, "formatBookingTime", {
367
368
  enumerable: true,
368
- get: function () { return chunkVOYLJCHB_js.formatTime; }
369
+ get: function () { return chunkF46DCSUI_js.formatTime; }
369
370
  });
370
371
  Object.defineProperty(exports, "formatDuration", {
371
372
  enumerable: true,
372
- get: function () { return chunkVOYLJCHB_js.formatDuration; }
373
+ get: function () { return chunkF46DCSUI_js.formatDuration; }
373
374
  });
374
375
  Object.defineProperty(exports, "releaseSlotHold", {
375
376
  enumerable: true,
376
- get: function () { return chunkVOYLJCHB_js.releaseSlotHold; }
377
+ get: function () { return chunkF46DCSUI_js.releaseSlotHold; }
377
378
  });
378
379
  Object.defineProperty(exports, "ExperimentConversion", {
379
380
  enumerable: true,
380
- get: function () { return chunkDAGLPS6P_js.ExperimentConversion; }
381
+ get: function () { return chunkXMZQUC2J_js.ExperimentConversion; }
381
382
  });
382
383
  Object.defineProperty(exports, "SignalExperiment", {
383
384
  enumerable: true,
384
- get: function () { return chunkDAGLPS6P_js.SignalExperiment; }
385
+ get: function () { return chunkXMZQUC2J_js.SignalExperiment; }
385
386
  });
386
387
  Object.defineProperty(exports, "useExperimentVariant", {
387
388
  enumerable: true,
388
- get: function () { return chunkDAGLPS6P_js.useExperimentVariant; }
389
+ get: function () { return chunkXMZQUC2J_js.useExperimentVariant; }
389
390
  });
390
391
  Object.defineProperty(exports, "SignalBridge", {
391
392
  enumerable: true,
392
- get: function () { return chunkO554YMPI_js.SignalBridge; }
393
+ get: function () { return chunkPLY5AP72_js.SignalBridge; }
393
394
  });
394
395
  Object.defineProperty(exports, "useSignal", {
395
396
  enumerable: true,
396
- get: function () { return chunkO554YMPI_js.useSignal; }
397
+ get: function () { return chunkPLY5AP72_js.useSignal; }
397
398
  });
398
399
  Object.defineProperty(exports, "useSignalConfig", {
399
400
  enumerable: true,
400
- get: function () { return chunkO554YMPI_js.useSignalConfig; }
401
+ get: function () { return chunkPLY5AP72_js.useSignalConfig; }
401
402
  });
402
403
  Object.defineProperty(exports, "useSignalEvent", {
403
404
  enumerable: true,
404
- get: function () { return chunkO554YMPI_js.useSignalEvent; }
405
+ get: function () { return chunkPLY5AP72_js.useSignalEvent; }
405
406
  });
406
407
  Object.defineProperty(exports, "useSignalExperiment", {
407
408
  enumerable: true,
408
- get: function () { return chunkO554YMPI_js.useSignalExperiment; }
409
+ get: function () { return chunkPLY5AP72_js.useSignalExperiment; }
409
410
  });
410
411
  Object.defineProperty(exports, "useSignalOutcome", {
411
412
  enumerable: true,
412
- get: function () { return chunkO554YMPI_js.useSignalOutcome; }
413
+ get: function () { return chunkPLY5AP72_js.useSignalOutcome; }
413
414
  });
414
415
  exports.AffiliateCard = AffiliateCard;
415
416
  exports.AffiliatesWidget = AffiliatesWidget;