@sonordev/site-kit 3.8.0 → 3.8.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 (143) hide show
  1. package/agent-manifest.json +1 -1
  2. package/dist/AnalyticsProvider-BEYTYANB.js +31 -0
  3. package/dist/{AnalyticsProvider-4KMGMQVD.js.map → AnalyticsProvider-BEYTYANB.js.map} +1 -1
  4. package/dist/AnalyticsProvider-W6JTVA53.mjs +10 -0
  5. package/dist/{AnalyticsProvider-M4BFCRKM.mjs.map → AnalyticsProvider-W6JTVA53.mjs.map} +1 -1
  6. package/dist/ChatWidget-4LIVFU4D.mjs +10 -0
  7. package/dist/{ChatWidget-IV3LIMLK.mjs.map → ChatWidget-4LIVFU4D.mjs.map} +1 -1
  8. package/dist/ChatWidget-ROSD5Z5L.js +19 -0
  9. package/dist/{ChatWidget-I6YFEKW6.js.map → ChatWidget-ROSD5Z5L.js.map} +1 -1
  10. package/dist/EngageWidget-R4AVDCHH.mjs +9 -0
  11. package/dist/{EngageWidget-AWVB35ZM.mjs.map → EngageWidget-R4AVDCHH.mjs.map} +1 -1
  12. package/dist/EngageWidget-XDNGD27U.js +18 -0
  13. package/dist/{EngageWidget-TQW76BUU.js.map → EngageWidget-XDNGD27U.js.map} +1 -1
  14. package/dist/{SignalCore-VX7ZL5HE.js → SignalCore-6FLPIZZO.js} +11 -11
  15. package/dist/{SignalCore-VX7ZL5HE.js.map → SignalCore-6FLPIZZO.js.map} +1 -1
  16. package/dist/{SignalCore-4FUGFP5E.mjs → SignalCore-RHZENHAU.mjs} +5 -5
  17. package/dist/{SignalCore-4FUGFP5E.mjs.map → SignalCore-RHZENHAU.mjs.map} +1 -1
  18. package/dist/SitemapSync-XQ7ELE4L.mjs +8 -0
  19. package/dist/{SitemapSync-CXDEUYM2.mjs.map → SitemapSync-XQ7ELE4L.mjs.map} +1 -1
  20. package/dist/SitemapSync-XUUY4L4A.js +17 -0
  21. package/dist/{SitemapSync-XRH577AB.js.map → SitemapSync-XUUY4L4A.js.map} +1 -1
  22. package/dist/analytics/index.js +12 -12
  23. package/dist/analytics/index.mjs +5 -5
  24. package/dist/{chunk-WYRUQCL4.mjs → chunk-26JXNW7B.mjs} +7 -8
  25. package/dist/chunk-26JXNW7B.mjs.map +1 -0
  26. package/dist/{chunk-OLQBP2JQ.mjs → chunk-2SX6S6TZ.mjs} +4 -4
  27. package/dist/{chunk-OLQBP2JQ.mjs.map → chunk-2SX6S6TZ.mjs.map} +1 -1
  28. package/dist/{chunk-TKP3YFNS.mjs → chunk-2ZWDYZNB.mjs} +3 -3
  29. package/dist/{chunk-TKP3YFNS.mjs.map → chunk-2ZWDYZNB.mjs.map} +1 -1
  30. package/dist/chunk-33T23Y3P.mjs +6 -0
  31. package/dist/{chunk-JVT6CUNN.mjs.map → chunk-33T23Y3P.mjs.map} +1 -1
  32. package/dist/{chunk-HQJS7VWB.mjs → chunk-34BYGGJS.mjs} +3 -3
  33. package/dist/{chunk-HQJS7VWB.mjs.map → chunk-34BYGGJS.mjs.map} +1 -1
  34. package/dist/{chunk-DGFHYNQY.mjs → chunk-5WG4XXRD.mjs} +3 -3
  35. package/dist/{chunk-DGFHYNQY.mjs.map → chunk-5WG4XXRD.mjs.map} +1 -1
  36. package/dist/{chunk-PEFC5T7R.mjs → chunk-6CY3BBB2.mjs} +8 -8
  37. package/dist/{chunk-PEFC5T7R.mjs.map → chunk-6CY3BBB2.mjs.map} +1 -1
  38. package/dist/{chunk-I5KJ5YFU.js → chunk-7KLVWEMF.js} +15 -15
  39. package/dist/{chunk-I5KJ5YFU.js.map → chunk-7KLVWEMF.js.map} +1 -1
  40. package/dist/{chunk-ATOUXWFR.js → chunk-ABYRTWUF.js} +15 -15
  41. package/dist/{chunk-ATOUXWFR.js.map → chunk-ABYRTWUF.js.map} +1 -1
  42. package/dist/{chunk-7UKIAZ6E.mjs → chunk-BMK77XFD.mjs} +4 -4
  43. package/dist/{chunk-7UKIAZ6E.mjs.map → chunk-BMK77XFD.mjs.map} +1 -1
  44. package/dist/{chunk-V6CWHT6B.js → chunk-BUT5Z3FM.js} +9 -9
  45. package/dist/{chunk-V6CWHT6B.js.map → chunk-BUT5Z3FM.js.map} +1 -1
  46. package/dist/{chunk-5GJ6V7FI.js → chunk-CTTAVGRL.js} +7 -7
  47. package/dist/{chunk-5GJ6V7FI.js.map → chunk-CTTAVGRL.js.map} +1 -1
  48. package/dist/{chunk-GSOLN2FC.js → chunk-DMCWF7GG.js} +5 -5
  49. package/dist/{chunk-GSOLN2FC.js.map → chunk-DMCWF7GG.js.map} +1 -1
  50. package/dist/{chunk-2WMLHR72.js → chunk-EDZWNCSE.js} +7 -8
  51. package/dist/chunk-EDZWNCSE.js.map +1 -0
  52. package/dist/{chunk-BVOUZL2S.mjs → chunk-FPMOKZ2N.mjs} +3 -3
  53. package/dist/{chunk-BVOUZL2S.mjs.map → chunk-FPMOKZ2N.mjs.map} +1 -1
  54. package/dist/{chunk-W5ZYM276.mjs → chunk-GDSOVYEU.mjs} +3 -3
  55. package/dist/{chunk-W5ZYM276.mjs.map → chunk-GDSOVYEU.mjs.map} +1 -1
  56. package/dist/{chunk-ULY2QZWA.js → chunk-H4JLKBTD.js} +4 -4
  57. package/dist/{chunk-ULY2QZWA.js.map → chunk-H4JLKBTD.js.map} +1 -1
  58. package/dist/{chunk-BB2C5JUA.js → chunk-IEHG564X.js} +4 -4
  59. package/dist/{chunk-BB2C5JUA.js.map → chunk-IEHG564X.js.map} +1 -1
  60. package/dist/{chunk-2LQGFCEA.mjs → chunk-ISUPJK7S.mjs} +3 -3
  61. package/dist/{chunk-2LQGFCEA.mjs.map → chunk-ISUPJK7S.mjs.map} +1 -1
  62. package/dist/{chunk-HQB24QUN.mjs → chunk-KIAAUJ6I.mjs} +4 -4
  63. package/dist/{chunk-HQB24QUN.mjs.map → chunk-KIAAUJ6I.mjs.map} +1 -1
  64. package/dist/{chunk-GH5RO5OW.mjs → chunk-M2PYWLBA.mjs} +3 -3
  65. package/dist/{chunk-GH5RO5OW.mjs.map → chunk-M2PYWLBA.mjs.map} +1 -1
  66. package/dist/{chunk-XDQP4JQH.js → chunk-MCFPGQBC.js} +14 -14
  67. package/dist/{chunk-XDQP4JQH.js.map → chunk-MCFPGQBC.js.map} +1 -1
  68. package/dist/{chunk-NEV2OEBF.js → chunk-NZUUXRH5.js} +9 -9
  69. package/dist/{chunk-NEV2OEBF.js.map → chunk-NZUUXRH5.js.map} +1 -1
  70. package/dist/{chunk-D4V37TBD.js → chunk-Q7J5SLDT.js} +5 -5
  71. package/dist/{chunk-D4V37TBD.js.map → chunk-Q7J5SLDT.js.map} +1 -1
  72. package/dist/{chunk-TA6CENL3.js → chunk-QZEX3CVO.js} +12 -12
  73. package/dist/{chunk-TA6CENL3.js.map → chunk-QZEX3CVO.js.map} +1 -1
  74. package/dist/chunk-R2QOW7JI.js +8 -0
  75. package/dist/{chunk-JXT2WWXW.js.map → chunk-R2QOW7JI.js.map} +1 -1
  76. package/dist/{chunk-S3J7MEOD.js → chunk-R4NE6L4D.js} +8 -8
  77. package/dist/{chunk-S3J7MEOD.js.map → chunk-R4NE6L4D.js.map} +1 -1
  78. package/dist/{chunk-Y4V5TFHP.mjs → chunk-SQCF55IF.mjs} +4 -4
  79. package/dist/{chunk-Y4V5TFHP.mjs.map → chunk-SQCF55IF.mjs.map} +1 -1
  80. package/dist/{chunk-MRVO3QO3.js → chunk-TWJSRQT5.js} +14 -14
  81. package/dist/{chunk-MRVO3QO3.js.map → chunk-TWJSRQT5.js.map} +1 -1
  82. package/dist/{chunk-R26NFTOR.mjs → chunk-U37WZT33.mjs} +3 -3
  83. package/dist/{chunk-R26NFTOR.mjs.map → chunk-U37WZT33.mjs.map} +1 -1
  84. package/dist/{chunk-YUSX3NZA.mjs → chunk-UNQOPKDM.mjs} +3 -3
  85. package/dist/{chunk-YUSX3NZA.mjs.map → chunk-UNQOPKDM.mjs.map} +1 -1
  86. package/dist/{chunk-RSFSXEV2.mjs → chunk-VANWF4DM.mjs} +4 -4
  87. package/dist/{chunk-RSFSXEV2.mjs.map → chunk-VANWF4DM.mjs.map} +1 -1
  88. package/dist/{chunk-A2FHTQGB.js → chunk-VR324SQ3.js} +3 -3
  89. package/dist/{chunk-A2FHTQGB.js.map → chunk-VR324SQ3.js.map} +1 -1
  90. package/dist/{chunk-Q6KS7FMY.js → chunk-WMZ2EYJ2.js} +13 -13
  91. package/dist/{chunk-Q6KS7FMY.js.map → chunk-WMZ2EYJ2.js.map} +1 -1
  92. package/dist/{chunk-JXN6OCFB.mjs → chunk-X6XWIAH3.mjs} +3 -3
  93. package/dist/{chunk-JXN6OCFB.mjs.map → chunk-X6XWIAH3.mjs.map} +1 -1
  94. package/dist/{chunk-MP6NHVHD.js → chunk-XTWGBNFE.js} +6 -6
  95. package/dist/{chunk-MP6NHVHD.js.map → chunk-XTWGBNFE.js.map} +1 -1
  96. package/dist/cli/index.js +2 -2
  97. package/dist/cli/index.mjs +1 -1
  98. package/dist/client/index.js +4 -4
  99. package/dist/client/index.mjs +3 -3
  100. package/dist/commerce/index.js +51 -51
  101. package/dist/commerce/index.mjs +6 -6
  102. package/dist/engage/index.js +9 -9
  103. package/dist/engage/index.mjs +6 -6
  104. package/dist/fleet/index.js +8 -8
  105. package/dist/fleet/index.mjs +4 -4
  106. package/dist/forms/index.js +97 -50
  107. package/dist/forms/index.js.map +1 -1
  108. package/dist/forms/index.mjs +89 -42
  109. package/dist/forms/index.mjs.map +1 -1
  110. package/dist/forms/styles.css +107 -2
  111. package/dist/images/index.js +11 -11
  112. package/dist/images/index.mjs +4 -4
  113. package/dist/index.js +64 -64
  114. package/dist/index.mjs +10 -10
  115. package/dist/layout/client.js +8 -8
  116. package/dist/layout/client.mjs +7 -7
  117. package/dist/layout/index.js +10 -10
  118. package/dist/layout/index.mjs +8 -8
  119. package/dist/maps/index.js +5 -5
  120. package/dist/maps/index.mjs +3 -3
  121. package/dist/seo/client.js +5 -5
  122. package/dist/seo/client.mjs +4 -4
  123. package/dist/seo/index.js +5 -5
  124. package/dist/seo/index.mjs +4 -4
  125. package/dist/server/index.js +3 -3
  126. package/dist/server/index.mjs +2 -2
  127. package/dist/signal/index.js +11 -11
  128. package/dist/signal/index.mjs +2 -2
  129. package/dist/sync/index.js +16 -16
  130. package/dist/sync/index.mjs +4 -4
  131. package/package.json +1 -1
  132. package/dist/AnalyticsProvider-4KMGMQVD.js +0 -31
  133. package/dist/AnalyticsProvider-M4BFCRKM.mjs +0 -10
  134. package/dist/ChatWidget-I6YFEKW6.js +0 -19
  135. package/dist/ChatWidget-IV3LIMLK.mjs +0 -10
  136. package/dist/EngageWidget-AWVB35ZM.mjs +0 -9
  137. package/dist/EngageWidget-TQW76BUU.js +0 -18
  138. package/dist/SitemapSync-CXDEUYM2.mjs +0 -8
  139. package/dist/SitemapSync-XRH577AB.js +0 -17
  140. package/dist/chunk-2WMLHR72.js.map +0 -1
  141. package/dist/chunk-JVT6CUNN.mjs +0 -6
  142. package/dist/chunk-JXT2WWXW.js +0 -8
  143. package/dist/chunk-WYRUQCL4.mjs.map +0 -1
