@sentientui/core 0.23.0 → 0.24.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.
@@ -1,2 +1,2 @@
1
- import{a as B}from"./chunk-KIP52DUJ.mjs";import{a as E,d as j,e as V,f as S}from"./chunk-EWP6FTHE.mjs";import{x as K,z as P}from"./chunk-2RH7I6AP.mjs";import"./chunk-QNEYUJJJ.mjs";import{a as v}from"./chunk-TMCGHANO.mjs";var z="section, header, footer, nav, main > div, [data-sentient-section]",H=2e4;function Y(l){let o=Array.from(l.querySelectorAll(z)),r=o.filter(a=>o.filter(c=>c!==a&&a.contains(c)).length<2);return r.filter(a=>!r.some(c=>c!==a&&c.contains(a)))}function q(l,o,r,a){try{fetch(`${o}/v1/section-map`,{method:"POST",keepalive:!0,headers:{"content-type":"application/json",authorization:`Bearer ${l}`},body:JSON.stringify({pageUrl:r,sections:a})}).catch(()=>{})}catch(c){}}var y=()=>{};function J(l,o){var C,O,k,D,_,L,M,N,x;let r=(C=o.doc)!=null?C:typeof document!="undefined"?document:void 0;if(!r||typeof IntersectionObserver=="undefined"||P()||!o.apiKey||!o.apiKey.startsWith("pk_"))return y;let a=((O=o.apiBase)!=null?O:"https://api.sentient-ui.com").replace(/\/+$/,"").replace(/\/v1$/,""),c=Y(r);if(c.length===0)return y;let p=new Map,w=[];for(let e of c){let t=e.getAttribute("data-sentient-type"),n=t&&E.includes(t)?t:null,i=(D=n!=null?n:(k=o.typeOf)==null?void 0:k.call(o,e))!=null?D:S(e),m=`nc-${i}`;p.set(e,m);let h=B(e,r);w.push(v({componentId:m,semanticType:i,source:n?"markup":"auto"},h?{locator:h}:{}))}let F=(N=(M=(L=(_=r.defaultView)!=null?_:typeof window!="undefined"?window:void 0)==null?void 0:L.location)==null?void 0:M.pathname)!=null?N:"/";q(o.apiKey,a,F,w);let d=new Map,R=e=>{let t=d.get(e);return t||(t={ms:0,scroll:0,enterAt:null,intersecting:!1},d.set(e,t)),t},g=new IntersectionObserver(e=>{for(let t of e){let n=p.get(t.target);if(!n)continue;let i=R(n);t.isIntersecting?(i.intersecting=!0,i.enterAt=Date.now(),t.intersectionRatio>i.scroll&&(i.scroll=t.intersectionRatio)):(i.intersecting=!1,i.enterAt!=null&&(i.ms+=Date.now()-i.enterAt,i.enterAt=null))}},{threshold:[0,.25,.5,.75,1]});for(let e of p.keys())g.observe(e);let u=()=>{let e=Date.now();for(let[t,n]of d)if(n.enterAt!=null&&(n.ms+=e-n.enterAt,n.enterAt=null),!(n.ms<=0)){try{l.track({projectId:o.apiKey,componentId:t,eventType:"dwell",payload:{dwell_time:Math.round(n.ms),scroll_depth:Number(n.scroll.toFixed(2))}})}catch(i){}n.ms=0}},A=()=>{if(r.hidden)u();else{let e=Date.now();for(let t of d.values())t.intersecting&&(t.enterAt=e)}},f=!1,T=e=>{if(u(),e!=null&&e.persisted){f=!0;return}try{g.disconnect()}catch(t){}},b=e=>{if(!(e!=null&&e.persisted)||!f)return;f=!1;let t=Date.now();for(let n of d.values())n.enterAt=n.intersecting&&!r.hidden?t:null};r.addEventListener("visibilitychange",A);let s=(x=r.defaultView)!=null?x:typeof window!="undefined"?window:void 0;s==null||s.addEventListener("pagehide",T),s==null||s.addEventListener("pageshow",b);let $=setInterval(()=>{if(r.hidden||f)return;u();let e=Date.now();for(let t of d.values())t.intersecting&&(t.enterAt=e)},H),I=[];return o.microSignals&&[...p.entries()].forEach(([e,t],n)=>{I.push(K((i,m={})=>{try{l.track({projectId:o.apiKey,componentId:t,eventType:"micro_signal",payload:v({signalType:i},m)})}catch(h){}},e,void 0,{tabLoss:n===0}))}),()=>{u(),clearInterval($),r.removeEventListener("visibilitychange",A),s==null||s.removeEventListener("pagehide",T),s==null||s.removeEventListener("pageshow",b);for(let e of I)e();try{g.disconnect()}catch(e){}}}export{E as SEMANTIC_TYPES,j as classifyFeatures,S as classifySection,V as featuresFromElement,J as startEngagementCapture};
1
+ import{a as B}from"./chunk-KIP52DUJ.mjs";import{a as E,d as j,e as V,f as S}from"./chunk-EWP6FTHE.mjs";import{x as K,z as P}from"./chunk-RL5B6M4G.mjs";import"./chunk-2NVSFI4V.mjs";import{a as v}from"./chunk-TMCGHANO.mjs";var z="section, header, footer, nav, main > div, [data-sentient-section]",H=2e4;function Y(l){let o=Array.from(l.querySelectorAll(z)),r=o.filter(a=>o.filter(c=>c!==a&&a.contains(c)).length<2);return r.filter(a=>!r.some(c=>c!==a&&c.contains(a)))}function q(l,o,r,a){try{fetch(`${o}/v1/section-map`,{method:"POST",keepalive:!0,headers:{"content-type":"application/json",authorization:`Bearer ${l}`},body:JSON.stringify({pageUrl:r,sections:a})}).catch(()=>{})}catch(c){}}var y=()=>{};function J(l,o){var C,O,k,D,_,L,M,N,x;let r=(C=o.doc)!=null?C:typeof document!="undefined"?document:void 0;if(!r||typeof IntersectionObserver=="undefined"||P()||!o.apiKey||!o.apiKey.startsWith("pk_"))return y;let a=((O=o.apiBase)!=null?O:"https://api.sentient-ui.com").replace(/\/+$/,"").replace(/\/v1$/,""),c=Y(r);if(c.length===0)return y;let p=new Map,w=[];for(let e of c){let t=e.getAttribute("data-sentient-type"),n=t&&E.includes(t)?t:null,i=(D=n!=null?n:(k=o.typeOf)==null?void 0:k.call(o,e))!=null?D:S(e),m=`nc-${i}`;p.set(e,m);let h=B(e,r);w.push(v({componentId:m,semanticType:i,source:n?"markup":"auto"},h?{locator:h}:{}))}let F=(N=(M=(L=(_=r.defaultView)!=null?_:typeof window!="undefined"?window:void 0)==null?void 0:L.location)==null?void 0:M.pathname)!=null?N:"/";q(o.apiKey,a,F,w);let d=new Map,R=e=>{let t=d.get(e);return t||(t={ms:0,scroll:0,enterAt:null,intersecting:!1},d.set(e,t)),t},g=new IntersectionObserver(e=>{for(let t of e){let n=p.get(t.target);if(!n)continue;let i=R(n);t.isIntersecting?(i.intersecting=!0,i.enterAt=Date.now(),t.intersectionRatio>i.scroll&&(i.scroll=t.intersectionRatio)):(i.intersecting=!1,i.enterAt!=null&&(i.ms+=Date.now()-i.enterAt,i.enterAt=null))}},{threshold:[0,.25,.5,.75,1]});for(let e of p.keys())g.observe(e);let u=()=>{let e=Date.now();for(let[t,n]of d)if(n.enterAt!=null&&(n.ms+=e-n.enterAt,n.enterAt=null),!(n.ms<=0)){try{l.track({projectId:o.apiKey,componentId:t,eventType:"dwell",payload:{dwell_time:Math.round(n.ms),scroll_depth:Number(n.scroll.toFixed(2))}})}catch(i){}n.ms=0}},A=()=>{if(r.hidden)u();else{let e=Date.now();for(let t of d.values())t.intersecting&&(t.enterAt=e)}},f=!1,T=e=>{if(u(),e!=null&&e.persisted){f=!0;return}try{g.disconnect()}catch(t){}},b=e=>{if(!(e!=null&&e.persisted)||!f)return;f=!1;let t=Date.now();for(let n of d.values())n.enterAt=n.intersecting&&!r.hidden?t:null};r.addEventListener("visibilitychange",A);let s=(x=r.defaultView)!=null?x:typeof window!="undefined"?window:void 0;s==null||s.addEventListener("pagehide",T),s==null||s.addEventListener("pageshow",b);let $=setInterval(()=>{if(r.hidden||f)return;u();let e=Date.now();for(let t of d.values())t.intersecting&&(t.enterAt=e)},H),I=[];return o.microSignals&&[...p.entries()].forEach(([e,t],n)=>{I.push(K((i,m={})=>{try{l.track({projectId:o.apiKey,componentId:t,eventType:"micro_signal",payload:v({signalType:i},m)})}catch(h){}},e,void 0,{tabLoss:n===0}))}),()=>{u(),clearInterval($),r.removeEventListener("visibilitychange",A),s==null||s.removeEventListener("pagehide",T),s==null||s.removeEventListener("pageshow",b);for(let e of I)e();try{g.disconnect()}catch(e){}}}export{E as SEMANTIC_TYPES,j as classifyFeatures,S as classifySection,V as featuresFromElement,J as startEngagementCapture};
2
2
  //# sourceMappingURL=index-engagement.mjs.map
@@ -1,6 +1,6 @@
1
- import { E as CompoundLocator, a6 as SentientConfig, a5 as SentientClient } from './index-CXxvWxCB.cjs';
2
- export { A as AssignResult, a as Assignment, b as AssignmentCache, B as BLOCK_ALIGNS, c as BLOCK_EMPHASES, d as BLOCK_FITS, e as BLOCK_GAPS, f as BLOCK_GRID_COLUMNS, g as BLOCK_HEADING_LEVELS, h as BLOCK_JUSTIFIES, i as BLOCK_RATIOS, j as BLOCK_SIZES, k as BLOCK_TEXT_ALIGNS, l as BLOCK_TONES, m as BLOCK_WEIGHTS, n as BadgeBlock, o as BlockAlign, p as BlockEmphasis, q as BlockFit, r as BlockGap, s as BlockJustify, t as BlockNode, u as BlockRatio, v as BlockSize, w as BlockTextAlign, x as BlockTone, y as BlockWeight, z as ButtonBlock, H as DecisionSnapshot, I as EventQueue, J as EventType, M as GraphClient, N as GraphConfig, O as GraphSnapshot, P as GridBlock, Q as HeadingBlock, R as ImageBlock, S as LEGACY_SESSION_COOKIE_NAME, U as LinkBlock, V as MAX_BLOCK_ARMS, W as MAX_BLOCK_CHILDREN, X as MAX_BLOCK_DEPTH, Y as MAX_BLOCK_NODES, Z as MAX_BLOCK_TEXT_LEN, _ as MicroSignalEmitter, $ as MicroSignalType, a1 as PageNode, a2 as QueueConfig, a3 as SNAPSHOT_STORAGE_KEY_PREFIX, a7 as SentientEvent, a8 as SessionConfig, a9 as SessionManager, aa as SitePalette, ab as SlotConfigEntry, ac as SlotOps, ad as SpacerBlock, ae as StackBlock, af as TextBlock, ai as attachMicroSignalDetectors, aj as grantConsent, al as isDoNotTrackEnabled, am as readSnapshot, an as renderPrePaintScript, ao as sanitizePageUrl, ap as sessionCookieName, aq as writeSnapshot } from './index-CXxvWxCB.cjs';
3
- export { b as SlotDeclInput, e as armOfResult, f as baselineResultFor, g as baselineSlots, j as deriveSessionSegment, k as detectDeviceClass, l as detectTimeOfDay, m as detectTrafficSource, r as referrerDomainFromReferer, t as toWireSlot } from './session-meta-BVvq5RBB.cjs';
1
+ import { E as CompoundLocator, a6 as SentientConfig, a5 as SentientClient } from './index-Cd0gMdJv.cjs';
2
+ export { A as AssignResult, a as Assignment, b as AssignmentCache, B as BLOCK_ALIGNS, c as BLOCK_EMPHASES, d as BLOCK_FITS, e as BLOCK_GAPS, f as BLOCK_GRID_COLUMNS, g as BLOCK_HEADING_LEVELS, h as BLOCK_JUSTIFIES, i as BLOCK_RATIOS, j as BLOCK_SIZES, k as BLOCK_TEXT_ALIGNS, l as BLOCK_TONES, m as BLOCK_WEIGHTS, n as BadgeBlock, o as BlockAlign, p as BlockEmphasis, q as BlockFit, r as BlockGap, s as BlockJustify, t as BlockNode, u as BlockRatio, v as BlockSize, w as BlockTextAlign, x as BlockTone, y as BlockWeight, z as ButtonBlock, H as DecisionSnapshot, I as EventQueue, J as EventType, M as GraphClient, N as GraphConfig, O as GraphSnapshot, P as GridBlock, Q as HeadingBlock, R as ImageBlock, S as LEGACY_SESSION_COOKIE_NAME, U as LinkBlock, V as MAX_BLOCK_ARMS, W as MAX_BLOCK_CHILDREN, X as MAX_BLOCK_DEPTH, Y as MAX_BLOCK_NODES, Z as MAX_BLOCK_TEXT_LEN, _ as MicroSignalEmitter, $ as MicroSignalType, a1 as PageNode, a2 as QueueConfig, a3 as SNAPSHOT_STORAGE_KEY_PREFIX, a7 as SentientEvent, a8 as SessionConfig, a9 as SessionManager, aa as SitePalette, ab as SlotConfigEntry, ac as SlotOps, ad as SpacerBlock, ae as StackBlock, af as TextBlock, ai as attachMicroSignalDetectors, aj as grantConsent, al as isDoNotTrackEnabled, am as readSnapshot, an as renderPrePaintScript, ao as sanitizePageUrl, ap as sessionCookieName, aq as writeSnapshot } from './index-Cd0gMdJv.cjs';
3
+ export { b as SlotDeclInput, e as armOfResult, f as baselineResultFor, g as baselineSlots, j as deriveSessionSegment, k as detectDeviceClass, l as detectTimeOfDay, m as detectTrafficSource, r as referrerDomainFromReferer, t as toWireSlot } from './session-meta-C-bMqVeq.cjs';
4
4
  export { SlotResult } from '@sentientui/policy';
5
5
 
6
6
  /** Reads the rendered DOM to build the page-side context graph. */
@@ -1,6 +1,6 @@
1
- import { E as CompoundLocator, a6 as SentientConfig, a5 as SentientClient } from './index-BbrtAtrY.js';
2
- export { A as AssignResult, a as Assignment, b as AssignmentCache, B as BLOCK_ALIGNS, c as BLOCK_EMPHASES, d as BLOCK_FITS, e as BLOCK_GAPS, f as BLOCK_GRID_COLUMNS, g as BLOCK_HEADING_LEVELS, h as BLOCK_JUSTIFIES, i as BLOCK_RATIOS, j as BLOCK_SIZES, k as BLOCK_TEXT_ALIGNS, l as BLOCK_TONES, m as BLOCK_WEIGHTS, n as BadgeBlock, o as BlockAlign, p as BlockEmphasis, q as BlockFit, r as BlockGap, s as BlockJustify, t as BlockNode, u as BlockRatio, v as BlockSize, w as BlockTextAlign, x as BlockTone, y as BlockWeight, z as ButtonBlock, H as DecisionSnapshot, I as EventQueue, J as EventType, M as GraphClient, N as GraphConfig, O as GraphSnapshot, P as GridBlock, Q as HeadingBlock, R as ImageBlock, S as LEGACY_SESSION_COOKIE_NAME, U as LinkBlock, V as MAX_BLOCK_ARMS, W as MAX_BLOCK_CHILDREN, X as MAX_BLOCK_DEPTH, Y as MAX_BLOCK_NODES, Z as MAX_BLOCK_TEXT_LEN, _ as MicroSignalEmitter, $ as MicroSignalType, a1 as PageNode, a2 as QueueConfig, a3 as SNAPSHOT_STORAGE_KEY_PREFIX, a7 as SentientEvent, a8 as SessionConfig, a9 as SessionManager, aa as SitePalette, ab as SlotConfigEntry, ac as SlotOps, ad as SpacerBlock, ae as StackBlock, af as TextBlock, ai as attachMicroSignalDetectors, aj as grantConsent, al as isDoNotTrackEnabled, am as readSnapshot, an as renderPrePaintScript, ao as sanitizePageUrl, ap as sessionCookieName, aq as writeSnapshot } from './index-BbrtAtrY.js';
3
- export { b as SlotDeclInput, e as armOfResult, f as baselineResultFor, g as baselineSlots, j as deriveSessionSegment, k as detectDeviceClass, l as detectTimeOfDay, m as detectTrafficSource, r as referrerDomainFromReferer, t as toWireSlot } from './session-meta-BVvq5RBB.js';
1
+ import { E as CompoundLocator, a6 as SentientConfig, a5 as SentientClient } from './index-BjVvN7cU.js';
2
+ export { A as AssignResult, a as Assignment, b as AssignmentCache, B as BLOCK_ALIGNS, c as BLOCK_EMPHASES, d as BLOCK_FITS, e as BLOCK_GAPS, f as BLOCK_GRID_COLUMNS, g as BLOCK_HEADING_LEVELS, h as BLOCK_JUSTIFIES, i as BLOCK_RATIOS, j as BLOCK_SIZES, k as BLOCK_TEXT_ALIGNS, l as BLOCK_TONES, m as BLOCK_WEIGHTS, n as BadgeBlock, o as BlockAlign, p as BlockEmphasis, q as BlockFit, r as BlockGap, s as BlockJustify, t as BlockNode, u as BlockRatio, v as BlockSize, w as BlockTextAlign, x as BlockTone, y as BlockWeight, z as ButtonBlock, H as DecisionSnapshot, I as EventQueue, J as EventType, M as GraphClient, N as GraphConfig, O as GraphSnapshot, P as GridBlock, Q as HeadingBlock, R as ImageBlock, S as LEGACY_SESSION_COOKIE_NAME, U as LinkBlock, V as MAX_BLOCK_ARMS, W as MAX_BLOCK_CHILDREN, X as MAX_BLOCK_DEPTH, Y as MAX_BLOCK_NODES, Z as MAX_BLOCK_TEXT_LEN, _ as MicroSignalEmitter, $ as MicroSignalType, a1 as PageNode, a2 as QueueConfig, a3 as SNAPSHOT_STORAGE_KEY_PREFIX, a7 as SentientEvent, a8 as SessionConfig, a9 as SessionManager, aa as SitePalette, ab as SlotConfigEntry, ac as SlotOps, ad as SpacerBlock, ae as StackBlock, af as TextBlock, ai as attachMicroSignalDetectors, aj as grantConsent, al as isDoNotTrackEnabled, am as readSnapshot, an as renderPrePaintScript, ao as sanitizePageUrl, ap as sessionCookieName, aq as writeSnapshot } from './index-BjVvN7cU.js';
3
+ export { b as SlotDeclInput, e as armOfResult, f as baselineResultFor, g as baselineSlots, j as deriveSessionSegment, k as detectDeviceClass, l as detectTimeOfDay, m as detectTrafficSource, r as referrerDomainFromReferer, t as toWireSlot } from './session-meta-C-bMqVeq.js';
4
4
  export { SlotResult } from '@sentientui/policy';
