@sentientui/snippet 0.11.4 → 0.11.5
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.
- package/README.md +1 -1
- package/dist/snippet.global.js +1 -1
- package/package.json +5 -3
package/README.md
CHANGED
|
@@ -17,7 +17,7 @@ page is left exactly as it was.
|
|
|
17
17
|
};
|
|
18
18
|
</script>
|
|
19
19
|
<script
|
|
20
|
-
src="https://unpkg.com/@sentientui/snippet@0.
|
|
20
|
+
src="https://unpkg.com/@sentientui/snippet@0.11.4/dist/snippet.global.js"
|
|
21
21
|
defer
|
|
22
22
|
crossorigin="anonymous"
|
|
23
23
|
></script>
|
package/dist/snippet.global.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use strict";var SentientSnippet=(()=>{var Se=Object.defineProperty;var rn=Object.getOwnPropertyDescriptor;var on=Object.getOwnPropertyNames,Qe=Object.getOwnPropertySymbols;var tt=Object.prototype.hasOwnProperty,sn=Object.prototype.propertyIsEnumerable;var et=(e,t,n)=>t in e?Se(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ie=(e,t)=>{for(var n in t||(t={}))tt.call(t,n)&&et(e,n,t[n]);if(Qe)for(var n of Qe(t))sn.call(t,n)&&et(e,n,t[n]);return e};var nt=(e,t)=>()=>(e&&(t=e(e=0)),t);var rt=(e,t)=>{for(var n in t)Se(e,n,{get:t[n],enumerable:!0})},an=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of on(t))!tt.call(e,o)&&o!==n&&Se(e,o,{get:()=>t[o],enumerable:!(r=rn(t,o))||r.enumerable});return e};var ln=e=>an(Se({},"__esModule",{value:!0}),e);var cn,un,dn,ot,pn,fn,it,E,he,xe=nt(()=>{"use strict";cn=Object.defineProperty,un=Object.defineProperties,dn=Object.getOwnPropertyDescriptors,ot=Object.getOwnPropertySymbols,pn=Object.prototype.hasOwnProperty,fn=Object.prototype.propertyIsEnumerable,it=(e,t,n)=>t in e?cn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,E=(e,t)=>{for(var n in t||(t={}))pn.call(t,n)&&it(e,n,t[n]);if(ot)for(var n of ot(t))fn.call(t,n)&&it(e,n,t[n]);return e},he=(e,t)=>un(e,dn(t))});var gt={};rt(gt,{LOCAL_ENGINE_AVAILABLE:()=>hn,createLocalEngine:()=>yn});function yn(e){throw new Error("[sentient] createLocalEngine is not available in production builds. The local engine only exists under the `development` export condition.")}var hn,mt=nt(()=>{"use strict";hn=!1});var pr={};rt(pr,{applyPersonaAttributes:()=>Re,applyRegistrySlots:()=>Pe,applySlotArms:()=>Le,applySlotAttributes:()=>Te,parseEditorToken:()=>Xt,parsePersonaPreview:()=>Qt,parsePreview:()=>Zt,parseSnippetConfig:()=>_e,reapply:()=>Xe,run:()=>tn,version:()=>Fe});xe();function Ae(e){return Object.keys(e).sort().map(t=>`${t}=${e[t]}`).join("|")}function st(e){if(e.length===0)return null;let t={};for(let n of e.split("|")){let r=n.indexOf("=");if(r<=0||r!==n.lastIndexOf("=")||r===n.length-1)return null;let o=n.slice(0,r);if(o in t)return null;t[o]=n.slice(r+1)}return t}function $e(e){var t,n,r;if(e.arms)return typeof e.baseline=="string"?e.baseline:(t=e.arms[0])!=null?t:"";if(e.baseline!==void 0&&typeof e.baseline=="object")return Ae(e.baseline);if(typeof e.baseline=="string")return e.baseline;let o={};for(let[i,s]of Object.entries((n=e.dims)!=null?n:{}))o[i]=(r=s[0])!=null?r:"";return Ae(o)}function at(e,t){var n,r;return e.dims!=null?(r=(n=st(t))!=null?n:st($e(e)))!=null?r:{}:t}function se(e){return e>=.3?e<.7?"medium":"high":"low"}var gn=["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 lt(e){return mn(e)!==null}function mn(e){var t;if(!e)return null;let n=e.toLowerCase();return(t=gn.find(r=>n.includes(r.toLowerCase())))!=null?t:null}function ct(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 ut(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(o){}let r=n.hostname.toLowerCase();return/(^|\.)(google|bing|duckduckgo|yahoo)\./.test(r)?"search":/(^|\.)(twitter\.com|x\.com|facebook\.com|linkedin\.com|reddit\.com|t\.co)$/.test(r)?"social":"referral"}catch(n){return"direct"}}function dt(e){if(!e)return null;try{return new URL(e).hostname}catch(t){return null}}function pt(e){let t=e.getHours();return t<6?"night":t<12?"morning":t<18?"afternoon":"evening"}function Ke(e){return E(E(E({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 Be(e){let t=Ke(e);return at(t,$e(t))}function ft(e){return typeof e=="string"?e:Ae(e)}xe();function vt(){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)})}var vn="_snt_uid",bn=365,ce="_snt_uid";function wn(){return vt()}function Sn(e){try{let t=document.cookie.match(new RegExp(`(?:^|; )${e}=([^;]*)`));return t?decodeURIComponent(t[1]):null}catch(t){return null}}function xn(e,t,n){try{document.cookie=`${e}=${encodeURIComponent(t)}; max-age=${n}; SameSite=strict; path=/`}catch(r){}}function An(e){try{return localStorage.getItem(e)}catch(t){return null}}function kn(e,t){try{return localStorage.setItem(e,t),!0}catch(n){return!1}}function In(e){try{return sessionStorage.getItem(e)}catch(t){return null}}function En(e,t){try{return sessionStorage.setItem(e,t),!0}catch(n){return!1}}function On(e){try{sessionStorage.removeItem(e)}catch(t){}}function Cn(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 _n(e){try{localStorage.removeItem(e)}catch(t){}}function Rn(e){try{document.cookie=`${e}=; max-age=0; SameSite=strict; path=/`}catch(t){}}var Tn={getSessionId:()=>null,isEphemeral:()=>!1,destroy:()=>{}};function bt(e){var t,n,r,o,i,s;if(typeof window=="undefined")return Tn;let l=(t=e==null?void 0:e.cookieName)!=null?t:vn,a=((n=e==null?void 0:e.cookieTTLDays)!=null?n:bn)*24*60*60,c=v=>v&&v.length>0?v:null,u=(s=(i=(o=(r=c(Sn(l)))!=null?r:c(An(ce)))!=null?o:c(In(ce)))!=null?i:c(e==null?void 0:e.ssrSessionId))!=null?s:wn();xn(l,u,a);let p=kn(ce,u),y=Cn(l),g=p?!1:En(ce,u),w=!p&&!y&&!g;return{getSessionId:()=>u,isEphemeral:()=>w,destroy:()=>{u=null,Rn(l),_n(ce),On(ce)}}}function wt(e){return`_snt_retry_${e.slice(0,12)}`}var Ln={push:()=>{},flush:()=>{},destroy:()=>{}};function Pn(e,t){try{let n=localStorage.getItem(t);if(!n)return[];let r=JSON.parse(n);return Array.isArray(r)?(localStorage.removeItem(t),r.slice(-e)):[]}catch(n){return[]}}function Ue(e,t,n){try{let r=(()=>{try{let s=localStorage.getItem(n);if(!s)return[];let l=JSON.parse(s);return Array.isArray(l)?l:[]}catch(s){return[]}})(),o=new Map;for(let s of r)o.set(s.id,s);for(let s of e)o.set(s.id,s);let i=[...o.values()].slice(-t);localStorage.setItem(n,JSON.stringify(i))}catch(r){}}function Dn(e,t){try{let n=localStorage.getItem(t);if(!n)return;let r=JSON.parse(n);if(!Array.isArray(r))return;let o=new Set(e),i=r.filter(s=>!o.has(s.id));if(i.length===r.length)return;i.length===0?localStorage.removeItem(t):localStorage.setItem(t,JSON.stringify(i))}catch(n){}}function Mn(e){var t,n,r;if(typeof window=="undefined")return Ln;let o=(t=e.flushIntervalMs)!=null?t:5e3,i=(n=e.maxBatchSize)!=null?n:20,s=(r=e.maxRetrySize)!=null?r:100,l=e.ingestUrl,a=e.apiKey,c=wt(a),u=[],p=new Set,y=[],g=f=>{for(let x of f)w.delete(x),!p.has(x)&&(p.add(x),y.push(x));for(;y.length>500;){let x=y.shift();x&&p.delete(x)}Dn(f,c)},w=new Set,v=f=>{p.has(f.id)||w.has(f.id)||(w.add(f.id),u.push(f))},A=f=>{for(let x of f)p.has(x.id)||(w.add(x.id),u.push(x))},P=Pn(s,c);for(let f of P)v(f);let S=0,I=0,j=f=>{if(f.length===0)return;let x=JSON.stringify(f),M=f.map(d=>d.id),z;try{z=fetch(l,{method:"POST",keepalive:!0,body:x,headers:{"Content-Type":"application/json",Authorization:`Bearer ${a}`}})}catch(d){Ue(f,s,c),A(f),I++,S=Date.now()+Math.min(6e4,1e3*2**Math.min(I,6));return}let G=d=>{if(d.ok||d.status>=400&&d.status<500&&d.status!==429){g(M),I=0,S=0;return}Ue(f,s,c),A(f),I++,S=Date.now()+Math.min(6e4,1e3*2**Math.min(I,6))};z instanceof Promise?z.then(G).catch(()=>{Ue(f,s,c),A(f),I++,S=Date.now()+Math.min(6e4,1e3*2**Math.min(I,6))}):G(z)},H=typeof TextEncoder!="undefined"?new TextEncoder:null,le=f=>H?H.encode(f).length:f.length,ne=f=>{let x=[],M=2;for(let z of f){let G=le(JSON.stringify(z))+1;if(x.length>0&&M+G>57344||x.length>=i)break;x.push(z),M+=G}return x},C=()=>{try{if(Date.now()<S)return;for(;u.length>0&&!(Date.now()<S);){let f=u.filter(M=>!p.has(M.id));if(u.length=0,f.length===0)break;let x=ne(f);if(x.length===0)break;x.length<f.length&&u.push(...f.slice(x.length)),j(x)}}catch(f){}},Y=!0,h=null;h=setInterval(()=>{Y&&C()},o);let m=()=>{document.visibilityState==="hidden"&&C()},k=()=>{C()};return document.addEventListener("visibilitychange",m),window.addEventListener("pagehide",k),{push(f){v(f),u.length>=i&&C()},flush:C,destroy(){Y=!1,h!==null&&(clearInterval(h),h=null),document.removeEventListener("visibilitychange",m),window.removeEventListener("pagehide",k),C()}}}var ze="_snt_asgn_";function ke(e,t){return`${encodeURIComponent(e)}:${encodeURIComponent(t)}`}function jn(e,t){return`${ze}${encodeURIComponent(e)}:${encodeURIComponent(t)}`}function ht(e){let t=e.slice(ze.length),n=t.indexOf(":");if(n<0)return null;try{return{componentId:decodeURIComponent(t.slice(0,n)),segment:decodeURIComponent(t.slice(n+1))}}catch(r){return null}}function Ge(){try{let e=[];for(let t=0;t<localStorage.length;t++){let n=localStorage.key(t);n!=null&&n.startsWith(ze)&&e.push(n)}return e}catch(e){return[]}}function Nn(e=18e5){let t=new Map,n=r=>r.assignedAt+(r.ttlMs&&r.ttlMs>0?r.ttlMs:e)<Date.now();return typeof window!="undefined"&&(()=>{for(let r of Ge())try{let o=localStorage.getItem(r);if(!o)continue;let i=JSON.parse(o);if(n(i)){localStorage.removeItem(r);continue}let s=ht(r);if(!s)continue;t.set(ke(s.componentId,s.segment),i)}catch(o){}})(),{get(r,o){let i=t.get(ke(r,o));return i?n(i)?(t.delete(ke(r,o)),null):i:null},set(r,o,i){let s=ke(r,o);t.set(s,i);try{localStorage.setItem(jn(r,o),JSON.stringify(i))}catch(l){}},invalidate(r){let o=`${encodeURIComponent(r)}:`;for(let i of[...t.keys()])i.startsWith(o)&&t.delete(i);for(let i of Ge()){let s=ht(i);if((s==null?void 0:s.componentId)===r)try{localStorage.removeItem(i)}catch(l){}}},clear(){t.clear();for(let r of Ge())try{localStorage.removeItem(r)}catch(o){}}}}var Ee="_snt_snap:",$n=["low","medium","high"];function Oe(e){try{let t=localStorage.getItem(Ee+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"||!$n.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(Ee+e,JSON.stringify(t))}catch(n){}}var We="[sentient] No API key configured \u2014 nothing is being learned. Set NEXT_PUBLIC_SENTIENT_API_KEY or pass localMode: true for local development.",St="[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.",yt=!1,Ie=!1;function Kn(){var e;try{return(e=new URLSearchParams(window.location.search).get("sentient_persona"))!=null?e:void 0}catch(t){return}}function Bn(e){var t;let n=bt({ssrSessionId:e.ssrSessionId}),r=(t=n.getSessionId())!=null?t:"local",o=Kn(),i=Promise.resolve().then(()=>(mt(),gt)).then(a=>{let c=a;return c.LOCAL_ENGINE_AVAILABLE?(yt||(yt=!0,console.info(St)),c):(Ie||(Ie=!0,console.error(We)),null)}).catch(()=>(Ie||(Ie=!0,console.error(We)),null)),s=null;function l(a){let c=document.documentElement;c.dataset.sentientPersona===void 0&&(c.dataset.sentientPersona=a.persona,c.dataset.sentientConfidence=se(a.confidence))}return{isLocal:!0,async decide(a){var c,u,p;let y=await i;if(!y)return null;let g=y.createLocalEngine({sessionId:r,forcedPersona:o}).decide(a);return s=he(E({},g),{layoutOrder:(u=(c=g.layoutOrder)!=null?c:s==null?void 0:s.layoutOrder)!=null?u:null,slots:E(E({},(p=s==null?void 0:s.slots)!=null?p:{}),g.slots)}),ye(e.apiKey||"local",{v:1,persona:s.persona,band:se(s.confidence),slots:s.slots,layoutOrder:s.layoutOrder,savedAt:Date.now()}),l(g),g},getSlotResult(a){var c,u,p;return(p=(u=s==null?void 0:s.slots[a])!=null?u:(c=e.initialSlots)==null?void 0:c[a])!=null?p:null},getPersona(){return s?{persona:s.persona,confidence:s.confidence,band:se(s.confidence)}:null},async assign(a,c){var u;let p=await i;return!p||!c||c.length===0?c!=null&&c[0]?{variantId:c[0],assignmentTtlMs:0}:null:{variantId:(u=p.createLocalEngine({sessionId:r,forcedPersona:o}).decide({components:[{id:a,variantIds:c}]}).assignments[a])!=null?u:c[0],assignmentTtlMs:0}},track:()=>{},goal:()=>{},componentGoal:()=>{},identify:()=>{},getAssignment:()=>null,fetchWeights:()=>Promise.resolve([]),getGraph:()=>({pageNodes:[],capturedAt:0}),dispose:()=>{},destroy:()=>n.destroy()}}function ve(e,t,n,r){let o=[];{let i=!1,s=[],l=()=>{if(i)return;let a=Date.now();for(s.push(a);s.length>0&&a-s[0]>500;)s.shift();s.length>=3&&(i=!0,e("rage_click"))};t.addEventListener("click",l),o.push(()=>t.removeEventListener("click",l))}{let i=!1,s=l=>{if(i||!(l.target instanceof Node)||!t.contains(l.target)&&t!==l.target)return;i=!0;let a=typeof window!="undefined"?window.getSelection():null,c=a?a.toString().length:0;e("text_copy",{selectionLength:c})};document.addEventListener("copy",s),o.push(()=>document.removeEventListener("copy",s))}{let i=!1,s=!1,l=null,a=()=>{l!==null&&(clearTimeout(l),l=null)},c=()=>{i||!s||(a(),l=setTimeout(()=>{!i&&s&&(i=!0,e("scroll_hesitation"))},3e3))},u=()=>{a(),c()},p=g=>{for(let w of g)s=w.intersectionRatio>.3,s?c():a()},y=new IntersectionObserver(p,{threshold:[.3]});y.observe(t),window.addEventListener("scroll",u,{passive:!0}),o.push(()=>{y.disconnect(),window.removeEventListener("scroll",u),a()})}if((r==null?void 0:r.tabLoss)!==!1){let i=!1,s=n!=null?n:Date.now(),l=()=>{if(i||document.visibilityState!=="hidden")return;let a=Date.now()-s;a<15e3&&(i=!0,e("tab_loss",{timeOnPage:a}))};document.addEventListener("visibilitychange",l),o.push(()=>document.removeEventListener("visibilitychange",l))}return()=>{for(let i of o)i()}}var xt="https://api.sentient-ui.com/v1/events",N=new Map,At=null;function qe(){return vt()}var ue={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 Un(){try{let e={},t=new URLSearchParams(window.location.search);for(let[n,r]of t)n.startsWith("utm_")&&(e[n]=r);return e}catch(e){return{}}}function kt(e){return e.replace(/\/events\/?$/,"")}function ae(){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(e=>e==="1"||e==="yes")}function Je(e){var t;if(typeof window=="undefined")return;let n=e!=null?e:At;if(!n){console.warn("[sentient] grantConsent() called before init()");return}let r=N.get(n);if(!r){console.warn("[sentient] grantConsent() called before init()");return}let{config:o,upgrade:i}=r;if(!i||o.respectDoNotTrack!==!1&&ae())return;let s=Ce(he(E({},o),{consent:!0}));i(s);let l=(t=N.get(n))==null?void 0:t.dispose;N.set(n,{config:he(E({},o),{consent:!0}),upgrade:null,dispose:l})}function Gn(e){var t;let n=kt((t=e.ingestUrl)!=null?t:xt),r={"Content-Type":"application/json",Authorization:`Bearer ${e.apiKey}`},o={track:()=>{},goal:()=>{},componentGoal:()=>{},identify:()=>{},getAssignment:()=>null,fetchWeights:()=>Promise.resolve([]),async assign(l,a,c){try{let u=new URLSearchParams({componentId:l});for(let y of a!=null?a:[])u.append("variantIds[]",y);let p=await fetch(`${n}/winner?${u.toString()}`,{headers:r});return p.ok?{variantId:(await p.json()).variantId,assignmentTtlMs:0}:a!=null&&a[0]?{variantId:a[0],assignmentTtlMs:0}:null}catch(u){return a!=null&&a[0]?{variantId:a[0],assignmentTtlMs:0}:null}},decide:()=>Promise.resolve(null),getSlotResult:()=>null,getPersona:()=>null,getGraph:()=>({pageNodes:[],capturedAt:0}),dispose:()=>{},destroy:()=>{}},i={track:l=>o.track(l),goal:(l,a,c,u)=>o.goal(l,a,c,u),componentGoal:(l,a,c)=>o.componentGoal(l,a,c),identify:l=>o.identify(l),getAssignment:(l,a)=>o.getAssignment(l,a),assign:(l,a,c,u)=>o.assign(l,a,c,u),decide:l=>o.decide(l),getSlotResult:l=>o.getSlotResult(l),getPersona:()=>o.getPersona(),fetchWeights:()=>o.fetchWeights(),getGraph:()=>o.getGraph(),dispose:()=>o.dispose(),destroy:()=>o.destroy()};function s(l){o=l}return{proxy:i,setInner:s}}function Ce(e){var t,n,r,o,i,s,l,a,c;if(typeof window=="undefined")return ue;At=e.apiKey;let u=N.get(e.apiKey||"local");if(u!=null&&u.dispose)try{u.dispose()}catch(d){}let p=e.respectDoNotTrack!==!1&&ae(),y=e.consent===!1||p,g=typeof e.apiKey=="string"&&e.apiKey.startsWith("pk_");if(e.localMode===!0||!g&&e.localMode!==!1)return y?(N.set(e.apiKey||"local",{config:e,upgrade:null}),ue):(N.set(e.apiKey||"local",{config:e,upgrade:null}),Bn(e));if(y){if(e.preConsentBehavior==="statistical_winner"){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."),ue;let{proxy:d,setInner:b}=Gn(e);return N.set(e.apiKey,{config:e,upgrade:p?null:b}),d}return N.set(e.apiKey,{config:e,upgrade:null}),ue}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."),ue;if(e.ingestUrl==="")return console.warn("[sentient] init() called with an empty ingestUrl. SDK disabled."),ue;let w=(t=e.ingestUrl)!=null?t:xt,v=Date.now(),A=bt({ssrSessionId:e.ssrSessionId}),P=Nn(),S=Mn({ingestUrl:w,apiKey:e.apiKey}),I=kt(w),j={"Content-Type":"application/json",Authorization:`Bearer ${e.apiKey}`},H=ct((n=navigator.userAgent)!=null?n:""),le=typeof window!="undefined"?window.location.origin:void 0,ne=ut((r=document.referrer)!=null?r:"",le),C=(o=e.sessionSegment)!=null?o:`${H}:${ne}`,Y=new Map,h=new Map,m=null,k=d=>{for(let b of d)h.has(b.id)||h.set(b.id,Be(b))};if(e.initialSlots)for(let[d,b]of Object.entries(e.initialSlots))h.set(d,b);let f=Oe(e.apiKey);if(f)for(let[d,b]of Object.entries(f.slots))h.has(d)||h.set(d,b);let x={low:.15,medium:.5,high:.85};if(e.initialPersona)m=E({},e.initialPersona);else{let d=document.documentElement.dataset;d.sentientPersona?m={persona:d.sentientPersona,confidence:(s=x[(i=d.sentientConfidence)!=null?i:"low"])!=null?s:.15}:f&&(m={persona:f.persona,confidence:(l=x[f.band])!=null?l:.15})}if(e.initialAssignments)for(let[d,b]of Object.entries(e.initialAssignments))P.set(d,C,{variantId:b,assignedAt:Date.now(),segment:C,confidence:1});let M=Promise.resolve(),z=A.getSessionId();if(z){let d=dt((a=document.referrer)!=null?a:""),b=E(E({sessionId:z,deviceClass:H,trafficSource:ne,referrerDomain:d,utmParams:Un(),timeOfDay:pt(new Date),dayOfWeek:["sun","mon","tue","wed","thu","fri","sat"][new Date().getDay()],ephemeral:A.isEphemeral(),automation:typeof navigator!="undefined"&&navigator.webdriver===!0||lt((c=navigator.userAgent)!=null?c:"")},e.userId?{userId:e.userId}:{}),e.country?{country:e.country}:{});try{M=fetch(`${I}/sessions`,{method:"POST",keepalive:!0,body:JSON.stringify(b),headers:j}).then(R=>{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")}).catch(()=>{})}catch(R){}}e.debug&&(console.log("[sentient] initialized",{context:e.context}),window.__sentient={client:null,queue:S});let G={goal(d,b={},R=1,J=0){let q=A.getSessionId();if(!q)return;let D=qe();M.then(()=>{fetch(`${I}/goals`,{method:"POST",keepalive:!0,body:JSON.stringify({sessionId:q,name:d,metadata:b,weight:R,stepIndex:J,goalId:D}),headers:j}).catch(()=>{})})},componentGoal(d,b,R){var J,q,D;let Z=A.getSessionId();if(!Z)return;let V=P.get(d,C),K=V?null:(J=h.get(d))!=null?J:null;if(!V&&K===null){e.debug&&console.warn(`[sentient] componentGoal("${d}"): no assignment or slot decision yet \u2014 render its <Adaptive>/adaptive hook or call assign()/decide() before recording a goal.`);return}let re=V?V.variantId:ft(K),B={id:qe(),sessionId:Z,projectId:e.apiKey,componentId:d,variantId:re,eventType:"goal_achieved",goalType:b,payload:E({reward:(q=R==null?void 0:R.reward)!=null?q:1},(D=R==null?void 0:R.metadata)!=null?D:{}),timestamp:Date.now(),timeInSession:Date.now()-v};e.debug&&console.log("[sentient] componentGoal",B),M.then(()=>S.push(B))},identify(d){let b=A.getSessionId();b&&M.then(()=>{fetch(`${I}/sessions`,{method:"POST",keepalive:!0,body:JSON.stringify({sessionId:b,userId:d,ephemeral:A.isEphemeral()}),headers:j}).catch(()=>{})})},track(d){let b=A.getSessionId();if(!b)return;let R=he(E({},d),{id:qe(),sessionId:b,timestamp:Date.now(),timeInSession:Date.now()-v});e.debug&&console.log("[sentient] track",R),M.then(()=>S.push(R))},getAssignment(d,b){return P.get(d,b)},async assign(d,b,R,J){let q=A.getSessionId();if(!q)return null;let D=P.get(d,C);if(D&&(b!=null&&b.length||D.content!==void 0)){let K=D.ttlMs&&D.ttlMs>0?Math.max(0,D.assignedAt+D.ttlMs-Date.now()):0;return{variantId:D.variantId,assignmentTtlMs:K,content:D.content}}let Z=Y.get(d);if(Z)return Z;let V=(async()=>{await M;try{let K={sessionId:q,componentId:d,variantIds:b};J!==void 0?K.agentDataByVariant=J:R!==void 0&&(K.agentData=R);let re=await fetch(`${I}/assign`,{method:"POST",body:JSON.stringify(K),headers:j});if(!re.ok)return null;let B=await re.json();return P.set(d,C,E({variantId:B.variantId,assignedAt:Date.now(),segment:C,confidence:1,content:B.content},B.assignmentTtlMs&&B.assignmentTtlMs>0?{ttlMs:B.assignmentTtlMs}:{})),B}catch(K){return null}finally{Y.delete(d)}})();return Y.set(d,V),V},async decide(d){var b,R,J,q,D,Z,V,K,re;let B=A.getSessionId();if(!B)return null;let fe=(b=d.slots)!=null?b:[];await M;try{let oe={sessionId:B};d.sections&&d.sections.length>0&&(oe.sections=d.sections.map(U=>({id:U}))),oe.components=(R=d.components)!=null?R:[],fe.length>0&&(oe.slots=fe.map(Ke)),d.slotsFrom==="registry"&&(oe.slotsFrom="registry"),d.v&&(oe.v=d.v);let Ze=await fetch(`${I}/decide`,{method:"POST",body:JSON.stringify(oe),headers:j});if(!Ze.ok)return k(fe),null;let _=await Ze.json(),ge={};for(let U of fe)ge[U.id]=(q=(J=_.slots)==null?void 0:J[U.id])!=null?q:Be(U);if(_.slots)for(let[U,me]of Object.entries(_.slots))U in ge||(ge[U]=me);for(let[U,me]of Object.entries(ge))h.set(U,me);let nn=m!=null&&m.persona!=="unknown";_.persona&&!(_.persona==="unknown"&&nn)?m={persona:_.persona,confidence:(D=_.confidence)!=null?D:0}:m||(m={persona:"unknown",confidence:0});for(let[U,me]of Object.entries((Z=_.assignments)!=null?Z:{}))P.set(U,C,{variantId:me,assignedAt:Date.now(),segment:C,confidence:1});return ye(e.apiKey,E({v:1,persona:m.persona,band:se(m.confidence),slots:Object.fromEntries(h),layoutOrder:(V=_.layoutOrder)!=null?V:null,savedAt:Date.now()},_.slotConfig?{slotConfig:_.slotConfig}:{})),E(E(E({layoutOrder:(K=_.layoutOrder)!=null?K:null,assignments:(re=_.assignments)!=null?re:{},slots:ge,persona:m.persona,confidence:m.confidence},_.slotConfig?{slotConfig:_.slotConfig}:{}),_.goals?{goals:_.goals}:{}),_.sectionMap?{sectionMap:_.sectionMap}:{})}catch(oe){return k(fe),null}},getSlotResult(d){var b;return(b=h.get(d))!=null?b:null},getPersona(){return m?{persona:m.persona,confidence:m.confidence,band:se(m.confidence)}:null},async fetchWeights(){var d;try{let b=await fetch(`${I}/weights`,{headers:j});return b.ok?(d=(await b.json()).components)!=null?d:[]:[]}catch(b){return[]}},getGraph(){return{pageNodes:[],capturedAt:0}},dispose(){var d;S.destroy(),((d=N.get(e.apiKey))==null?void 0:d.dispose)===G.dispose&&N.delete(e.apiKey),e.debug&&console.log("[sentient] disposed")},destroy(){var d;S.destroy(),A.destroy(),((d=N.get(e.apiKey))==null?void 0:d.dispose)===G.dispose&&N.delete(e.apiKey);try{localStorage.removeItem(Ee+e.apiKey),localStorage.removeItem(wt(e.apiKey))}catch(b){}e.debug&&console.log("[sentient] destroyed")}};if(N.set(e.apiKey,{config:e,upgrade:null,dispose:G.dispose}),e.debug){let d=window;d.__sentient&&(d.__sentient.client=G)}return G}var It=["pricing","hero","social_proof","cta","features","faq","comparison","trust","navigation","generic"],qn=[["pricing",/\b(pricing|price|plans?|subscriptions?|per month|\/mo|tier)\b/i],["faq",/\b(faq|frequently asked|common questions?)\b/i],["comparison",/\b(compare|comparison|versus|vs\.)\b/i],["social_proof",/\b(testimonial|reviews?|trusted by|loved by|customers?|logos|rated|case stud)\b/i],["trust",/\b(security|guarantee|privacy|compliance|secure|gdpr|soc ?2|encrypt)\b/i],["features",/\b(features?|how it works|benefits?|capabilit|what you get)\b/i]],Wn=[["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|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]];function zn(e){var t;let n=e.querySelector("h1, h2, h3");return((t=n==null?void 0:n.textContent)!=null?t:"").slice(0,160)}function Et(e){if(e.tag==="nav"||e.tag==="footer")return{type:"navigation",strength:"weak"};let t=`${e.idClass} ${e.headingText}`.toLowerCase();for(let[n,r]of qn)if(r.test(t))return{type:n,strength:"strong"};for(let[n,r]of Wn)if(r.test(e.bodyText))return{type:n,strength:"strong"};return e.actionCount>=1&&e.textLength>0&&e.textLength<200?{type:"cta",strength:"weak"}:e.tag==="header"?{type:"hero",strength:"weak"}:/\b(hero|headline|banner)\b/i.test(t)?{type:"hero",strength:"weak"}:{type:"generic",strength:"weak"}}function Ot(e){var t,n;let r=((t=e.textContent)!=null?t:"").replace(/\s+/g," ").trim();return{tag:e.tagName.toLowerCase(),idClass:`${e.id} ${String((n=e.className)!=null?n:"")}`,headingText:zn(e),bodyText:r.slice(0,2e3),actionCount:e.querySelectorAll('a, button, [role="button"]').length,textLength:r.length}}function Ct(e){return Et(Ot(e)).type}xe();var Rt="section, header, footer, nav, main > div, [data-sentient-section]";function Jn(e){var t;return((t=e.parentElement)==null?void 0:t.closest(Rt))!=null}function Vn(e,t,n,r){try{fetch(`${t}/v1/section-map`,{method:"POST",keepalive:!0,headers:{"content-type":"application/json",authorization:`Bearer ${e}`},body:JSON.stringify({pageUrl:n,sections:r})}).catch(()=>{})}catch(o){}}var _t=()=>{};function Tt(e,t){var n,r,o,i,s,l,a,c,u;let p=(n=t.doc)!=null?n:typeof document!="undefined"?document:void 0;if(!p||typeof IntersectionObserver=="undefined"||ae()||!t.apiKey)return _t;let y=((r=t.apiBase)!=null?r:"https://api.sentient-ui.com").replace(/\/+$/,"").replace(/\/v1$/,""),g=Array.from(p.querySelectorAll(Rt)).filter(h=>!Jn(h));if(g.length===0)return _t;let w=new Map,v=new Map,A=new Map;for(let h of g){let m=h.getAttribute("data-sentient-type"),k=m&&It.includes(m)?m:null,f=(i=k!=null?k:(o=t.typeOf)==null?void 0:o.call(t,h))!=null?i:Ct(h),x=`nc-${f}`;w.set(h,x),v.set(x,f),k?A.set(x,"markup"):A.has(x)||A.set(x,"auto")}let P=(c=(a=(l=(s=p.defaultView)!=null?s:typeof window!="undefined"?window:void 0)==null?void 0:l.location)==null?void 0:a.pathname)!=null?c:"/";Vn(t.apiKey,y,P,[...v.entries()].map(([h,m])=>{var k;return{componentId:h,semanticType:m,source:(k=A.get(h))!=null?k:"auto"}}));let S=new Map,I=h=>{let m=S.get(h);return m||(m={ms:0,scroll:0,enterAt:null,intersecting:!1},S.set(h,m)),m},j=new IntersectionObserver(h=>{for(let m of h){let k=w.get(m.target);if(!k)continue;let f=I(k);m.isIntersecting?(f.intersecting=!0,f.enterAt=Date.now(),m.intersectionRatio>f.scroll&&(f.scroll=m.intersectionRatio)):(f.intersecting=!1,f.enterAt!=null&&(f.ms+=Date.now()-f.enterAt,f.enterAt=null))}},{threshold:[0,.25,.5,.75,1]});for(let h of w.keys())j.observe(h);let H=()=>{let h=Date.now();for(let[m,k]of S)if(k.enterAt!=null&&(k.ms+=h-k.enterAt,k.enterAt=null),!(k.ms<=0)){try{e.track({projectId:t.apiKey,componentId:m,eventType:"dwell",payload:{dwell_time:Math.round(k.ms),scroll_depth:Number(k.scroll.toFixed(2))}})}catch(f){}k.ms=0}},le=()=>{if(p.hidden)H();else{let h=Date.now();for(let m of S.values())m.intersecting&&(m.enterAt=h)}},ne=()=>{H();try{j.disconnect()}catch(h){}};p.addEventListener("visibilitychange",le);let C=(u=p.defaultView)!=null?u:typeof window!="undefined"?window:void 0;C==null||C.addEventListener("pagehide",ne);let Y=[];return t.microSignals&&[...w.entries()].forEach(([h,m],k)=>{Y.push(ve((f,x={})=>{try{e.track({projectId:t.apiKey,componentId:m,eventType:"micro_signal",payload:E({signalType:f},x)})}catch(M){}},h,void 0,{tabLoss:k===0}))}),()=>{H(),p.removeEventListener("visibilitychange",le),C==null||C.removeEventListener("pagehide",ne);for(let h of Y)h();try{j.disconnect()}catch(h){}}}var Fn=["landing","ecommerce","saas","marketplace"];function Hn(e){if(typeof e!="object"||e===null||Array.isArray(e))return null;let t=Object.entries(e);if(t.length<1||t.length>4)return null;let n={};for(let[r,o]of t){if(!Array.isArray(o)||o.length<2||o.length>6||!o.every(i=>typeof i=="string"))return null;n[r]=o}return n}function Yn(e){return!Array.isArray(e)||e.length<2||e.length>12||!e.every(t=>typeof t=="string")?null:e}function _e(e){if(typeof e!="object"||e===null)return null;let t=e;if(typeof t.apiKey!="string"||!t.apiKey.startsWith("pk_"))return null;let n=Fn.includes(t.context)?t.context:"landing",r={};if(typeof t.slots=="object"&&t.slots!==null&&!Array.isArray(t.slots))for(let[i,s]of Object.entries(t.slots)){if(typeof s!="object"||s===null)continue;let l=s,a=Hn(l.dims);if(!a||l.target!==void 0&&typeof l.target!="string")continue;let c=l.arms!==void 0?Yn(l.arms):null,u={dims:a};typeof l.target=="string"&&(u.target=l.target),c&&(u.arms=c),r[i]=u}let o={apiKey:t.apiKey,context:n,personaAttributes:t.personaAttributes===!0,slots:r};return typeof t.consent=="boolean"&&(o.consent=t.consent),(t.preConsentBehavior==="statistical_winner"||t.preConsentBehavior==="control")&&(o.preConsentBehavior=t.preConsentBehavior),t.debug===!0&&(o.debug=!0),typeof t.registry=="boolean"&&(o.registry=t.registry),typeof t.editorSrc=="string"&&(o.editorSrc=t.editorSrc),typeof t.apiBase=="string"&&(o.apiBase=t.apiBase),typeof t.sectionCapture=="boolean"&&(o.sectionCapture=t.sectionCapture),o}function Lt(e){var n,r,o;let t=(r=(n=e.defaultView)!=null?n:typeof window!="undefined"?window:void 0)==null?void 0:r.location;return(o=t==null?void 0:t.pathname)!=null?o:""}function Xn(e,t){var n;if(t.tag&&e.tagName.toLowerCase()!==t.tag.toLowerCase())return!1;if(t.text){let r=((n=e.textContent)!=null?n:"").trim().toLowerCase(),o=t.text.trim().toLowerCase();if(!(r===o||r.startsWith(o)||o.startsWith(r)))return!1}return!0}function Pt(e,t){return!!(e!=null&&e.urlMatch)&&!Lt(t).includes(e.urlMatch)}var Zn=/^[a-zA-Z_][-a-zA-Z0-9_]*$/;function Q(e,t){var o;if(e.urlMatch&&!Lt(t).includes(e.urlMatch))return null;let n=[];if(e.id){let i=t.getElementById(e.id);n=i?[i]:[]}if(n.length===0&&((o=e.dataAttr)!=null&&o.name)&&Zn.test(e.dataAttr.name))try{let i=e.dataAttr.value.replace(/["\\]/g,"\\$&");n=Array.from(t.querySelectorAll(`[${e.dataAttr.name}="${i}"]`))}catch(i){n=[]}if(n.length===0&&e.selector)try{n=Array.from(t.querySelectorAll(e.selector))}catch(i){n=[]}if(n.length!==1)return null;let r=n[0];return e.fingerprint&&!Xn(r,e.fingerprint)?null:r}var Dt={color:"color",background:"background",fontSize:"font-size",fontWeight:"font-weight",textAlign:"text-align",padding:"padding",margin:"margin",borderRadius:"border-radius",width:"width",height:"height",maxWidth:"max-width",border:"border",boxShadow:"box-shadow",opacity:"opacity",lineHeight:"line-height",letterSpacing:"letter-spacing",textTransform:"text-transform",gap:"gap"},Qn=/^(rgb|rgba|hsl|hsla|calc|var|min|max|clamp)$/i;function Mt(e){var t;if(e.trim().length===0||/[;{}<>]/.test(e))return!1;for(let n of e.matchAll(/([A-Za-z-]*)\(/g))if(!Qn.test((t=n[1])!=null?t:""))return!1;return!0}var jt=/^https:\/\//i,Nt=new Map,ee=null;function er(e){return e.replace(/["\\]/g,"\\$&")}function tr(e){var t;(!ee||!ee.isConnected)&&(ee=e.querySelector("style[data-sentient-ops]"),ee||(ee=e.createElement("style"),ee.setAttribute("data-sentient-ops",""),((t=e.head)!=null?t:e.documentElement).appendChild(ee))),ee.textContent=[...Nt.entries()].map(([n,r])=>`[data-snt-e="${er(n)}"]{${r}}`).join(`
|
|
2
|
-
`)}function $t(e,t,n,r){var l;let o=!1,i=(l=t.moveBefore)!=null?l:t.moveAfter;if(i){let a=Q(i,r);!a||a===e||a.parentElement!==e.parentElement||!e.parentElement?o=!0:t.moveBefore?e.parentElement.insertBefore(e,a):e.parentElement.insertBefore(e,a.nextSibling)}typeof t.text=="string"&&(e.textContent=t.text),typeof t.href=="string"&&jt.test(t.href)&&e.setAttribute("href",t.href),typeof t.imageSrc=="string"&&jt.test(t.imageSrc)&&e.setAttribute("src",t.imageSrc),typeof t.imageAlt=="string"&&e.setAttribute("alt",t.imageAlt);let s=[];if(t.hidden&&s.push("display:none !important"),t.style)for(let[a,c]of Object.entries(t.style)){let u=Dt[a];u&&typeof c=="string"&&Mt(c)&&s.push(`${u}:${c.trim()} !important`)}return s.length>0&&(e.setAttribute("data-snt-e",n),Nt.set(n,s.join(";")),tr(r)),{anchorMiss:o}}function Re(e,t,n){n.documentElement.setAttribute("data-sentient-persona",e),n.documentElement.setAttribute("data-sentient-confidence",t)}function Te(e,t,n){var r;for(let[o,i]of Object.entries(t)){let s=e[o];if(!s||typeof s=="string")continue;let l=i.target?Array.from(n.querySelectorAll(i.target)):[n.documentElement];for(let a of l)for(let[c,u]of Object.entries(s))(r=i.dims[c])!=null&&r.includes(u)&&a.setAttribute(`data-${c}`,u)}}function Le(e,t,n){for(let[r,o]of Object.entries(t)){let i=e[r];if(typeof i!="string"||!o.arms||!o.arms.includes(i))continue;let s=o.target?Array.from(n.querySelectorAll(o.target)):[n.documentElement];for(let l of s)l.setAttribute("data-sentient-arm",i)}}function Pe(e,t,n,r){var s,l;let o=(s=r==null?void 0:r.contentAndOps)!=null?s:!0,i=[];for(let[a,c]of Object.entries(t)){if(Pt(c.locator,n))continue;let u;if(c.locator){let y=Q(c.locator,n);u=y?[y]:[]}else c.target?u=Array.from(n.querySelectorAll(c.target)):u=[n.documentElement];(c.locator||c.target)&&u.length===0&&i.push(a);let p=e[a];for(let y of u){if(p!==void 0)if(typeof p=="string")y.setAttribute("data-sentient-arm",p),o&&((l=r==null?void 0:r.onApplied)==null||l.call(r,a,p,y));else for(let[g,w]of Object.entries(p))y.setAttribute(`data-${g}`,w);o&&(typeof c.content=="string"&&(y.textContent=c.content),c.ops&&$t(y,c.ops,a,n).anchorMiss&&!i.includes(a)&&i.push(a))}}return i}var nr=800;function De(e,t,n){let r=[];return n.forEach(({slotId:o,arm:i,el:s},l)=>{r.push(ve((y,g={})=>{try{e.track({projectId:t,componentId:o,variantId:i,eventType:"micro_signal",payload:ie({signalType:y},g)})}catch(w){}},s,void 0,{tabLoss:l===0}));let a=null,c=0,u=()=>{c=Date.now(),a=setTimeout(()=>{try{e.track({projectId:t,componentId:o,variantId:i,eventType:"cursor_signal",payload:{hoverDuration:Date.now()-c}})}catch(y){}a=null},nr)},p=()=>{a!==null&&(clearTimeout(a),a=null)};s.addEventListener("mouseenter",u),s.addEventListener("mouseleave",p),r.push(()=>{s.removeEventListener("mouseenter",u),s.removeEventListener("mouseleave",p),a!==null&&clearTimeout(a)})}),()=>{for(let o of r)o()}}function rr(e){var n,r,o;let t=(r=(n=e.defaultView)!=null?n:typeof window!="undefined"?window:void 0)==null?void 0:r.location;return(o=t==null?void 0:t.pathname)!=null?o:""}function or(e,t){if(!e)return!1;if(e==="/")return t==="/";let n=e.endsWith("/")?e.slice(0,-1):e;return t===n||t.startsWith(`${n}/`)}function Kt(e,t,n){var y;let r=new Set,o=g=>{if(!r.has(g.goalId)){r.add(g.goalId);try{g.slotId?t.componentGoal(g.slotId,g.goalId):t.goal(g.goalId)}catch(w){}}},i=e.filter(g=>g.event==="click"),s=e.filter(g=>g.event==="form_submit"),l=e.filter(g=>g.event==="url_reached"),a=(g,w)=>{if(!g.locator)return!1;let v=Q(g.locator,n);return!!v&&(v===w||v.contains(w))},c=g=>{let w=g.target;if(!(!w||typeof w.closest!="function"))for(let v of i)a(v,w)&&o(v)},u=g=>{let w=g.target;if(w)for(let v of s)a(v,w)&&o(v)},p=()=>{if(l.length===0)return;let g=rr(n);for(let w of l)w.urlPattern&&or(w.urlPattern,g)&&o(w)};return n.addEventListener("click",c,!0),n.addEventListener("submit",u,!0),(y=n.defaultView)==null||y.addEventListener("popstate",p),p(),{checkUrl:p,teardown:()=>{var g;n.removeEventListener("click",c,!0),n.removeEventListener("submit",u,!0),(g=n.defaultView)==null||g.removeEventListener("popstate",p)}}}var Bt="__snt_editor_token";function Ut(){try{return typeof sessionStorage!="undefined"?sessionStorage.getItem(Bt):null}catch(e){return null}}function Gt(e){try{sessionStorage.setItem(Bt,e)}catch(t){}}var Fe="0.11.4",Ht=5e3,ir=50,$=null,T=null,X={},te=null,W=null,L=null,F=null,O=null,qt=!1,Ve=null,Me=null,je=null,be=!1,Ne=!1;function Yt(e,t){return Promise.race([e,new Promise(n=>setTimeout(()=>n(null),t))])}function de(e,...t){e!=null&&e.debug&&console.log("[sentient-snippet]",...t)}function pe(e,t){return $?($.personaAttributes&&O&&Re(O.persona,O.band,e),Te(X,$.slots,e),Le(X,$.slots,e),te?Pe(X,te,e,t):[]):[]}function sr(e,t){var n;if(t.length!==0)try{let r=(n=e.apiBase)!=null?n:"https://api.sentient-ui.com";fetch(`${r}/v1/locator-miss`,{method:"POST",keepalive:!0,headers:{"content-type":"application/json",authorization:`Bearer ${e.apiKey}`},body:JSON.stringify({slots:t})}).catch(()=>{})}catch(r){}}function we(){return!!($&&T&&$.sectionCapture!==!1&&($.consent!==!1||Ne)&&!ae())}function ar(){if(!T||!$||!we()||F)return;let e=[];pe(document,{contentAndOps:be,onApplied:(t,n,r)=>e.push({slotId:t,arm:n,el:r})}),Ye();try{L==null||L(),L=De(T,$.apiKey,e)}catch(t){}}function Ye(){if(typeof document=="undefined"||!we())return;let e;try{if(Me&&Me.length>0){let t=new Map;for(let n of Me){if(n.urlMatch!==window.location.pathname)continue;let r=Q(n.locator,document);r&&t.set(r,n.type)}t.size>0&&(e=n=>{var r;return(r=t.get(n))!=null?r:null})}}catch(t){}try{F=Tt(T,ie({apiKey:$.apiKey,apiBase:$.apiBase,doc:document,microSignals:!0},e?{typeOf:e}:{})),je=window.location.pathname}catch(t){}}function Xe(){try{let e=[];if(L==null||L(),L=null,pe(document,{contentAndOps:be,onApplied:(t,n,r)=>e.push({slotId:t,arm:n,el:r})}),e.length>0&&we())try{L=De(T,$.apiKey,e)}catch(t){}try{typeof window!="undefined"&&je!==null&&window.location.pathname!==je&&we()&&(F==null||F(),F=null,Ye())}catch(t){}}catch(e){}}function Wt(){Ve===null&&(Ve=setTimeout(()=>{Ve=null,Xe();try{W==null||W.checkUrl()}catch(e){}},ir))}function zt(){if(!(qt||typeof window=="undefined"||typeof history=="undefined")){qt=!0;try{let e=t=>{let n=history[t];history[t]=function(r,o,i){let s=n.call(this,r,o,i!=null?i:null);return Wt(),s}};e("pushState"),e("replaceState"),window.addEventListener("popstate",Wt)}catch(e){}}}function He(e){let t={};for(let[n,r]of Object.entries(e.slots))t[n]=r.target?document.querySelectorAll(r.target).length:1;return t}function Xt(e){return new URLSearchParams(e).get("sentient_editor")}function lr(){try{let t=Array.from(document.getElementsByTagName("script")).find(n=>/snippet(\.global)?\.js/.test(n.src));if(t!=null&&t.src)return t.src.replace(/snippet(\.global)?\.js/,"editor.global.js")}catch(e){}return null}function cr(e,t){var n,r,o,i;try{window.__sentientEditor={token:t,apiBase:(n=e.apiBase)!=null?n:"https://api.sentient-ui.com"};try{let a=document.createElement("meta");a.name="referrer",a.content="no-referrer",a.setAttribute("data-sentient-editor",""),((r=document.head)!=null?r:document.documentElement).appendChild(a)}catch(a){}let s=(o=e.editorSrc)!=null?o:lr();if(!s){Vt();return}let l=document.createElement("script");l.src=s,l.async=!0,l.onerror=()=>Vt(),((i=document.head)!=null?i:document.documentElement).appendChild(l)}catch(s){}}var Jt="sentient-editor-load-notice";function Vt(){var e;try{if(typeof document=="undefined"||document.getElementById(Jt))return;let t=document.createElement("div");t.id=Jt,t.textContent="Couldn\u2019t load the editor \u2014 check your connection and reopen it from your dashboard.",Object.assign(t.style,{position:"fixed",bottom:"16px",right:"16px",zIndex:"2147483647",maxWidth:"320px",padding:"14px 16px",borderRadius:"14px",background:"#111827",color:"#fff",font:"13px/1.45 system-ui, sans-serif",border:"1px solid rgba(245,158,11,0.6)",boxShadow:"0 10px 34px rgba(0,0,0,0.45)",cursor:"pointer"}),t.addEventListener("click",()=>t.remove()),((e=document.body)!=null?e:document.documentElement).appendChild(t),setTimeout(()=>t.remove(),1e4)}catch(t){}}function Zt(e){let t=new URLSearchParams(e).get("sentient_preview");if(!t)return null;let n={};for(let r of t.split("|")){let o=r.indexOf(":"),i=o===-1?"":r.slice(0,o),s=o===-1?"":r.slice(o+1);if(!(!i||!s))if(s.includes("=")){let l={};for(let a of s.split(",")){let[c,u]=a.split("=");c&&u&&(l[c]=u)}Object.keys(l).length&&(n[i]=l)}else n[i]=s}return Object.keys(n).length?n:null}function Qt(e){try{return new URLSearchParams(e).get("sentient_persona")||null}catch(t){return null}}var Ft="sentient-persona-preview-banner";function ur(e){var t;try{if(typeof document=="undefined"||document.getElementById(Ft))return;let n=e.charAt(0).toUpperCase()+e.slice(1).replace(/[_-]+/g," "),r=document.createElement("div");r.id=Ft,r.setAttribute("role","status"),Object.assign(r.style,{position:"fixed",bottom:"16px",left:"50%",transform:"translateX(-50%)",zIndex:"2147483647",display:"flex",alignItems:"center",gap:"12px",padding:"10px 14px",borderRadius:"999px",background:"#111827",color:"#fff",font:"13px/1 system-ui, sans-serif",boxShadow:"0 10px 34px rgba(0,0,0,0.45)",border:"1px solid rgba(255,255,255,0.14)"});let o=document.createElement("span");o.textContent=`Previewing as ${n}`;let i=document.createElement("button");i.type="button",i.textContent="Exit preview",Object.assign(i.style,{cursor:"pointer",border:"1px solid rgba(255,255,255,0.3)",background:"transparent",color:"#fff",font:"inherit",padding:"4px 10px",borderRadius:"999px"}),i.addEventListener("click",()=>{try{let s=new URL(window.location.href);s.searchParams.delete("sentient_persona"),window.location.href=s.pathname+s.search+s.hash}catch(s){}}),r.appendChild(o),r.appendChild(i),((t=document.body)!=null?t:document.documentElement).appendChild(r)}catch(n){}}async function dr(e,t){var c,u,p,y,g,w,v,A,P;let n=(c=e.apiBase)!=null?c:"https://api.sentient-ui.com",o=((u=e.registry)!=null?u:Object.keys(e.slots).length===0)?{persona:t,slotsFrom:"registry"}:{persona:t,slots:Object.entries(e.slots).map(([S,I])=>({id:S,dims:I.dims}))},i=await Yt(fetch(`${n}/v1/explain`,{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${e.apiKey}`},body:JSON.stringify(o)}).then(S=>S.ok?S.json():null).catch(()=>null),Ht);if(!i){de(e,"persona preview: explain unavailable \u2014 page left as-is");return}let s=i;X=(p=s.slots)!=null?p:{},te=(y=s.slotConfig)!=null?y:null;let l=(v=(w=(g=s.personaAttributes)==null?void 0:g.persona)!=null?w:s.persona)!=null?v:t,a=(P=(A=s.personaAttributes)==null?void 0:A.confidence)!=null?P:"high";O={persona:l,band:a},pe(document),be=!0,en(e),ur(l)}function en(e){let t={goal(n,r){try{T==null||T.goal(n,r)}catch(o){}},componentGoal(n,r){try{T==null||T.componentGoal(n,r)}catch(o){}},grantConsent(){try{Je(e.apiKey)}catch(n){}Ne=!0;try{ar()}catch(n){}},revokeConsent(){try{F==null||F(),F=null,je=null,L==null||L(),L=null,W==null||W.teardown(),W=null,Ne=!1,T==null||T.destroy()}catch(n){}},reapply:Xe,getState(){var n,r;return{apiKey:e.apiKey,persona:(n=O==null?void 0:O.persona)!=null?n:null,band:(r=O==null?void 0:O.band)!=null?r:null,slots:X,matchCounts:He(e),consent:e.consent!==!1}}};window.SentientSnippet=t}async function tn(){var e,t,n,r,o;try{let i=_e(window.sentient);if(!i)return;$=i,be=!1,Ne=!1;let s=typeof window!="undefined"?Xt(window.location.search):null;if(s){Gt(s);try{let S=new URL(window.location.href);S.searchParams.delete("sentient_editor"),window.history.replaceState(null,"",S.pathname+S.search+S.hash)}catch(S){}}let l=s!=null?s:Ut();if(l){cr(i,l),de(i,"editor mode");return}let a=typeof window!="undefined"?Zt(window.location.search):null;if(a){X=a,O=null,pe(document),zt(),de(i,"preview mode",a);return}let c=typeof window!="undefined"?Qt(window.location.search):null;if(c){await dr(i,c),de(i,"persona preview",c);return}let u=(e=i.registry)!=null?e:Object.keys(i.slots).length===0,p=Oe(i.apiKey);p&&(O={persona:p.persona,band:p.band},X=p.slots,p.slotConfig&&(te=p.slotConfig),pe(document,{contentAndOps:!1}));let y=Ce({apiKey:i.apiKey,context:i.context,consent:i.consent,preConsentBehavior:i.preConsentBehavior,debug:i.debug});T=y,en(i),zt();let g=Object.entries(i.slots).map(([S,I])=>({id:S,dims:I.dims})),w=Fe!=="0.0.0-dev"?{v:Fe}:{},v=await Yt(y.decide(ie(ie({slots:g},w),u?{slotsFrom:"registry"}:{})),Ht);if(!v){de(i,"decide timeout/null \u2014 snapshot state stands",He(i));return}let A=y.getPersona();A?O={persona:A.persona,band:A.band}:v.persona&&(O={persona:v.persona,band:"low"}),X=v.slots,u?te=(t=v.slotConfig)!=null?t:null:v.slotConfig&&(te=v.slotConfig);let P=[];if(sr(i,pe(document,{onApplied:(S,I,j)=>P.push({slotId:S,arm:I,el:j})})),be=!0,v.goals&&v.goals.length>0&&i.consent!==!1&&T)try{W==null||W.teardown(),W=Kt(v.goals,T,document)}catch(S){}if(Me=(n=v.sectionMap)!=null?n:null,we()){Ye();try{L==null||L(),L=De(T,i.apiKey,P)}catch(S){}}de(i,"applied",{persona:O,slots:X,matches:He(i)}),ye(i.apiKey,ie({v:1,persona:(r=O==null?void 0:O.persona)!=null?r:v.persona,band:(o=O==null?void 0:O.band)!=null?o:"low",slots:v.slots,layoutOrder:v.layoutOrder,savedAt:Date.now()},te?{slotConfig:te}:{}))}catch(i){}}if(typeof window!="undefined"&&window.sentient){let e=window;e.__sentientInitialized||(e.__sentientInitialized=!0,tn())}return ln(pr);})();
|
|
2
|
+
`)}function $t(e,t,n,r){var l;let o=!1,i=(l=t.moveBefore)!=null?l:t.moveAfter;if(i){let a=Q(i,r);!a||a===e||a.parentElement!==e.parentElement||!e.parentElement?o=!0:t.moveBefore?e.parentElement.insertBefore(e,a):e.parentElement.insertBefore(e,a.nextSibling)}typeof t.text=="string"&&(e.textContent=t.text),typeof t.href=="string"&&jt.test(t.href)&&e.setAttribute("href",t.href),typeof t.imageSrc=="string"&&jt.test(t.imageSrc)&&e.setAttribute("src",t.imageSrc),typeof t.imageAlt=="string"&&e.setAttribute("alt",t.imageAlt);let s=[];if(t.hidden&&s.push("display:none !important"),t.style)for(let[a,c]of Object.entries(t.style)){let u=Dt[a];u&&typeof c=="string"&&Mt(c)&&s.push(`${u}:${c.trim()} !important`)}return s.length>0&&(e.setAttribute("data-snt-e",n),Nt.set(n,s.join(";")),tr(r)),{anchorMiss:o}}function Re(e,t,n){n.documentElement.setAttribute("data-sentient-persona",e),n.documentElement.setAttribute("data-sentient-confidence",t)}function Te(e,t,n){var r;for(let[o,i]of Object.entries(t)){let s=e[o];if(!s||typeof s=="string")continue;let l=i.target?Array.from(n.querySelectorAll(i.target)):[n.documentElement];for(let a of l)for(let[c,u]of Object.entries(s))(r=i.dims[c])!=null&&r.includes(u)&&a.setAttribute(`data-${c}`,u)}}function Le(e,t,n){for(let[r,o]of Object.entries(t)){let i=e[r];if(typeof i!="string"||!o.arms||!o.arms.includes(i))continue;let s=o.target?Array.from(n.querySelectorAll(o.target)):[n.documentElement];for(let l of s)l.setAttribute("data-sentient-arm",i)}}function Pe(e,t,n,r){var s,l;let o=(s=r==null?void 0:r.contentAndOps)!=null?s:!0,i=[];for(let[a,c]of Object.entries(t)){if(Pt(c.locator,n))continue;let u;if(c.locator){let y=Q(c.locator,n);u=y?[y]:[]}else c.target?u=Array.from(n.querySelectorAll(c.target)):u=[n.documentElement];(c.locator||c.target)&&u.length===0&&i.push(a);let p=e[a];for(let y of u){if(p!==void 0)if(typeof p=="string")y.setAttribute("data-sentient-arm",p),o&&((l=r==null?void 0:r.onApplied)==null||l.call(r,a,p,y));else for(let[g,w]of Object.entries(p))y.setAttribute(`data-${g}`,w);o&&(typeof c.content=="string"&&(y.textContent=c.content),c.ops&&$t(y,c.ops,a,n).anchorMiss&&!i.includes(a)&&i.push(a))}}return i}var nr=800;function De(e,t,n){let r=[];return n.forEach(({slotId:o,arm:i,el:s},l)=>{r.push(ve((y,g={})=>{try{e.track({projectId:t,componentId:o,variantId:i,eventType:"micro_signal",payload:ie({signalType:y},g)})}catch(w){}},s,void 0,{tabLoss:l===0}));let a=null,c=0,u=()=>{c=Date.now(),a=setTimeout(()=>{try{e.track({projectId:t,componentId:o,variantId:i,eventType:"cursor_signal",payload:{hoverDuration:Date.now()-c}})}catch(y){}a=null},nr)},p=()=>{a!==null&&(clearTimeout(a),a=null)};s.addEventListener("mouseenter",u),s.addEventListener("mouseleave",p),r.push(()=>{s.removeEventListener("mouseenter",u),s.removeEventListener("mouseleave",p),a!==null&&clearTimeout(a)})}),()=>{for(let o of r)o()}}function rr(e){var n,r,o;let t=(r=(n=e.defaultView)!=null?n:typeof window!="undefined"?window:void 0)==null?void 0:r.location;return(o=t==null?void 0:t.pathname)!=null?o:""}function or(e,t){if(!e)return!1;if(e==="/")return t==="/";let n=e.endsWith("/")?e.slice(0,-1):e;return t===n||t.startsWith(`${n}/`)}function Kt(e,t,n){var y;let r=new Set,o=g=>{if(!r.has(g.goalId)){r.add(g.goalId);try{g.slotId?t.componentGoal(g.slotId,g.goalId):t.goal(g.goalId)}catch(w){}}},i=e.filter(g=>g.event==="click"),s=e.filter(g=>g.event==="form_submit"),l=e.filter(g=>g.event==="url_reached"),a=(g,w)=>{if(!g.locator)return!1;let v=Q(g.locator,n);return!!v&&(v===w||v.contains(w))},c=g=>{let w=g.target;if(!(!w||typeof w.closest!="function"))for(let v of i)a(v,w)&&o(v)},u=g=>{let w=g.target;if(w)for(let v of s)a(v,w)&&o(v)},p=()=>{if(l.length===0)return;let g=rr(n);for(let w of l)w.urlPattern&&or(w.urlPattern,g)&&o(w)};return n.addEventListener("click",c,!0),n.addEventListener("submit",u,!0),(y=n.defaultView)==null||y.addEventListener("popstate",p),p(),{checkUrl:p,teardown:()=>{var g;n.removeEventListener("click",c,!0),n.removeEventListener("submit",u,!0),(g=n.defaultView)==null||g.removeEventListener("popstate",p)}}}var Bt="__snt_editor_token";function Ut(){try{return typeof sessionStorage!="undefined"?sessionStorage.getItem(Bt):null}catch(e){return null}}function Gt(e){try{sessionStorage.setItem(Bt,e)}catch(t){}}var Fe="0.11.5",Ht=5e3,ir=50,$=null,T=null,X={},te=null,W=null,L=null,F=null,O=null,qt=!1,Ve=null,Me=null,je=null,be=!1,Ne=!1;function Yt(e,t){return Promise.race([e,new Promise(n=>setTimeout(()=>n(null),t))])}function de(e,...t){e!=null&&e.debug&&console.log("[sentient-snippet]",...t)}function pe(e,t){return $?($.personaAttributes&&O&&Re(O.persona,O.band,e),Te(X,$.slots,e),Le(X,$.slots,e),te?Pe(X,te,e,t):[]):[]}function sr(e,t){var n;if(t.length!==0)try{let r=(n=e.apiBase)!=null?n:"https://api.sentient-ui.com";fetch(`${r}/v1/locator-miss`,{method:"POST",keepalive:!0,headers:{"content-type":"application/json",authorization:`Bearer ${e.apiKey}`},body:JSON.stringify({slots:t})}).catch(()=>{})}catch(r){}}function we(){return!!($&&T&&$.sectionCapture!==!1&&($.consent!==!1||Ne)&&!ae())}function ar(){if(!T||!$||!we()||F)return;let e=[];pe(document,{contentAndOps:be,onApplied:(t,n,r)=>e.push({slotId:t,arm:n,el:r})}),Ye();try{L==null||L(),L=De(T,$.apiKey,e)}catch(t){}}function Ye(){if(typeof document=="undefined"||!we())return;let e;try{if(Me&&Me.length>0){let t=new Map;for(let n of Me){if(n.urlMatch!==window.location.pathname)continue;let r=Q(n.locator,document);r&&t.set(r,n.type)}t.size>0&&(e=n=>{var r;return(r=t.get(n))!=null?r:null})}}catch(t){}try{F=Tt(T,ie({apiKey:$.apiKey,apiBase:$.apiBase,doc:document,microSignals:!0},e?{typeOf:e}:{})),je=window.location.pathname}catch(t){}}function Xe(){try{let e=[];if(L==null||L(),L=null,pe(document,{contentAndOps:be,onApplied:(t,n,r)=>e.push({slotId:t,arm:n,el:r})}),e.length>0&&we())try{L=De(T,$.apiKey,e)}catch(t){}try{typeof window!="undefined"&&je!==null&&window.location.pathname!==je&&we()&&(F==null||F(),F=null,Ye())}catch(t){}}catch(e){}}function Wt(){Ve===null&&(Ve=setTimeout(()=>{Ve=null,Xe();try{W==null||W.checkUrl()}catch(e){}},ir))}function zt(){if(!(qt||typeof window=="undefined"||typeof history=="undefined")){qt=!0;try{let e=t=>{let n=history[t];history[t]=function(r,o,i){let s=n.call(this,r,o,i!=null?i:null);return Wt(),s}};e("pushState"),e("replaceState"),window.addEventListener("popstate",Wt)}catch(e){}}}function He(e){let t={};for(let[n,r]of Object.entries(e.slots))t[n]=r.target?document.querySelectorAll(r.target).length:1;return t}function Xt(e){return new URLSearchParams(e).get("sentient_editor")}function lr(){try{let t=Array.from(document.getElementsByTagName("script")).find(n=>/snippet(\.global)?\.js/.test(n.src));if(t!=null&&t.src)return t.src.replace(/snippet(\.global)?\.js/,"editor.global.js")}catch(e){}return null}function cr(e,t){var n,r,o,i;try{window.__sentientEditor={token:t,apiBase:(n=e.apiBase)!=null?n:"https://api.sentient-ui.com"};try{let a=document.createElement("meta");a.name="referrer",a.content="no-referrer",a.setAttribute("data-sentient-editor",""),((r=document.head)!=null?r:document.documentElement).appendChild(a)}catch(a){}let s=(o=e.editorSrc)!=null?o:lr();if(!s){Vt();return}let l=document.createElement("script");l.src=s,l.async=!0,l.onerror=()=>Vt(),((i=document.head)!=null?i:document.documentElement).appendChild(l)}catch(s){}}var Jt="sentient-editor-load-notice";function Vt(){var e;try{if(typeof document=="undefined"||document.getElementById(Jt))return;let t=document.createElement("div");t.id=Jt,t.textContent="Couldn\u2019t load the editor \u2014 check your connection and reopen it from your dashboard.",Object.assign(t.style,{position:"fixed",bottom:"16px",right:"16px",zIndex:"2147483647",maxWidth:"320px",padding:"14px 16px",borderRadius:"14px",background:"#111827",color:"#fff",font:"13px/1.45 system-ui, sans-serif",border:"1px solid rgba(245,158,11,0.6)",boxShadow:"0 10px 34px rgba(0,0,0,0.45)",cursor:"pointer"}),t.addEventListener("click",()=>t.remove()),((e=document.body)!=null?e:document.documentElement).appendChild(t),setTimeout(()=>t.remove(),1e4)}catch(t){}}function Zt(e){let t=new URLSearchParams(e).get("sentient_preview");if(!t)return null;let n={};for(let r of t.split("|")){let o=r.indexOf(":"),i=o===-1?"":r.slice(0,o),s=o===-1?"":r.slice(o+1);if(!(!i||!s))if(s.includes("=")){let l={};for(let a of s.split(",")){let[c,u]=a.split("=");c&&u&&(l[c]=u)}Object.keys(l).length&&(n[i]=l)}else n[i]=s}return Object.keys(n).length?n:null}function Qt(e){try{return new URLSearchParams(e).get("sentient_persona")||null}catch(t){return null}}var Ft="sentient-persona-preview-banner";function ur(e){var t;try{if(typeof document=="undefined"||document.getElementById(Ft))return;let n=e.charAt(0).toUpperCase()+e.slice(1).replace(/[_-]+/g," "),r=document.createElement("div");r.id=Ft,r.setAttribute("role","status"),Object.assign(r.style,{position:"fixed",bottom:"16px",left:"50%",transform:"translateX(-50%)",zIndex:"2147483647",display:"flex",alignItems:"center",gap:"12px",padding:"10px 14px",borderRadius:"999px",background:"#111827",color:"#fff",font:"13px/1 system-ui, sans-serif",boxShadow:"0 10px 34px rgba(0,0,0,0.45)",border:"1px solid rgba(255,255,255,0.14)"});let o=document.createElement("span");o.textContent=`Previewing as ${n}`;let i=document.createElement("button");i.type="button",i.textContent="Exit preview",Object.assign(i.style,{cursor:"pointer",border:"1px solid rgba(255,255,255,0.3)",background:"transparent",color:"#fff",font:"inherit",padding:"4px 10px",borderRadius:"999px"}),i.addEventListener("click",()=>{try{let s=new URL(window.location.href);s.searchParams.delete("sentient_persona"),window.location.href=s.pathname+s.search+s.hash}catch(s){}}),r.appendChild(o),r.appendChild(i),((t=document.body)!=null?t:document.documentElement).appendChild(r)}catch(n){}}async function dr(e,t){var c,u,p,y,g,w,v,A,P;let n=(c=e.apiBase)!=null?c:"https://api.sentient-ui.com",o=((u=e.registry)!=null?u:Object.keys(e.slots).length===0)?{persona:t,slotsFrom:"registry"}:{persona:t,slots:Object.entries(e.slots).map(([S,I])=>({id:S,dims:I.dims}))},i=await Yt(fetch(`${n}/v1/explain`,{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${e.apiKey}`},body:JSON.stringify(o)}).then(S=>S.ok?S.json():null).catch(()=>null),Ht);if(!i){de(e,"persona preview: explain unavailable \u2014 page left as-is");return}let s=i;X=(p=s.slots)!=null?p:{},te=(y=s.slotConfig)!=null?y:null;let l=(v=(w=(g=s.personaAttributes)==null?void 0:g.persona)!=null?w:s.persona)!=null?v:t,a=(P=(A=s.personaAttributes)==null?void 0:A.confidence)!=null?P:"high";O={persona:l,band:a},pe(document),be=!0,en(e),ur(l)}function en(e){let t={goal(n,r){try{T==null||T.goal(n,r)}catch(o){}},componentGoal(n,r){try{T==null||T.componentGoal(n,r)}catch(o){}},grantConsent(){try{Je(e.apiKey)}catch(n){}Ne=!0;try{ar()}catch(n){}},revokeConsent(){try{F==null||F(),F=null,je=null,L==null||L(),L=null,W==null||W.teardown(),W=null,Ne=!1,T==null||T.destroy()}catch(n){}},reapply:Xe,getState(){var n,r;return{apiKey:e.apiKey,persona:(n=O==null?void 0:O.persona)!=null?n:null,band:(r=O==null?void 0:O.band)!=null?r:null,slots:X,matchCounts:He(e),consent:e.consent!==!1}}};window.SentientSnippet=t}async function tn(){var e,t,n,r,o;try{let i=_e(window.sentient);if(!i)return;$=i,be=!1,Ne=!1;let s=typeof window!="undefined"?Xt(window.location.search):null;if(s){Gt(s);try{let S=new URL(window.location.href);S.searchParams.delete("sentient_editor"),window.history.replaceState(null,"",S.pathname+S.search+S.hash)}catch(S){}}let l=s!=null?s:Ut();if(l){cr(i,l),de(i,"editor mode");return}let a=typeof window!="undefined"?Zt(window.location.search):null;if(a){X=a,O=null,pe(document),zt(),de(i,"preview mode",a);return}let c=typeof window!="undefined"?Qt(window.location.search):null;if(c){await dr(i,c),de(i,"persona preview",c);return}let u=(e=i.registry)!=null?e:Object.keys(i.slots).length===0,p=Oe(i.apiKey);p&&(O={persona:p.persona,band:p.band},X=p.slots,p.slotConfig&&(te=p.slotConfig),pe(document,{contentAndOps:!1}));let y=Ce({apiKey:i.apiKey,context:i.context,consent:i.consent,preConsentBehavior:i.preConsentBehavior,debug:i.debug});T=y,en(i),zt();let g=Object.entries(i.slots).map(([S,I])=>({id:S,dims:I.dims})),w=Fe!=="0.0.0-dev"?{v:Fe}:{},v=await Yt(y.decide(ie(ie({slots:g},w),u?{slotsFrom:"registry"}:{})),Ht);if(!v){de(i,"decide timeout/null \u2014 snapshot state stands",He(i));return}let A=y.getPersona();A?O={persona:A.persona,band:A.band}:v.persona&&(O={persona:v.persona,band:"low"}),X=v.slots,u?te=(t=v.slotConfig)!=null?t:null:v.slotConfig&&(te=v.slotConfig);let P=[];if(sr(i,pe(document,{onApplied:(S,I,j)=>P.push({slotId:S,arm:I,el:j})})),be=!0,v.goals&&v.goals.length>0&&i.consent!==!1&&T)try{W==null||W.teardown(),W=Kt(v.goals,T,document)}catch(S){}if(Me=(n=v.sectionMap)!=null?n:null,we()){Ye();try{L==null||L(),L=De(T,i.apiKey,P)}catch(S){}}de(i,"applied",{persona:O,slots:X,matches:He(i)}),ye(i.apiKey,ie({v:1,persona:(r=O==null?void 0:O.persona)!=null?r:v.persona,band:(o=O==null?void 0:O.band)!=null?o:"low",slots:v.slots,layoutOrder:v.layoutOrder,savedAt:Date.now()},te?{slotConfig:te}:{}))}catch(i){}}if(typeof window!="undefined"&&window.sentient){let e=window;e.__sentientInitialized||(e.__sentientInitialized=!0,tn())}return ln(pr);})();
|
package/package.json
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sentientui/snippet",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.5",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "SentientUI Style-rung snippet for non-React sites — persona attributes and adaptive style tokens from one script tag",
|
|
6
6
|
"license": "MIT",
|
|
7
|
+
"homepage": "https://sentient-ui.com",
|
|
7
8
|
"repository": {
|
|
8
9
|
"type": "git",
|
|
9
|
-
"url": "git+https://github.com/
|
|
10
|
+
"url": "git+https://github.com/SentientUI/sdk.git",
|
|
10
11
|
"directory": "packages/snippet"
|
|
11
12
|
},
|
|
13
|
+
"bugs": "https://github.com/SentientUI/sdk/issues",
|
|
12
14
|
"type": "module",
|
|
13
15
|
"main": "./dist/snippet.global.js",
|
|
14
16
|
"files": [
|
|
@@ -22,7 +24,7 @@
|
|
|
22
24
|
"tsx": "^4.19.2",
|
|
23
25
|
"typescript": "^5.7.2",
|
|
24
26
|
"vitest": "^2.1.8",
|
|
25
|
-
"@sentientui/core": "0.16.
|
|
27
|
+
"@sentientui/core": "0.16.7"
|
|
26
28
|
},
|
|
27
29
|
"scripts": {
|
|
28
30
|
"build": "tsup",
|