@@ -1,19 +1,19 @@
1
- import { SiteKitClientProviders } from '../chunk-PEFC5T7R.mjs';
2
- import '../chunk-DGFHYNQY.mjs';
3
- import '../chunk-OLQBP2JQ.mjs';
1
+ import { SiteKitClientProviders } from '../chunk-6CY3BBB2.mjs';
2
+ import '../chunk-5WG4XXRD.mjs';
3
+ import '../chunk-2SX6S6TZ.mjs';
4
4
  import '../chunk-ZVBLXXNJ.mjs';
5
5
  import '../chunk-ZPLN537Q.mjs';
6
6
  import '../chunk-NI7OY4FW.mjs';
7
7
  import { ManagedFavicon } from '../chunk-CU6OGBKK.mjs';
8
- import '../chunk-HQJS7VWB.mjs';
9
- import { resolveClientCredential } from '../chunk-W5ZYM276.mjs';
8
+ import '../chunk-34BYGGJS.mjs';
9
+ import { resolveClientCredential } from '../chunk-GDSOVYEU.mjs';
10
10
  import { ManagedScripts } from '../chunk-6PJTLBRR.mjs';
11
11
  import { resolveApiOrigin } from '../chunk-UDBUK5ZJ.mjs';
12
12
  import '../chunk-AX4AROLH.mjs';
