@sonordev/site-kit 8.10.0 → 8.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/agent-manifest.json +1 -1
  3. package/dist/{AddressAutocomplete-LQS6GQ4R.js → AddressAutocomplete-6DQ3IP5C.js} +1 -1
  4. package/dist/{AnalyticsProvider-JWS7BLFY.js → AnalyticsProvider-RC2RG4YW.js} +4 -4
  5. package/dist/{ArticleViewTracker-CDPVMUAO.js → ArticleViewTracker-FNCRH3SB.js} +1 -1
  6. package/dist/{BlocksPopup-C5PNJ7U6.js → BlocksPopup-AJCDT5WM.js} +3 -3
  7. package/dist/{ChatWidget-HEPOE3YC.js → ChatWidget-CM5OGMJQ.js} +5 -5
  8. package/dist/{FileField-6R5LS5NU.js → FileField-QWS5ASLB.js} +1 -1
  9. package/dist/{FormSpotlight-2BSE7PD2.js → FormSpotlight-7Y6B2YZM.js} +1 -1
  10. package/dist/{FormStage-3G46OPPO.js → FormStage-T3N27SID.js} +1 -1
  11. package/dist/{ManagedForm-LTXEU25N.js → ManagedForm-WUULZELM.js} +6 -6
  12. package/dist/{ManagedNewsletterForm-WE6P5DMV.js → ManagedNewsletterForm-GGA3JOOI.js} +8 -8
  13. package/dist/{SignalCore-IP7FE6SN.js → SignalCore-ZMKDW44U.js} +3 -3
  14. package/dist/{SiteChat-3FQYMHCP.js → SiteChat-PM4RIZR4.js} +1 -1
  15. package/dist/{SiteDesignReporter-HGTX4FX2.js → SiteDesignReporter-SALYTWV2.js} +4 -4
  16. package/dist/{SitePopups-V7MCNSGE.js → SitePopups-VDSDWZHD.js} +4 -4
  17. package/dist/{SitemapSync-OAJ7SIET.js → SitemapSync-6UDJHS2F.js} +2 -2
  18. package/dist/_client/booking-widget.js +3 -3
  19. package/dist/_client/reviewed-signal-experiment.js +1 -1
  20. package/dist/affiliates/index.js +1 -1
  21. package/dist/analytics/index.js +4 -4
  22. package/dist/api-4AAR6BZO.js +5 -0
  23. package/dist/articles/index.js +1 -1
  24. package/dist/articles/server-ui.js +3 -3
  25. package/dist/articles/server.js +2 -2
  26. package/dist/chat/index.js +6 -6
  27. package/dist/{chunk-YJ6PRJ7Y.js → chunk-27264MSX.js} +2 -2
  28. package/dist/{chunk-D4R3FQED.js → chunk-2MJYGVKB.js} +1 -1
  29. package/dist/{chunk-MKU5ZORB.js → chunk-2QAG7ALW.js} +1 -1
  30. package/dist/{chunk-NH7K252M.js → chunk-5UAX6PHO.js} +1 -1
  31. package/dist/{chunk-NBNDH2J6.js → chunk-675DTMSR.js} +1 -1
  32. package/dist/{chunk-RMPXSEEU.js → chunk-7PW7N7P4.js} +1 -1
  33. package/dist/{chunk-TLKLHSRJ.js → chunk-C55LIDVW.js} +1 -1
  34. package/dist/{chunk-NWEIHCSE.js → chunk-CNCAQEUJ.js} +1 -1
  35. package/dist/{chunk-ACZ5JNSL.js → chunk-DFCLELM2.js} +2 -2
  36. package/dist/{chunk-HNVLINPI.js → chunk-DICLVB5P.js} +1 -1
  37. package/dist/{chunk-HLN7A4GL.js → chunk-DUIGCLQM.js} +1 -1
  38. package/dist/{chunk-Q2OE32TH.js → chunk-GHW37LVB.js} +2 -2
  39. package/dist/{chunk-727353NY.js → chunk-H4KPWR7P.js} +3 -3
  40. package/dist/{chunk-Z4XJOVQX.js → chunk-M2ZGSI6K.js} +1 -1
  41. package/dist/{chunk-J4R7MHV2.js → chunk-M34VOQ5J.js} +8 -8
  42. package/dist/{chunk-OCNODBH4.js → chunk-M3VJAE24.js} +1 -1
  43. package/dist/{chunk-P7S45DD7.js → chunk-NX4FETUK.js} +1 -1
  44. package/dist/{chunk-OEHIXCYS.js → chunk-O3CAXGY5.js} +2 -2
  45. package/dist/{chunk-RUV6DCKL.js → chunk-T2Z7KEIH.js} +1 -1
  46. package/dist/{chunk-DW5X4BC7.js → chunk-TPB5PTWW.js} +2 -2
  47. package/dist/{chunk-75N2WALV.js → chunk-TXB4ULAM.js} +1 -1
  48. package/dist/{chunk-6CIO4X6P.js → chunk-UFHEND2H.js} +1 -1
  49. package/dist/{chunk-7PWXPN53.js → chunk-UTVFF7VT.js} +1 -1
  50. package/dist/{chunk-MIKVCYGX.js → chunk-VF2X5T4H.js} +2 -2
  51. package/dist/{chunk-533ZSRJF.js → chunk-VZSIIKLR.js} +1 -1
  52. package/dist/{chunk-XAPSYDVT.js → chunk-WX4XX3BZ.js} +1 -1
  53. package/dist/{chunk-Y7DZ2ND2.js → chunk-Y4MQTSYY.js} +3 -3
  54. package/dist/{chunk-3RBOES2C.js → chunk-YOPBFEDG.js} +1 -1
  55. package/dist/{chunk-UMF5OILQ.js → chunk-YPTUKSF7.js} +1 -1
  56. package/dist/{chunk-Z62W7Q3T.js → chunk-YYV3YHUX.js} +1 -1
  57. package/dist/{chunk-A66TIJWU.js → chunk-Z42KXUTK.js} +1 -1
  58. package/dist/contracts/entries.d.ts +1 -1
  59. package/dist/contracts/property-interest.d.ts +100 -0
  60. package/dist/contracts/resonance.d.ts +1705 -358
  61. package/dist/contracts/sales-call-prep.d.ts +666 -0
  62. package/dist/contracts/signal-experiments.d.ts +0 -1
  63. package/dist/contracts/wire-uuid.d.ts +5 -0
  64. package/dist/{controls-KLG6VQLO.js → controls-GLVRT5EM.js} +2 -2
  65. package/dist/fleet/index.js +3 -3
  66. package/dist/forms/index.js +8 -8
  67. package/dist/forms/server.js +2 -2
  68. package/dist/images/index.js +2 -2
  69. package/dist/index.js +1 -1
  70. package/dist/landing/server.js +5 -5
  71. package/dist/layout/client.js +6 -6
  72. package/dist/layout/index.js +7 -7
  73. package/dist/llms/index.js +4 -4
  74. package/dist/maps/index.js +3 -3
  75. package/dist/mcp/sonor.js +5 -5
  76. package/dist/resonance/ConsentPreferences.d.ts +12 -0
  77. package/dist/resonance/consent-adapter.d.ts +3 -0
  78. package/dist/resonance/consent-preferences-styles.d.ts +2 -0
  79. package/dist/resonance/first-party-consent.d.ts +22 -0
  80. package/dist/resonance/index.d.ts +1 -0
  81. package/dist/resonance/index.js +366 -2
  82. package/dist/revalidate/index.js +2 -2
  83. package/dist/runtime/index.js +1 -1
  84. package/dist/{runtime-core-EU2RZMOL.js → runtime-core-4WL4V4QE.js} +523 -7
  85. package/dist/seo/client.js +2 -2
  86. package/dist/seo/index.js +2 -2
  87. package/dist/seo/llms.js +4 -4
  88. package/dist/seo/register-sitemap-cli.js +1 -1
  89. package/dist/seo/sitemap.js +2 -2
  90. package/dist/server/index.js +2 -2
  91. package/dist/shared/version.d.ts +1 -1
  92. package/dist/signal/index.js +2 -2
  93. package/dist/sitemap/index.js +2 -2
  94. package/dist/{sonor-fetch-runtime-SLPBNZY4.js → sonor-fetch-runtime-QO4DR7GR.js} +2 -2
  95. package/dist/sync/index.js +3 -3
  96. package/dist/website/images.js +2 -2
  97. package/dist/website/index.js +4 -4
  98. package/dist/website/landing/server.js +5 -5
  99. package/dist/website/popups.js +4 -4
  100. package/dist/{writeLLMsTxt-2CBYGKZO.js → writeLLMsTxt-EKWOSHXU.js} +1 -1
  101. package/package.json +1 -1
  102. package/src/resonance/README.md +49 -0
  103. package/dist/api-X6N6V2H3.js +0 -5
  104. /package/dist/{chunk-ORSQKTMN.js → chunk-2YSX4ZUC.js} +0 -0