5
5
 
6
6
  /** Reads the rendered DOM to build the page-side context graph. */
@@ -1,2 +1,2 @@
1
- "use strict";var Mt=Object.create;var ve=Object.defineProperty,Kt=Object.defineProperties,Gt=Object.getOwnPropertyDescriptor,$t=Object.getOwnPropertyDescriptors,Ut=Object.getOwnPropertyNames,et=Object.getOwnPropertySymbols,Ft=Object.getPrototypeOf,nt=Object.prototype.hasOwnProperty,jt=Object.prototype.propertyIsEnumerable;var tt=(e,t,n)=>t in e?ve(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,v=(e,t)=>{for(var n in t||(t={}))nt.call(t,n)&&tt(e,n,t[n]);if(et)for(var n of et(t))jt.call(t,n)&&tt(e,n,t[n]);return e},j=(e,t)=>Kt(e,$t(t));var Wt=(e,t)=>{for(var n in t)ve(e,n,{get:t[n],enumerable:!0})},ot=(e,t,n,c)=>{if(t&&typeof t=="object"||typeof t=="function")for(let d of Ut(t))!nt.call(e,d)&&d!==n&&ve(e,d,{get:()=>t[d],enumerable:!(c=Gt(t,d))||c.enumerable});return e};var Ht=(e,t,n)=>(n=e!=null?Mt(Ft(e)):{},ot(t||!e||!e.__esModule?ve(n,"default",{value:e,enumerable:!0}):n,e)),zt=e=>ot(ve({},"__esModule",{value:!0}),e);var yo={};Wt(yo,{BLOCK_ALIGNS:()=>mn,BLOCK_EMPHASES:()=>vn,BLOCK_FITS:()=>xn,BLOCK_GAPS:()=>fn,BLOCK_GRID_COLUMNS:()=>Cn,BLOCK_HEADING_LEVELS:()=>In,BLOCK_JUSTIFIES:()=>yn,BLOCK_RATIOS:()=>En,BLOCK_SIZES:()=>hn,BLOCK_TEXT_ALIGNS:()=>wn,BLOCK_TONES:()=>bn,BLOCK_WEIGHTS:()=>Sn,LEGACY_SESSION_COOKIE_NAME:()=>we,MAX_BLOCK_ARMS:()=>_n,MAX_BLOCK_CHILDREN:()=>An,MAX_BLOCK_DEPTH:()=>kn,MAX_BLOCK_NODES:()=>Tn,MAX_BLOCK_TEXT_LEN:()=>Rn,SNAPSHOT_STORAGE_KEY_PREFIX:()=>oe,armOfResult:()=>Le,attachMicroSignalDetectors:()=>ht,baselineResultFor:()=>fe,baselineSlots:()=>pt,deriveSessionSegment:()=>je,detectDeviceClass:()=>le,detectTimeOfDay:()=>pe,detectTrafficSource:()=>de,grantConsent:()=>xt,init:()=>Bt,isDoNotTrackEnabled:()=>Ce,locatorFromElement:()=>Ke,readSnapshot:()=>me,referrerDomainFromReferer:()=>ue,renderPrePaintScript:()=>gt,sanitizePageUrl:()=>Qe,sessionCookieName:()=>ae,toWireSlot:()=>Ee,writeSnapshot:()=>ye});module.exports=zt(yo);function ke(){try{if(typeof crypto!="undefined"&&typeof crypto.randomUUID=="function")return crypto.randomUUID()}catch(e){}try{if(typeof crypto!="undefined"&&typeof crypto.getRandomValues=="function"){let e=new Uint8Array(16);crypto.getRandomValues(e),e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t="";for(let n=0;n<16;n++)t+=e[n].toString(16).padStart(2,"0"),(n===3||n===5||n===7||n===9)&&(t+="-");return t}}catch(e){}return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function ne(e){return e?`_${e.slice(0,12)}`:""}var we="_snt_uid";function ae(e){return`${we}${ne(e)}`}var qt="_snt_uid",Qt=365,Ae="_snt_uid";function Jt(){return ke()}function rt(e){try{let t=document.cookie.match(new RegExp(`(?:^|; )${e}=([^;]*)`));return t?decodeURIComponent(t[1]):null}catch(t){return null}}function Xt(e,t,n){try{document.cookie=`${e}=${encodeURIComponent(t)}; max-age=${n}; SameSite=strict; path=/`}catch(c){}}function $e(e){try{return localStorage.getItem(e)}catch(t){return null}}function st(e,t){try{return localStorage.setItem(e,t),!0}catch(n){return!1}}function it(e){try{return sessionStorage.getItem(e)}catch(t){return null}}function Vt(e,t){try{return sessionStorage.setItem(e,t),!0}catch(n){return!1}}function Yt(e){try{sessionStorage.removeItem(e)}catch(t){}}function Zt(e){try{return document.cookie=`${e}_probe=1; max-age=1; SameSite=strict; path=/`,document.cookie.indexOf(`${e}_probe=1`)!==-1}catch(t){return!1}}function en(e){try{localStorage.removeItem(e)}catch(t){}}function tn(e){try{document.cookie=`${e}=; max-age=0; SameSite=strict; path=/`}catch(t){}}var nn={getSessionId:()=>null,isEphemeral:()=>!1,destroy:()=>{}};function _e(e){var m,S,E,w,G,U,_;if(typeof window=="undefined")return nn;let t=ne(e==null?void 0:e.apiKey),n=(m=e==null?void 0:e.cookieName)!=null?m:ae(e==null?void 0:e.apiKey),c=`${Ae}${t}`,d=`${Ae}_tomb${t}`,i=((S=e==null?void 0:e.cookieTTLDays)!=null?S:Qt)*24*60*60,l=C=>C&&C.length>0?C:null,u=()=>{var C,P;return t&&!(e!=null&&e.cookieName)&&$e(d)===null?(P=(C=l(rt(qt)))!=null?C:l($e(Ae)))!=null?P:l(it(Ae)):null},r=(_=(U=(G=(w=(E=l(rt(n)))!=null?E:l($e(c)))!=null?w:l(it(c)))!=null?G:u())!=null?U:l(e==null?void 0:e.ssrSessionId))!=null?_:Jt();Xt(n,r,i);let o=st(c,r),s=Zt(n),f=o?!1:Vt(c,r),p=!o&&!s&&!f;return{getSessionId:()=>r,isEphemeral:()=>p,destroy:()=>{r=null,tn(n),en(c),Yt(c),t&&!(e!=null&&e.cookieName)&&st(d,"1")}}}function V(e){return Math.min(6e4,1e3*2**Math.min(e,6))}function ce(e){if(e.ok===!0)return"delivered";let{status:t}=e;return typeof t!="number"?"retry":t>=200&&t<300?"delivered":t>=400&&t<500&&t!==429?"dropped":"retry"}function Re(e,t){try{let n=localStorage.getItem(e);if(!n)return[];let c=JSON.parse(n);return Array.isArray(c)?(localStorage.removeItem(e),c.slice(-t)):[]}catch(n){return[]}}function Y(e,t,n){try{let c=(()=>{try{let a=localStorage.getItem(n);if(!a)return[];let i=JSON.parse(a);return Array.isArray(i)?i:[]}catch(a){return[]}})(),d=new Map;for(let a of c)d.set(a.id,a);for(let a of e)d.set(a.id,a);localStorage.setItem(n,JSON.stringify([...d.values()].slice(-t)))}catch(c){}}function Oe(e,t){try{let n=localStorage.getItem(t);if(!n)return;let c=JSON.parse(n);if(!Array.isArray(c))return;let d=new Set(e),a=c.filter(i=>!d.has(i.id));if(a.length===c.length)return;a.length===0?localStorage.removeItem(t):localStorage.setItem(t,JSON.stringify(a))}catch(n){}}var on=500,rn=56*1024;function Ue(e){return`_snt_retry_${e.slice(0,12)}`}var sn={push:()=>{},flush:()=>{},destroy:()=>{}};function at(e){var Z,B,re;if(typeof window=="undefined")return sn;let t=(Z=e.flushIntervalMs)!=null?Z:5e3,n=(B=e.maxBatchSize)!=null?B:20,c=(re=e.maxRetrySize)!=null?re:100,d=e.ingestUrl,a=e.apiKey,i=Ue(a),l=[],u=new Set,r=[],o=h=>{for(let T of h)s.delete(T),!u.has(T)&&(u.add(T),r.push(T));for(;r.length>on;){let T=r.shift();T&&u.delete(T)}Oe(h,i)},s=new Set,f=()=>{for(;l.length>c;){let h=l.shift();h&&s.delete(h.id)}},p=h=>{u.has(h.id)||s.has(h.id)||(s.add(h.id),l.push(h),f())},m=h=>{for(let T of h)u.has(T.id)||(s.add(T.id),l.push(T));f()},S=Re(i,c);for(let h of S)p(h);let E=0,w=0,G=(h,T=!0)=>{if(h.length===0)return;let H=JSON.stringify(h),ee=h.map(q=>q.id),F;try{F=fetch(d,{method:"POST",keepalive:!0,body:H,headers:{"Content-Type":"application/json",Authorization:`Bearer ${a}`}})}catch(q){Y(h,c,i),m(h),w++,E=Date.now()+V(w);return}let he=q=>{if(ce(q)!=="retry"){if(!q.ok&&T){let se=h.filter(Q=>Q.eventType!=="pageview");if(se.length>0&&se.length<h.length){o(h.filter(Q=>Q.eventType==="pageview").map(Q=>Q.id)),G(se,!1);return}}o(ee),w=0,E=0;return}Y(h,c,i),m(h),w++,E=Date.now()+V(w)};F instanceof Promise?F.then(he).catch(()=>{Y(h,c,i),m(h),w++,E=Date.now()+V(w)}):he(F)},U=typeof TextEncoder!="undefined"?new TextEncoder:null,_=h=>U?U.encode(h).length:h.length,C=h=>{let T=[],H=2;for(let ee of h){let F=_(JSON.stringify(ee))+1;if(T.length>0&&H+F>rn||T.length>=n)break;T.push(ee),H+=F}return T},P=()=>{try{if(Date.now()<E)return;for(;l.length>0&&!(Date.now()<E);){let h=l.filter(H=>!u.has(H.id));if(l.length=0,h.length===0)break;let T=C(h);if(T.length===0)break;T.length<h.length&&l.push(...h.slice(T.length)),G(T)}}catch(h){}},b=!0,O=null;O=setInterval(()=>{b&&P()},t);let D=()=>{document.visibilityState==="hidden"&&P()},W=()=>{P()};return document.addEventListener("visibilitychange",D),window.addEventListener("pagehide",W),{push(h){p(h),l.length>=n&&P()},flush:P,destroy(){b=!1,O!==null&&(clearInterval(O),O=null),document.removeEventListener("visibilitychange",D),window.removeEventListener("pagehide",W),P()}}}var an=200;function Fe(e){return`_snt_goal_retry_${e.slice(0,12)}`}var cn={send:()=>{},flush:()=>{},destroy:()=>{}};function ct(e){var _,C,P;if(typeof window=="undefined")return cn;let t=(_=e.flushIntervalMs)!=null?_:5e3,n=(C=e.maxRetrySize)!=null?C:100,c=(P=e.maxPerFlush)!=null?P:5,d=Fe(e.apiKey),a=[],i=new Set,l=new Set,u=[],r=0,o=0,s=!1,f=b=>{for(i.delete(b.id),l.has(b.id)||(l.add(b.id),u.push(b.id));u.length>an;){let O=u.shift();O&&l.delete(O)}Oe([b.id],d)},p=b=>{Y([b],n,d),!l.has(b.id)&&!i.has(b.id)&&(i.add(b.id),a.push(b)),Date.now()>=r&&(o++,r=Date.now()+V(o))},m=b=>{let O;try{O=fetch(e.url,{method:"POST",keepalive:!0,body:b.body,headers:e.headers})}catch(W){p(b);return}let D=W=>{var B;let Z=ce(W);if(Z==="retry"){p(b);return}Z==="dropped"&&((B=e.onDrop)==null||B.call(e,b,W.status)),f(b),o=0,r=0};O instanceof Promise?O.then(D).catch(()=>p(b)):D(O)},S=()=>{try{if(s||Date.now()<r)return;let b=0;for(;a.length>0&&b<c&&!(Date.now()<r);){let O=a.shift();i.delete(O.id),!l.has(O.id)&&(b++,m(O))}}catch(b){}},E=Re(d,n);for(let b of E)i.has(b.id)||(i.add(b.id),a.push(b));E.length>0&&Y(E,n,d);let w=setInterval(S,t),G=()=>{document.visibilityState==="hidden"&&S()},U=()=>S();return document.addEventListener("visibilitychange",G),window.addEventListener("pagehide",U),{send(b){if(!s&&!(l.has(b.id)||i.has(b.id))){if(Date.now()<r){Y([b],n,d),i.add(b.id),a.push(b);return}m(b)}},flush:S,destroy(){clearInterval(w),document.removeEventListener("visibilitychange",G),window.removeEventListener("pagehide",U),S(),s=!0}}}var ln=1800*1e3;function Ne(e,t){return`${encodeURIComponent(e)}:${encodeURIComponent(t)}`}function lt(e=ln,t){let n=new Map,c=`_snt_asgn${ne(t)}_`,d=(r,o)=>`${c}${encodeURIComponent(r)}:${encodeURIComponent(o)}`,a=r=>{let o=r.slice(c.length),s=o.indexOf(":");if(s<0)return null;try{return{componentId:decodeURIComponent(o.slice(0,s)),segment:decodeURIComponent(o.slice(s+1))}}catch(f){return null}},i=()=>{try{let r=[];for(let o=0;o<localStorage.length;o++){let s=localStorage.key(o);s!=null&&s.startsWith(c)&&r.push(s)}return r}catch(r){return[]}},l=r=>r.assignedAt+(r.ttlMs&&r.ttlMs>0?r.ttlMs:e)<Date.now();return typeof window!="undefined"&&(()=>{for(let r of i())try{let o=localStorage.getItem(r);if(!o)continue;let s=JSON.parse(o);if(l(s)){localStorage.removeItem(r);continue}let f=a(r);if(!f)continue;n.set(Ne(f.componentId,f.segment),s)}catch(o){}})(),{get(r,o){let s=n.get(Ne(r,o));return s?l(s)?(n.delete(Ne(r,o)),null):s:null},set(r,o,s){let f=Ne(r,o);n.set(f,s);try{localStorage.setItem(d(r,o),JSON.stringify(s))}catch(p){}},clear(){n.clear();for(let r of i())try{localStorage.removeItem(r)}catch(o){}}}}var dt=["GPTBot","ChatGPT-User","OAI-SearchBot","ClaudeBot","Claude-User","Claude-SearchBot","PerplexityBot","Perplexity-User","Google-Extended","Applebot-Extended","Meta-ExternalAgent","Bytespider","CCBot","Amazonbot","cohere-ai","Diffbot"];function Pe(e){return ut(e)!==null}function ut(e){var n;if(!e)return null;let t=e.toLowerCase();return(n=dt.find(c=>t.includes(c.toLowerCase())))!=null?n:null}function le(e){let t=e.toLowerCase();return/ipad|tablet|playbook|kindle|silk/.test(t)?"tablet":/mobi|iphone|ipod|android.*mobile|phone/.test(t)?"mobile":"desktop"}function de(e,t){if(!e)return"direct";try{let n=new URL(e);if(t)try{if(new URL(t).host===n.host)return"direct"}catch(d){}let c=n.hostname.toLowerCase();return/(^|\.)(google|bing|duckduckgo|yahoo)\./.test(c)?"search":/(^|\.)(twitter\.com|x\.com|facebook\.com|linkedin\.com|reddit\.com|t\.co)$/.test(c)?"social":"referral"}catch(n){return"direct"}}function ue(e){if(!e)return null;try{return new URL(e).hostname}catch(t){return null}}function pe(e){let t=e.getHours();return t<6?"night":t<12?"morning":t<18?"afternoon":"evening"}function je(e){let t=dn("__segment__",e);return`${t.deviceClass}:${t.trafficSource}`}function dn(e,t){var a,i,l,u,r,o,s;let n=(i=(a=t==null?void 0:t.userAgent)==null?void 0:a.trim())!=null?i:"",c=(u=(l=t==null?void 0:t.referer)==null?void 0:l.trim())!=null?u:"",d=(r=t==null?void 0:t.now)!=null?r:new Date;return{sessionId:e,ephemeral:!1,utmParams:(o=t==null?void 0:t.utmParams)!=null?o:{},deviceClass:n?le(n):"desktop",trafficSource:c?de(c,t==null?void 0:t.appOrigin):"direct",referrerDomain:ue(c),timeOfDay:pe(d),dayOfWeek:(s=["sun","mon","tue","wed","thu","fri","sat"][d.getDay()])!=null?s:"sun",automation:(t==null?void 0:t.webdriver)===!0||Pe(n)}}var ge=require("@sentientui/policy");function Ee(e){return v(v(v({id:e.id},e.arms?{arms:[...e.arms]}:{}),e.dims?{dims:Object.fromEntries(Object.entries(e.dims).map(([t,n])=>[t,[...n]]))}:{}),e.baseline!==void 0?{baseline:e.baseline}:{})}function fe(e){let t=Ee(e);return(0,ge.slotResultFor)(t,(0,ge.slotBaselineArm)(t))}function pt(e){let t={};for(let n of e)t[n.id]=fe(n);return t}function Le(e){return typeof e=="string"?e:(0,ge.canonicalArm)(e)}var oe="_snt_snap:",un=["low","medium","high"];function me(e){try{let t=localStorage.getItem(oe+e);if(!t)return null;let n=JSON.parse(t);return!n||typeof n!="object"||n.v!==1||typeof n.persona!="string"||typeof n.band!="string"||!un.includes(n.band)||typeof n.slots!="object"||n.slots===null||Array.isArray(n.slots)||!(n.layoutOrder===null||Array.isArray(n.layoutOrder))||typeof n.savedAt!="number"||!(n.slotConfig===void 0||typeof n.slotConfig=="object"&&n.slotConfig!==null&&!Array.isArray(n.slotConfig))?null:n}catch(t){return null}}function ye(e,t){try{localStorage.setItem(oe+e,JSON.stringify(t))}catch(n){}}function gt(e){return"(function(){try{var r=localStorage.getItem("+JSON.stringify(oe+e).replace(/</g,"\\u003c")+');if(!r)return;var s=JSON.parse(r);if(!s||s.v!==1||typeof s.persona!=="string"||typeof s.band!=="string")return;var d=document.documentElement;if(d.hasAttribute("data-sentient-persona"))return;d.setAttribute("data-sentient-persona",s.persona);d.setAttribute("data-sentient-confidence",s.band);}catch(e){}})();'}var He=require("@sentientui/policy");var Be=require("@sentientui/policy");var ft="[sentient] No API key configured \u2014 nothing is being learned. Set NEXT_PUBLIC_SENTIENT_API_KEY or pass localMode: true for local development.",pn="[sentient] Local mode \u2014 decisions are simulated on-device and nothing is sent over the network. Add an API key to learn from real traffic.",mt=!1,De=!1;function gn(){var e;try{return(e=new URLSearchParams(window.location.search).get("sentient_persona"))!=null?e:void 0}catch(t){return}}function yt(e){var r;let t=_e({ssrSessionId:e.ssrSessionId,apiKey:e.apiKey}),n=(r=t.getSessionId())!=null?r:"local",c=gn(),d=import("@sentientui/core/local").then(o=>{let s=o;return s.LOCAL_ENGINE_AVAILABLE?(mt||(mt=!0,console.info(pn)),s):(De||(De=!0,console.error(ft)),null)}).catch(()=>(De||(De=!0,console.error(ft)),null)),a=null,i={low:.15,medium:.5,high:.85},l=(()=>{var s;if(e.initialPersona)return v({},e.initialPersona);let o=me(e.apiKey||"local");return o?{persona:o.persona,confidence:(s=i[o.band])!=null?s:.15}:null})();function u(o){let s=document.documentElement;s.dataset.sentientPersona===void 0&&(s.dataset.sentientPersona=o.persona,s.dataset.sentientConfidence=(0,Be.confidenceBand)(o.confidence))}return{isLocal:!0,async decide(o){var p,m,S;let s=await d;if(!s)return null;let f=s.createLocalEngine({sessionId:n,forcedPersona:c}).decide(o);return a=j(v({},f),{layoutOrder:(m=(p=f.layoutOrder)!=null?p:a==null?void 0:a.layoutOrder)!=null?m:null,slots:v(v({},(S=a==null?void 0:a.slots)!=null?S:{}),f.slots)}),ye(e.apiKey||"local",{v:1,persona:a.persona,band:(0,Be.confidenceBand)(a.confidence),slots:a.slots,layoutOrder:a.layoutOrder,savedAt:Date.now()}),u(f),f},getSlotResult(o){var s,f,p;return(p=(f=a==null?void 0:a.slots[o])!=null?f:(s=e.initialSlots)==null?void 0:s[o])!=null?p:null},getPersona(){let o=a!=null?a:l;return o?{persona:o.persona,confidence:o.confidence,band:(0,Be.confidenceBand)(o.confidence)}:null},async assign(o,s){var m;let f=await d;return!f||!s||s.length===0?s!=null&&s[0]?{variantId:s[0],assignmentTtlMs:0}:null:{variantId:(m=f.createLocalEngine({sessionId:n,forcedPersona:c}).decide({components:[{id:o,variantIds:s}]}).assignments[o])!=null?m:s[0],assignmentTtlMs:0}},track:()=>{},goal:()=>{},componentGoal:()=>{},identify:()=>{},getAssignment:()=>null,fetchWeights:()=>Promise.resolve([]),getGraph:()=>({pageNodes:[],capturedAt:0}),dispose:()=>{},destroy:()=>t.destroy()}}var fn=["none","sm","md","lg"],mn=["start","center","end","stretch"],yn=["start","center","end","between"],hn=["sm","md","lg"],Sn=["normal","medium","bold"],bn=["default","muted","accent"],vn=["primary","secondary","ghost"],wn=["left","center","right"],En=["auto","square","landscape","wide"],xn=["cover","contain"],Cn=[2,3,4],In=[2,3,4],Tn=64,kn=5,An=12,_n=4,Rn=500;function ht(e,t,n,c){let d=[];{let l=!1,u=[],r=()=>{if(l)return;let o=Date.now();for(u.push(o);u.length>0&&o-u[0]>500;)u.shift();u.length>=3&&(l=!0,e("rage_click"))};t.addEventListener("click",r),d.push(()=>t.removeEventListener("click",r))}{let a=!1,i=l=>{if(a||!(l.target instanceof Node)||!t.contains(l.target)&&t!==l.target)return;a=!0;let u=typeof window!="undefined"?window.getSelection():null,r=u?u.toString().length:0;e("text_copy",{selectionLength:r})};document.addEventListener("copy",i),d.push(()=>document.removeEventListener("copy",i))}{let a=!1,i=!1,l=null,u=()=>{l!==null&&(clearTimeout(l),l=null)},r=()=>{a||!i||(u(),l=setTimeout(()=>{!a&&i&&(a=!0,e("scroll_hesitation"))},3e3))},o=()=>{u(),r()},s=p=>{for(let m of p)i=m.intersectionRatio>.3,i?r():u()},f=new IntersectionObserver(s,{threshold:[.3]});f.observe(t),window.addEventListener("scroll",o,{passive:!0}),d.push(()=>{f.disconnect(),window.removeEventListener("scroll",o),u()})}if((c==null?void 0:c.tabLoss)!==!1){let a=!1,i=n!=null?n:Date.now(),l=()=>{if(a||document.visibilityState!=="hidden")return;let u=Date.now()-i;u<15e3&&(a=!0,e("tab_loss",{timeOnPage:u}))};document.addEventListener("visibilitychange",l),d.push(()=>document.removeEventListener("visibilitychange",l))}return()=>{for(let a of d)a()}}var St="https://api.sentient-ui.com/v1/events",K=new Map,bt=null;function vt(e,t){let n=K.get(e);n&&n.upgrade&&(n.reinit=t)}function On(e){return"value"in e||"currency"in e||"externalId"in e||"metadata"in e||"weight"in e||"stepIndex"in e}var Nn=3;function We(){return ke()}function Me(){var e;if(typeof window!="undefined")return((e=window.location)==null?void 0:e.pathname)||void 0}function Pn(){let e=new WeakMap,t=new Map,n=!1,c=(l,u,r)=>{let o=l.get(u);return r===null?o?!0:(l.set(u,new Set),!1):o?o.has(r)?!0:(o.add(r),!1):(l.set(u,new Set([r])),!1)},d=typeof window!="undefined"&&"event"in window,a=()=>{if(!d)return;let l=window.event;return typeof Event=="function"&&l instanceof Event?l:void 0},i=()=>{if(d){Promise.resolve().then(()=>{n=!1,t.clear()});return}let l=!1,u=()=>{l||(l=!0,n=!1,t.clear())};if(setTimeout(u,0),typeof MessageChannel=="function"){let r=new MessageChannel;r.port1.onmessage=()=>{r.port1.close(),r.port2.close(),u()},r.port2.postMessage(0)}};return{firedBefore(l,u){let r=a();if(r){let s=e.get(r);return s||(s=new Map,e.set(r,s)),c(s,l,u)}let o=c(t,l,u);return!o&&!n&&(n=!0,i()),o}}}var wt=new Set;function Ln(e,t,n){let c=typeof window=="undefined"?null:window.history;if(!c)return()=>{};let d=!1,a,i=()=>{if(d)return;let r=Me();!r||r===a||(a=r,e.track({projectId:t,componentId:"__page__",eventType:"pageview",payload:{}}),n(`${t}:${r}`))},l=[];for(let r of["pushState","replaceState"]){let o=c[r],s=function(...f){let p=o.apply(this,f);return i(),p};c[r]=s,l.push([r,o,s])}window.addEventListener("popstate",i);let u=Me();return u&&wt.has(`${t}:${u}`)?a=u:i(),()=>{if(!d){d=!0,window.removeEventListener("popstate",i);for(let[r,o,s]of l)c[r]===s&&(c[r]=o)}}}var xe={track:()=>{},goal:()=>{},componentGoal:()=>{},identify:()=>{},getAssignment:()=>null,assign:()=>Promise.resolve(null),decide:()=>Promise.resolve(null),getSlotResult:()=>null,getPersona:()=>null,fetchWeights:()=>Promise.resolve([]),getGraph:()=>({pageNodes:[],capturedAt:0}),dispose:()=>{},destroy:()=>{}};function Dn(){try{let e={},t=new URLSearchParams(window.location.search);for(let[n,c]of t)n.startsWith("utm_")&&(e[n]=c);return e}catch(e){return{}}}function Et(e){return e.replace(/\/events\/?$/,"")}function Ce(){return typeof navigator!="undefined"&&navigator.globalPrivacyControl===!0?!0:[typeof navigator!="undefined"?navigator.doNotTrack:void 0,typeof window!="undefined"?window.doNotTrack:void 0,typeof navigator!="undefined"?navigator.msDoNotTrack:void 0].some(t=>t==="1"||t==="yes")}function xt(e){var u;if(typeof window=="undefined")return;let t=e!=null?e:bt;if(!t){console.warn("[sentient] grantConsent() called before init()");return}let n=K.get(t);if(!n){console.warn("[sentient] grantConsent() called before init()");return}let{config:c,upgrade:d,reinit:a}=n;if(!d){n.upgradeBlockedReason&&console.warn(n.upgradeBlockedReason);return}if(c.respectDoNotTrack!==!1&&Ce())return;let i=(a!=null?a:qe)(j(v({},c),{consent:!0}));d(i);let l=(u=K.get(t))==null?void 0:u.dispose;K.set(t,{config:j(v({},c),{consent:!0}),upgrade:null,dispose:l})}function Bn(e){var r;let t=e.preConsentBehavior==="statistical_winner",n=Et((r=e.ingestUrl)!=null?r:St),c={"Content-Type":"application/json",Authorization:`Bearer ${e.apiKey}`},d=new Map,a=new Map,i={track:()=>{},goal:()=>{},componentGoal:()=>{},identify:()=>{},getAssignment:()=>null,fetchWeights:()=>Promise.resolve([]),assign(o,s,f){if(!t)return Promise.resolve(null);let p=d.get(o);return p?Promise.resolve(p):ze(a,o,async()=>{try{let m=new URLSearchParams({componentId:o});for(let G of s!=null?s:[])m.append("variantIds[]",G);let S=await fetch(`${n}/winner?${m.toString()}`,{headers:c});if(!S.ok)return s!=null&&s[0]?{variantId:s[0],assignmentTtlMs:0}:null;let w={variantId:(await S.json()).variantId,assignmentTtlMs:0};return d.set(o,w),w}catch(m){return s!=null&&s[0]?{variantId:s[0],assignmentTtlMs:0}:null}})},decide:()=>Promise.resolve(null),getSlotResult:()=>null,getPersona:()=>null,getGraph:()=>({pageNodes:[],capturedAt:0}),dispose:()=>{},destroy:()=>{}},l={track:o=>i.track(o),goal:((o,s,f,p)=>i.goal(o,s,f,p)),componentGoal:(o,s,f)=>i.componentGoal(o,s,f),identify:o=>i.identify(o),getAssignment:(o,s)=>i.getAssignment(o,s),assign:(o,s,f,p)=>i.assign(o,s,f,p),decide:o=>i.decide(o),getSlotResult:o=>i.getSlotResult(o),getPersona:()=>i.getPersona(),fetchWeights:()=>i.fetchWeights(),getGraph:()=>i.getGraph(),dispose:()=>i.dispose(),destroy:()=>i.destroy()};function u(o){i=o}return{proxy:l,setInner:u}}function ze(e,t,n){let c=e.get(t);if(c)return c;let d=(async()=>{try{return await n()}finally{e.delete(t)}})();return e.set(t,d),d}function qe(e){var T,H,ee,F,he,q,se,Q,Ve;if(typeof window=="undefined")return xe;bt=e.apiKey||"local";let t=K.get(e.apiKey||"local");if(t!=null&&t.dispose)try{t.dispose()}catch(g){}let n=e.respectDoNotTrack!==!1&&Ce(),c=e.consent===!1||n,d=typeof e.apiKey=="string"&&e.apiKey.startsWith("pk_");if(e.localMode===!0||!d&&e.localMode!==!1)return K.set(e.apiKey||"local",{config:e,upgrade:null,upgradeBlockedReason:"[sentient] grantConsent(): this client is keyless/local \u2014 there is no hosted client to upgrade to. Configure a pk_ API key to enable tracking."}),c?xe:yt(e);if(c){if(!e.apiKey||!e.apiKey.startsWith("pk_"))return e.preConsentBehavior==="statistical_winner"&&console.warn("[sentient] init() called with an invalid apiKey \u2014 expected a pk_ public key. SDK disabled."),K.set(e.apiKey||"local",{config:e,upgrade:null,upgradeBlockedReason:"[sentient] grantConsent(): the client was initialized with an invalid apiKey (expected a pk_ public key) \u2014 consent cannot enable tracking."}),xe;let{proxy:g,setInner:y}=Bn(e);return K.set(e.apiKey,{config:e,upgrade:n?null:y}),g}if(!e.apiKey||!e.apiKey.startsWith("pk_"))return console.warn("[sentient] init() called with an invalid apiKey \u2014 expected a pk_ public key. SDK disabled."),xe;if(e.ingestUrl==="")return console.warn("[sentient] init() called with an empty ingestUrl. SDK disabled."),xe;let a=(T=e.ingestUrl)!=null?T:St,i=Date.now(),l=_e({ssrSessionId:e.ssrSessionId,apiKey:e.apiKey}),u=lt(void 0,e.apiKey),r=at({ingestUrl:a,apiKey:e.apiKey}),o=Et(a),s={"Content-Type":"application/json",Authorization:`Bearer ${e.apiKey}`},f=new Set,p=ct({url:`${o}/goals`,apiKey:e.apiKey,headers:s,onDrop:(g,y)=>{if(!e.debug){if(f.has(y))return;f.add(y)}console.warn(`[sentient] goal dropped (HTTP ${y}) \u2014 this will not be retried. `+(y===400?"The session was not found: call init() and let the session upsert complete before firing goals.":y===401||y===403?"Check the API key and that this origin is on the project allowlist.":"See the response status for the cause."),g)}}),m=le((H=navigator.userAgent)!=null?H:""),S=window.location.origin,E=de((ee=document.referrer)!=null?ee:"",S),w=(F=e.sessionSegment)!=null?F:`${m}:${E}`,G=new Map,U=new Map,_=new Map,C=null,P=g=>{for(let y of g)_.has(y.id)||_.set(y.id,fe(y))};if(e.initialSlots)for(let[g,y]of Object.entries(e.initialSlots))_.set(g,y);let b=me(e.apiKey);if(b)for(let[g,y]of Object.entries(b.slots))_.has(g)||_.set(g,y);let O={low:.15,medium:.5,high:.85};if(e.initialPersona)C=v({},e.initialPersona);else{let g=document.documentElement.dataset;g.sentientPersona?C={persona:g.sentientPersona,confidence:(q=O[(he=g.sentientConfidence)!=null?he:"low"])!=null?q:.15}:b&&(C={persona:b.persona,confidence:(se=O[b.band])!=null?se:.15})}if(e.initialAssignments)for(let[g,y]of Object.entries(e.initialAssignments))u.set(g,w,{variantId:y,assignedAt:Date.now(),segment:w,confidence:1});let D=Promise.resolve(),W=l.getSessionId();if(W){let g=ue((Q=document.referrer)!=null?Q:""),y=v(v(v({sessionId:W,deviceClass:m,trafficSource:E,referrerDomain:g,utmParams:Dn(),timeOfDay:pe(new Date),dayOfWeek:["sun","mon","tue","wed","thu","fri","sat"][new Date().getDay()],ephemeral:l.isEphemeral(),automation:typeof navigator!="undefined"&&navigator.webdriver===!0||Pe((Ve=navigator.userAgent)!=null?Ve:"")},e.userId?{userId:e.userId}:{}),e.persona?{persona:e.persona}:{}),e.country?{country:e.country}:{}),x=async()=>{for(let A=0;;A++){try{let R=await fetch(`${o}/sessions`,{method:"POST",keepalive:!0,body:JSON.stringify(y),headers:s});if(R.status===402){console.warn("[SentientUI] Session limit exceeded for this project. The bandit will stop learning until the limit resets. Upgrade at sentient-ui.com/pricing");return}if(R.ok||ce(R)==="dropped")return}catch(R){}if(A>=Nn){console.warn("[SentientUI] Could not register the session after retries. Conversions in this visit may not be recorded.");return}await new Promise(R=>setTimeout(R,V(A+1)))}};try{D=x()}catch(A){}}e.debug&&(console.log("[sentient] initialized",{context:e.context}),window.__sentient={client:null,queue:r});let Z=Pn(),B=null,re=!1,h={goal(g,y={},x=1,A=0){var Se,be,ie,k,z,Te,N;let R=l.getSessionId();if(!R)return;let I=On(y)?y:{metadata:y},M=[g,(Se=I.externalId)!=null?Se:"",(be=I.stepIndex)!=null?be:A,(ie=I.weight)!=null?ie:x].join("\0"),$=I.value!==void 0?`${I.value}\0${(k=I.currency)!=null?k:""}`:null;if(Z.firedBefore(M,$)){e.debug&&console.log(`[sentient] goal("${g}") already recorded for this action \u2014 not sent twice`);return}let L=We(),J={sessionId:R,name:g,metadata:(z=I.metadata)!=null?z:{},weight:(Te=I.weight)!=null?Te:x,stepIndex:(N=I.stepIndex)!=null?N:A,goalId:L,value:I.value,currency:I.currency,externalId:I.externalId};e.debug&&console.log("[sentient] goal",J);let te={id:L,body:JSON.stringify(J)};D.then(()=>p.send(te))},componentGoal(g,y,x){var L,J,te;let A=l.getSessionId();if(!A)return;let R=u.get(g,w),I=R?null:(L=_.get(g))!=null?L:null;if(!R&&I===null){e.debug&&console.warn(`[sentient] componentGoal("${g}"): no assignment or slot decision yet \u2014 render its <Adaptive>/adaptive hook or call assign()/decide() before recording a goal.`);return}let M=R?R.variantId:Le(I),$={id:We(),sessionId:A,projectId:e.apiKey,componentId:g,variantId:M,eventType:"goal_achieved",goalType:y,payload:v({reward:(J=x==null?void 0:x.reward)!=null?J:1,goalValue:x==null?void 0:x.value,currency:x==null?void 0:x.currency},(te=x==null?void 0:x.metadata)!=null?te:{}),timestamp:Date.now(),timeInSession:Date.now()-i,path:Me()};e.debug&&console.log("[sentient] componentGoal",$),D.then(()=>r.push($))},identify(g){let y=l.getSessionId();y&&D.then(()=>{fetch(`${o}/sessions`,{method:"POST",keepalive:!0,body:JSON.stringify({sessionId:y,userId:g,ephemeral:l.isEphemeral()}),headers:s}).catch(()=>{})})},track(g){let y=l.getSessionId();if(!y)return;let x=j(v({path:Me()},g),{id:We(),sessionId:y,timestamp:Date.now(),timeInSession:Date.now()-i});e.debug&&console.log("[sentient] track",x),D.then(()=>r.push(x))},getAssignment(g,y){return u.get(g,y)},async assign(g,y,x,A){let R=l.getSessionId();if(!R)return null;let I=u.get(g,w);if(I&&(y!=null&&y.length||I.content!==void 0)){let M=I.ttlMs&&I.ttlMs>0?Math.max(0,I.assignedAt+I.ttlMs-Date.now()):0;return{variantId:I.variantId,assignmentTtlMs:M,content:I.content}}return ze(G,g,async()=>{await D;try{let M={sessionId:R,componentId:g,variantIds:y};A!==void 0?M.agentDataByVariant=A:x!==void 0&&(M.agentData=x);let $=await fetch(`${o}/assign`,{method:"POST",body:JSON.stringify(M),headers:s});if(!$.ok)return null;let L=await $.json();return u.set(g,w,v({variantId:L.variantId,assignedAt:Date.now(),segment:w,confidence:1,content:L.content},L.assignmentTtlMs&&L.assignmentTtlMs>0?{ttlMs:L.assignmentTtlMs}:{})),L}catch(M){return null}})},async decide(g){var I,M;let y=l.getSessionId();if(!y)return null;let x=(I=g.slots)!=null?I:[],A={sessionId:y};g.sections&&g.sections.length>0&&(A.sections=g.sections.map($=>({id:$}))),A.components=(M=g.components)!=null?M:[],x.length>0&&(A.slots=x.map(Ee)),g.slotsFrom==="registry"&&(A.slotsFrom="registry"),g.v&&(A.v=g.v),e.persona&&(A.persona=e.persona);let R=JSON.stringify(A);return ze(U,R,async()=>{var $,L,J,te,Se,be;await D;try{let ie=await fetch(`${o}/decide`,{method:"POST",body:R,headers:s});if(!ie.ok)return P(x),null;let k=await ie.json(),z={};for(let N of x){let X=($=k.slots)==null?void 0:$[N.id];if(X!==void 0){z[N.id]=X,_.set(N.id,X);continue}let Ye=_.get(N.id);if(Ye!==void 0)z[N.id]=Ye;else{let Ze=fe(N);z[N.id]=Ze,_.set(N.id,Ze)}}if(k.slots)for(let[N,X]of Object.entries(k.slots))N in z||(z[N]=X,_.set(N,X));let Te=C!=null&&C.persona!=="unknown";k.persona&&!(k.persona==="unknown"&&Te)?C={persona:k.persona,confidence:(L=k.confidence)!=null?L:0}:C||(C={persona:"unknown",confidence:0});for(let[N,X]of Object.entries((J=k.assignments)!=null?J:{}))u.set(N,w,{variantId:X,assignedAt:Date.now(),segment:w,confidence:1});return ye(e.apiKey,v(v({v:1,persona:C.persona,band:(0,He.confidenceBand)(C.confidence),slots:Object.fromEntries(_),layoutOrder:(te=k.layoutOrder)!=null?te:null,savedAt:Date.now()},k.slotConfig?{slotConfig:k.slotConfig}:{}),k.palette?{palette:k.palette}:{})),v(v(v(v({layoutOrder:(Se=k.layoutOrder)!=null?Se:null,assignments:(be=k.assignments)!=null?be:{},slots:z,persona:C.persona,confidence:C.confidence},k.slotConfig?{slotConfig:k.slotConfig}:{}),k.goals?{goals:k.goals}:{}),k.sectionMap?{sectionMap:k.sectionMap}:{}),k.palette?{palette:k.palette}:{})}catch(ie){return P(x),null}})},getSlotResult(g){var y;return(y=_.get(g))!=null?y:null},getPersona(){return C?{persona:C.persona,confidence:C.confidence,band:(0,He.confidenceBand)(C.confidence)}:null},async fetchWeights(){var g;try{let y=await fetch(`${o}/weights`,{headers:s});return y.ok?(g=(await y.json()).components)!=null?g:[]:[]}catch(y){return[]}},getGraph(){return{pageNodes:[],capturedAt:0}},dispose(){var g;B==null||B(),re=!0,r.destroy(),p.destroy(),((g=K.get(e.apiKey))==null?void 0:g.dispose)===h.dispose&&K.delete(e.apiKey),e.debug&&console.log("[sentient] disposed")},destroy(){var g;B==null||B(),re=!0,r.destroy(),p.destroy(),l.destroy(),u.clear(),((g=K.get(e.apiKey))==null?void 0:g.dispose)===h.dispose&&K.delete(e.apiKey);try{localStorage.removeItem(oe+e.apiKey),localStorage.removeItem(Ue(e.apiKey)),localStorage.removeItem(Fe(e.apiKey))}catch(y){}e.debug&&console.log("[sentient] destroyed")}};if(K.set(e.apiKey,{config:e,upgrade:null,dispose:h.dispose}),B=Ln(h,e.apiKey,g=>{D.then(()=>{re||wt.add(g)})}),e.debug){let g=window;g.__sentient&&(g.__sentient.client=h)}return h}var Ct="_snt_graph_edges",Mn={pricing:["features","faq"],features:["pricing"],faq:["pricing"],social_proof:["cta"],cta:["social_proof","hero","trust"],hero:["cta"],comparison:["pricing"],trust:["cta"]};function Kn(e){var t;return(t=Mn[e])!=null?t:[]}function Gn(e,t){try{let n=localStorage.getItem(e);return n?JSON.parse(n):t}catch(n){return t}}function $n(e,t){try{localStorage.setItem(e,JSON.stringify(t))}catch(n){}}var Un=new Set(["pricing","hero","social_proof","cta","features","faq","comparison","trust","navigation","generic"]);function Fn(e){return Un.has(e)?e:"generic"}function Qe(e){try{let t=new URL(e);return`${t.origin}${t.pathname}`}catch(t){return"/"}}function jn(e,t,n){let c=`${e}:${t}:${n.join(",")}`,d=5381;for(let a=0;a<c.length;a++)d=(d<<5)+d+c.charCodeAt(a)&4294967295;return(d>>>0).toString(16).padStart(8,"0")}function It(e){let t=new Map,n=new Map,c=`_snt_graph_nodes${ne(e==null?void 0:e.apiKey)}`,d=()=>{typeof window!="undefined"&&$n(c,[...t.values()])};if(typeof window!="undefined"){let a=Gn(c,[]);for(let i of a)t.set(i.componentId,i);try{localStorage.removeItem(Ct)}catch(i){}}return{addPageNode(a){t.set(a.componentId,a),d()},addStructuralEdge(a){let i=`${a.fromComponentId}->${a.toComponentId}`;n.set(i,a)},syncOnce(){var i,l;if(!(e!=null&&e.syncUrl)||typeof window=="undefined")return;let a=[...t.values()];if(a.length!==0)try{let u=new Map;for(let p of a){let m=(i=u.get(p.semanticType))!=null?i:[];m.push(p),u.set(p.semanticType,m)}let r=[],o=new Set;for(let p of a)for(let m of Kn(p.semanticType)){let S=(l=u.get(m))!=null?l:[];for(let E of S){if(E.componentId===p.componentId)continue;let w=`semantic:${p.componentId}->${E.componentId}`;o.has(w)||(o.add(w),r.push({fromComponentId:p.componentId,toComponentId:E.componentId,type:"semantic",weight:.4,confidence:.9}))}}let s=new Set(a.map(p=>p.componentId));for(let p of n.values()){if(!s.has(p.fromComponentId)||!s.has(p.toComponentId))continue;let m=`structural:${p.fromComponentId}->${p.toComponentId}`;o.has(m)||(o.add(m),r.push({fromComponentId:p.fromComponentId,toComponentId:p.toComponentId,type:"structural",weight:p.weight,confidence:1}))}let f=j(v(v({pageUrl:Qe(window.location.href)},e.sessionId?{sessionId:e.sessionId}:{}),e.projectId?{projectId:e.projectId}:{}),{nodes:a.map(p=>{let m=Fn(p.semanticType);return{componentId:p.componentId,semanticType:m,answers:p.answers,contentHash:jn(p.componentId,m,p.answers),prominenceScore:p.prominenceScore,depthInPage:p.depth}}),edges:r});fetch(e.syncUrl,{method:"POST",keepalive:!0,headers:v({"Content-Type":"application/json"},e.apiKey?{Authorization:`Bearer ${e.apiKey}`}:{}),body:JSON.stringify(f)}).catch(()=>{})}catch(u){}},snapshot(){return{pageNodes:[...t.values()],capturedAt:Date.now()}},destroy(){if(typeof window!="undefined")try{localStorage.removeItem(c),localStorage.removeItem(Ct)}catch(a){}}}}var Wn=["data-testid","data-test","data-id","data-name","data-cy"];function Je(e){var t;return((t=e.textContent)!=null?t:"").replace(/\s+/g," ").trim()}function Hn(e){return{tag:e.tagName.toLowerCase(),text:Je(e).slice(0,40)}}function Tt(e){return e.replace(/["\\\]]/g,"\\$&")}function Ie(e,t){try{return e.querySelectorAll(t).length===1}catch(n){return!1}}function kt(e,t){var i;let n=e.tagName.toLowerCase();if(!n)return null;let c=((i=e.getAttribute("class"))!=null?i:"").split(/\s+/).filter(l=>/^[a-zA-Z][\w-]*$/.test(l)),d=[n,...c.map(l=>`${n}.${l}`)];for(let l of d)if(Ie(t,l))return l;let a=e.parentElement;if(a&&a!==t){let l=kt(a,t);if(l){for(let s of d){let f=`${l} > ${s}`;if(Ie(t,f))return f}let u=Array.from(a.children).filter(s=>s.tagName.toLowerCase()===n),r=u.indexOf(e),o=u.some(s=>s!==e&&Je(s)!==Je(e));if(r>=0&&o){let s=`${l} > ${n}:nth-of-type(${r+1})`;if(Ie(t,s))return s}}}return null}function Ke(e,t){let n=Hn(e),c=e.getAttribute("id");if(c&&Ie(t,`#${Tt(c)}`))return{v:1,id:c,fingerprint:n};for(let a of Wn){let i=e.getAttribute(a);if(i&&Ie(t,`[${a}="${Tt(i)}"]`))return{v:1,dataAttr:{name:a,value:i},fingerprint:n}}let d=kt(e,t);return d?{v:1,selector:d,fingerprint:n}:null}var _t=["pricing","hero","social_proof","cta","features","faq","comparison","trust","navigation","generic"],zn={banner:"hero",navigation:"navigation",contentinfo:"footer"};function qn(e){let t=e.ariaRole?zn[e.ariaRole.toLowerCase()]:void 0;if(t)return t;if(e.tag==="nav")return"navigation";if(e.tag==="footer")return"footer";if(e.tag==="header")return"hero";let n=`${e.idClass} ${e.headingText}`.toLowerCase();return/\b(navbar|nav-bar|navigation|site-nav|main-nav|topbar|footer)\b/.test(n)?/footer/.test(n)?"footer":"navigation":/\b(hero|masthead|jumbotron)\b/i.test(e.idClass)?"hero":null}function Qn(e){return e.actionCount>=1&&e.textLength>0&&e.textLength<200?"cta":"generic"}var Jn=[["pricing",/\b(pricing|price list|per month|\/mo|subscriptions?)\b|\bplans?\b(?=[^.]{0,40}(from|start|month|year|[$€£]))/i],["faq",/\bfaq\b|frequently asked|common questions?/i],["comparison",/\b(compare|comparison|versus)\b|\bvs\./i],["social_proof",/\b(reviews?|ratings?|testimonial|brands?|galler(y|ies)|logos)\b|trusted by|loved by|case stud|what our customers say/i],["trust",/\b(insurance|warrant(y|ies)|guarantees?|certifi|accredit|security|privacy|compliance|gdpr|encrypt)\b|why choose|about us|our team/i],["cta",/\b(book|booking|reserve|appointments?|newsletter|subscribe)\b|contact us|get in touch|opening hours/i],["features",/\b(features?|benefits?|capabilit|services?|repairs?|menus?|products?)\b|how it works|our process|what we (do|offer)|what you get/i]],Xn=[["pricing",/(?:[$€£]\s?\d[\d,.]*\s*(?:\/|per\s)\s*(?:mo|month|yr|year|seat|user))|(?:\b(?:starter|basic|pro|growth|premium|enterprise)\b[^.]{0,60}[$€£]\s?\d)/i],["social_proof",/(?:★{2,})|(?:\b\d(?:\.\d)?\s*(?:out of|\/)\s*5\b)|(?:\brated\b)|(?:["“][^"”]{20,160}["”]\s*[—–-]\s*[A-Z][a-z]+)/],["trust",/\b(?:money[- ]back guarantee|free returns?|returns? within|refund(?:s)? within|encrypted|soc ?2|iso ?27001|gdpr[- ]compliant|cancel anytime)\b/i],["comparison",/\b(?:vs|versus)\b\.?[^.!?]{0,80}\b(?:compare|comparison|plans?|features?|alternative)\b|\bhow (?:we|it) compares?\b/i]],At={navigation:"navigation",footer:"navigation",hero:"hero",cta:"cta",generic:"generic"};function Vn(e){var n;let t=e.querySelector("h1, h2, h3");return((n=t==null?void 0:t.textContent)!=null?n:"").slice(0,160)}function Yn(e){var d,a;let t=qn(e);if(t)return{type:(d=At[t])!=null?d:"generic",strength:"strong"};let n=`${e.idClass} ${e.headingText}`.toLowerCase();for(let[i,l]of Jn)if(l.test(n))return{type:i,strength:"strong"};for(let[i,l]of Xn)if(l.test(e.bodyText))return{type:i,strength:"strong"};let c=Qn(e);return{type:(a=At[c])!=null?a:"generic",strength:"weak"}}function Zn(e){var c,d;let t=((c=e.textContent)!=null?c:"").replace(/\s+/g," ").trim(),n=e.getAttribute("role");return v({tag:e.tagName.toLowerCase(),idClass:`${e.id} ${String((d=e.className)!=null?d:"")}`,headingText:Vn(e),bodyText:t.slice(0,2e3),actionCount:e.querySelectorAll('a, button, [role="button"]').length,textLength:t.length},n?{ariaRole:n}:{})}function Rt(e){return Yn(Zn(e)).type}var eo=new Set(["SECTION","ARTICLE","MAIN","DIV","ASIDE"]),to="h1, h2, h3",no="[data-sentient-id], section[aria-label], article[aria-label], main[aria-label], aside[aria-label]",Ot=30,oo=1500,ro={scan:async()=>({nodes:[],edges:[],scannedAt:0}),observe:()=>{},getProminenceScore:()=>0,destroy:()=>{}};function Nt(e,t,n){return n<=t?0:Math.max(0,Math.min(1,(e-t)/(n-t)))}function so(e){var t,n,c;try{let d=e;for(let a of Object.keys(d)){if(!a.startsWith("__reactFiber")&&!a.startsWith("__reactInternalInstance"))continue;let i=d[a],l=(c=(t=i==null?void 0:i.type)==null?void 0:t.displayName)!=null?c:(n=i==null?void 0:i.type)==null?void 0:n.name;if(l&&l.length>1)return l}}catch(d){}}function io(e){let t={};for(let n of Array.from(e.attributes))n.name.startsWith("data-")&&(t[n.name]=n.value);return t}var Pt=new Set(_t);function ao(e){let t=e.getAttribute("data-sentient-type");if(t&&Pt.has(t))return t;let n=e.getAttribute("role");return n&&Pt.has(n)?n:Rt(e)}function co(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t+e.charCodeAt(n)&4294967295;return(t>>>0).toString(16).padStart(8,"0")}function lo(e){let t=[],n=e;for(;n;){let c=n.parentElement;if(!c){t.push(n.tagName.toLowerCase());break}let d=Array.prototype.indexOf.call(c.children,n);t.push(`${n.tagName.toLowerCase()}[${d}]`),n=c}return t.reverse().join("/")}function uo(e){var n;let t=(n=e.getAttribute("data-sentient-id"))!=null?n:e.getAttribute("id");return t||`${e.tagName.toLowerCase()}-${co(lo(e))}`}function po(e){let t=0,n=e.parentElement;for(;n;)t++,n=n.parentElement;return t}function Xe(e,t){var c,d,a,i;let n=e.querySelector(to);return{componentId:uo(e),semanticType:ao(e),ariaLabel:(c=e.getAttribute("aria-label"))!=null?c:void 0,headingText:(a=(d=n==null?void 0:n.textContent)==null?void 0:d.trim())!=null?a:void 0,isAboveFold:e.getBoundingClientRect().top<window.innerHeight,prominenceScore:t(e),depth:po(e),reactComponentName:so(e),dataAttributes:io(e),locator:(i=Ke(e,e.ownerDocument))!=null?i:void 0}}function Lt(e){var a;let t=[],n=new Set,c="__root__",d=new Map;for(let[i,l]of e){let u=i.parentElement,r=c;for(;u;){if(e.has(u)){r=e.get(u);let s=e.get(i),f=`${r}->${s}`;!n.has(f)&&r!==s&&(n.add(f),t.push({fromComponentId:r,toComponentId:s,weight:.6}));break}u=u.parentElement}let o=(a=d.get(r))!=null?a:[];o.push(i),d.set(r,o)}for(let i of d.values()){if(i.length<2)continue;let l=i.length>Ot?i.slice(0,Ot):i;for(let u=0;u<l.length;u++)for(let r=u+1;r<l.length;r++){if(t.length>=oo)return t;let o=e.get(l[u]),s=e.get(l[r]);if(o===s)continue;let f=`${o}->${s}::sib`,p=`${s}->${o}::sib`;n.has(f)||(n.add(f),t.push({fromComponentId:o,toComponentId:s,weight:.3})),n.has(p)||(n.add(p),t.push({fromComponentId:s,toComponentId:o,weight:.3}))}}return t}function go(e){let t=[],n=new Set,c=new Map;return document.querySelectorAll("[data-sentient-id]").forEach(i=>{if(i instanceof Element&&!n.has(i)){n.add(i);let l=Xe(i,e);t.push(l),c.set(i,l.componentId)}}),document.querySelectorAll("section, article, main, aside").forEach(i=>{if(!(i instanceof Element)||n.has(i))return;let l=i.hasAttribute("aria-label"),u=i.hasAttribute("data-sentient-id");if(!l&&!u)return;n.add(i);let r=Xe(i,e);t.push(r),c.set(i,r.componentId)}),{nodes:t,edges:Lt(c),elementToId:c}}function Dt(){if(typeof window=="undefined")return ro;let e=null,t=0,n=null,c=new Map,d=u=>{try{let r=window.getComputedStyle(u),o=parseFloat(r.fontSize)||12,s=parseFloat(r.zIndex)||0,f=u.getBoundingClientRect(),p=Math.max(f.top,0),m=window.innerHeight||1,S=1/(p/m+1),E=Nt(o,12,48)*.4+S*.4+Nt(s,0,100)*.2;return Math.max(0,Math.min(1,E))}catch(r){return .5}};return{scan:()=>new Promise(u=>{let r=()=>{let{nodes:o,edges:s,elementToId:f}=go(d);c.clear();for(let[p,m]of f)c.set(p,m);u({nodes:o,edges:s,scannedAt:Date.now()})};try{typeof requestIdleCallback=="function"?t=requestIdleCallback(r,{timeout:100}):r()}catch(o){r()}}),observe:u=>{n=u;try{e=new MutationObserver(r=>{let o=[],s=new Set;for(let p of r)p.type==="childList"&&p.addedNodes.forEach(m=>{if(!(m instanceof Element))return;let S=[];eo.has(m.tagName)&&(m.hasAttribute("data-sentient-id")||m.hasAttribute("aria-label"))&&S.push(m);try{m.querySelectorAll(no).forEach(E=>S.push(E))}catch(E){}for(let E of S){if(c.has(E))continue;let w=Xe(E,d);o.push(w),s.add(w.componentId),c.set(E,w.componentId)}});if(o.length===0||!n)return;for(let p of[...c.keys()])p.isConnected||c.delete(p);let f=Lt(c).filter(p=>s.has(p.fromComponentId)||s.has(p.toComponentId));n({nodes:o,edges:f,addedAt:Date.now()})}),e.observe(document.body,{childList:!0,subtree:!0})}catch(r){}},getProminenceScore:d,destroy:()=>{if(e&&(e.disconnect(),e=null),t&&typeof cancelIdleCallback=="function")try{cancelIdleCallback(t)}catch(u){}t=0,n=null,c.clear()}}}var fo="https://api.sentient-ui.com/v1/events";function mo(e){var n;let t=c=>{try{let d=document.cookie.match(new RegExp(`(?:^|; )${c}=([^;]*)`));return d?decodeURIComponent(d[1]):void 0}catch(d){return}};return(n=e?t(ae(e)):void 0)!=null?n:t(we)}var Ge=new Map;function Bt(e){var p;let t=qe(e),n=e.respectDoNotTrack!==!1&&Ce(),c=e.consent===!1||n,d=typeof e.apiKey=="string"&&e.apiKey.startsWith("pk_"),a=e.localMode===!0||!d;if(!e.graph||a||typeof window=="undefined")return t;if(c)return n||vt(e.apiKey,m=>Bt(m)),t;let i=Ge.get(e.apiKey);if(i)try{i()}catch(m){}let l=Dt(),u=(p=e.ingestUrl)!=null?p:fo,r=It({syncUrl:u.replace(/\/events\/?$/,"/graph/sync"),apiKey:e.apiKey,projectId:e.apiKey,sessionId:mo(e.apiKey)});l.scan().then(m=>{for(let S of m.nodes)r.addPageNode({id:S.componentId,componentId:S.componentId,semanticType:S.semanticType,answers:e.captureDomText&&S.headingText?[S.headingText]:[],prominenceScore:S.prominenceScore,depth:S.depth});for(let S of m.edges)r.addStructuralEdge(S);r.syncOnce()});let o=null,s=()=>{o!==null&&clearTimeout(o),o=setTimeout(()=>{o=null,r.syncOnce()},500)};l.observe(m=>{for(let S of m.nodes)r.addPageNode({id:S.componentId,componentId:S.componentId,semanticType:S.semanticType,answers:e.captureDomText&&S.headingText?[S.headingText]:[],prominenceScore:S.prominenceScore,depth:S.depth});for(let S of m.edges)r.addStructuralEdge(S);s()});let f=()=>{o!==null&&(clearTimeout(o),o=null),l.destroy(),r.destroy(),Ge.get(e.apiKey)===f&&Ge.delete(e.apiKey)};return Ge.set(e.apiKey,f),j(v({},t),{getGraph:()=>r.snapshot(),dispose:()=>{f(),t.dispose()},destroy:()=>{f(),t.destroy()}})}0&&(module.exports={BLOCK_ALIGNS,BLOCK_EMPHASES,BLOCK_FITS,BLOCK_GAPS,BLOCK_GRID_COLUMNS,BLOCK_HEADING_LEVELS,BLOCK_JUSTIFIES,BLOCK_RATIOS,BLOCK_SIZES,BLOCK_TEXT_ALIGNS,BLOCK_TONES,BLOCK_WEIGHTS,LEGACY_SESSION_COOKIE_NAME,MAX_BLOCK_ARMS,MAX_BLOCK_CHILDREN,MAX_BLOCK_DEPTH,MAX_BLOCK_NODES,MAX_BLOCK_TEXT_LEN,SNAPSHOT_STORAGE_KEY_PREFIX,armOfResult,attachMicroSignalDetectors,baselineResultFor,baselineSlots,deriveSessionSegment,detectDeviceClass,detectTimeOfDay,detectTrafficSource,grantConsent,init,isDoNotTrackEnabled,locatorFromElement,readSnapshot,referrerDomainFromReferer,renderPrePaintScript,sanitizePageUrl,sessionCookieName,toWireSlot,writeSnapshot});
1
+ "use strict";var Gt=Object.create;var ve=Object.defineProperty,$t=Object.defineProperties,Ut=Object.getOwnPropertyDescriptor,Ft=Object.getOwnPropertyDescriptors,jt=Object.getOwnPropertyNames,tt=Object.getOwnPropertySymbols,Wt=Object.getPrototypeOf,rt=Object.prototype.hasOwnProperty,Ht=Object.prototype.propertyIsEnumerable;var nt=(e,t,n)=>t in e?ve(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,v=(e,t)=>{for(var n in t||(t={}))rt.call(t,n)&&nt(e,n,t[n]);if(tt)for(var n of tt(t))Ht.call(t,n)&&nt(e,n,t[n]);return e},j=(e,t)=>$t(e,Ft(t));var zt=(e,t)=>{for(var n in t)ve(e,n,{get:t[n],enumerable:!0})},ot=(e,t,n,c)=>{if(t&&typeof t=="object"||typeof t=="function")for(let d of jt(t))!rt.call(e,d)&&d!==n&&ve(e,d,{get:()=>t[d],enumerable:!(c=Ut(t,d))||c.enumerable});return e};var qt=(e,t,n)=>(n=e!=null?Gt(Wt(e)):{},ot(t||!e||!e.__esModule?ve(n,"default",{value:e,enumerable:!0}):n,e)),Qt=e=>ot(ve({},"__esModule",{value:!0}),e);var hr={};zt(hr,{BLOCK_ALIGNS:()=>hn,BLOCK_EMPHASES:()=>En,BLOCK_FITS:()=>In,BLOCK_GAPS:()=>yn,BLOCK_GRID_COLUMNS:()=>kn,BLOCK_HEADING_LEVELS:()=>Tn,BLOCK_JUSTIFIES:()=>Sn,BLOCK_RATIOS:()=>Cn,BLOCK_SIZES:()=>bn,BLOCK_TEXT_ALIGNS:()=>xn,BLOCK_TONES:()=>wn,BLOCK_WEIGHTS:()=>vn,LEGACY_SESSION_COOKIE_NAME:()=>we,MAX_BLOCK_ARMS:()=>On,MAX_BLOCK_CHILDREN:()=>Rn,MAX_BLOCK_DEPTH:()=>_n,MAX_BLOCK_NODES:()=>An,MAX_BLOCK_TEXT_LEN:()=>Pn,SNAPSHOT_STORAGE_KEY_PREFIX:()=>re,armOfResult:()=>Le,attachMicroSignalDetectors:()=>bt,baselineResultFor:()=>fe,baselineSlots:()=>ft,deriveSessionSegment:()=>We,detectDeviceClass:()=>le,detectTimeOfDay:()=>pe,detectTrafficSource:()=>de,grantConsent:()=>It,init:()=>Kt,isDoNotTrackEnabled:()=>Ce,locatorFromElement:()=>Ke,readSnapshot:()=>me,referrerDomainFromReferer:()=>ue,renderPrePaintScript:()=>mt,sanitizePageUrl:()=>Je,sessionCookieName:()=>ae,toWireSlot:()=>Ee,writeSnapshot:()=>ye});module.exports=Qt(hr);function Te(){try{if(typeof crypto!="undefined"&&typeof crypto.randomUUID=="function")return crypto.randomUUID()}catch(e){}try{if(typeof crypto!="undefined"&&typeof crypto.getRandomValues=="function"){let e=new Uint8Array(16);crypto.getRandomValues(e),e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t="";for(let n=0;n<16;n++)t+=e[n].toString(16).padStart(2,"0"),(n===3||n===5||n===7||n===9)&&(t+="-");return t}}catch(e){}return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function ne(e){return e?`_${e.slice(0,12)}`:""}var we="_snt_uid";function ae(e){return`${we}${ne(e)}`}var Jt="_snt_uid",Xt=365,Ae="_snt_uid";function Yt(){return Te()}function st(e){try{let t=document.cookie.match(new RegExp(`(?:^|; )${e}=([^;]*)`));return t?decodeURIComponent(t[1]):null}catch(t){return null}}function Vt(e,t,n){try{document.cookie=`${e}=${encodeURIComponent(t)}; max-age=${n}; SameSite=strict; path=/`}catch(c){}}function $e(e){try{return localStorage.getItem(e)}catch(t){return null}}function it(e,t){try{return localStorage.setItem(e,t),!0}catch(n){return!1}}function at(e){try{return sessionStorage.getItem(e)}catch(t){return null}}function Zt(e,t){try{return sessionStorage.setItem(e,t),!0}catch(n){return!1}}function en(e){try{sessionStorage.removeItem(e)}catch(t){}}function tn(e){try{return document.cookie=`${e}_probe=1; max-age=1; SameSite=strict; path=/`,document.cookie.indexOf(`${e}_probe=1`)!==-1}catch(t){return!1}}function nn(e){try{localStorage.removeItem(e)}catch(t){}}function rn(e){try{document.cookie=`${e}=; max-age=0; SameSite=strict; path=/`}catch(t){}}var on={getSessionId:()=>null,isEphemeral:()=>!1,destroy:()=>{}};function _e(e){var m,S,x,E,G,U,A;if(typeof window=="undefined")return on;let t=ne(e==null?void 0:e.apiKey),n=(m=e==null?void 0:e.cookieName)!=null?m:ae(e==null?void 0:e.apiKey),c=`${Ae}${t}`,d=`${Ae}_tomb${t}`,a=((S=e==null?void 0:e.cookieTTLDays)!=null?S:Xt)*24*60*60,l=I=>I&&I.length>0?I:null,u=()=>{var I,N;return t&&!(e!=null&&e.cookieName)&&$e(d)===null?(N=(I=l(st(Jt)))!=null?I:l($e(Ae)))!=null?N:l(at(Ae)):null},o=(A=(U=(G=(E=(x=l(st(n)))!=null?x:l($e(c)))!=null?E:l(at(c)))!=null?G:u())!=null?U:l(e==null?void 0:e.ssrSessionId))!=null?A:Yt();Vt(n,o,a);let r=it(c,o),s=tn(n),g=r?!1:Zt(c,o),p=!r&&!s&&!g;return{getSessionId:()=>o,isEphemeral:()=>p,destroy:()=>{o=null,rn(n),nn(c),en(c),t&&!(e!=null&&e.cookieName)&&it(d,"1")}}}function Y(e){return Math.min(6e4,1e3*2**Math.min(e,6))}function ce(e){if(e.ok===!0)return"delivered";let{status:t}=e;return typeof t!="number"?"retry":t>=200&&t<300?"delivered":t>=400&&t<500&&t!==429?"dropped":"retry"}function Re(e,t){try{let n=localStorage.getItem(e);if(!n)return[];let c=JSON.parse(n);return Array.isArray(c)?(localStorage.removeItem(e),c.slice(-t)):[]}catch(n){return[]}}function V(e,t,n){try{let c=(()=>{try{let i=localStorage.getItem(n);if(!i)return[];let a=JSON.parse(i);return Array.isArray(a)?a:[]}catch(i){return[]}})(),d=new Map;for(let i of c)d.set(i.id,i);for(let i of e)d.set(i.id,i);localStorage.setItem(n,JSON.stringify([...d.values()].slice(-t)))}catch(c){}}function Oe(e,t){try{let n=localStorage.getItem(t);if(!n)return;let c=JSON.parse(n);if(!Array.isArray(c))return;let d=new Set(e),i=c.filter(a=>!d.has(a.id));if(i.length===c.length)return;i.length===0?localStorage.removeItem(t):localStorage.setItem(t,JSON.stringify(i))}catch(n){}}var sn=500,an=56*1024;function Ue(e){return`_snt_retry_${e.slice(0,12)}`}var cn={push:()=>{},flush:()=>{},destroy:()=>{}};function ct(e){var Z,M,oe;if(typeof window=="undefined")return cn;let t=(Z=e.flushIntervalMs)!=null?Z:5e3,n=(M=e.maxBatchSize)!=null?M:20,c=(oe=e.maxRetrySize)!=null?oe:100,d=e.ingestUrl,i=e.apiKey,a=Ue(i),l=[],u=new Set,o=[],r=h=>{for(let k of h)s.delete(k),!u.has(k)&&(u.add(k),o.push(k));for(;o.length>sn;){let k=o.shift();k&&u.delete(k)}Oe(h,a)},s=new Set,g=()=>{for(;l.length>c;){let h=l.shift();h&&s.delete(h.id)}},p=h=>{u.has(h.id)||s.has(h.id)||(s.add(h.id),l.push(h),g())},m=h=>{for(let k of h)u.has(k.id)||(s.add(k.id),l.push(k));g()},S=Re(a,c);for(let h of S)p(h);let x=0,E=0,G=(h,k=!0)=>{if(h.length===0)return;let H=JSON.stringify(h),ee=h.map(q=>q.id),F;try{F=fetch(d,{method:"POST",keepalive:!0,body:H,headers:{"Content-Type":"application/json",Authorization:`Bearer ${i}`}})}catch(q){V(h,c,a),m(h),E++,x=Date.now()+Y(E);return}let he=q=>{if(ce(q)!=="retry"){if(!q.ok&&k){let se=h.filter(Q=>Q.eventType!=="pageview");if(se.length>0&&se.length<h.length){r(h.filter(Q=>Q.eventType==="pageview").map(Q=>Q.id)),G(se,!1);return}}r(ee),E=0,x=0;return}V(h,c,a),m(h),E++,x=Date.now()+Y(E)};F instanceof Promise?F.then(he).catch(()=>{V(h,c,a),m(h),E++,x=Date.now()+Y(E)}):he(F)},U=typeof TextEncoder!="undefined"?new TextEncoder:null,A=h=>U?U.encode(h).length:h.length,I=h=>{let k=[],H=2;for(let ee of h){let F=A(JSON.stringify(ee))+1;if(k.length>0&&H+F>an||k.length>=n)break;k.push(ee),H+=F}return k},N=()=>{try{if(Date.now()<x)return;for(;l.length>0&&!(Date.now()<x);){let h=l.filter(H=>!u.has(H.id));if(l.length=0,h.length===0)break;let k=I(h);if(k.length===0)break;k.length<h.length&&l.push(...h.slice(k.length)),G(k)}}catch(h){}},b=!0,R=null;R=setInterval(()=>{b&&N()},t);let B=()=>{document.visibilityState==="hidden"&&N()},W=()=>{N()};return document.addEventListener("visibilitychange",B),window.addEventListener("pagehide",W),{push(h){p(h),l.length>=n&&N()},flush:N,destroy(){b=!1,R!==null&&(clearInterval(R),R=null),document.removeEventListener("visibilitychange",B),window.removeEventListener("pagehide",W),N()}}}var ln=200;function Fe(e){return`_snt_goal_retry_${e.slice(0,12)}`}var dn={send:()=>{},flush:()=>{},destroy:()=>{}};function lt(e){var A,I,N;if(typeof window=="undefined")return dn;let t=(A=e.flushIntervalMs)!=null?A:5e3,n=(I=e.maxRetrySize)!=null?I:100,c=(N=e.maxPerFlush)!=null?N:5,d=Fe(e.apiKey),i=[],a=new Set,l=new Set,u=[],o=0,r=0,s=!1,g=b=>{for(a.delete(b.id),l.has(b.id)||(l.add(b.id),u.push(b.id));u.length>ln;){let R=u.shift();R&&l.delete(R)}Oe([b.id],d)},p=b=>{V([b],n,d),!l.has(b.id)&&!a.has(b.id)&&(a.add(b.id),i.push(b)),Date.now()>=o&&(r++,o=Date.now()+Y(r))},m=b=>{let R;try{R=fetch(e.url,{method:"POST",keepalive:!0,body:b.body,headers:e.headers})}catch(W){p(b);return}let B=W=>{var M;let Z=ce(W);if(Z==="retry"){p(b);return}Z==="dropped"&&((M=e.onDrop)==null||M.call(e,b,W.status)),g(b),r=0,o=0};R instanceof Promise?R.then(B).catch(()=>p(b)):B(R)},S=()=>{try{if(s||Date.now()<o)return;let b=0;for(;i.length>0&&b<c&&!(Date.now()<o);){let R=i.shift();a.delete(R.id),!l.has(R.id)&&(b++,m(R))}}catch(b){}},x=Re(d,n);for(let b of x)a.has(b.id)||(a.add(b.id),i.push(b));x.length>0&&V(x,n,d);let E=setInterval(S,t),G=()=>{document.visibilityState==="hidden"&&S()},U=()=>S();return document.addEventListener("visibilitychange",G),window.addEventListener("pagehide",U),{send(b){if(!s&&!(l.has(b.id)||a.has(b.id))){if(Date.now()<o){V([b],n,d),a.add(b.id),i.push(b);return}m(b)}},flush:S,destroy(){clearInterval(E),document.removeEventListener("visibilitychange",G),window.removeEventListener("pagehide",U),S(),s=!0}}}var un=1800*1e3;function Pe(e,t){return`${encodeURIComponent(e)}:${encodeURIComponent(t)}`}function dt(e=un,t){let n=new Map,c=`_snt_asgn${ne(t)}_`,d=(o,r)=>`${c}${encodeURIComponent(o)}:${encodeURIComponent(r)}`,i=o=>{let r=o.slice(c.length),s=r.indexOf(":");if(s<0)return null;try{return{componentId:decodeURIComponent(r.slice(0,s)),segment:decodeURIComponent(r.slice(s+1))}}catch(g){return null}},a=()=>{try{let o=[];for(let r=0;r<localStorage.length;r++){let s=localStorage.key(r);s!=null&&s.startsWith(c)&&o.push(s)}return o}catch(o){return[]}},l=o=>o.assignedAt+(o.ttlMs&&o.ttlMs>0?o.ttlMs:e)<Date.now();return typeof window!="undefined"&&(()=>{for(let o of a())try{let r=localStorage.getItem(o);if(!r)continue;let s=JSON.parse(r);if(l(s)){localStorage.removeItem(o);continue}let g=i(o);if(!g)continue;n.set(Pe(g.componentId,g.segment),s)}catch(r){}})(),{get(o,r){let s=n.get(Pe(o,r));return s?l(s)?(n.delete(Pe(o,r)),null):s:null},set(o,r,s){let g=Pe(o,r);n.set(g,s);try{localStorage.setItem(d(o,r),JSON.stringify(s))}catch(p){}},clear(){n.clear();for(let o of a())try{localStorage.removeItem(o)}catch(r){}}}}var ut=["GPTBot","ChatGPT-User","OAI-SearchBot","ClaudeBot","Claude-User","Claude-SearchBot","PerplexityBot","Perplexity-User","Google-Extended","Applebot-Extended","Meta-ExternalAgent","Bytespider","CCBot","Amazonbot","cohere-ai","Diffbot"];function Ne(e){return pt(e)!==null}function pt(e){var n;if(!e)return null;let t=e.toLowerCase();return(n=ut.find(c=>t.includes(c.toLowerCase())))!=null?n:null}function le(e){let t=e.toLowerCase();return/ipad|tablet|playbook|kindle|silk/.test(t)?"tablet":/mobi|iphone|ipod|android.*mobile|phone/.test(t)?"mobile":"desktop"}function de(e,t){if(!e)return"direct";try{let n=new URL(e);if(t)try{if(new URL(t).host===n.host)return"direct"}catch(d){}let c=n.hostname.toLowerCase();return/(^|\.)(google|bing|duckduckgo|yahoo)\./.test(c)?"search":/(^|\.)(twitter\.com|x\.com|facebook\.com|linkedin\.com|reddit\.com|t\.co)$/.test(c)?"social":"referral"}catch(n){return"direct"}}function ue(e){if(!e)return null;try{return new URL(e).hostname}catch(t){return null}}var gt=["gclid","gbraid","wbraid","fbclid","ttclid","msclkid","twclid","li_fat_id"];function je(e){let t={},n={};try{let c=typeof e=="string"||e instanceof URLSearchParams?new URLSearchParams(e):Object.entries(e).flatMap(([d,i])=>{let a=Array.isArray(i)?i[0]:i;return a===void 0?[]:[[d,a]]});for(let[d,i]of c)d.startsWith("utm_")?d in t||(t[d]=i):gt.includes(d)&&(d in n||(n[d]=i))}catch(c){}return{utmParams:t,clickIds:n}}function pe(e){let t=e.getHours();return t<6?"night":t<12?"morning":t<18?"afternoon":"evening"}function We(e){let t=pn("__segment__",e);return`${t.deviceClass}:${t.trafficSource}`}function pn(e,t){var i,a,l,u,o,r,s,g;let n=(a=(i=t==null?void 0:t.userAgent)==null?void 0:i.trim())!=null?a:"",c=(u=(l=t==null?void 0:t.referer)==null?void 0:l.trim())!=null?u:"",d=(o=t==null?void 0:t.now)!=null?o:new Date;return{sessionId:e,ephemeral:!1,utmParams:(r=t==null?void 0:t.utmParams)!=null?r:{},clickIds:(s=t==null?void 0:t.clickIds)!=null?s:{},deviceClass:n?le(n):"desktop",trafficSource:c?de(c,t==null?void 0:t.appOrigin):"direct",referrerDomain:ue(c),timeOfDay:pe(d),dayOfWeek:(g=["sun","mon","tue","wed","thu","fri","sat"][d.getDay()])!=null?g:"sun",automation:(t==null?void 0:t.webdriver)===!0||Ne(n)}}var ge=require("@sentientui/policy");function Ee(e){return v(v(v({id:e.id},e.arms?{arms:[...e.arms]}:{}),e.dims?{dims:Object.fromEntries(Object.entries(e.dims).map(([t,n])=>[t,[...n]]))}:{}),e.baseline!==void 0?{baseline:e.baseline}:{})}function fe(e){let t=Ee(e);return(0,ge.slotResultFor)(t,(0,ge.slotBaselineArm)(t))}function ft(e){let t={};for(let n of e)t[n.id]=fe(n);return t}function Le(e){return typeof e=="string"?e:(0,ge.canonicalArm)(e)}var re="_snt_snap:",gn=["low","medium","high"];function me(e){try{let t=localStorage.getItem(re+e);if(!t)return null;let n=JSON.parse(t);return!n||typeof n!="object"||n.v!==1||typeof n.persona!="string"||typeof n.band!="string"||!gn.includes(n.band)||typeof n.slots!="object"||n.slots===null||Array.isArray(n.slots)||!(n.layoutOrder===null||Array.isArray(n.layoutOrder))||typeof n.savedAt!="number"||!(n.slotConfig===void 0||typeof n.slotConfig=="object"&&n.slotConfig!==null&&!Array.isArray(n.slotConfig))?null:n}catch(t){return null}}function ye(e,t){try{localStorage.setItem(re+e,JSON.stringify(t))}catch(n){}}function mt(e){return"(function(){try{var r=localStorage.getItem("+JSON.stringify(re+e).replace(/</g,"\\u003c")+');if(!r)return;var s=JSON.parse(r);if(!s||s.v!==1||typeof s.persona!=="string"||typeof s.band!=="string")return;var d=document.documentElement;if(d.hasAttribute("data-sentient-persona"))return;d.setAttribute("data-sentient-persona",s.persona);d.setAttribute("data-sentient-confidence",s.band);}catch(e){}})();'}var ze=require("@sentientui/policy");var Be=require("@sentientui/policy");var yt="[sentient] No API key configured \u2014 nothing is being learned. Set NEXT_PUBLIC_SENTIENT_API_KEY or pass localMode: true for local development.",fn="[sentient] Local mode \u2014 decisions are simulated on-device and nothing is sent over the network. Add an API key to learn from real traffic.",ht=!1,De=!1;function mn(){var e;try{return(e=new URLSearchParams(window.location.search).get("sentient_persona"))!=null?e:void 0}catch(t){return}}function St(e){var o;let t=_e({ssrSessionId:e.ssrSessionId,apiKey:e.apiKey}),n=(o=t.getSessionId())!=null?o:"local",c=mn(),d=import("@sentientui/core/local").then(r=>{let s=r;return s.LOCAL_ENGINE_AVAILABLE?(ht||(ht=!0,console.info(fn)),s):(De||(De=!0,console.error(yt)),null)}).catch(()=>(De||(De=!0,console.error(yt)),null)),i=null,a={low:.15,medium:.5,high:.85},l=(()=>{var s;if(e.initialPersona)return v({},e.initialPersona);let r=me(e.apiKey||"local");return r?{persona:r.persona,confidence:(s=a[r.band])!=null?s:.15}:null})();function u(r){let s=document.documentElement;s.dataset.sentientPersona===void 0&&(s.dataset.sentientPersona=r.persona,s.dataset.sentientConfidence=(0,Be.confidenceBand)(r.confidence))}return{isLocal:!0,async decide(r){var p,m,S;let s=await d;if(!s)return null;let g=s.createLocalEngine({sessionId:n,forcedPersona:c}).decide(r);return i=j(v({},g),{layoutOrder:(m=(p=g.layoutOrder)!=null?p:i==null?void 0:i.layoutOrder)!=null?m:null,slots:v(v({},(S=i==null?void 0:i.slots)!=null?S:{}),g.slots)}),ye(e.apiKey||"local",{v:1,persona:i.persona,band:(0,Be.confidenceBand)(i.confidence),slots:i.slots,layoutOrder:i.layoutOrder,savedAt:Date.now()}),u(g),g},getSlotResult(r){var s,g,p;return(p=(g=i==null?void 0:i.slots[r])!=null?g:(s=e.initialSlots)==null?void 0:s[r])!=null?p:null},getPersona(){let r=i!=null?i:l;return r?{persona:r.persona,confidence:r.confidence,band:(0,Be.confidenceBand)(r.confidence)}:null},async assign(r,s){var m;let g=await d;return!g||!s||s.length===0?s!=null&&s[0]?{variantId:s[0],assignmentTtlMs:0}:null:{variantId:(m=g.createLocalEngine({sessionId:n,forcedPersona:c}).decide({components:[{id:r,variantIds:s}]}).assignments[r])!=null?m:s[0],assignmentTtlMs:0}},track:()=>{},goal:()=>{},componentGoal:()=>{},identify:()=>{},getAssignment:()=>null,fetchWeights:()=>Promise.resolve([]),getGraph:()=>({pageNodes:[],capturedAt:0}),dispose:()=>{},destroy:()=>t.destroy()}}var yn=["none","sm","md","lg"],hn=["start","center","end","stretch"],Sn=["start","center","end","between"],bn=["sm","md","lg"],vn=["normal","medium","bold"],wn=["default","muted","accent"],En=["primary","secondary","ghost"],xn=["left","center","right"],Cn=["auto","square","landscape","wide"],In=["cover","contain"],kn=[2,3,4],Tn=[2,3,4],An=64,_n=5,Rn=12,On=4,Pn=500;function bt(e,t,n,c){let d=[];{let l=!1,u=[],o=()=>{if(l)return;let r=Date.now();for(u.push(r);u.length>0&&r-u[0]>500;)u.shift();u.length>=3&&(l=!0,e("rage_click"))};t.addEventListener("click",o),d.push(()=>t.removeEventListener("click",o))}{let i=!1,a=l=>{if(i||!(l.target instanceof Node)||!t.contains(l.target)&&t!==l.target)return;i=!0;let u=typeof window!="undefined"?window.getSelection():null,o=u?u.toString().length:0;e("text_copy",{selectionLength:o})};document.addEventListener("copy",a),d.push(()=>document.removeEventListener("copy",a))}{let i=!1,a=!1,l=null,u=()=>{l!==null&&(clearTimeout(l),l=null)},o=()=>{i||!a||(u(),l=setTimeout(()=>{!i&&a&&(i=!0,e("scroll_hesitation"))},3e3))},r=()=>{u(),o()},s=p=>{for(let m of p)a=m.intersectionRatio>.3,a?o():u()},g=new IntersectionObserver(s,{threshold:[.3]});g.observe(t),window.addEventListener("scroll",r,{passive:!0}),d.push(()=>{g.disconnect(),window.removeEventListener("scroll",r),u()})}if((c==null?void 0:c.tabLoss)!==!1){let i=!1,a=n!=null?n:Date.now(),l=()=>{if(i||document.visibilityState!=="hidden")return;let u=Date.now()-a;u<15e3&&(i=!0,e("tab_loss",{timeOnPage:u}))};document.addEventListener("visibilitychange",l),d.push(()=>document.removeEventListener("visibilitychange",l))}return()=>{for(let i of d)i()}}var vt="https://api.sentient-ui.com/v1/events",K=new Map,wt=null;function Et(e,t){let n=K.get(e);n&&n.upgrade&&(n.reinit=t)}function Nn(e){return"value"in e||"currency"in e||"externalId"in e||"metadata"in e||"weight"in e||"stepIndex"in e}var Ln=3;function He(){return Te()}function Me(){var e;if(typeof window!="undefined")return((e=window.location)==null?void 0:e.pathname)||void 0}function Dn(){let e=new WeakMap,t=new Map,n=!1,c=(l,u,o)=>{let r=l.get(u);return o===null?r?!0:(l.set(u,new Set),!1):r?r.has(o)?!0:(r.add(o),!1):(l.set(u,new Set([o])),!1)},d=typeof window!="undefined"&&"event"in window,i=()=>{if(!d)return;let l=window.event;return typeof Event=="function"&&l instanceof Event?l:void 0},a=()=>{if(d){Promise.resolve().then(()=>{n=!1,t.clear()});return}let l=!1,u=()=>{l||(l=!0,n=!1,t.clear())};if(setTimeout(u,0),typeof MessageChannel=="function"){let o=new MessageChannel;o.port1.onmessage=()=>{o.port1.close(),o.port2.close(),u()},o.port2.postMessage(0)}};return{firedBefore(l,u){let o=i();if(o){let s=e.get(o);return s||(s=new Map,e.set(o,s)),c(s,l,u)}let r=c(t,l,u);return!r&&!n&&(n=!0,a()),r}}}var xt=new Set;function Bn(e,t,n){let c=typeof window=="undefined"?null:window.history;if(!c)return()=>{};let d=!1,i,a=()=>{if(d)return;let o=Me();!o||o===i||(i=o,e.track({projectId:t,componentId:"__page__",eventType:"pageview",payload:{}}),n(`${t}:${o}`))},l=[];for(let o of["pushState","replaceState"]){let r=c[o],s=function(...g){let p=r.apply(this,g);return a(),p};c[o]=s,l.push([o,r,s])}window.addEventListener("popstate",a);let u=Me();return u&&xt.has(`${t}:${u}`)?i=u:a(),()=>{if(!d){d=!0,window.removeEventListener("popstate",a);for(let[o,r,s]of l)c[o]===s&&(c[o]=r)}}}var xe={track:()=>{},goal:()=>{},componentGoal:()=>{},identify:()=>{},getAssignment:()=>null,assign:()=>Promise.resolve(null),decide:()=>Promise.resolve(null),getSlotResult:()=>null,getPersona:()=>null,fetchWeights:()=>Promise.resolve([]),getGraph:()=>({pageNodes:[],capturedAt:0}),dispose:()=>{},destroy:()=>{}};function Mn(){try{return je(window.location.search)}catch(e){return{utmParams:{},clickIds:{}}}}function Ct(e){return e.replace(/\/events\/?$/,"")}function Ce(){return typeof navigator!="undefined"&&navigator.globalPrivacyControl===!0?!0:[typeof navigator!="undefined"?navigator.doNotTrack:void 0,typeof window!="undefined"?window.doNotTrack:void 0,typeof navigator!="undefined"?navigator.msDoNotTrack:void 0].some(t=>t==="1"||t==="yes")}function It(e){var u;if(typeof window=="undefined")return;let t=e!=null?e:wt;if(!t){console.warn("[sentient] grantConsent() called before init()");return}let n=K.get(t);if(!n){console.warn("[sentient] grantConsent() called before init()");return}let{config:c,upgrade:d,reinit:i}=n;if(!d){n.upgradeBlockedReason&&console.warn(n.upgradeBlockedReason);return}if(c.respectDoNotTrack!==!1&&Ce())return;let a=(i!=null?i:Qe)(j(v({},c),{consent:!0}));d(a);let l=(u=K.get(t))==null?void 0:u.dispose;K.set(t,{config:j(v({},c),{consent:!0}),upgrade:null,dispose:l})}function Kn(e){var o;let t=e.preConsentBehavior==="statistical_winner",n=Ct((o=e.ingestUrl)!=null?o:vt),c={"Content-Type":"application/json",Authorization:`Bearer ${e.apiKey}`},d=new Map,i=new Map,a={track:()=>{},goal:()=>{},componentGoal:()=>{},identify:()=>{},getAssignment:()=>null,fetchWeights:()=>Promise.resolve([]),assign(r,s,g){if(!t)return Promise.resolve(null);let p=d.get(r);return p?Promise.resolve(p):qe(i,r,async()=>{try{let m=new URLSearchParams({componentId:r});for(let G of s!=null?s:[])m.append("variantIds[]",G);let S=await fetch(`${n}/winner?${m.toString()}`,{headers:c});if(!S.ok)return s!=null&&s[0]?{variantId:s[0],assignmentTtlMs:0}:null;let E={variantId:(await S.json()).variantId,assignmentTtlMs:0};return d.set(r,E),E}catch(m){return s!=null&&s[0]?{variantId:s[0],assignmentTtlMs:0}:null}})},decide:()=>Promise.resolve(null),getSlotResult:()=>null,getPersona:()=>null,getGraph:()=>({pageNodes:[],capturedAt:0}),dispose:()=>{},destroy:()=>{}},l={track:r=>a.track(r),goal:((r,s,g,p)=>a.goal(r,s,g,p)),componentGoal:(r,s,g)=>a.componentGoal(r,s,g),identify:r=>a.identify(r),getAssignment:(r,s)=>a.getAssignment(r,s),assign:(r,s,g,p)=>a.assign(r,s,g,p),decide:r=>a.decide(r),getSlotResult:r=>a.getSlotResult(r),getPersona:()=>a.getPersona(),fetchWeights:()=>a.fetchWeights(),getGraph:()=>a.getGraph(),dispose:()=>a.dispose(),destroy:()=>a.destroy()};function u(r){a=r}return{proxy:l,setInner:u}}function qe(e,t,n){let c=e.get(t);if(c)return c;let d=(async()=>{try{return await n()}finally{e.delete(t)}})();return e.set(t,d),d}function Qe(e){var k,H,ee,F,he,q,se,Q,Ve;if(typeof window=="undefined")return xe;wt=e.apiKey||"local";let t=K.get(e.apiKey||"local");if(t!=null&&t.dispose)try{t.dispose()}catch(f){}let n=e.respectDoNotTrack!==!1&&Ce(),c=e.consent===!1||n,d=typeof e.apiKey=="string"&&e.apiKey.startsWith("pk_");if(e.localMode===!0||!d&&e.localMode!==!1)return K.set(e.apiKey||"local",{config:e,upgrade:null,upgradeBlockedReason:"[sentient] grantConsent(): this client is keyless/local \u2014 there is no hosted client to upgrade to. Configure a pk_ API key to enable tracking."}),c?xe:St(e);if(c){if(!e.apiKey||!e.apiKey.startsWith("pk_"))return e.preConsentBehavior==="statistical_winner"&&console.warn("[sentient] init() called with an invalid apiKey \u2014 expected a pk_ public key. SDK disabled."),K.set(e.apiKey||"local",{config:e,upgrade:null,upgradeBlockedReason:"[sentient] grantConsent(): the client was initialized with an invalid apiKey (expected a pk_ public key) \u2014 consent cannot enable tracking."}),xe;let{proxy:f,setInner:y}=Kn(e);return K.set(e.apiKey,{config:e,upgrade:n?null:y}),f}if(!e.apiKey||!e.apiKey.startsWith("pk_"))return console.warn("[sentient] init() called with an invalid apiKey \u2014 expected a pk_ public key. SDK disabled."),xe;if(e.ingestUrl==="")return console.warn("[sentient] init() called with an empty ingestUrl. SDK disabled."),xe;let i=(k=e.ingestUrl)!=null?k:vt,a=Date.now(),l=_e({ssrSessionId:e.ssrSessionId,apiKey:e.apiKey}),u=dt(void 0,e.apiKey),o=ct({ingestUrl:i,apiKey:e.apiKey}),r=Ct(i),s={"Content-Type":"application/json",Authorization:`Bearer ${e.apiKey}`},g=new Set,p=lt({url:`${r}/goals`,apiKey:e.apiKey,headers:s,onDrop:(f,y)=>{if(!e.debug){if(g.has(y))return;g.add(y)}console.warn(`[sentient] goal dropped (HTTP ${y}) \u2014 this will not be retried. `+(y===400?"The session was not found: call init() and let the session upsert complete before firing goals.":y===401||y===403?"Check the API key and that this origin is on the project allowlist.":"See the response status for the cause."),f)}}),m=le((H=navigator.userAgent)!=null?H:""),S=window.location.origin,x=de((ee=document.referrer)!=null?ee:"",S),E=(F=e.sessionSegment)!=null?F:`${m}:${x}`,G=new Map,U=new Map,A=new Map,I=null,N=f=>{for(let y of f)A.has(y.id)||A.set(y.id,fe(y))};if(e.initialSlots)for(let[f,y]of Object.entries(e.initialSlots))A.set(f,y);let b=me(e.apiKey);if(b)for(let[f,y]of Object.entries(b.slots))A.has(f)||A.set(f,y);let R={low:.15,medium:.5,high:.85};if(e.initialPersona)I=v({},e.initialPersona);else{let f=document.documentElement.dataset;f.sentientPersona?I={persona:f.sentientPersona,confidence:(q=R[(he=f.sentientConfidence)!=null?he:"low"])!=null?q:.15}:b&&(I={persona:b.persona,confidence:(se=R[b.band])!=null?se:.15})}if(e.initialAssignments)for(let[f,y]of Object.entries(e.initialAssignments))u.set(f,E,{variantId:y,assignedAt:Date.now(),segment:E,confidence:1});let B=Promise.resolve(),W=l.getSessionId();if(W){let f=ue((Q=document.referrer)!=null?Q:""),{utmParams:y,clickIds:C}=Mn(),O=v(v(v({sessionId:W,deviceClass:m,trafficSource:x,referrerDomain:f,utmParams:y,clickIds:C,timeOfDay:pe(new Date),dayOfWeek:["sun","mon","tue","wed","thu","fri","sat"][new Date().getDay()],ephemeral:l.isEphemeral(),automation:typeof navigator!="undefined"&&navigator.webdriver===!0||Ne((Ve=navigator.userAgent)!=null?Ve:"")},e.userId?{userId:e.userId}:{}),e.persona?{persona:e.persona}:{}),e.country?{country:e.country}:{}),L=async()=>{for(let w=0;;w++){try{let _=await fetch(`${r}/sessions`,{method:"POST",keepalive:!0,body:JSON.stringify(O),headers:s});if(_.status===402){console.warn("[SentientUI] Session limit exceeded for this project. The bandit will stop learning until the limit resets. Upgrade at sentient-ui.com/pricing");return}if(_.ok||ce(_)==="dropped")return}catch(_){}if(w>=Ln){console.warn("[SentientUI] Could not register the session after retries. Conversions in this visit may not be recorded.");return}await new Promise(_=>setTimeout(_,Y(w+1)))}};try{B=L()}catch(w){}}e.debug&&(console.log("[sentient] initialized",{context:e.context}),window.__sentient={client:null,queue:o});let Z=Dn(),M=null,oe=!1,h={goal(f,y={},C=1,O=0){var Se,be,ie,T,z,ke,P;let L=l.getSessionId();if(!L)return;let w=Nn(y)?y:{metadata:y},_=[f,(Se=w.externalId)!=null?Se:"",(be=w.stepIndex)!=null?be:O,(ie=w.weight)!=null?ie:C].join("\0"),$=w.value!==void 0?`${w.value}\0${(T=w.currency)!=null?T:""}`:null;if(Z.firedBefore(_,$)){e.debug&&console.log(`[sentient] goal("${f}") already recorded for this action \u2014 not sent twice`);return}let D=He(),J={sessionId:L,name:f,metadata:(z=w.metadata)!=null?z:{},weight:(ke=w.weight)!=null?ke:C,stepIndex:(P=w.stepIndex)!=null?P:O,goalId:D,value:w.value,currency:w.currency,externalId:w.externalId};e.debug&&console.log("[sentient] goal",J);let te={id:D,body:JSON.stringify(J)};B.then(()=>p.send(te))},componentGoal(f,y,C){var D,J,te;let O=l.getSessionId();if(!O)return;let L=u.get(f,E),w=L?null:(D=A.get(f))!=null?D:null;if(!L&&w===null){e.debug&&console.warn(`[sentient] componentGoal("${f}"): no assignment or slot decision yet \u2014 render its <Adaptive>/adaptive hook or call assign()/decide() before recording a goal.`);return}let _=L?L.variantId:Le(w),$={id:He(),sessionId:O,projectId:e.apiKey,componentId:f,variantId:_,eventType:"goal_achieved",goalType:y,payload:v({reward:(J=C==null?void 0:C.reward)!=null?J:1,goalValue:C==null?void 0:C.value,currency:C==null?void 0:C.currency},(te=C==null?void 0:C.metadata)!=null?te:{}),timestamp:Date.now(),timeInSession:Date.now()-a,path:Me()};e.debug&&console.log("[sentient] componentGoal",$),B.then(()=>o.push($))},identify(f){let y=l.getSessionId();y&&B.then(()=>{fetch(`${r}/sessions`,{method:"POST",keepalive:!0,body:JSON.stringify({sessionId:y,userId:f,ephemeral:l.isEphemeral()}),headers:s}).catch(()=>{})})},track(f){let y=l.getSessionId();if(!y)return;let C=j(v({path:Me()},f),{id:He(),sessionId:y,timestamp:Date.now(),timeInSession:Date.now()-a});e.debug&&console.log("[sentient] track",C),B.then(()=>o.push(C))},getAssignment(f,y){return u.get(f,y)},async assign(f,y,C,O){let L=l.getSessionId();if(!L)return null;let w=u.get(f,E);if(w&&(y!=null&&y.length||w.content!==void 0)){let _=w.ttlMs&&w.ttlMs>0?Math.max(0,w.assignedAt+w.ttlMs-Date.now()):0;return{variantId:w.variantId,assignmentTtlMs:_,content:w.content}}return qe(G,f,async()=>{await B;try{let _={sessionId:L,componentId:f,variantIds:y};O!==void 0?_.agentDataByVariant=O:C!==void 0&&(_.agentData=C);let $=await fetch(`${r}/assign`,{method:"POST",body:JSON.stringify(_),headers:s});if(!$.ok)return null;let D=await $.json();return u.set(f,E,v({variantId:D.variantId,assignedAt:Date.now(),segment:E,confidence:1,content:D.content},D.assignmentTtlMs&&D.assignmentTtlMs>0?{ttlMs:D.assignmentTtlMs}:{})),D}catch(_){return null}})},async decide(f){var w,_;let y=l.getSessionId();if(!y)return null;let C=(w=f.slots)!=null?w:[],O={sessionId:y};f.sections&&f.sections.length>0&&(O.sections=f.sections.map($=>({id:$}))),O.components=(_=f.components)!=null?_:[],C.length>0&&(O.slots=C.map(Ee)),f.slotsFrom==="registry"&&(O.slotsFrom="registry"),f.v&&(O.v=f.v),e.persona&&(O.persona=e.persona);let L=JSON.stringify(O);return qe(U,L,async()=>{var $,D,J,te,Se,be;await B;try{let ie=await fetch(`${r}/decide`,{method:"POST",body:L,headers:s});if(!ie.ok)return N(C),null;let T=await ie.json(),z={};for(let P of C){let X=($=T.slots)==null?void 0:$[P.id];if(X!==void 0){z[P.id]=X,A.set(P.id,X);continue}let Ze=A.get(P.id);if(Ze!==void 0)z[P.id]=Ze;else{let et=fe(P);z[P.id]=et,A.set(P.id,et)}}if(T.slots)for(let[P,X]of Object.entries(T.slots))P in z||(z[P]=X,A.set(P,X));let ke=I!=null&&I.persona!=="unknown";T.persona&&!(T.persona==="unknown"&&ke)?I={persona:T.persona,confidence:(D=T.confidence)!=null?D:0}:I||(I={persona:"unknown",confidence:0});for(let[P,X]of Object.entries((J=T.assignments)!=null?J:{}))u.set(P,E,{variantId:X,assignedAt:Date.now(),segment:E,confidence:1});return ye(e.apiKey,v(v({v:1,persona:I.persona,band:(0,ze.confidenceBand)(I.confidence),slots:Object.fromEntries(A),layoutOrder:(te=T.layoutOrder)!=null?te:null,savedAt:Date.now()},T.slotConfig?{slotConfig:T.slotConfig}:{}),T.palette?{palette:T.palette}:{})),v(v(v(v({layoutOrder:(Se=T.layoutOrder)!=null?Se:null,assignments:(be=T.assignments)!=null?be:{},slots:z,persona:I.persona,confidence:I.confidence},T.slotConfig?{slotConfig:T.slotConfig}:{}),T.goals?{goals:T.goals}:{}),T.sectionMap?{sectionMap:T.sectionMap}:{}),T.palette?{palette:T.palette}:{})}catch(ie){return N(C),null}})},getSlotResult(f){var y;return(y=A.get(f))!=null?y:null},getPersona(){return I?{persona:I.persona,confidence:I.confidence,band:(0,ze.confidenceBand)(I.confidence)}:null},async fetchWeights(){var f;try{let y=await fetch(`${r}/weights`,{headers:s});return y.ok?(f=(await y.json()).components)!=null?f:[]:[]}catch(y){return[]}},getGraph(){return{pageNodes:[],capturedAt:0}},dispose(){var f;M==null||M(),oe=!0,o.destroy(),p.destroy(),((f=K.get(e.apiKey))==null?void 0:f.dispose)===h.dispose&&K.delete(e.apiKey),e.debug&&console.log("[sentient] disposed")},destroy(){var f;M==null||M(),oe=!0,o.destroy(),p.destroy(),l.destroy(),u.clear(),((f=K.get(e.apiKey))==null?void 0:f.dispose)===h.dispose&&K.delete(e.apiKey);try{localStorage.removeItem(re+e.apiKey),localStorage.removeItem(Ue(e.apiKey)),localStorage.removeItem(Fe(e.apiKey))}catch(y){}e.debug&&console.log("[sentient] destroyed")}};if(K.set(e.apiKey,{config:e,upgrade:null,dispose:h.dispose}),M=Bn(h,e.apiKey,f=>{B.then(()=>{oe||xt.add(f)})}),e.debug){let f=window;f.__sentient&&(f.__sentient.client=h)}return h}var kt="_snt_graph_edges",Gn={pricing:["features","faq"],features:["pricing"],faq:["pricing"],social_proof:["cta"],cta:["social_proof","hero","trust"],hero:["cta"],comparison:["pricing"],trust:["cta"]};function $n(e){var t;return(t=Gn[e])!=null?t:[]}function Un(e,t){try{let n=localStorage.getItem(e);return n?JSON.parse(n):t}catch(n){return t}}function Fn(e,t){try{localStorage.setItem(e,JSON.stringify(t))}catch(n){}}var jn=new Set(["pricing","hero","social_proof","cta","features","faq","comparison","trust","navigation","generic"]);function Wn(e){return jn.has(e)?e:"generic"}function Je(e){try{let t=new URL(e);return`${t.origin}${t.pathname}`}catch(t){return"/"}}function Hn(e,t,n){let c=`${e}:${t}:${n.join(",")}`,d=5381;for(let i=0;i<c.length;i++)d=(d<<5)+d+c.charCodeAt(i)&4294967295;return(d>>>0).toString(16).padStart(8,"0")}function Tt(e){let t=new Map,n=new Map,c=`_snt_graph_nodes${ne(e==null?void 0:e.apiKey)}`,d=()=>{typeof window!="undefined"&&Fn(c,[...t.values()])};if(typeof window!="undefined"){let i=Un(c,[]);for(let a of i)t.set(a.componentId,a);try{localStorage.removeItem(kt)}catch(a){}}return{addPageNode(i){t.set(i.componentId,i),d()},addStructuralEdge(i){let a=`${i.fromComponentId}->${i.toComponentId}`;n.set(a,i)},syncOnce(){var a,l;if(!(e!=null&&e.syncUrl)||typeof window=="undefined")return;let i=[...t.values()];if(i.length!==0)try{let u=new Map;for(let p of i){let m=(a=u.get(p.semanticType))!=null?a:[];m.push(p),u.set(p.semanticType,m)}let o=[],r=new Set;for(let p of i)for(let m of $n(p.semanticType)){let S=(l=u.get(m))!=null?l:[];for(let x of S){if(x.componentId===p.componentId)continue;let E=`semantic:${p.componentId}->${x.componentId}`;r.has(E)||(r.add(E),o.push({fromComponentId:p.componentId,toComponentId:x.componentId,type:"semantic",weight:.4,confidence:.9}))}}let s=new Set(i.map(p=>p.componentId));for(let p of n.values()){if(!s.has(p.fromComponentId)||!s.has(p.toComponentId))continue;let m=`structural:${p.fromComponentId}->${p.toComponentId}`;r.has(m)||(r.add(m),o.push({fromComponentId:p.fromComponentId,toComponentId:p.toComponentId,type:"structural",weight:p.weight,confidence:1}))}let g=j(v(v({pageUrl:Je(window.location.href)},e.sessionId?{sessionId:e.sessionId}:{}),e.projectId?{projectId:e.projectId}:{}),{nodes:i.map(p=>{let m=Wn(p.semanticType);return{componentId:p.componentId,semanticType:m,answers:p.answers,contentHash:Hn(p.componentId,m,p.answers),prominenceScore:p.prominenceScore,depthInPage:p.depth}}),edges:o});fetch(e.syncUrl,{method:"POST",keepalive:!0,headers:v({"Content-Type":"application/json"},e.apiKey?{Authorization:`Bearer ${e.apiKey}`}:{}),body:JSON.stringify(g)}).catch(()=>{})}catch(u){}},snapshot(){return{pageNodes:[...t.values()],capturedAt:Date.now()}},destroy(){if(typeof window!="undefined")try{localStorage.removeItem(c),localStorage.removeItem(kt)}catch(i){}}}}var zn=["data-testid","data-test","data-id","data-name","data-cy"];function Xe(e){var t;return((t=e.textContent)!=null?t:"").replace(/\s+/g," ").trim()}function qn(e){return{tag:e.tagName.toLowerCase(),text:Xe(e).slice(0,40)}}function At(e){return e.replace(/["\\\]]/g,"\\$&")}function Ie(e,t){try{return e.querySelectorAll(t).length===1}catch(n){return!1}}function _t(e,t){var a;let n=e.tagName.toLowerCase();if(!n)return null;let c=((a=e.getAttribute("class"))!=null?a:"").split(/\s+/).filter(l=>/^[a-zA-Z][\w-]*$/.test(l)),d=[n,...c.map(l=>`${n}.${l}`)];for(let l of d)if(Ie(t,l))return l;let i=e.parentElement;if(i&&i!==t){let l=_t(i,t);if(l){for(let s of d){let g=`${l} > ${s}`;if(Ie(t,g))return g}let u=Array.from(i.children).filter(s=>s.tagName.toLowerCase()===n),o=u.indexOf(e),r=u.some(s=>s!==e&&Xe(s)!==Xe(e));if(o>=0&&r){let s=`${l} > ${n}:nth-of-type(${o+1})`;if(Ie(t,s))return s}}}return null}function Ke(e,t){let n=qn(e),c=e.getAttribute("id");if(c&&Ie(t,`#${At(c)}`))return{v:1,id:c,fingerprint:n};for(let i of zn){let a=e.getAttribute(i);if(a&&Ie(t,`[${i}="${At(a)}"]`))return{v:1,dataAttr:{name:i,value:a},fingerprint:n}}let d=_t(e,t);return d?{v:1,selector:d,fingerprint:n}:null}var Ot=["pricing","hero","social_proof","cta","features","faq","comparison","trust","navigation","generic"],Qn={banner:"hero",navigation:"navigation",contentinfo:"footer"};function Jn(e){let t=e.ariaRole?Qn[e.ariaRole.toLowerCase()]:void 0;if(t)return t;if(e.tag==="nav")return"navigation";if(e.tag==="footer")return"footer";if(e.tag==="header")return"hero";let n=`${e.idClass} ${e.headingText}`.toLowerCase();return/\b(navbar|nav-bar|navigation|site-nav|main-nav|topbar|footer)\b/.test(n)?/footer/.test(n)?"footer":"navigation":/\b(hero|masthead|jumbotron)\b/i.test(e.idClass)?"hero":null}function Xn(e){return e.actionCount>=1&&e.textLength>0&&e.textLength<200?"cta":"generic"}var Yn=[["pricing",/\b(pricing|price list|per month|\/mo|subscriptions?)\b|\bplans?\b(?=[^.]{0,40}(from|start|month|year|[$€£]))/i],["faq",/\bfaq\b|frequently asked|common questions?/i],["comparison",/\b(compare|comparison|versus)\b|\bvs\./i],["social_proof",/\b(reviews?|ratings?|testimonial|brands?|galler(y|ies)|logos)\b|trusted by|loved by|case stud|what our customers say/i],["trust",/\b(insurance|warrant(y|ies)|guarantees?|certifi|accredit|security|privacy|compliance|gdpr|encrypt)\b|why choose|about us|our team/i],["cta",/\b(book|booking|reserve|appointments?|newsletter|subscribe)\b|contact us|get in touch|opening hours/i],["features",/\b(features?|benefits?|capabilit|services?|repairs?|menus?|products?)\b|how it works|our process|what we (do|offer)|what you get/i]],Vn=[["pricing",/(?:[$€£]\s?\d[\d,.]*\s*(?:\/|per\s)\s*(?:mo|month|yr|year|seat|user))|(?:\b(?:starter|basic|pro|growth|premium|enterprise)\b[^.]{0,60}[$€£]\s?\d)/i],["social_proof",/(?:★{2,})|(?:\b\d(?:\.\d)?\s*(?:out of|\/)\s*5\b)|(?:\brated\b)|(?:["“][^"”]{20,160}["”]\s*[—–-]\s*[A-Z][a-z]+)/],["trust",/\b(?:money[- ]back guarantee|free returns?|returns? within|refund(?:s)? within|encrypted|soc ?2|iso ?27001|gdpr[- ]compliant|cancel anytime)\b/i],["comparison",/\b(?:vs|versus)\b\.?[^.!?]{0,80}\b(?:compare|comparison|plans?|features?|alternative)\b|\bhow (?:we|it) compares?\b/i]],Rt={navigation:"navigation",footer:"navigation",hero:"hero",cta:"cta",generic:"generic"};function Zn(e){var n;let t=e.querySelector("h1, h2, h3");return((n=t==null?void 0:t.textContent)!=null?n:"").slice(0,160)}function er(e){var d,i;let t=Jn(e);if(t)return{type:(d=Rt[t])!=null?d:"generic",strength:"strong"};let n=`${e.idClass} ${e.headingText}`.toLowerCase();for(let[a,l]of Yn)if(l.test(n))return{type:a,strength:"strong"};for(let[a,l]of Vn)if(l.test(e.bodyText))return{type:a,strength:"strong"};let c=Xn(e);return{type:(i=Rt[c])!=null?i:"generic",strength:"weak"}}function tr(e){var c,d;let t=((c=e.textContent)!=null?c:"").replace(/\s+/g," ").trim(),n=e.getAttribute("role");return v({tag:e.tagName.toLowerCase(),idClass:`${e.id} ${String((d=e.className)!=null?d:"")}`,headingText:Zn(e),bodyText:t.slice(0,2e3),actionCount:e.querySelectorAll('a, button, [role="button"]').length,textLength:t.length},n?{ariaRole:n}:{})}function Pt(e){return er(tr(e)).type}var nr=new Set(["SECTION","ARTICLE","MAIN","DIV","ASIDE"]),rr="h1, h2, h3",or="[data-sentient-id], section[aria-label], article[aria-label], main[aria-label], aside[aria-label]",Nt=30,sr=1500,ir={scan:async()=>({nodes:[],edges:[],scannedAt:0}),observe:()=>{},getProminenceScore:()=>0,destroy:()=>{}};function Lt(e,t,n){return n<=t?0:Math.max(0,Math.min(1,(e-t)/(n-t)))}function ar(e){var t,n,c;try{let d=e;for(let i of Object.keys(d)){if(!i.startsWith("__reactFiber")&&!i.startsWith("__reactInternalInstance"))continue;let a=d[i],l=(c=(t=a==null?void 0:a.type)==null?void 0:t.displayName)!=null?c:(n=a==null?void 0:a.type)==null?void 0:n.name;if(l&&l.length>1)return l}}catch(d){}}function cr(e){let t={};for(let n of Array.from(e.attributes))n.name.startsWith("data-")&&(t[n.name]=n.value);return t}var Dt=new Set(Ot);function lr(e){let t=e.getAttribute("data-sentient-type");if(t&&Dt.has(t))return t;let n=e.getAttribute("role");return n&&Dt.has(n)?n:Pt(e)}function dr(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t+e.charCodeAt(n)&4294967295;return(t>>>0).toString(16).padStart(8,"0")}function ur(e){let t=[],n=e;for(;n;){let c=n.parentElement;if(!c){t.push(n.tagName.toLowerCase());break}let d=Array.prototype.indexOf.call(c.children,n);t.push(`${n.tagName.toLowerCase()}[${d}]`),n=c}return t.reverse().join("/")}function pr(e){var n;let t=(n=e.getAttribute("data-sentient-id"))!=null?n:e.getAttribute("id");return t||`${e.tagName.toLowerCase()}-${dr(ur(e))}`}function gr(e){let t=0,n=e.parentElement;for(;n;)t++,n=n.parentElement;return t}function Ye(e,t){var c,d,i,a;let n=e.querySelector(rr);return{componentId:pr(e),semanticType:lr(e),ariaLabel:(c=e.getAttribute("aria-label"))!=null?c:void 0,headingText:(i=(d=n==null?void 0:n.textContent)==null?void 0:d.trim())!=null?i:void 0,isAboveFold:e.getBoundingClientRect().top<window.innerHeight,prominenceScore:t(e),depth:gr(e),reactComponentName:ar(e),dataAttributes:cr(e),locator:(a=Ke(e,e.ownerDocument))!=null?a:void 0}}function Bt(e){var i;let t=[],n=new Set,c="__root__",d=new Map;for(let[a,l]of e){let u=a.parentElement,o=c;for(;u;){if(e.has(u)){o=e.get(u);let s=e.get(a),g=`${o}->${s}`;!n.has(g)&&o!==s&&(n.add(g),t.push({fromComponentId:o,toComponentId:s,weight:.6}));break}u=u.parentElement}let r=(i=d.get(o))!=null?i:[];r.push(a),d.set(o,r)}for(let a of d.values()){if(a.length<2)continue;let l=a.length>Nt?a.slice(0,Nt):a;for(let u=0;u<l.length;u++)for(let o=u+1;o<l.length;o++){if(t.length>=sr)return t;let r=e.get(l[u]),s=e.get(l[o]);if(r===s)continue;let g=`${r}->${s}::sib`,p=`${s}->${r}::sib`;n.has(g)||(n.add(g),t.push({fromComponentId:r,toComponentId:s,weight:.3})),n.has(p)||(n.add(p),t.push({fromComponentId:s,toComponentId:r,weight:.3}))}}return t}function fr(e){let t=[],n=new Set,c=new Map;return document.querySelectorAll("[data-sentient-id]").forEach(a=>{if(a instanceof Element&&!n.has(a)){n.add(a);let l=Ye(a,e);t.push(l),c.set(a,l.componentId)}}),document.querySelectorAll("section, article, main, aside").forEach(a=>{if(!(a instanceof Element)||n.has(a))return;let l=a.hasAttribute("aria-label"),u=a.hasAttribute("data-sentient-id");if(!l&&!u)return;n.add(a);let o=Ye(a,e);t.push(o),c.set(a,o.componentId)}),{nodes:t,edges:Bt(c),elementToId:c}}function Mt(){if(typeof window=="undefined")return ir;let e=null,t=0,n=null,c=new Map,d=u=>{try{let o=window.getComputedStyle(u),r=parseFloat(o.fontSize)||12,s=parseFloat(o.zIndex)||0,g=u.getBoundingClientRect(),p=Math.max(g.top,0),m=window.innerHeight||1,S=1/(p/m+1),x=Lt(r,12,48)*.4+S*.4+Lt(s,0,100)*.2;return Math.max(0,Math.min(1,x))}catch(o){return .5}};return{scan:()=>new Promise(u=>{let o=()=>{let{nodes:r,edges:s,elementToId:g}=fr(d);c.clear();for(let[p,m]of g)c.set(p,m);u({nodes:r,edges:s,scannedAt:Date.now()})};try{typeof requestIdleCallback=="function"?t=requestIdleCallback(o,{timeout:100}):o()}catch(r){o()}}),observe:u=>{n=u;try{e=new MutationObserver(o=>{let r=[],s=new Set;for(let p of o)p.type==="childList"&&p.addedNodes.forEach(m=>{if(!(m instanceof Element))return;let S=[];nr.has(m.tagName)&&(m.hasAttribute("data-sentient-id")||m.hasAttribute("aria-label"))&&S.push(m);try{m.querySelectorAll(or).forEach(x=>S.push(x))}catch(x){}for(let x of S){if(c.has(x))continue;let E=Ye(x,d);r.push(E),s.add(E.componentId),c.set(x,E.componentId)}});if(r.length===0||!n)return;for(let p of[...c.keys()])p.isConnected||c.delete(p);let g=Bt(c).filter(p=>s.has(p.fromComponentId)||s.has(p.toComponentId));n({nodes:r,edges:g,addedAt:Date.now()})}),e.observe(document.body,{childList:!0,subtree:!0})}catch(o){}},getProminenceScore:d,destroy:()=>{if(e&&(e.disconnect(),e=null),t&&typeof cancelIdleCallback=="function")try{cancelIdleCallback(t)}catch(u){}t=0,n=null,c.clear()}}}var mr="https://api.sentient-ui.com/v1/events";function yr(e){var n;let t=c=>{try{let d=document.cookie.match(new RegExp(`(?:^|; )${c}=([^;]*)`));return d?decodeURIComponent(d[1]):void 0}catch(d){return}};return(n=e?t(ae(e)):void 0)!=null?n:t(we)}var Ge=new Map;function Kt(e){var p;let t=Qe(e),n=e.respectDoNotTrack!==!1&&Ce(),c=e.consent===!1||n,d=typeof e.apiKey=="string"&&e.apiKey.startsWith("pk_"),i=e.localMode===!0||!d;if(!e.graph||i||typeof window=="undefined")return t;if(c)return n||Et(e.apiKey,m=>Kt(m)),t;let a=Ge.get(e.apiKey);if(a)try{a()}catch(m){}let l=Mt(),u=(p=e.ingestUrl)!=null?p:mr,o=Tt({syncUrl:u.replace(/\/events\/?$/,"/graph/sync"),apiKey:e.apiKey,projectId:e.apiKey,sessionId:yr(e.apiKey)});l.scan().then(m=>{for(let S of m.nodes)o.addPageNode({id:S.componentId,componentId:S.componentId,semanticType:S.semanticType,answers:e.captureDomText&&S.headingText?[S.headingText]:[],prominenceScore:S.prominenceScore,depth:S.depth});for(let S of m.edges)o.addStructuralEdge(S);o.syncOnce()});let r=null,s=()=>{r!==null&&clearTimeout(r),r=setTimeout(()=>{r=null,o.syncOnce()},500)};l.observe(m=>{for(let S of m.nodes)o.addPageNode({id:S.componentId,componentId:S.componentId,semanticType:S.semanticType,answers:e.captureDomText&&S.headingText?[S.headingText]:[],prominenceScore:S.prominenceScore,depth:S.depth});for(let S of m.edges)o.addStructuralEdge(S);s()});let g=()=>{r!==null&&(clearTimeout(r),r=null),l.destroy(),o.destroy(),Ge.get(e.apiKey)===g&&Ge.delete(e.apiKey)};return Ge.set(e.apiKey,g),j(v({},t),{getGraph:()=>o.snapshot(),dispose:()=>{g(),t.dispose()},destroy:()=>{g(),t.destroy()}})}0&&(module.exports={BLOCK_ALIGNS,BLOCK_EMPHASES,BLOCK_FITS,BLOCK_GAPS,BLOCK_GRID_COLUMNS,BLOCK_HEADING_LEVELS,BLOCK_JUSTIFIES,BLOCK_RATIOS,BLOCK_SIZES,BLOCK_TEXT_ALIGNS,BLOCK_TONES,BLOCK_WEIGHTS,LEGACY_SESSION_COOKIE_NAME,MAX_BLOCK_ARMS,MAX_BLOCK_CHILDREN,MAX_BLOCK_DEPTH,MAX_BLOCK_NODES,MAX_BLOCK_TEXT_LEN,SNAPSHOT_STORAGE_KEY_PREFIX,armOfResult,attachMicroSignalDetectors,baselineResultFor,baselineSlots,deriveSessionSegment,detectDeviceClass,detectTimeOfDay,detectTrafficSource,grantConsent,init,isDoNotTrackEnabled,locatorFromElement,readSnapshot,referrerDomainFromReferer,renderPrePaintScript,sanitizePageUrl,sessionCookieName,toWireSlot,writeSnapshot});
2
2
  //# sourceMappingURL=index-graph.js.map