13
13
  import '../chunk-6EDVCUAG.mjs';
14
- import '../chunk-RSFSXEV2.mjs';
15
- import '../chunk-TKP3YFNS.mjs';
16
- import '../chunk-JVT6CUNN.mjs';
14
+ import '../chunk-VANWF4DM.mjs';
15
+ import '../chunk-2ZWDYZNB.mjs';
16
+ import '../chunk-33T23Y3P.mjs';
17
17
  import '../chunk-4XPGGLVP.mjs';
18
18
  import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
19
19
 
@@ -1,9 +1,9 @@
1
1
  'use client';
2
2
  'use strict';
3
3
 
4
- var chunkATOUXWFR_js = require('../chunk-ATOUXWFR.js');
5
- require('../chunk-BB2C5JUA.js');
6
- require('../chunk-JXT2WWXW.js');
4
+ var chunkABYRTWUF_js = require('../chunk-ABYRTWUF.js');
5
+ require('../chunk-IEHG564X.js');
6
+ require('../chunk-R2QOW7JI.js');
7
7
  require('../chunk-ZSMWDLMK.js');
8
8
  var react = require('react');
9
9
  var reactGoogleMaps = require('@vis.gl/react-google-maps');
@@ -141,7 +141,7 @@ async function fetchMapsConfig() {
141
141
  const { apiUrl, apiKey } = getApiConfig();
142
142
  if (apiKey) {
143
143
  try {
144
- const res = await chunkATOUXWFR_js.sonorFetch(
144
+ const res = await chunkABYRTWUF_js.sonorFetch(
145
145
  `${apiUrl}/api/public/maps/config`,
146
146
  { headers: { "Content-Type": "application/json" } },
147
147
  { apiKey }
@@ -181,7 +181,7 @@ async function fetchNearbyPlaces(params) {
181
181
  });
182
182
  if (params.radius) searchParams.set("radius", String(params.radius));
183
183
  if (params.limit) searchParams.set("limit", String(params.limit));
184
- const res = await chunkATOUXWFR_js.sonorFetch(
184
+ const res = await chunkABYRTWUF_js.sonorFetch(
185
185
  `${apiUrl}/api/public/maps/nearby-places?${searchParams}`,
186
186
  { headers: { "Content-Type": "application/json" } },
187
187
  { apiKey }
@@ -1,7 +1,7 @@
1
1
  'use client';
2
- import { sonorFetch } from '../chunk-RSFSXEV2.mjs';
3
- import '../chunk-TKP3YFNS.mjs';
4
- import '../chunk-JVT6CUNN.mjs';
2
+ import { sonorFetch } from '../chunk-VANWF4DM.mjs';
3
+ import '../chunk-2ZWDYZNB.mjs';
4
+ import '../chunk-33T23Y3P.mjs';
5
5
  import '../chunk-4XPGGLVP.mjs';
6
6
  import { useState, useCallback, useEffect } from 'react';
7
7
  import { APIProvider, Map as Map$1, AdvancedMarker, Pin, InfoWindow } from '@vis.gl/react-google-maps';
@@ -1,18 +1,18 @@
1
1
  'use client';
2
2
  'use strict';
3
3
 
4
- var chunkGSOLN2FC_js = require('../chunk-GSOLN2FC.js');
4
+ var chunkDMCWF7GG_js = require('../chunk-DMCWF7GG.js');
5
5
  require('../chunk-JEOKDUPQ.js');
6
- require('../chunk-ATOUXWFR.js');
7
- require('../chunk-BB2C5JUA.js');
8
- require('../chunk-JXT2WWXW.js');
6
+ require('../chunk-ABYRTWUF.js');
7
+ require('../chunk-IEHG564X.js');
8
+ require('../chunk-R2QOW7JI.js');
9
9
  require('../chunk-ZSMWDLMK.js');
10
10
 
11
11
 
12
12
 
13
13
  Object.defineProperty(exports, "SitemapSync", {
14
14
  enumerable: true,
15
- get: function () { return chunkGSOLN2FC_js.SitemapSync; }
15
+ get: function () { return chunkDMCWF7GG_js.SitemapSync; }
16
16
  });
17
17
  //# sourceMappingURL=client.js.map
18
18
  //# sourceMappingURL=client.js.map
@@ -1,9 +1,9 @@
1
1
  'use client';
2
- export { SitemapSync } from '../chunk-BVOUZL2S.mjs';
2
+ export { SitemapSync } from '../chunk-FPMOKZ2N.mjs';
3
3
  import '../chunk-QJU6HBSK.mjs';
4
- import '../chunk-RSFSXEV2.mjs';
5
- import '../chunk-TKP3YFNS.mjs';
6
- import '../chunk-JVT6CUNN.mjs';
4
+ import '../chunk-VANWF4DM.mjs';
5
+ import '../chunk-2ZWDYZNB.mjs';
6
+ import '../chunk-33T23Y3P.mjs';
7
7
  import '../chunk-4XPGGLVP.mjs';
8
8
  //# sourceMappingURL=client.mjs.map
9
9
  //# sourceMappingURL=client.mjs.map
package/dist/seo/index.js CHANGED
@@ -3,14 +3,14 @@
3
3
  var chunkDV2LJYFD_js = require('../chunk-DV2LJYFD.js');
4
4
  var chunkH6AU3WKF_js = require('../chunk-H6AU3WKF.js');
5
5
  var chunkJ7QI3GDX_js = require('../chunk-J7QI3GDX.js');
6
- var chunkGSOLN2FC_js = require('../chunk-GSOLN2FC.js');
6
+ var chunkDMCWF7GG_js = require('../chunk-DMCWF7GG.js');
7
7
  var chunkVMVEL4WU_js = require('../chunk-VMVEL4WU.js');
8
8
  var chunkQCZBXG7G_js = require('../chunk-QCZBXG7G.js');
9
9
  require('../chunk-QPIKPWAZ.js');
10
10
  require('../chunk-JEOKDUPQ.js');
11
- require('../chunk-ATOUXWFR.js');
12
- require('../chunk-BB2C5JUA.js');
13
- require('../chunk-JXT2WWXW.js');
11
+ require('../chunk-ABYRTWUF.js');
12
+ require('../chunk-IEHG564X.js');
13
+ require('../chunk-R2QOW7JI.js');
14
14
  require('../chunk-ZSMWDLMK.js');
15
15
  var react = require('react');
16
16
  var jsxRuntime = require('react/jsx-runtime');
@@ -687,7 +687,7 @@ Object.defineProperty(exports, "ManagedScripts", {
687
687
  });
688
688
  Object.defineProperty(exports, "SitemapSync", {
689
689
  enumerable: true,
690
- get: function () { return chunkGSOLN2FC_js.SitemapSync; }
690
+ get: function () { return chunkDMCWF7GG_js.SitemapSync; }
691
691
  });
692
692
  Object.defineProperty(exports, "generateSitemap", {
693
693
  enumerable: true,
@@ -1,16 +1,16 @@
1
1
  export { ManagedNoScripts, ManagedScripts } from '../chunk-6PJTLBRR.mjs';
2
2
  import { pickManagedLlmSchemaForJsonLd } from '../chunk-PENNTSJE.mjs';
3
3
  import { safeJsonLd } from '../chunk-662YHKWW.mjs';
4
- export { SitemapSync } from '../chunk-BVOUZL2S.mjs';
4
+ export { SitemapSync } from '../chunk-FPMOKZ2N.mjs';
5
5
  import { getManagedMetadata } from '../chunk-QGV7FEUI.mjs';
6
6
  export { generateSitemap, getABVariant, getManagedMetadata, getManagedMetadataWithAB, getRedirect, getRobotsDirective, isIndexable } from '../chunk-QGV7FEUI.mjs';
7
7
  import { getContentBlock, getSchemaMarkups, getSEOPageData, getEntityEnhancedSchema, getFAQData, getInternalLinks, getEntities } from '../chunk-2CHOHLB7.mjs';
8
8
  export { getABTest, getContentBlock, getEntities, getEntityEnhancedSchema, getFAQData, getInternalLinks, getManagedScripts, getPrimaryEntity, getRedirectData, getRobotsData, getSEOPageData, getSchemaMarkups, getSitemapEntries, getVisibilityScore, getVisibilitySummary, recordABImpression, registerSitemap } from '../chunk-2CHOHLB7.mjs';
9
9
  import '../chunk-UDBUK5ZJ.mjs';
10
10
  import '../chunk-QJU6HBSK.mjs';
11
- import '../chunk-RSFSXEV2.mjs';
12
- import '../chunk-TKP3YFNS.mjs';
13
- import '../chunk-JVT6CUNN.mjs';
11
+ import '../chunk-VANWF4DM.mjs';
12
+ import '../chunk-2ZWDYZNB.mjs';
13
+ import '../chunk-33T23Y3P.mjs';
14
14
  import '../chunk-4XPGGLVP.mjs';
15
15
  import { cache, Suspense } from 'react';
16
16
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
@@ -1,15 +1,15 @@
1
1
  'use strict';
2
2
 
3
- var chunkULY2QZWA_js = require('../chunk-ULY2QZWA.js');
3
+ var chunkH4JLKBTD_js = require('../chunk-H4JLKBTD.js');
4
4
  var chunkQPIKPWAZ_js = require('../chunk-QPIKPWAZ.js');
5
- require('../chunk-JXT2WWXW.js');
5
+ require('../chunk-R2QOW7JI.js');
6
6
  require('../chunk-ZSMWDLMK.js');
7
7
 
8
8
 
9
9
 
10
10
  Object.defineProperty(exports, "resolveClientCredential", {
11
11
  enumerable: true,
12
- get: function () { return chunkULY2QZWA_js.resolveClientCredential; }
12
+ get: function () { return chunkH4JLKBTD_js.resolveClientCredential; }
13
13
  });
14
14
  Object.defineProperty(exports, "requireServerApiConfig", {
15
15
  enumerable: true,
@@ -1,6 +1,6 @@
1
- export { resolveClientCredential } from '../chunk-W5ZYM276.mjs';
1
+ export { resolveClientCredential } from '../chunk-GDSOVYEU.mjs';
2
2
  export { requireServerApiConfig, resolveApiOrigin, resolveServerApiConfig, serverApiFetch } from '../chunk-UDBUK5ZJ.mjs';
3
- import '../chunk-JVT6CUNN.mjs';
3
+ import '../chunk-33T23Y3P.mjs';
4
4
  import '../chunk-4XPGGLVP.mjs';
5
5
  //# sourceMappingURL=index.mjs.map
6
6
  //# sourceMappingURL=index.mjs.map
@@ -1,47 +1,47 @@
1
1
  'use client';
2
2
  'use strict';
3
3
 
4
- var chunkS3J7MEOD_js = require('../chunk-S3J7MEOD.js');
5
- var chunkA2FHTQGB_js = require('../chunk-A2FHTQGB.js');
4
+ var chunkR4NE6L4D_js = require('../chunk-R4NE6L4D.js');
5
+ var chunkVR324SQ3_js = require('../chunk-VR324SQ3.js');
6
6
  require('../chunk-ZSMWDLMK.js');
7
7
 
8
8
 
9
9
 
10
10
  Object.defineProperty(exports, "ExperimentConversion", {
11
11
  enumerable: true,
12
- get: function () { return chunkS3J7MEOD_js.ExperimentConversion; }
12
+ get: function () { return chunkR4NE6L4D_js.ExperimentConversion; }
13
13
  });
14
14
  Object.defineProperty(exports, "SignalExperiment", {
15
15
  enumerable: true,
16
- get: function () { return chunkS3J7MEOD_js.SignalExperiment; }
16
+ get: function () { return chunkR4NE6L4D_js.SignalExperiment; }
17
17
  });
18
18
  Object.defineProperty(exports, "useExperimentVariant", {
19
19
  enumerable: true,
20
- get: function () { return chunkS3J7MEOD_js.useExperimentVariant; }
20
+ get: function () { return chunkR4NE6L4D_js.useExperimentVariant; }
21
21
  });
22
22
  Object.defineProperty(exports, "SignalBridge", {
23
23
  enumerable: true,
24
- get: function () { return chunkA2FHTQGB_js.SignalBridge; }
24
+ get: function () { return chunkVR324SQ3_js.SignalBridge; }
25
25
  });
26
26
  Object.defineProperty(exports, "useSignal", {
27
27
  enumerable: true,
28
- get: function () { return chunkA2FHTQGB_js.useSignal; }
28
+ get: function () { return chunkVR324SQ3_js.useSignal; }
29
29
  });
30
30
  Object.defineProperty(exports, "useSignalConfig", {
31
31
  enumerable: true,
32
- get: function () { return chunkA2FHTQGB_js.useSignalConfig; }
32
+ get: function () { return chunkVR324SQ3_js.useSignalConfig; }
33
33
  });
34
34
  Object.defineProperty(exports, "useSignalEvent", {
35
35
  enumerable: true,
36
- get: function () { return chunkA2FHTQGB_js.useSignalEvent; }
36
+ get: function () { return chunkVR324SQ3_js.useSignalEvent; }
37
37
  });
38
38
  Object.defineProperty(exports, "useSignalExperiment", {
39
39
  enumerable: true,
40
- get: function () { return chunkA2FHTQGB_js.useSignalExperiment; }
40
+ get: function () { return chunkVR324SQ3_js.useSignalExperiment; }
41
41
  });
42
42
  Object.defineProperty(exports, "useSignalOutcome", {
43
43
  enumerable: true,
44
- get: function () { return chunkA2FHTQGB_js.useSignalOutcome; }
44
+ get: function () { return chunkVR324SQ3_js.useSignalOutcome; }
45
45
  });
46
46
  //# sourceMappingURL=index.js.map
47
47
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,6 @@
1
1
  'use client';
2
- export { ExperimentConversion, SignalExperiment, useExperimentVariant } from '../chunk-JXN6OCFB.mjs';
3
- export { SignalBridge, useSignal, useSignalConfig, useSignalEvent, useSignalExperiment, useSignalOutcome } from '../chunk-HQJS7VWB.mjs';
2
+ export { ExperimentConversion, SignalExperiment, useExperimentVariant } from '../chunk-X6XWIAH3.mjs';
3
+ export { SignalBridge, useSignal, useSignalConfig, useSignalEvent, useSignalExperiment, useSignalOutcome } from '../chunk-34BYGGJS.mjs';
4
4
  import '../chunk-4XPGGLVP.mjs';
5
5
  //# sourceMappingURL=index.mjs.map
6
6
  //# sourceMappingURL=index.mjs.map
@@ -1,60 +1,60 @@
1
1
  'use strict';
2
2
 
3
- var chunkNEV2OEBF_js = require('../chunk-NEV2OEBF.js');
4
- require('../chunk-ATOUXWFR.js');
5
- require('../chunk-BB2C5JUA.js');
6
- require('../chunk-JXT2WWXW.js');
3
+ var chunkNZUUXRH5_js = require('../chunk-NZUUXRH5.js');
4
+ require('../chunk-ABYRTWUF.js');
5
+ require('../chunk-IEHG564X.js');
6
+ require('../chunk-R2QOW7JI.js');
7
7
  require('../chunk-ZSMWDLMK.js');
8
8
 
9
9
 
10
10
 
11
11
  Object.defineProperty(exports, "BookingWidget", {
12
12
  enumerable: true,
13
- get: function () { return chunkNEV2OEBF_js.BookingWidget; }
13
+ get: function () { return chunkNZUUXRH5_js.BookingWidget; }
14
14
  });
15
15
  Object.defineProperty(exports, "createBooking", {
16
16
  enumerable: true,
17
- get: function () { return chunkNEV2OEBF_js.createBooking; }
17
+ get: function () { return chunkNZUUXRH5_js.createBooking; }
18
18
  });
19
19
  Object.defineProperty(exports, "createSlotHold", {
20
20
  enumerable: true,
21
- get: function () { return chunkNEV2OEBF_js.createSlotHold; }
21
+ get: function () { return chunkNZUUXRH5_js.createSlotHold; }
22
22
  });
23
23
  Object.defineProperty(exports, "detectTimezone", {
24
24
  enumerable: true,
25
- get: function () { return chunkNEV2OEBF_js.detectTimezone; }
25
+ get: function () { return chunkNZUUXRH5_js.detectTimezone; }
26
26
  });
27
27
  Object.defineProperty(exports, "fetchAvailability", {
28
28
  enumerable: true,
29
- get: function () { return chunkNEV2OEBF_js.fetchAvailability; }
29
+ get: function () { return chunkNZUUXRH5_js.fetchAvailability; }
30
30
  });
31
31
  Object.defineProperty(exports, "fetchAvailableDates", {
32
32
  enumerable: true,
33
- get: function () { return chunkNEV2OEBF_js.fetchAvailableDates; }
33
+ get: function () { return chunkNZUUXRH5_js.fetchAvailableDates; }
34
34
  });
35
35
  Object.defineProperty(exports, "fetchBookingTypeDetails", {
36
36
  enumerable: true,
37
- get: function () { return chunkNEV2OEBF_js.fetchBookingTypeDetails; }
37
+ get: function () { return chunkNZUUXRH5_js.fetchBookingTypeDetails; }
38
38
  });
39
39
  Object.defineProperty(exports, "fetchBookingTypes", {
40
40
  enumerable: true,
41
- get: function () { return chunkNEV2OEBF_js.fetchBookingTypes; }
41
+ get: function () { return chunkNZUUXRH5_js.fetchBookingTypes; }
42
42
  });
43
43
  Object.defineProperty(exports, "formatDate", {
44
44
  enumerable: true,
45
- get: function () { return chunkNEV2OEBF_js.formatDate; }
45
+ get: function () { return chunkNZUUXRH5_js.formatDate; }
46
46
  });
47
47
  Object.defineProperty(exports, "formatDuration", {
48
48
  enumerable: true,
49
- get: function () { return chunkNEV2OEBF_js.formatDuration; }
49
+ get: function () { return chunkNZUUXRH5_js.formatDuration; }
50
50
  });
51
51
  Object.defineProperty(exports, "formatTime", {
52
52
  enumerable: true,
53
- get: function () { return chunkNEV2OEBF_js.formatTime; }
53
+ get: function () { return chunkNZUUXRH5_js.formatTime; }
54
54
  });
55
55
  Object.defineProperty(exports, "releaseSlotHold", {
56
56
  enumerable: true,
57
- get: function () { return chunkNEV2OEBF_js.releaseSlotHold; }
57
+ get: function () { return chunkNZUUXRH5_js.releaseSlotHold; }
58
58
  });
59
59
  //# sourceMappingURL=index.js.map
60
60
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
- export { BookingWidget, createBooking, createSlotHold, detectTimezone, fetchAvailability, fetchAvailableDates, fetchBookingTypeDetails, fetchBookingTypes, formatDate, formatDuration, formatTime, releaseSlotHold } from '../chunk-YUSX3NZA.mjs';
2
- import '../chunk-RSFSXEV2.mjs';
3
- import '../chunk-TKP3YFNS.mjs';
4
- import '../chunk-JVT6CUNN.mjs';
1
+ export { BookingWidget, createBooking, createSlotHold, detectTimezone, fetchAvailability, fetchAvailableDates, fetchBookingTypeDetails, fetchBookingTypes, formatDate, formatDuration, formatTime, releaseSlotHold } from '../chunk-UNQOPKDM.mjs';
2
+ import '../chunk-VANWF4DM.mjs';
3
+ import '../chunk-2ZWDYZNB.mjs';
4
+ import '../chunk-33T23Y3P.mjs';
5
5
  import '../chunk-4XPGGLVP.mjs';
6
6
  //# sourceMappingURL=index.mjs.map
7
7
  //# sourceMappingURL=index.mjs.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sonordev/site-kit",
3
- "version": "3.8.0",
3
+ "version": "3.8.2",
4
4
  "description": "Complete client-side integration kit for Sonor - SEO, Analytics, Engage, Forms, Blog",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -1,31 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkQ6KS7FMY_js = require('./chunk-Q6KS7FMY.js');
4
- require('./chunk-HMFFAUCD.js');
5
- require('./chunk-XB57AM6T.js');
6
- require('./chunk-VJMPIRSD.js');
7
- require('./chunk-ATOUXWFR.js');
8
- require('./chunk-BB2C5JUA.js');
9
- require('./chunk-JXT2WWXW.js');
10
- require('./chunk-ZSMWDLMK.js');
11
-
12
-
13
-
14
- Object.defineProperty(exports, "AnalyticsProvider", {
15
- enumerable: true,
16
- get: function () { return chunkQ6KS7FMY_js.AnalyticsProvider; }
17
- });
18
- Object.defineProperty(exports, "useAnalytics", {
19
- enumerable: true,
20
- get: function () { return chunkQ6KS7FMY_js.useAnalytics; }
21
- });
22
- Object.defineProperty(exports, "useAnalyticsOptional", {
23
- enumerable: true,
24
- get: function () { return chunkQ6KS7FMY_js.useAnalyticsOptional; }
25
- });
26
- Object.defineProperty(exports, "useTrackEvent", {
27
- enumerable: true,
28
- get: function () { return chunkQ6KS7FMY_js.useTrackEvent; }
29
- });
30
- //# sourceMappingURL=AnalyticsProvider-4KMGMQVD.js.map
31
- //# sourceMappingURL=AnalyticsProvider-4KMGMQVD.js.map
@@ -1,10 +0,0 @@
1
- export { AnalyticsProvider, useAnalytics, useAnalyticsOptional, useTrackEvent } from './chunk-GH5RO5OW.mjs';
2
- import './chunk-3DPXOZAU.mjs';
3
- import './chunk-AX4AROLH.mjs';
4
- import './chunk-6EDVCUAG.mjs';
5
- import './chunk-RSFSXEV2.mjs';
6
- import './chunk-TKP3YFNS.mjs';
7
- import './chunk-JVT6CUNN.mjs';
8
- import './chunk-4XPGGLVP.mjs';
9
- //# sourceMappingURL=AnalyticsProvider-M4BFCRKM.mjs.map
10
- //# sourceMappingURL=AnalyticsProvider-M4BFCRKM.mjs.map
@@ -1,19 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkI5KJ5YFU_js = require('./chunk-I5KJ5YFU.js');
4
- require('./chunk-V6CWHT6B.js');
5
- require('./chunk-V6NVBFEP.js');
6
- require('./chunk-VJMPIRSD.js');
7
- require('./chunk-ATOUXWFR.js');
8
- require('./chunk-BB2C5JUA.js');
9
- require('./chunk-JXT2WWXW.js');
10
- require('./chunk-ZSMWDLMK.js');
11
-
12
-
13
-
14
- Object.defineProperty(exports, "ChatWidget", {
15
- enumerable: true,
16
- get: function () { return chunkI5KJ5YFU_js.ChatWidget; }
17
- });
18
- //# sourceMappingURL=ChatWidget-I6YFEKW6.js.map
19
- //# sourceMappingURL=ChatWidget-I6YFEKW6.js.map
@@ -1,10 +0,0 @@
1
- export { ChatWidget } from './chunk-HQB24QUN.mjs';
2
- import './chunk-R26NFTOR.mjs';
3
- import './chunk-X3S6KXAP.mjs';
4
- import './chunk-6EDVCUAG.mjs';
5
- import './chunk-RSFSXEV2.mjs';
6
- import './chunk-TKP3YFNS.mjs';
7
- import './chunk-JVT6CUNN.mjs';
8
- import './chunk-4XPGGLVP.mjs';
9
- //# sourceMappingURL=ChatWidget-IV3LIMLK.mjs.map
10
- //# sourceMappingURL=ChatWidget-IV3LIMLK.mjs.map
@@ -1,9 +0,0 @@
1
- export { EngageWidget } from './chunk-Y4V5TFHP.mjs';
2
- import './chunk-AX4AROLH.mjs';
3
- import './chunk-6EDVCUAG.mjs';
4
- import './chunk-RSFSXEV2.mjs';
5
- import './chunk-TKP3YFNS.mjs';
6
- import './chunk-JVT6CUNN.mjs';
7
- import './chunk-4XPGGLVP.mjs';
8
- //# sourceMappingURL=EngageWidget-AWVB35ZM.mjs.map
9
- //# sourceMappingURL=EngageWidget-AWVB35ZM.mjs.map
@@ -1,18 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkMP6NHVHD_js = require('./chunk-MP6NHVHD.js');
4
- require('./chunk-XB57AM6T.js');
5
- require('./chunk-VJMPIRSD.js');
6
- require('./chunk-ATOUXWFR.js');
7
- require('./chunk-BB2C5JUA.js');
8
- require('./chunk-JXT2WWXW.js');
9
- require('./chunk-ZSMWDLMK.js');
10
-
11
-
12
-
13
- Object.defineProperty(exports, "EngageWidget", {
14
- enumerable: true,
15
- get: function () { return chunkMP6NHVHD_js.EngageWidget; }
16
- });
17
- //# sourceMappingURL=EngageWidget-TQW76BUU.js.map
18
- //# sourceMappingURL=EngageWidget-TQW76BUU.js.map
@@ -1,8 +0,0 @@
1
- export { SitemapSync } from './chunk-BVOUZL2S.mjs';
2
- import './chunk-QJU6HBSK.mjs';
3
- import './chunk-RSFSXEV2.mjs';
4
- import './chunk-TKP3YFNS.mjs';
5
- import './chunk-JVT6CUNN.mjs';
6
- import './chunk-4XPGGLVP.mjs';
7
- //# sourceMappingURL=SitemapSync-CXDEUYM2.mjs.map
8
- //# sourceMappingURL=SitemapSync-CXDEUYM2.mjs.map
@@ -1,17 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkGSOLN2FC_js = require('./chunk-GSOLN2FC.js');
4
- require('./chunk-JEOKDUPQ.js');
5
- require('./chunk-ATOUXWFR.js');
6
- require('./chunk-BB2C5JUA.js');
7
- require('./chunk-JXT2WWXW.js');
8
- require('./chunk-ZSMWDLMK.js');
9
-
10
-
11
-
12
- Object.defineProperty(exports, "SitemapSync", {
13
- enumerable: true,
14
- get: function () { return chunkGSOLN2FC_js.SitemapSync; }
15
- });
16
- //# sourceMappingURL=SitemapSync-XRH577AB.js.map
17
- //# sourceMappingURL=SitemapSync-XRH577AB.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/analytics/useContactTracking.ts"],"names":["trackConversion","useAnalytics","useCallback","useEffect"],"mappings":"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","file":"chunk-2WMLHR72.js","sourcesContent":["/**\n * @sonordev/site-kit/analytics - Contact Tracking Hook\n * \n * Tracks phone calls and email clicks as conversions.\n * Use this hook to automatically track tel: and mailto: links,\n * or manually track contact interactions.\n */\n\n'use client'\n\nimport { useCallback, useEffect } from 'react'\nimport { useAnalytics } from './AnalyticsProvider'\n\nexport interface UseContactTrackingOptions {\n /** Automatically track all tel: and mailto: links (default: true) */\n autoTrack?: boolean\n /** Debug mode - logs events to console */\n debug?: boolean\n}\n\nexport interface ContactTrackingReturn {\n /** Manually track a phone call click */\n trackPhoneClick: (phoneNumber: string, metadata?: Record<string, unknown>) => void\n /** Manually track an email click */\n trackEmailClick: (email: string, metadata?: Record<string, unknown>) => void\n}\n\n/**\n * Hook for tracking phone and email contact interactions as conversions.\n * \n * @example\n * ```tsx\n * // Auto-track all tel: and mailto: links\n * useContactTracking()\n * \n * // Manual tracking\n * const { trackPhoneClick, trackEmailClick } = useContactTracking()\n * trackPhoneClick('513-555-1234')\n * trackEmailClick('hello@example.com')\n * ```\n */\nexport function useContactTracking(options: UseContactTrackingOptions = {}): ContactTrackingReturn {\n const { autoTrack = true, debug = false } = options\n const { trackConversion } = useAnalytics()\n \n const trackPhoneClick = useCallback((phoneNumber: string, metadata?: Record<string, unknown>) => {\n if (debug) console.log('[Analytics] Phone click:', phoneNumber)\n \n trackConversion({\n type: 'phone_call',\n metadata: {\n phoneNumber: phoneNumber.replace(/\\D/g, ''), // Normalize to digits\n rawNumber: phoneNumber,\n ...metadata,\n },\n })\n }, [trackConversion, debug])\n \n const trackEmailClick = useCallback((email: string, metadata?: Record<string, unknown>) => {\n if (debug) console.log('[Analytics] Email click:', email)\n \n trackConversion({\n type: 'email_click',\n metadata: {\n email,\n ...metadata,\n },\n })\n }, [trackConversion, debug])\n \n // Auto-track tel: and mailto: links\n useEffect(() => {\n if (!autoTrack || typeof document === 'undefined') return\n \n const handleClick = (e: MouseEvent) => {\n const target = e.target as HTMLElement\n const anchor = target.closest('a')\n if (!anchor) return\n \n const href = anchor.getAttribute('href')\n if (!href) return\n \n if (href.startsWith('tel:')) {\n const phone = href.replace('tel:', '').trim()\n trackPhoneClick(phone, {\n linkText: anchor.textContent?.trim(),\n source: 'auto',\n })\n } else if (href.startsWith('mailto:')) {\n const email = href.replace('mailto:', '').split('?')[0].trim()\n trackEmailClick(email, {\n linkText: anchor.textContent?.trim(),\n source: 'auto',\n })\n }\n }\n \n document.addEventListener('click', handleClick, { capture: true })\n \n return () => {\n document.removeEventListener('click', handleClick, { capture: true })\n }\n }, [autoTrack, trackPhoneClick, trackEmailClick])\n \n return {\n trackPhoneClick,\n trackEmailClick,\n }\n}\n\n/**\n * Component wrapper for contact tracking\n * Simply include this component to auto-track all tel: and mailto: links\n * \n * @example\n * ```tsx\n * <ContactTracking />\n * ```\n */\nexport function ContactTracking({ debug = false }: { debug?: boolean }) {\n useContactTracking({ autoTrack: true, debug })\n return null\n}\n"]}
@@ -1,6 +0,0 @@
1
- // src/shared/version.ts
2
- var SITE_KIT_VERSION = "3.8.0";
3
-
4
- export { SITE_KIT_VERSION };
5
- //# sourceMappingURL=chunk-JVT6CUNN.mjs.map
6
- //# sourceMappingURL=chunk-JVT6CUNN.mjs.map
@@ -1,8 +0,0 @@
1
- 'use strict';
2
-
3
- // src/shared/version.ts
4
- var SITE_KIT_VERSION = "3.8.0";
5
-
6
- exports.SITE_KIT_VERSION = SITE_KIT_VERSION;
7
- //# sourceMappingURL=chunk-JXT2WWXW.js.map
8
- //# sourceMappingURL=chunk-JXT2WWXW.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/analytics/useContactTracking.ts"],"names":["trackConversion"],"mappings":"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","file":"chunk-WYRUQCL4.mjs","sourcesContent":["/**\n * @sonordev/site-kit/analytics - Contact Tracking Hook\n * \n * Tracks phone calls and email clicks as conversions.\n * Use this hook to automatically track tel: and mailto: links,\n * or manually track contact interactions.\n */\n\n'use client'\n\nimport { useCallback, useEffect } from 'react'\nimport { useAnalytics } from './AnalyticsProvider'\n\nexport interface UseContactTrackingOptions {\n /** Automatically track all tel: and mailto: links (default: true) */\n autoTrack?: boolean\n /** Debug mode - logs events to console */\n debug?: boolean\n}\n\nexport interface ContactTrackingReturn {\n /** Manually track a phone call click */\n trackPhoneClick: (phoneNumber: string, metadata?: Record<string, unknown>) => void\n /** Manually track an email click */\n trackEmailClick: (email: string, metadata?: Record<string, unknown>) => void\n}\n\n/**\n * Hook for tracking phone and email contact interactions as conversions.\n * \n * @example\n * ```tsx\n * // Auto-track all tel: and mailto: links\n * useContactTracking()\n * \n * // Manual tracking\n * const { trackPhoneClick, trackEmailClick } = useContactTracking()\n * trackPhoneClick('513-555-1234')\n * trackEmailClick('hello@example.com')\n * ```\n */\nexport function useContactTracking(options: UseContactTrackingOptions = {}): ContactTrackingReturn {\n const { autoTrack = true, debug = false } = options\n const { trackConversion } = useAnalytics()\n \n const trackPhoneClick = useCallback((phoneNumber: string, metadata?: Record<string, unknown>) => {\n if (debug) console.log('[Analytics] Phone click:', phoneNumber)\n \n trackConversion({\n type: 'phone_call',\n metadata: {\n phoneNumber: phoneNumber.replace(/\\D/g, ''), // Normalize to digits\n rawNumber: phoneNumber,\n ...metadata,\n },\n })\n }, [trackConversion, debug])\n \n const trackEmailClick = useCallback((email: string, metadata?: Record<string, unknown>) => {\n if (debug) console.log('[Analytics] Email click:', email)\n \n trackConversion({\n type: 'email_click',\n metadata: {\n email,\n ...metadata,\n },\n })\n }, [trackConversion, debug])\n \n // Auto-track tel: and mailto: links\n useEffect(() => {\n if (!autoTrack || typeof document === 'undefined') return\n \n const handleClick = (e: MouseEvent) => {\n const target = e.target as HTMLElement\n const anchor = target.closest('a')\n if (!anchor) return\n \n const href = anchor.getAttribute('href')\n if (!href) return\n \n if (href.startsWith('tel:')) {\n const phone = href.replace('tel:', '').trim()\n trackPhoneClick(phone, {\n linkText: anchor.textContent?.trim(),\n source: 'auto',\n })\n } else if (href.startsWith('mailto:')) {\n const email = href.replace('mailto:', '').split('?')[0].trim()\n trackEmailClick(email, {\n linkText: anchor.textContent?.trim(),\n source: 'auto',\n })\n }\n }\n \n document.addEventListener('click', handleClick, { capture: true })\n \n return () => {\n document.removeEventListener('click', handleClick, { capture: true })\n }\n }, [autoTrack, trackPhoneClick, trackEmailClick])\n \n return {\n trackPhoneClick,\n trackEmailClick,\n }\n}\n\n/**\n * Component wrapper for contact tracking\n * Simply include this component to auto-track all tel: and mailto: links\n * \n * @example\n * ```tsx\n * <ContactTracking />\n * ```\n */\nexport function ContactTracking({ debug = false }: { debug?: boolean }) {\n useContactTracking({ autoTrack: true, debug })\n return null\n}\n"]}