@@ -2,13 +2,13 @@
2
2
  import { setFirstPartyIdentityScope } from './chunk-KQKUXIUD.js';
3
3
  import { SITE_EDIT_PARAM } from './chunk-6G43IRWR.js';
4
4
  import { publishSiteCredential } from './chunk-2LBKIE2K.js';
5
- import { ResonanceRuntime } from './chunk-3RBOES2C.js';
6
- import { FleetHeartbeat } from './chunk-Q2OE32TH.js';
5
+ import { ResonanceRuntime } from './chunk-YOPBFEDG.js';
6
+ import { FleetHeartbeat } from './chunk-GHW37LVB.js';
7
7
  import { useDeferredActivation } from './chunk-YC7ELZS3.js';
8
8
  import { resolveSiteHost } from './chunk-FESKKJAS.js';
9
9
  import { getOrCreateVisitorId, getOrCreateSessionId } from './chunk-JT7GHHMV.js';
10
10
  import { resolveAnalyticsTarget, announceFrameReady, isPrivatePreview, isCrossOriginFrame } from './chunk-7643MCD2.js';
11
- import { SignalBridge } from './chunk-533ZSRJF.js';
11
+ import { SignalBridge } from './chunk-VZSIIKLR.js';
12
12
  import { primeMeasurementPolicy, subscribeMeasurementPolicy, measurementPolicySnapshot, serverMeasurementPolicySnapshot, analyticsPurposePermitted } from './chunk-FRY6PBT6.js';
13
13
  import React, { useSyncExternalStore, useState, useEffect, useRef, useCallback, Suspense } from 'react';
14
14
  import dynamic from 'next/dynamic';
@@ -36,23 +36,23 @@ function startEditBridge() {
36
36
  };
37
37
  }
38
38
  var LazyAnalyticsProvider = dynamic(
39
- () => import('./AnalyticsProvider-JWS7BLFY.js').then((m) => ({ default: m.AnalyticsProvider })),
39
+ () => import('./AnalyticsProvider-RC2RG4YW.js').then((m) => ({ default: m.AnalyticsProvider })),
40
40
  { ssr: false }
41
41
  );
42
42
  var LazySiteChat = dynamic(
43
- () => import('./SiteChat-3FQYMHCP.js').then((m) => ({ default: m.SiteChat })),
43
+ () => import('./SiteChat-PM4RIZR4.js').then((m) => ({ default: m.SiteChat })),
44
44
  { ssr: false }
45
45
  );
46
46
  var LazySitePopups = dynamic(
47
- () => import('./SitePopups-V7MCNSGE.js').then((m) => ({ default: m.SitePopups })),
47
+ () => import('./SitePopups-VDSDWZHD.js').then((m) => ({ default: m.SitePopups })),
48
48
  { ssr: false }
49
49
  );
50
50
  var LazySiteDesignReporter = dynamic(
51
- () => import('./SiteDesignReporter-HGTX4FX2.js').then((m) => ({ default: m.SiteDesignReporter })),
51
+ () => import('./SiteDesignReporter-SALYTWV2.js').then((m) => ({ default: m.SiteDesignReporter })),
52
52
  { ssr: false }
53
53
  );
54
54
  var LazySitemapSync = dynamic(
55
- () => import('./SitemapSync-OAJ7SIET.js').then((m) => ({ default: m.SitemapSync })),
55
+ () => import('./SitemapSync-6UDJHS2F.js').then((m) => ({ default: m.SitemapSync })),
56
56
  { ssr: false }
57
57
  );
58
58
  function SiteKitClientProviders({
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{useSignalExperiment as v,useSignalEvent as x}from"./chunk-533ZSRJF.js";import{recordRenderedResonanceExposure as E}from"./chunk-MOACHHOJ.js";import{subscribeMeasurementPolicy as C,measurementPolicySnapshot as S,serverMeasurementPolicySnapshot as R}from"./chunk-FRY6PBT6.js";import k,{lazy as h,Suspense as w,useRef as j,useSyncExternalStore as P,useEffect as $}from"react";import{usePathname as b}from"next/navigation";import{jsx as o,Fragment as m}from"react/jsx-runtime";var K=h(()=>import("./_client/reviewed-signal-experiment.js"));function O(e){if(e.reviewedContext){const n=e.reviewedContext.controlVariantKey,c=e.children?e.children({variant:n,isControl:!0}):Object.prototype.hasOwnProperty.call(e.variants,n)&&e.variants[n]!==void 0?e.variants[n]:e.fallback||null;return o(w,{fallback:c,children:o(K,{...e,reviewedContext:e.reviewedContext})})}return o(M,{...e})}function M({experimentId:e,variants:n,fallback:c,trackImpression:a=!0,children:s}){const{assignment:i,variant:t,isControl:l}=v(e),f=x(),d=b(),p=j(""),r=P(C,S,R);if($(()=>{const _=!!s||!!t&&n[t]!==void 0;if(a&&t&&_){const u=r.config;if(u){if(!i?.assignment_id||!i.experiment_revision||i.site!==u.site)return;const g=`${i.assignment_id}:${i.experiment_revision}:${t}:${d}:${r.proof?.currentConsentRevision}`;if(g===p.current)return;E({projectId:u.projectId,site:u.site,experimentId:e,experimentRevision:i.experiment_revision,assignmentId:i.assignment_id,variantKey:t,occurredAt:new Date().toISOString()})&&(p.current=g);return}f({event_type:"experiment",event_name:"impression",event_data:{experiment_id:e,variant_key:t}})}},[e,t,i,d,a,f,s,n,r.config?.projectId,r.config?.site,r.config?.configRevision,r.config?.policyRevision,r.proof?.currentConsentRevision]),s)return o(m,{children:s({variant:t||"control",isControl:l})});const y=n[t||"control"];return y!==void 0?o(m,{children:y}):c?o(m,{children:c}):o(m,{children:n.control||null})}function V(e){return v(e)}function z({experimentId:e,outcomeType:n="click",value:c,children:a}){const s=x(),{variant:i}=v(e),t=()=>{s({event_type:"experiment",event_name:"conversion",event_data:{experiment_id:e,variant_key:i,outcome_type:n,value:c}})};return k.cloneElement(a,{onClick:l=>{t(),a.props.onClick&&a.props.onClick(l)}})}export{z as ExperimentConversion,O as SignalExperiment,V as useExperimentVariant};
2
+ import{useSignalExperiment as v,useSignalEvent as x}from"./chunk-VZSIIKLR.js";import{recordRenderedResonanceExposure as E}from"./chunk-MOACHHOJ.js";import{subscribeMeasurementPolicy as C,measurementPolicySnapshot as S,serverMeasurementPolicySnapshot as R}from"./chunk-FRY6PBT6.js";import k,{lazy as h,Suspense as w,useRef as j,useSyncExternalStore as P,useEffect as $}from"react";import{usePathname as b}from"next/navigation";import{jsx as o,Fragment as m}from"react/jsx-runtime";var K=h(()=>import("./_client/reviewed-signal-experiment.js"));function O(e){if(e.reviewedContext){const n=e.reviewedContext.controlVariantKey,c=e.children?e.children({variant:n,isControl:!0}):Object.prototype.hasOwnProperty.call(e.variants,n)&&e.variants[n]!==void 0?e.variants[n]:e.fallback||null;return o(w,{fallback:c,children:o(K,{...e,reviewedContext:e.reviewedContext})})}return o(M,{...e})}function M({experimentId:e,variants:n,fallback:c,trackImpression:a=!0,children:s}){const{assignment:i,variant:t,isControl:l}=v(e),f=x(),d=b(),p=j(""),r=P(C,S,R);if($(()=>{const _=!!s||!!t&&n[t]!==void 0;if(a&&t&&_){const u=r.config;if(u){if(!i?.assignment_id||!i.experiment_revision||i.site!==u.site)return;const g=`${i.assignment_id}:${i.experiment_revision}:${t}:${d}:${r.proof?.currentConsentRevision}`;if(g===p.current)return;E({projectId:u.projectId,site:u.site,experimentId:e,experimentRevision:i.experiment_revision,assignmentId:i.assignment_id,variantKey:t,occurredAt:new Date().toISOString()})&&(p.current=g);return}f({event_type:"experiment",event_name:"impression",event_data:{experiment_id:e,variant_key:t}})}},[e,t,i,d,a,f,s,n,r.config?.projectId,r.config?.site,r.config?.configRevision,r.config?.policyRevision,r.proof?.currentConsentRevision]),s)return o(m,{children:s({variant:t||"control",isControl:l})});const y=n[t||"control"];return y!==void 0?o(m,{children:y}):c?o(m,{children:c}):o(m,{children:n.control||null})}function V(e){return v(e)}function z({experimentId:e,outcomeType:n="click",value:c,children:a}){const s=x(),{variant:i}=v(e),t=()=>{s({event_type:"experiment",event_name:"conversion",event_data:{experiment_id:e,variant_key:i,outcome_type:n,value:c}})};return k.cloneElement(a,{onClick:l=>{t(),a.props.onClick&&a.props.onClick(l)}})}export{z as ExperimentConversion,O as SignalExperiment,V as useExperimentVariant};
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { sonorFetch } from './chunk-Z4XJOVQX.js';
2
+ import { sonorFetch } from './chunk-M2ZGSI6K.js';
3
3
  import { useState, useCallback, useEffect } from 'react';
4
4
  import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
5
5
 
@@ -2,9 +2,9 @@
2
2
  import { VISUAL_VIEWPORT_GAP_PROPERTY } from './chunk-6T6CQVNL.js';
3
3
  import { GlassStyles } from './chunk-JE4A5S4F.js';
4
4
  import { DEFAULT_WIDGET_Z_INDEX } from './chunk-27FISYK4.js';
5
- import { useForm } from './chunk-MIKVCYGX.js';
5
+ import { useForm } from './chunk-VF2X5T4H.js';
6
6
  import { parseColor, relativeLuminance, DARK_LUMINANCE, contrastRatio } from './chunk-S22FSH7C.js';
7
- import { sonorFetch } from './chunk-Z4XJOVQX.js';
7
+ import { sonorFetch } from './chunk-M2ZGSI6K.js';
8
8
  import { readPublishedApiConfig } from './chunk-W7OPEMGJ.js';
9
9
  import { useState, useEffect, useRef, useLayoutEffect, useCallback, Fragment as Fragment$1 } from 'react';
10
10
  import { lexer } from 'marked';
@@ -1,5 +1,5 @@
1
1
  import { secretsMatch, readCappedBody } from './chunk-XTRZGXB2.js';
2
- import { SITE_KIT_VERSION } from './chunk-D4R3FQED.js';
2
+ import { SITE_KIT_VERSION } from './chunk-2MJYGVKB.js';
3
3
 
4
4
  // src/llms/revalidate.ts
5
5
  function createLlmsRevalidateHandler(secret, options) {
@@ -1,8 +1,8 @@
1
1
  import { toHexColor, normalizeDesignTokens, designTokensHash } from './chunk-XHYE24HU.js';
2
2
  import { contrastRatio, parseColor, relativeLuminance } from './chunk-S22FSH7C.js';
3
- import { SITE_KIT_VERSION } from './chunk-D4R3FQED.js';
3
+ import { SITE_KIT_VERSION } from './chunk-2MJYGVKB.js';
4
4
  import { resolveAnalyticsTarget } from './chunk-7643MCD2.js';
5
- import { sonorFetch } from './chunk-Z4XJOVQX.js';
5
+ import { sonorFetch } from './chunk-M2ZGSI6K.js';
6
6
 
7
7
  // src/website/design.ts
8
8
  var SITE_DESIGN_PATH = "/api/public/site/design";
@@ -1,5 +1,5 @@
1
1
  import { readAnalyticsIdentity } from './chunk-PVY7X5UR.js';
2
- import { sonorFetch } from './chunk-Z4XJOVQX.js';
2
+ import { sonorFetch } from './chunk-M2ZGSI6K.js';
3
3
  import { getClientApiConfig } from './chunk-W7OPEMGJ.js';
4
4
 
5
5
  // src/sync/api.ts
@@ -1,5 +1,5 @@
1
1
  import { monotonicMs } from './chunk-MH2DSGC6.js';
2
- import { sonorFetch } from './chunk-Z4XJOVQX.js';
2
+ import { sonorFetch } from './chunk-M2ZGSI6K.js';
3
3
  import { getClientApiConfig } from './chunk-W7OPEMGJ.js';
4
4
 
5
5
  // src/maps/api.ts
@@ -2,7 +2,7 @@
2
2
  import { registerAnalyticsDispatcher } from './chunk-AG2RDHYZ.js';
3
3
  import { getOrCreateVisitorId, getOrCreateSessionId } from './chunk-JT7GHHMV.js';
4
4
  import { onPageLeave } from './chunk-L2V5PUFN.js';
5
- import { resolveAnalyticsTarget, analyticsSend, analyticsBeacon } from './chunk-ACZ5JNSL.js';
5
+ import { resolveAnalyticsTarget, analyticsSend, analyticsBeacon } from './chunk-DFCLELM2.js';
6
6
  import { subscribeMeasurementPolicy, measurementPolicySnapshot, serverMeasurementPolicySnapshot } from './chunk-FRY6PBT6.js';
7
7
  import { createContext, useRef, useSyncExternalStore, useEffect, useState, useMemo, useCallback, useContext } from 'react';
8
8
  import { usePathname } from 'next/navigation';
@@ -6,11 +6,11 @@ import { isFieldVisible, validateField, isFieldComplete, unseenControlValues } f
6
6
  import { normalizeFormConfig, DEFAULT_FORM_SUCCESS_MESSAGE } from './chunk-TYSIAWC3.js';
7
7
  import { DEFAULT_HONEYPOT_FIELD } from './chunk-NJCTQH2P.js';
8
8
  import { onPageLeave } from './chunk-L2V5PUFN.js';
9
- import { resolveAnalyticsTarget, analyticsSend, analyticsBeacon } from './chunk-ACZ5JNSL.js';
9
+ import { resolveAnalyticsTarget, analyticsSend, analyticsBeacon } from './chunk-DFCLELM2.js';
10
10
  import { RESONANCE_SUBJECT_HEADER } from './chunk-NHDRA4Y5.js';
11
11
  import { uuid } from './chunk-GJWI74ZZ.js';
12
12
  import { sameSite } from './chunk-NZOJHERI.js';
13
- import { sonorFetch } from './chunk-Z4XJOVQX.js';
13
+ import { sonorFetch } from './chunk-M2ZGSI6K.js';
14
14
  import { readPublishedApiConfig, getClientApiConfig, readPublishedSite } from './chunk-W7OPEMGJ.js';
15
15
  import { normalizeSiteHost } from './chunk-A4CC4ZG3.js';
16
16
  import { subscribeMeasurementPolicy, measurementPolicySnapshot, serverMeasurementPolicySnapshot, analyticsPurposePermitted } from './chunk-FRY6PBT6.js';
@@ -84,7 +84,7 @@ function useSignal() {
84
84
  return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);
85
85
  }
86
86
  var LazySignalCore = dynamic(
87
- () => import('./SignalCore-IP7FE6SN.js').then((m) => ({ default: m.SignalCore })),
87
+ () => import('./SignalCore-ZMKDW44U.js').then((m) => ({ default: m.SignalCore })),
88
88
  { ssr: false }
89
89
  );
90
90
  function SignalBridge({
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import { locToPath, isMalformedSitemapPath, inferPageType } from './chunk-YVKRYQRG.js';
3
3
  import { resolveAnalyticsTarget } from './chunk-7643MCD2.js';
4
- import { sonorFetch } from './chunk-Z4XJOVQX.js';
4
+ import { sonorFetch } from './chunk-M2ZGSI6K.js';
5
5
  import { useRef, useEffect } from 'react';
6
6
 
7
7
  var SYNC_STAMP_KEY = "_sk_sitemap_synced_at";
@@ -2,9 +2,9 @@
2
2
  import { DEFAULT_WIDGET_Z_INDEX } from './chunk-27FISYK4.js';
3
3
  import { readAnalyticsIdentity } from './chunk-PVY7X5UR.js';
4
4
  import { getOrCreateVisitorId } from './chunk-JT7GHHMV.js';
5
- import { resolveAnalyticsTarget as resolveAnalyticsTarget$1, analyticsSend } from './chunk-ACZ5JNSL.js';
5
+ import { resolveAnalyticsTarget as resolveAnalyticsTarget$1, analyticsSend } from './chunk-DFCLELM2.js';
6
6
  import { resolveAnalyticsTarget } from './chunk-7643MCD2.js';
7
- import { sonorFetch } from './chunk-Z4XJOVQX.js';
7
+ import { sonorFetch } from './chunk-M2ZGSI6K.js';
8
8
  import { subscribeMeasurementPolicy, measurementPolicySnapshot, serverMeasurementPolicySnapshot } from './chunk-FRY6PBT6.js';
9
9
  import { useState, useEffect, useCallback, useSyncExternalStore, useRef } from 'react';
10
10
  import ReactDOM from 'react-dom';
@@ -163,7 +163,7 @@ function activatePopup(active, id, popups) {
163
163
  return [...active, id];
164
164
  }
165
165
  var LazyBlocksPopup = dynamic(
166
- () => import('./BlocksPopup-C5PNJ7U6.js').then((m) => ({ default: m.BlocksPopup })),
166
+ () => import('./BlocksPopup-AJCDT5WM.js').then((m) => ({ default: m.BlocksPopup })),
167
167
  { ssr: false }
168
168
  );
169
169
  function SitePopups(props) {
@@ -14,7 +14,7 @@ function ResonanceRuntime({ site, apiUrl, apiKey }) {
14
14
  useEffect(() => {
15
15
  if (!ready) return;
16
16
  let cancelled = false;
17
- void import('./runtime-core-EU2RZMOL.js').then(({ mountResonanceRuntime }) => {
17
+ void import('./runtime-core-4WL4V4QE.js').then(({ mountResonanceRuntime }) => {
18
18
  if (cancelled) return;
19
19
  const runtime = mountResonanceRuntime({ site, apiUrl, apiKey });
20
20
  active.current = runtime;
@@ -7,7 +7,7 @@ import dynamic from 'next/dynamic';
7
7
  import { jsx } from 'react/jsx-runtime';
8
8
 
9
9
  var LazyChatWidget = dynamic(
10
- () => import('./ChatWidget-HEPOE3YC.js').then((m) => ({ default: m.ChatWidget })),
10
+ () => import('./ChatWidget-CM5OGMJQ.js').then((m) => ({ default: m.ChatWidget })),
11
11
  { ssr: false }
12
12
  );
13
13
  function SiteChat(props) {
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { detectTimezone, releaseSlotHold, fetchBookingTypeDetails, fetchBookingTypes, fetchAvailability, createSlotHold, createBooking, formatDuration, formatDate, formatTime, prepareMeeting } from './chunk-75N2WALV.js';
2
+ import { detectTimezone, releaseSlotHold, fetchBookingTypeDetails, fetchBookingTypes, fetchAvailability, createSlotHold, createBooking, formatDuration, formatDate, formatTime, prepareMeeting } from './chunk-TXB4ULAM.js';
3
3
  import { readPublishedApiConfig, DEFAULT_SONOR_API_URL } from './chunk-W7OPEMGJ.js';
4
4
  import { useState, useRef, useMemo, useCallback, useEffect, useId } from 'react';
5
5
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
@@ -1,4 +1,4 @@
1
- import { writeLLMsTxtToPublic } from './chunk-ORSQKTMN.js';
1
+ import { writeLLMsTxtToPublic } from './chunk-2YSX4ZUC.js';
2
2
  import { getSiteConfig } from './chunk-Z22QVHT4.js';
3
3
  import { buildFetch } from './chunk-UAYAJPEP.js';
4
4
  import { findAppDirForDiscovery } from './chunk-ZEGVKVD5.js';
@@ -4,5 +4,5 @@
4
4
  * tsup config, its package.json check and the boundary test, so a new
5
5
  * contract is added in one place.
6
6
  */
7
- export declare const CONTRACT_ENTRIES: readonly ['forms', 'llms', 'slots', 'slot-content', 'site-cache', 'site-edit', 'website', 'color', 'fleet', 'sites', 'seo-pages', 'seo-meta', 'portfolio', 'voice', 'proposal-sitemap', 'error-page', 'schema-placeholders', 'sentences', 'knowledge', 'editorial-media', 'business-claims', 'outreach', 'page-titles', 'broadcast-layouts', 'publication-branding', 'public-url-host', 'inbox', 'funnels', 'crm-disposition', 'decision-roles', 'resonance', 'resonance-constants', 'signal-experiments'];
7
+ export declare const CONTRACT_ENTRIES: readonly ['forms', 'llms', 'slots', 'slot-content', 'site-cache', 'site-edit', 'website', 'color', 'fleet', 'sites', 'seo-pages', 'seo-meta', 'portfolio', 'voice', 'proposal-sitemap', 'error-page', 'schema-placeholders', 'sentences', 'knowledge', 'editorial-media', 'business-claims', 'outreach', 'page-titles', 'broadcast-layouts', 'publication-branding', 'public-url-host', 'inbox', 'funnels', 'crm-disposition', 'decision-roles', 'resonance', 'resonance-constants', 'signal-experiments', 'sales-call-prep', 'property-interest'];
8
8
  export type ContractEntry = (typeof CONTRACT_ENTRIES)[number];
@@ -0,0 +1,100 @@
1
+ import { type Value } from "./wire-schema.js";
2
+ export declare const PROPERTY_INTEREST_CATEGORY: 'real_estate_interest';
3
+ export declare const PROPERTY_INTEREST_EVENT_NAMES: readonly ['property_exposed', 'gallery_open', 'detail_open', 'property_selected'];
4
+ export declare const PROPERTY_INTEREST_DEFAULT_WINDOW_DAYS = 28;
5
+ export declare const PROPERTY_INTEREST_MAX_WINDOW_DAYS = 90;
6
+ export declare const PROPERTY_INTEREST_MAX_LISTINGS = 50;
7
+ export declare class PropertyInterestValidationError extends Error {
8
+ readonly path: string;
9
+ constructor(path: string, reason: string);
10
+ }
11
+ declare const eventProperties: import("./wire-schema.js").Field<{
12
+ schema_version: 1;
13
+ listing_id: string;
14
+ surface: "collection" | "detail";
15
+ } & {
16
+ ordinal?: number | undefined;
17
+ }>;
18
+ declare const event: import("./wire-schema.js").Field<{
19
+ category: "real_estate_interest";
20
+ name: "detail_open" | "gallery_open" | "property_exposed" | "property_selected";
21
+ properties: {
22
+ schema_version: 1;
23
+ listing_id: string;
24
+ surface: "collection" | "detail";
25
+ } & {
26
+ ordinal?: number | undefined;
27
+ };
28
+ } & {}>;
29
+ export type PropertyInterestEventProperties = Value<typeof eventProperties>;
30
+ export type PropertyInterestEvent = Value<typeof event>;
31
+ export declare const parsePropertyInterestEventProperties: (value: unknown) => PropertyInterestEventProperties;
32
+ export declare const parsePropertyInterestEvent: (value: unknown) => PropertyInterestEvent;
33
+ export declare const PROPERTY_INTEREST_EVENT_PROPERTIES_JSON_SCHEMA: import("./wire-schema.js").JsonSchema;
34
+ export declare const PROPERTY_INTEREST_EVENT_JSON_SCHEMA: import("./wire-schema.js").JsonSchema;
35
+ declare const reportRequest: import("./wire-schema.js").Field<{
36
+ site: string;
37
+ } & {
38
+ from?: string | undefined;
39
+ to?: string | undefined;
40
+ listingIds?: string[] | undefined;
41
+ cursor?: string | undefined;
42
+ }>;
43
+ export type PropertyInterestReportRequest = Value<typeof reportRequest>;
44
+ export declare const parsePropertyInterestReportRequest: (value: unknown) => PropertyInterestReportRequest;
45
+ export declare const PROPERTY_INTEREST_REPORT_REQUEST_JSON_SCHEMA: import("./wire-schema.js").JsonSchema;
46
+ /** Basis points rounded to nearest, with halves rounded up. A missing denominator stays null. */
47
+ export declare function propertyInterestRateBps(eligibleSessions: number, exposureSessions: number): number | null;
48
+ declare const report: import("./wire-schema.js").Field<{
49
+ schemaVersion: 1;
50
+ scope: "site";
51
+ site: string;
52
+ from: string;
53
+ to: string;
54
+ observedAt: string;
55
+ properties: ({
56
+ listingId: string;
57
+ displayAddress: string | null;
58
+ slug: string | null;
59
+ status: "active" | "expired" | "pending" | "sold" | "withdrawn" | null;
60
+ surfaces: ({
61
+ surface: "collection" | "detail";
62
+ exposureSessions: number;
63
+ missingSessionEvents: number;
64
+ actions: {
65
+ gallery_open: {
66
+ eligibleSessions: number;
67
+ unmatchedSessions: number;
68
+ rateBps: number | null;
69
+ } & {};
70
+ detail_open: {
71
+ eligibleSessions: number;
72
+ unmatchedSessions: number;
73
+ rateBps: number | null;
74
+ } & {};
75
+ property_selected: {
76
+ eligibleSessions: number;
77
+ unmatchedSessions: number;
78
+ rateBps: number | null;
79
+ } & {};
80
+ } & {};
81
+ } & {})[];
82
+ acceptedTourInquiries: ({
83
+ state: "available";
84
+ count: number;
85
+ source: "native_listing_accepted_tour_form";
86
+ } & {}) | ({
87
+ state: "unavailable";
88
+ count: null;
89
+ source: null;
90
+ } & {});
91
+ } & {})[];
92
+ hasMore: boolean;
93
+ nextCursor: string | null;
94
+ } & {}>;
95
+ export type PropertyInterestReport = Value<typeof report>;
96
+ export declare const parsePropertyInterestReport: (value: unknown) => PropertyInterestReport;
97
+ export declare const PROPERTY_INTEREST_REPORT_JSON_SCHEMA: import("./wire-schema.js").JsonSchema;
98
+ /** Binds a closed response to its query. The native owner still authenticates site and listing scope. */
99
+ export declare function parsePropertyInterestReportForRequest(value: unknown, request: unknown): PropertyInterestReport;
100
+ export {};