@sentientui/react 0.18.0 → 0.18.1

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/dist/index.d.cts CHANGED
@@ -194,9 +194,19 @@ type AdaptiveProps = {
194
194
  * so agents see only the content currently being served to visitors.
195
195
  *
196
196
  * Prefer this over `agentData` when variants have meaningfully different content.
197
+ *
198
+ * Captured at MOUNT: this value is read once, when the component's assignment
199
+ * is requested, and is intentionally not part of the assign effect's deps.
200
+ * Changing it after mount does not re-send it — pass the final value on first
201
+ * render (e.g. from SSR/loader data, not a value that streams in later).
197
202
  */
198
203
  agentDataByVariant?: Record<string, unknown>;
199
- /** @deprecated Use agentDataByVariant for variant-specific content. Stored as-is for the assigned variant. */
204
+ /**
205
+ * @deprecated Use agentDataByVariant for variant-specific content. Stored as-is for the assigned variant.
206
+ *
207
+ * Captured at MOUNT (see `agentDataByVariant`): changing it after mount has no
208
+ * effect on what is sent for the assignment.
209
+ */
200
210
  agentData?: unknown;
201
211
  };
202
212
  declare function AdaptiveImpl(props: AdaptiveProps): JSX.Element | null;
package/dist/index.d.ts CHANGED
@@ -194,9 +194,19 @@ type AdaptiveProps = {
194
194
  * so agents see only the content currently being served to visitors.
195
195
  *
196
196
  * Prefer this over `agentData` when variants have meaningfully different content.
197
+ *
198
+ * Captured at MOUNT: this value is read once, when the component's assignment
199
+ * is requested, and is intentionally not part of the assign effect's deps.
200
+ * Changing it after mount does not re-send it — pass the final value on first
201
+ * render (e.g. from SSR/loader data, not a value that streams in later).
197
202
  */
198
203
  agentDataByVariant?: Record<string, unknown>;
199
- /** @deprecated Use agentDataByVariant for variant-specific content. Stored as-is for the assigned variant. */
204
+ /**
205
+ * @deprecated Use agentDataByVariant for variant-specific content. Stored as-is for the assigned variant.
206
+ *
207
+ * Captured at MOUNT (see `agentDataByVariant`): changing it after mount has no
208
+ * effect on what is sent for the assignment.
209
+ */
200
210
  agentData?: unknown;
201
211
  };
202
212
  declare function AdaptiveImpl(props: AdaptiveProps): JSX.Element | null;
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- "use strict";var yt=Object.create;var X=Object.defineProperty,St=Object.defineProperties,ht=Object.getOwnPropertyDescriptor,bt=Object.getOwnPropertyDescriptors,wt=Object.getOwnPropertyNames,ve=Object.getOwnPropertySymbols,At=Object.getPrototypeOf,Se=Object.prototype.hasOwnProperty,xt=Object.prototype.propertyIsEnumerable;var ye=(e,t,n)=>t in e?X(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,P=(e,t)=>{for(var n in t||(t={}))Se.call(t,n)&&ye(e,n,t[n]);if(ve)for(var n of ve(t))xt.call(t,n)&&ye(e,n,t[n]);return e},Q=(e,t)=>St(e,bt(t));var Ct=(e,t)=>{for(var n in t)X(e,n,{get:t[n],enumerable:!0})},he=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of wt(t))!Se.call(e,r)&&r!==n&&X(e,r,{get:()=>t[r],enumerable:!(i=ht(t,r))||i.enumerable});return e};var be=(e,t,n)=>(n=e!=null?yt(At(e)):{},he(t||!e||!e.__esModule?X(n,"default",{value:e,enumerable:!0}):n,e)),kt=e=>he(X({},"__esModule",{value:!0}),e);var Mt={};Ct(Mt,{Adaptive:()=>$e,AdaptiveGroup:()=>ut,AdaptiveProvider:()=>Te,AdaptiveText:()=>Je,SentientPersonaScript:()=>Ze,buildAgentFeed:()=>gt,defineAgentContent:()=>ft,detectSegment:()=>ce.deriveSessionSegment,getAgentContent:()=>de,renderAgentJsonLd:()=>pt,renderAgentJsonLdBody:()=>fe,renderAgentMarkdown:()=>mt,useAdaptive:()=>lt,useAdaptiveApiBaseUrl:()=>Ke,useAdaptiveGoal:()=>Xe,useAdaptivePersona:()=>rt,useAdaptiveTokens:()=>ot,useAssignment:()=>z,useInitialAssignments:()=>te,useLayoutOrder:()=>Be,useSentient:()=>O});module.exports=kt(Mt);var x=require("react"),H=require("@sentientui/core");var we=new Map,Y=new Map;function Ae(e,t){let n=Y.get(e);return n||(n=new Set,Y.set(e,n)),n.add(t),()=>{n.delete(t),n.size===0&&Y.delete(e)}}function xe(e,t){we.set(e,t);let n=Y.get(e);if(n)for(let i of n)try{i(t)}catch(r){}}function Ce(e){var t;return(t=we.get(e))!=null?t:null}var _t={on:!1,listeners:new Set};function ke(){if(typeof window=="undefined")return _t;let e=window;return e.__sentient_preview||(e.__sentient_preview={on:!1,listeners:new Set}),e.__sentient_preview}function ae(){return ke().on}function _e(e){let t=ke().listeners;return t.add(e),()=>{t.delete(e)}}function Re(e){return{isLocal:e.isLocal,track:()=>{},goal:()=>{},componentGoal:()=>{},identify:()=>{},fetchWeights:()=>Promise.resolve([]),getAssignment:(t,n)=>e.getAssignment(t,n),assign:(t,n,i,r)=>e.assign(t,n,i,r),decide:()=>Promise.resolve(null),getSlotResult:t=>e.getSlotResult(t),getPersona:()=>e.getPersona(),getGraph:()=>e.getGraph(),dispose:()=>e.dispose(),destroy:()=>e.destroy()}}var Ge="sentient:overrides-changed";function le(){var e;return typeof window=="undefined"?0:(e=window.__sentient_overrides_version)!=null?e:0}function j(e){return typeof window=="undefined"?()=>{}:(window.addEventListener(Ge,e),()=>window.removeEventListener(Ge,e))}function Oe(e){typeof window!="undefined"&&(window.__sentient_devtools_config=e)}function G(){var e;return typeof process=="undefined"||((e=process.env)==null?void 0:e.NODE_ENV)!=="production"}function B(e){return typeof e=="string"?{type:"click"}:e}function J(e){return typeof e=="string"?e:e.type}function Rt(e){if(!(e instanceof Element))return!1;let t=e.tagName.toLowerCase();return t==="a"||t==="button"?!0:e.getAttribute("role")==="button"}function Ee(e,t,n){if(n){try{let r=e;for(;r&&r!==t;){if(r.matches(n))return!0;r=r.parentElement}}catch(r){}return!1}let i=e;for(;i&&i!==t;){if(Rt(i))return!0;i=i.parentElement}return!1}function F(e,t,n){if(t.type==="weighted_composite"){let s=new Set,l=[];return t.steps.forEach(({goal:v,name:p,weight:m},u)=>{let h=()=>{s.has(u)||(s.add(u),n.fireStep(p,m,u))};if(v.type==="click"){let c=g=>{let d=g.target;d instanceof Element&&Ee(d,e,v.selector)&&h()};e.addEventListener("click",c),l.push(()=>e.removeEventListener("click",c));return}if(v.type==="form_submit"){let c=g=>{g.target instanceof HTMLFormElement&&e.contains(g.target)&&h()};e.addEventListener("submit",c),l.push(()=>e.removeEventListener("submit",c));return}if(v.type==="scroll_depth"){let c=Math.max(0,Math.min(1,v.threshold)),g=new IntersectionObserver(d=>{for(let f of d)if(f.intersectionRatio>=c){h(),g.disconnect();break}},{threshold:[c]});g.observe(e),l.push(()=>g.disconnect())}}),()=>{for(let v of l)v()}}let i=t.type==="composite"?t.all:[t],r=new Set(i.map((s,l)=>l)),a=s=>{r.delete(s),r.size===0&&n.fireGoal()},o=[];return i.forEach((s,l)=>{if(s.type==="click"){let v=p=>{let m=p.target;m instanceof Element&&Ee(m,e,s.selector)&&(t.type==="composite"?a(l):n.fireGoal())};e.addEventListener("click",v),o.push(()=>e.removeEventListener("click",v));return}if(s.type==="form_submit"){let v=p=>{p.target instanceof HTMLFormElement&&e.contains(p.target)&&(t.type==="composite"?a(l):n.fireGoal())};e.addEventListener("submit",v),o.push(()=>e.removeEventListener("submit",v));return}if(s.type==="scroll_depth"){let v=Math.max(0,Math.min(1,s.threshold)),p=new IntersectionObserver(m=>{for(let u of m)if(u.intersectionRatio>=v){t.type==="composite"?a(l):n.fireGoal(),p.disconnect();break}},{threshold:[v]});p.observe(e),o.push(()=>p.disconnect());return}}),()=>{for(let s of o)s()}}function N(e,t,n,i){e.track({projectId:t,componentId:n,variantId:i,eventType:"variant_assigned",payload:{}})}var Gt={components:new Map,slots:new Map,sections:[],listeners:new Set,version:0};function U(){if(typeof window=="undefined")return Gt;let e=window;return e.__sentient_registry||(e.__sentient_registry={components:new Map,slots:new Map,sections:[],listeners:new Set,version:0}),e.__sentient_registry}function q(){U().version+=1;for(let e of U().listeners)e()}var Le=()=>{};function Z(e){return G()?(U().components.set(e.id,e),q(),()=>{U().components.delete(e.id),q()}):Le}function ee(e){return G()?(U().slots.set(e.id,e),q(),()=>{U().slots.delete(e.id),q()}):Le}function Ie(e){G()&&(U().sections=[...e],q())}var je=require("react/jsx-runtime");function Ot(){var e,t;if(typeof window=="undefined")return"desktop:direct";try{let n=(0,H.detectDeviceClass)((e=navigator.userAgent)!=null?e:""),i=(0,H.detectTrafficSource)((t=document.referrer)!=null?t:"",window.location.origin);return`${n}:${i}`}catch(n){return"desktop:direct"}}var Pe="https://api.sentient-ui.com/v1",T=(0,x.createContext)({client:null,apiKey:"",initialAssignments:{},sessionSegment:"desktop:direct",ssrFallback:"first",onAssignment:void 0,initialLayoutOrder:null,initialSlots:{},initialPersona:null,apiBaseUrl:Pe,debug:!1});function Te(e){var p,m;let[t,n]=(0,x.useState)(null),[i]=(0,x.useState)(()=>{var u;return(u=e.sessionSegment)!=null?u:Ot()}),[r,a]=(0,x.useState)(ae());(0,x.useEffect)(()=>_e(()=>a(ae())),[]),(0,x.useEffect)(()=>{if(e.consent===!1&&!e.preConsentBehavior){n(f=>(f==null||f.destroy(),null));return}let u={apiKey:e.apiKey,context:e.context,debug:e.debug,initialAssignments:e.initialAssignments,sessionSegment:i,consent:e.consent,preConsentBehavior:e.preConsentBehavior,respectDoNotTrack:e.respectDoNotTrack,ssrSessionId:e.ssrSessionId,country:e.country,localMode:e.localMode,initialSlots:e.initialSlots,initialPersona:e.initialPersona,ingestUrl:e.apiBaseUrl?`${e.apiBaseUrl.replace(/\/$/,"")}/events`:void 0},h=!1,c=null,g=null,d=f=>{e.engagement!==!1&&import("@sentientui/core/engagement").then(({startEngagementCapture:S})=>{h||(g=S(f,{apiKey:e.apiKey,apiBase:e.apiBaseUrl?e.apiBaseUrl.replace(/\/$/,""):void 0}))})};return e.enableGraph!==!1?import("@sentientui/core/graph").then(({init:f})=>{h||(c=f(Q(P({},u),{graph:!0})),n(c),d(c))}):(c=(0,H.init)(u),n(c),d(c)),()=>{h=!0,g==null||g(),c==null||c.dispose()}},[e.consent]),(0,x.useEffect)(()=>{if(!t)return;let u=!1,h=async()=>{if(u)return;let g;try{g=await t.fetchWeights()}catch(d){return}if(!u)for(let d of g){let f={componentId:d.componentId,updatedAt:d.updatedAt,variants:d.variants.map(S=>{var w;return{variantId:S.variantId,pulls:S.pulls,avgReward:(w=S.avgReward)!=null?w:0}})};xe(d.componentId,f)}};h();let c=setInterval(()=>{h()},6e4);return()=>{u=!0,clearInterval(c)}},[t]);let o=(p=e.ssrFallback)!=null?p:"first",s=((m=e.apiBaseUrl)!=null?m:Pe).replace(/\/$/,"");(0,x.useEffect)(()=>{var u;typeof process!="undefined"&&((u=process.env)==null?void 0:u.NODE_ENV)==="production"||Oe({apiKey:e.apiKey,apiBaseUrl:s,isLocal:(t==null?void 0:t.isLocal)===!0})},[t,e.apiKey,s]),(0,x.useEffect)(()=>{e.initialLayoutOrder&&e.initialLayoutOrder.length>0&&Ie(e.initialLayoutOrder)},[e.initialLayoutOrder]);let l=(0,x.useMemo)(()=>t&&r?Re(t):t,[t,r]),v=(0,x.useMemo)(()=>{var u,h,c,g,d;return{client:l,apiKey:e.apiKey,initialAssignments:(u=e.initialAssignments)!=null?u:{},sessionSegment:i,ssrFallback:o,onAssignment:e.onAssignment,initialLayoutOrder:(h=e.initialLayoutOrder)!=null?h:null,initialSlots:(c=e.initialSlots)!=null?c:{},initialPersona:(g=e.initialPersona)!=null?g:null,apiBaseUrl:s,debug:(d=e.debug)!=null?d:!1}},[l,e.apiKey,e.initialAssignments,i,o,e.onAssignment,e.initialLayoutOrder,e.initialSlots,e.initialPersona,s,e.debug]);return(0,je.jsx)(T.Provider,{value:v,children:e.children})}function O(){return(0,x.useContext)(T).client}function W(){return(0,x.useContext)(T).apiKey}function te(){return(0,x.useContext)(T).initialAssignments}function ne(){return(0,x.useContext)(T).sessionSegment}function De(){return(0,x.useContext)(T).ssrFallback}function re(){return(0,x.useContext)(T).onAssignment}function Me(){return(0,x.useContext)(T).debug}function Be(){let e=(0,x.useContext)(T).initialLayoutOrder,t=(0,x.useSyncExternalStore)(j,()=>{var n;return typeof window=="undefined"?null:(n=window.__sentient_layout_override)!=null?n:null},()=>null);return t!=null?t:e}function Fe(){return(0,x.useContext)(T).initialSlots}function We(){return(0,x.useContext)(T).initialPersona}function Ke(){return(0,x.useContext)(T).apiBaseUrl}var _=require("react"),Ue=require("@sentientui/core");var D=require("react");function ie(e){var n;if(typeof window=="undefined")return null;let t=(n=window.__sentient_overrides)==null?void 0:n[e];if(t)return t;if(!window.location.search)return null;try{let i=new URLSearchParams(window.location.search);for(let r of i.getAll("sentient_variant")){let a=r.indexOf(":");if(a!==-1&&r.slice(0,a)===e)return r.slice(a+1)}}catch(i){}return null}var Et=5;function Ne(e,t){var i,r;let n=null;for(let a of e.variants){if(!t.includes(a.variantId))continue;let o=(i=a.pulls)!=null?i:0,s=o>0?o*a.avgReward/(o+Et):0;(!n||s>n.score)&&(n={variantId:a.variantId,score:s})}return(r=n==null?void 0:n.variantId)!=null?r:null}function z(e,t,n,i){let r=te(),a=De(),o=O(),s=ne(),l=re(),v=Me(),p=(0,D.useRef)(null),m=(0,D.useSyncExternalStore)(j,()=>ie(e),()=>null),u=m&&t.includes(m)?m:null,h=(0,D.useRef)(null);(0,D.useEffect)(()=>{v&&u&&h.current!==u&&(h.current=u,console.info(`[sentient] override active: ${e} -> ${u}`))},[v,u,e]);let[c,g]=(0,D.useState)(()=>{var w,b;if(u)return{variantId:u,content:null,isLoading:!1,settled:!0};if(!o){let k=r[e];return k&&t.includes(k)?{variantId:k,content:null,isLoading:!1,settled:!0}:a==="first"&&t.length>0?{variantId:t[0],content:null,isLoading:!1,settled:!1}:{variantId:null,content:null,isLoading:!0,settled:!1}}let f=o.getAssignment(e,s);if(f&&(t.includes(f.variantId)||f.content))return{variantId:f.variantId,content:(w=f.content)!=null?w:null,isLoading:!1,settled:!0};let S=Ce(e);if(S){let k=Ne(S,t);if(k)return{variantId:k,content:null,isLoading:!1,settled:!0}}return{variantId:(b=t[0])!=null?b:null,content:null,isLoading:!1,settled:!1}}),d=f=>{l&&p.current!==f&&(p.current=f,l(e,f))};return(0,D.useEffect)(()=>{var S;if(u||!o)return;let f=o.getAssignment(e,s);if(f&&(t.includes(f.variantId)||f.content)){g({variantId:f.variantId,content:(S=f.content)!=null?S:null,isLoading:!1,settled:!0}),d(f.variantId);return}g(w=>{var b;return w.variantId?w:{variantId:(b=t[0])!=null?b:null,content:null,isLoading:!1,settled:!1}})},[u,o,e,s]),(0,D.useEffect)(()=>{if(u||!o)return;let f=o.getAssignment(e,s);if(f&&t.includes(f.variantId))return;let S=!1;return o.assign(e,t,n,i).then(w=>{var b;S||w&&(!t.includes(w.variantId)&&!w.content||(g({variantId:w.variantId,content:(b=w.content)!=null?b:null,isLoading:!1,settled:!0}),d(w.variantId)))}),()=>{S=!0}},[u,o,e,s]),(0,D.useEffect)(()=>{if(!u&&o)return Ae(e,f=>{var b;let S=o.getAssignment(e,s);if(S&&(t.includes(S.variantId)||S.content)){g({variantId:S.variantId,content:(b=S.content)!=null?b:null,isLoading:!1,settled:!0});return}let w=Ne(f,t);w&&g({variantId:w,content:null,isLoading:!1,settled:!0})})},[u,o,e,s]),u?{variantId:u,content:null,isLoading:!1,settled:!0,isOverride:!0}:c}var Ve=require("react/jsx-runtime");function Lt(e){var w;let t=O(),n=W(),i=(0,_.useMemo)(()=>Object.keys(e.variants),[e.variants]),{variantId:r,content:a,isOverride:o,settled:s}=z(e.id,i,e.agentData,e.agentDataByVariant),l=(0,_.useRef)(null),[v,p]=(0,_.useState)(!1);(0,_.useEffect)(()=>{p(!0)},[]);let m=(0,_.useRef)(!1),u=(0,_.useRef)(new Set),h=(0,_.useRef)(null),c=typeof e.goal=="string"?e.goal:JSON.stringify(e.goal),g=(0,_.useMemo)(()=>B(e.goal),[c]),d=typeof e.goal=="string"?e.goal:g.type;if((0,_.useEffect)(()=>Z({id:e.id,variantIds:i,goal:d}),[e.id,i,d]),(0,_.useEffect)(()=>{o||s&&(!t||!r||!n||h.current!==r&&(h.current=r,N(t,n,e.id,r)))},[t,r,n,e.id,o,s]),(0,_.useEffect)(()=>{m.current=!1,u.current=new Set},[r,g]),(0,_.useEffect)(()=>{if(o||!t||!r)return;let b=l.current;if(!b)return;let k=null,C=0,y=()=>{C=Date.now(),k=setTimeout(()=>{t.track({projectId:n,componentId:e.id,variantId:r,eventType:"cursor_signal",payload:{hoverDuration:Date.now()-C}}),k=null},800)},A=()=>{k!==null&&(clearTimeout(k),k=null)};return b.addEventListener("mouseenter",y),b.addEventListener("mouseleave",A),()=>{b.removeEventListener("mouseenter",y),b.removeEventListener("mouseleave",A),k!==null&&clearTimeout(k)}},[t,r,n,e.id,o]),(0,_.useEffect)(()=>{if(o||!t||!r)return;let b=l.current;if(!b)return;let k=Date.now();return(0,Ue.attachMicroSignalDetectors)((C,y={})=>{var ge,pe,me;t.track({projectId:n,componentId:e.id,variantId:r,eventType:"micro_signal",payload:P({signalType:C},y)});let A=(ge=e.microSignalGoals)==null?void 0:ge[C];if(!A||u.current.has(C))return;u.current.add(C);let I=typeof A=="string"?A:A.name,V=typeof A=="string"?1:(pe=A.weight)!=null?pe:1,vt=typeof A=="string"?0:(me=A.stepIndex)!=null?me:0;t.goal(I,P({signalType:C},y),V,vt)},b,k)},[t,r,n,e.id,e.microSignalGoals,o]),(0,_.useEffect)(()=>{if(o||!t||!r)return;let b=l.current;if(b)return F(b,g,{fireGoal:()=>{m.current||(m.current=!0,t.track({projectId:n,componentId:e.id,variantId:r,eventType:"goal_achieved",goalType:d,payload:{reward:1}}),t.goal(d,{componentId:e.id,variantId:r},1,0))},fireStep:(k,C,y)=>{t.track({projectId:n,componentId:e.id,variantId:r,eventType:"goal_achieved",goalType:k,payload:{reward:C}}),t.goal(k,{},C,y)}})},[t,r,n,e.id,g,d,o]),e.clientOnly&&(!v||!t)||!r)return null;let f=(w=e.variants[r])!=null?w:null,S=f===null?a:null;return G()&&f===null&&S===null&&console.warn(`[sentient] <Adaptive id="${e.id}"> was assigned variant "${r}" but no matching key exists in props.variants. If this is a dashboard-managed text variant, use <AdaptiveText id="${e.id}"> instead.`),(0,Ve.jsx)("div",{ref:l,"data-sentient-id":e.id,"data-sentient-variant":r,children:f!=null?f:S})}var $e=(0,_.memo)(Lt,(e,t)=>{if(e.id!==t.id||e.goal!==t.goal&&JSON.stringify(e.goal)!==JSON.stringify(t.goal)||e.microSignalGoals!==t.microSignalGoals||e.clientOnly!==t.clientOnly||e.agentData!==t.agentData||e.agentDataByVariant!==t.agentDataByVariant)return!1;if(e.variants===t.variants)return!0;let n=Object.keys(e.variants),i=Object.keys(t.variants);return n.length!==i.length?!1:n.every(r=>r in t.variants&&Object.is(e.variants[r],t.variants[r]))});var E=require("react");var He=require("react/jsx-runtime");function Je({id:e,default:t,component:n="span",className:i,goal:r}){var C;let a=O(),o=W(),s=re(),l=ne(),v=(0,E.useRef)(null),p=(0,E.useRef)(null),m=(0,E.useSyncExternalStore)(j,()=>ie(e),()=>null),[u,h]=(0,E.useState)(()=>{var y,A;return(A=(y=a==null?void 0:a.getAssignment(e,l))==null?void 0:y.content)!=null?A:null}),[c,g]=(0,E.useState)(()=>{var y,A;return(A=(y=a==null?void 0:a.getAssignment(e,l))==null?void 0:y.variantId)!=null?A:null});(0,E.useEffect)(()=>{var A;if(m||!a||((A=a.getAssignment(e,l))==null?void 0:A.content)!==void 0)return;let y=!1;return a.assign(e).then(I=>{if(!y){if(!I){G()&&console.warn(`[sentient] <AdaptiveText id="${e}"> assignment failed \u2014 showing default text.`);return}g(I.variantId),I.content&&h(I.content)}}),()=>{y=!0}},[a,e,l,m]),(0,E.useEffect)(()=>{m||!a||!c||!o||v.current!==c&&(v.current=c,a.track({projectId:o,componentId:e,variantId:c,eventType:"variant_assigned",payload:{}}),s==null||s(e,c))},[a,c,o,e,s,m]);let d=r===void 0?"":typeof r=="string"?r:JSON.stringify(r),f=(0,E.useMemo)(()=>r===void 0?null:B(r),[d]),S=r===void 0?null:typeof r=="string"?r:f.type,w=(0,E.useRef)(!1);(0,E.useEffect)(()=>{w.current=!1},[c,d]),(0,E.useEffect)(()=>{if(m||!a||!c||!o||!f||!S)return;let y=p.current;if(y)return F(y,f,{fireGoal:()=>{w.current||(w.current=!0,a.track({projectId:o,componentId:e,variantId:c,eventType:"goal_achieved",goalType:S,payload:{reward:1}}),a.goal(S,{componentId:e,variantId:c},1,0))},fireStep:(A,I,V)=>{a.track({projectId:o,componentId:e,variantId:c,eventType:"goal_achieved",goalType:A,payload:{reward:I}}),a.goal(A,{},I,V)}})},[a,c,o,e,f,S,m]);let b=u!=null?u:t;if(m){let y=a==null?void 0:a.getAssignment(e,l);b=y&&y.variantId===m&&(C=y.content)!=null?C:t}return(0,He.jsx)(n,{ref:y=>{p.current=y},className:i,children:b})}var ze=require("react");function Xe(e){let t=O();return(0,ze.useCallback)((n,i)=>{var r,a;t==null||t.componentGoal(e,n,i),t==null||t.goal(n,(r=i==null?void 0:i.metadata)!=null?r:{},(a=i==null?void 0:i.reward)!=null?a:1,0)},[t,e])}var Qe=require("@sentientui/core"),Ye=require("@sentientui/policy"),et=require("react/jsx-runtime");function qe(e){return JSON.stringify(e).replace(/</g,"\\u003c")}function It(e){return e.persona?'(function(){try{var d=document.documentElement;if(d.hasAttribute("data-sentient-persona"))return;d.setAttribute("data-sentient-persona",'+qe(e.persona.persona)+');d.setAttribute("data-sentient-confidence",'+qe((0,Ye.confidenceBand)(e.persona.confidence))+");}catch(e){}})();":(0,Qe.renderPrePaintScript)(e.apiKey)}function Ze(e){return(0,et.jsx)("script",{"data-sentient-persona-script":"",dangerouslySetInnerHTML:{__html:It(e)}})}var K=require("react"),it=require("@sentientui/policy");var M=require("react"),$=require("@sentientui/core"),nt=require("@sentientui/policy");var tt=new Set;function oe(e,t){var p;(0,M.useSyncExternalStore)(j,le,()=>0);let n=O(),i=Fe(),[,r]=(0,M.useReducer)(m=>m+1,0),a=typeof window!="undefined"?(p=window.__sentient_slot_overrides)==null?void 0:p[e]:void 0,o=a===void 0?i[e]:void 0,s=a===void 0&&o===void 0&&n?n.getSlotResult(e):null,l=(n==null?void 0:n.isLocal)===!0&&a===void 0&&o===void 0&&s===null;(0,M.useEffect)(()=>{if(!l||!n)return;let m=!1;return n.decide({slots:[t]}).then(u=>{!m&&u&&r()}),()=>{m=!0}},[n,e,l]);let v=(()=>{if(a!==void 0)return{result:a,arm:(0,$.armOfResult)(a),source:"override"};if(o!==void 0)return{result:o,arm:(0,$.armOfResult)(o),source:"preloaded"};if(s!==null)return{result:s,arm:(0,$.armOfResult)(s),source:"client"};let m=(0,$.baselineResultFor)(t);return{result:m,arm:(0,$.armOfResult)(m),source:"baseline"}})();return(0,M.useEffect)(()=>{G()&&(!n||n.isLocal===!0||v.source==="baseline"&&(tt.has(e)||(tt.add(e),console.warn(`[sentient] slot "${e}" resolved to its baseline \u2014 no SSR-preloaded or decided result. Keyed clients decide slots server-side, so this slot serves baseline for the whole session and records no exposure. Preload it via loadAdaptiveDecision()/initialSlots so it can serve a decided arm and learn.`))))},[n,v.source,e]),v}function Pt(){var t;if(typeof window=="undefined")return null;let e=window.__sentient_persona_override;if(e!=null&&e.persona)return{persona:e.persona,confidence:(t=e.confidence)!=null?t:1};try{let n=new URLSearchParams(window.location.search).get("sentient_persona");if(n)return{persona:n,confidence:1}}catch(n){}return null}function rt(){let e=O(),t=We();(0,M.useSyncExternalStore)(j,le,()=>0);let[n,i]=(0,M.useState)(!1);(0,M.useEffect)(()=>i(!0),[]);let r=s=>({persona:s.persona,confidence:s.confidence,band:(0,nt.confidenceBand)(s.confidence)});if(!n)return t?r(t):null;let a=Pt();if(a)return r(a);if(t)return r(t);let o=e?e.getPersona():null;return o?r(o):null}var ue=new Set;function Tt(e){return typeof CSS!="undefined"&&typeof CSS.escape=="function"?CSS.escape(e):e.replace(/"/g,'\\"')}function ot(e,t,n){let i=O(),r=W(),a=(0,K.useMemo)(()=>({id:e,dims:t}),[e]),{result:o,arm:s,source:l}=oe(e,a),v=(0,K.useMemo)(()=>typeof o=="string"?{}:o,[s]);if(G()&&!ue.has(e)){let h=(0,it.validateSlotDecl)({id:e,dims:Object.fromEntries(Object.entries(t).map(([g,d])=>[g,[...d]]))}),c=Object.values(t).reduce((g,d)=>g*d.length,1);h.ok?c>4&&(ue.add(e),console.warn(`[sentient] useAdaptiveTokens("${e}") declares ${c} combinations \u2014 more than the recommended 4. Each extra combination needs more traffic to learn; consider fewer dims/values.`)):(ue.add(e),console.warn(`[sentient] useAdaptiveTokens("${e}"): invalid declaration \u2014 ${h.reason}. Serving baseline.`))}let p=(n==null?void 0:n.goal)===void 0?null:typeof n.goal=="string"?n.goal:JSON.stringify(n.goal);(0,K.useEffect)(()=>ee({id:e,dims:t}),[e]);let m=(0,K.useRef)(null);(0,K.useEffect)(()=>{!i||l==="baseline"||l==="override"||m.current===s||(m.current=s,N(i,r,e,s))},[i,r,e,s,l]),(0,K.useEffect)(()=>{if(!i||!(n!=null&&n.goal)||l==="override")return;let h=document.querySelector(`[data-sentient-slot="${Tt(e)}"]`);if(!h){G()&&console.warn(`[sentient] useAdaptiveTokens("${e}"): a goal is declared but no element carries the returned props \u2014 spread {...props} on the slot's element.`);return}let c=J(n.goal),g=!1;return F(h,B(n.goal),{fireGoal:()=>{g||(g=!0,i.componentGoal(e,c),i.goal(c,{componentId:e,arm:s},1,0))},fireStep:(d,f,S)=>{i.componentGoal(e,d,{reward:f}),i.goal(d,{componentId:e,arm:s},f,S)}})},[i,e,p,s,l]);let u=(0,K.useMemo)(()=>{let h={"data-sentient-slot":e};for(let[c,g]of Object.entries(v))h[`data-${c}`]=g;return h},[e,v]);return{tokens:v,props:u}}var R=require("react"),at=require("@sentientui/core");var st=new Set;function lt(e,t){var k;if(G()&&!t.goal)throw new Error(`[sentient] useAdaptive("${e}"): a goal is required \u2014 without one the optimizer accumulates exposures with no rewards and cannot learn. Pass e.g. goal: 'buy_click'.`);let n=O(),i=W(),r=(0,R.useMemo)(()=>Object.keys(t.variants),[e]),{variantId:a,isOverride:o,settled:s}=z(e,r),l=(k=a!=null?a:r[0])!=null?k:"",v=t.variants[l],[p,m]=(0,R.useState)(null),u=(0,R.useRef)(null),h=(0,R.useCallback)(C=>{u.current=C,m(C)},[]),c=typeof t.goal=="string"?t.goal:JSON.stringify(t.goal),g=(0,R.useMemo)(()=>B(t.goal),[c]),d=J(t.goal);(0,R.useEffect)(()=>Z({id:e,variantIds:r,goal:d}),[e,r,d]);let f=(0,R.useRef)(null);(0,R.useEffect)(()=>{o||s&&(!n||!l||!p||f.current!==l&&(f.current=l,N(n,i,e,l)))},[n,i,e,l,p,o,s]);let S=(0,R.useRef)(!1);(0,R.useEffect)(()=>{S.current=!1},[l,c]),(0,R.useEffect)(()=>{if(!o&&!(!n||!l||!p))return F(p,g,{fireGoal:()=>{S.current||(S.current=!0,n.track({projectId:i,componentId:e,variantId:l,eventType:"goal_achieved",goalType:d,payload:{reward:1}}),n.goal(d,{componentId:e,variantId:l},1,0))},fireStep:(C,y,A)=>{n.track({projectId:i,componentId:e,variantId:l,eventType:"goal_achieved",goalType:C,payload:{reward:y}}),n.goal(C,{},y,A)}})},[n,p,l,i,e,g,d,o]),(0,R.useEffect)(()=>{if(o||!n||!l||!p)return;let C=Date.now();return(0,at.attachMicroSignalDetectors)((y,A={})=>{n.track({projectId:i,componentId:e,variantId:l,eventType:"micro_signal",payload:P({signalType:y},A)})},p,C)},[n,p,l,i,e,o]),(0,R.useEffect)(()=>{if(!G()||!n)return;let C=setTimeout(()=>{!u.current&&!st.has(e)&&(st.add(e),console.warn(`[sentient] useAdaptive("${e}"): bind was never attached \u2014 spread {...bind} on the rendered element, otherwise exposure and goal tracking cannot work and the optimizer learns nothing.`))},0);return()=>clearTimeout(C)},[n,e]);let w=(0,R.useCallback)((C,y)=>{var I,V;if(o)return;let A=C!=null?C:d;n==null||n.componentGoal(e,A,y),n==null||n.goal(A,(I=y==null?void 0:y.metadata)!=null?I:{},(V=y==null?void 0:y.reward)!=null?V:1,0)},[n,e,d,o]),b=(0,R.useMemo)(()=>({ref:h,"data-sentient-id":e,"data-sentient-variant":l}),[h,e,l]);return{variant:l,value:v,bind:b,fireGoal:w}}var L=require("react");var ct=require("react/jsx-runtime"),se=new Set;function ut(e){var g;let t=O(),n=W(),i=(0,L.useRef)(null),r=(0,L.useMemo)(()=>Object.keys(e.arrangements),[e.id]),a=(0,L.useMemo)(()=>P({id:e.id,arms:r},e.baseline!==void 0?{baseline:e.baseline}:{}),[e.id,r,e.baseline]),{arm:o,source:s}=oe(e.id,a);G()&&e.baseline!==void 0&&e.baseline!==r[0]&&!se.has(e.id+":baseline")&&(se.add(e.id+":baseline"),console.warn(`[sentient] <AdaptiveGroup id="${e.id}">: baseline "${e.baseline}" is not the first-declared arrangement ("${r[0]}"). The first arrangement should usually be the page's real incumbent (the holdout sees it).`));let l=L.Children.toArray(e.children).filter(L.isValidElement),v=new Map;for(let d of l)v.set(String((g=d.key)!=null?g:"").replace(/^\.\$/,""),d);let p=e.arrangements[o],m=p!==void 0&&p.length===l.length&&p.every(d=>v.has(d));G()&&p!==void 0&&!m&&!se.has(e.id+":keys")&&(se.add(e.id+":keys"),console.warn(`[sentient] <AdaptiveGroup id="${e.id}">: arrangement "${o}" [${p.join(", ")}] does not match the children's keys \u2014 rendering declaration order (fail-safe).`));let u=m?p.map(d=>v.get(d)):l;(0,L.useEffect)(()=>ee({id:e.id,arms:Object.keys(e.arrangements)}),[e.id]);let h=(0,L.useRef)(null);(0,L.useEffect)(()=>{!t||s==="baseline"||s==="override"||h.current===o||(h.current=o,N(t,n,e.id,o))},[t,n,e.id,o,s]);let c=e.goal===void 0?null:typeof e.goal=="string"?e.goal:JSON.stringify(e.goal);return(0,L.useEffect)(()=>{if(!t||e.goal===void 0||s==="override")return;let d=i.current;if(!d)return;let f=J(e.goal),S=!1;return F(d,B(e.goal),{fireGoal:()=>{S||(S=!0,t.componentGoal(e.id,f),t.goal(f,{componentId:e.id,arm:o},1,0))},fireStep:(w,b,k)=>{t.componentGoal(e.id,w,{reward:b}),t.goal(w,{componentId:e.id,arm:o},b,k)}})},[t,e.id,c,o,s]),(0,ct.jsx)("div",{ref:i,"data-sentient-id":e.id,"data-sentient-variant":o,children:u})}var ce=require("@sentientui/core");var Dt=["page","blocks","layoutOrder"],dt=new Map;function ft(e,t){dt.set(e,t)}function de(e){return dt.get(e)}function gt(e){var r,a;let t=(a=(r=e.content)!=null?r:de(e.page))!=null?a:{},n={};for(let[o,s]of Object.entries(t))Dt.includes(o)||(n[o]=s);let i=Q(P({},n),{page:e.page,blocks:e.blocks});return e.layoutOrder&&(i.layoutOrder=e.layoutOrder),i}function pt(e){return`<script type="application/ld+json">${fe(e)}</script>`}function fe(e){return JSON.stringify(P({"@context":"https://schema.org","@type":"WebPage"},e)).replace(/</g,"\\u003c")}function mt(e){let t=[];e.title&&t.push(`# ${e.title}`,""),e.summary&&t.push(String(e.summary),"");for(let[n,i]of Object.entries(e))["page","title","summary","blocks","layoutOrder"].includes(n)||t.push(`## ${n}`,"","```json",JSON.stringify(i,null,2),"```","");if(e.blocks.length>0){t.push("## blocks","");for(let n of e.blocks)t.push(`- **${n.id}** \u2192 variant \`${n.variant}\``),n.content!==void 0&&t.push(""," ```json",JSON.stringify(n.content,null,2)," ```");t.push("")}return t.join(`
2
+ "use strict";var St=Object.create;var q=Object.defineProperty,ht=Object.defineProperties,bt=Object.getOwnPropertyDescriptor,wt=Object.getOwnPropertyDescriptors,At=Object.getOwnPropertyNames,ye=Object.getOwnPropertySymbols,xt=Object.getPrototypeOf,he=Object.prototype.hasOwnProperty,kt=Object.prototype.propertyIsEnumerable;var Se=(e,t,n)=>t in e?q(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,P=(e,t)=>{for(var n in t||(t={}))he.call(t,n)&&Se(e,n,t[n]);if(ye)for(var n of ye(t))kt.call(t,n)&&Se(e,n,t[n]);return e},Z=(e,t)=>ht(e,wt(t));var Ct=(e,t)=>{for(var n in t)q(e,n,{get:t[n],enumerable:!0})},be=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of At(t))!he.call(e,a)&&a!==n&&q(e,a,{get:()=>t[a],enumerable:!(o=bt(t,a))||o.enumerable});return e};var we=(e,t,n)=>(n=e!=null?St(xt(e)):{},be(t||!e||!e.__esModule?q(n,"default",{value:e,enumerable:!0}):n,e)),_t=e=>be(q({},"__esModule",{value:!0}),e);var Bt={};Ct(Bt,{Adaptive:()=>Ve,AdaptiveGroup:()=>ct,AdaptiveProvider:()=>De,AdaptiveText:()=>He,SentientPersonaScript:()=>et,buildAgentFeed:()=>pt,defineAgentContent:()=>gt,detectSegment:()=>de.deriveSessionSegment,getAgentContent:()=>fe,renderAgentJsonLd:()=>mt,renderAgentJsonLdBody:()=>ge,renderAgentMarkdown:()=>vt,useAdaptive:()=>ut,useAdaptiveApiBaseUrl:()=>We,useAdaptiveGoal:()=>qe,useAdaptivePersona:()=>it,useAdaptiveTokens:()=>st,useAssignment:()=>X,useInitialAssignments:()=>re,useLayoutOrder:()=>Ke,useSentient:()=>E});module.exports=_t(Bt);var A=require("react"),H=require("@sentientui/core");var Ae=new Map,ee=new Map;function xe(e,t){let n=ee.get(e);return n||(n=new Set,ee.set(e,n)),n.add(t),()=>{n.delete(t),n.size===0&&ee.delete(e)}}function ke(e,t){Ae.set(e,t);let n=ee.get(e);if(n)for(let o of n)try{o(t)}catch(a){}}function Ce(e){var t;return(t=Ae.get(e))!=null?t:null}var Rt={on:!1,listeners:new Set};function _e(){if(typeof window=="undefined")return Rt;let e=window;return e.__sentient_preview||(e.__sentient_preview={on:!1,listeners:new Set}),e.__sentient_preview}function le(){return _e().on}function Re(e){let t=_e().listeners;return t.add(e),()=>{t.delete(e)}}function Ge(e){return{isLocal:e.isLocal,track:()=>{},goal:()=>{},componentGoal:()=>{},identify:()=>{},fetchWeights:()=>Promise.resolve([]),getAssignment:(t,n)=>e.getAssignment(t,n),assign:(t,n,o,a)=>e.assign(t,n,o,a),decide:()=>Promise.resolve(null),getSlotResult:t=>e.getSlotResult(t),getPersona:()=>e.getPersona(),getGraph:()=>e.getGraph(),dispose:()=>e.dispose(),destroy:()=>e.destroy()}}var Oe="sentient:overrides-changed";function ue(){var e;return typeof window=="undefined"?0:(e=window.__sentient_overrides_version)!=null?e:0}function W(e){return typeof window=="undefined"?()=>{}:(window.addEventListener(Oe,e),()=>window.removeEventListener(Oe,e))}function Ee(e){typeof window!="undefined"&&(window.__sentient_devtools_config=e)}function O(){var e;return typeof process=="undefined"||((e=process.env)==null?void 0:e.NODE_ENV)!=="production"}function B(e){return typeof e=="string"?{type:"click"}:e}function J(e){return typeof e=="string"?e:e.type}function Gt(e){if(!(e instanceof Element))return!1;let t=e.tagName.toLowerCase();return t==="a"||t==="button"?!0:e.getAttribute("role")==="button"}function Le(e,t,n){if(n){try{let a=e;for(;a&&a!==t;){if(a.matches(n))return!0;a=a.parentElement}}catch(a){}return!1}let o=e;for(;o&&o!==t;){if(Gt(o))return!0;o=o.parentElement}return!1}function K(e,t,n){if(t.type==="weighted_composite"){let i=new Set,d=[];return t.steps.forEach(({goal:l,name:b,weight:f},y)=>{let S=()=>{i.has(y)||(i.add(y),n.fireStep(b,f,y))};if(l.type==="click"){let c=g=>{let p=g.target;p instanceof Element&&Le(p,e,l.selector)&&S()};e.addEventListener("click",c),d.push(()=>e.removeEventListener("click",c));return}if(l.type==="form_submit"){let c=g=>{g.target instanceof HTMLFormElement&&e.contains(g.target)&&S()};e.addEventListener("submit",c),d.push(()=>e.removeEventListener("submit",c));return}if(l.type==="scroll_depth"){let c=Math.max(0,Math.min(1,l.threshold)),g=new IntersectionObserver(p=>{for(let s of p)if(s.intersectionRatio>=c){S(),g.disconnect();break}},{threshold:[c]});g.observe(e),d.push(()=>g.disconnect())}}),()=>{for(let l of d)l()}}let o=t.type==="composite"?t.all:[t],a=new Set(o.map((i,d)=>d)),r=i=>{a.delete(i),a.size===0&&n.fireGoal()},u=[];return o.forEach((i,d)=>{if(i.type==="click"){let l=b=>{let f=b.target;f instanceof Element&&Le(f,e,i.selector)&&(t.type==="composite"?r(d):n.fireGoal())};e.addEventListener("click",l),u.push(()=>e.removeEventListener("click",l));return}if(i.type==="form_submit"){let l=b=>{b.target instanceof HTMLFormElement&&e.contains(b.target)&&(t.type==="composite"?r(d):n.fireGoal())};e.addEventListener("submit",l),u.push(()=>e.removeEventListener("submit",l));return}if(i.type==="scroll_depth"){let l=Math.max(0,Math.min(1,i.threshold)),b=new IntersectionObserver(f=>{for(let y of f)if(y.intersectionRatio>=l){t.type==="composite"?r(d):n.fireGoal(),b.disconnect();break}},{threshold:[l]});b.observe(e),u.push(()=>b.disconnect());return}}),()=>{for(let i of u)i()}}function N(e,t,n,o){e.track({projectId:t,componentId:n,variantId:o,eventType:"variant_assigned",payload:{}})}var Ot={components:new Map,slots:new Map,sections:[],listeners:new Set,version:0};function U(){if(typeof window=="undefined")return Ot;let e=window;return e.__sentient_registry||(e.__sentient_registry={components:new Map,slots:new Map,sections:[],listeners:new Set,version:0}),e.__sentient_registry}function Q(){U().version+=1;for(let e of U().listeners)e()}var Ie=()=>{};function te(e){return O()?(U().components.set(e.id,e),Q(),()=>{U().components.delete(e.id),Q()}):Ie}function ne(e){return O()?(U().slots.set(e.id,e),Q(),()=>{U().slots.delete(e.id),Q()}):Ie}function Pe(e){O()&&(U().sections=[...e],Q())}var Ne=require("react/jsx-runtime");function Et(){var e,t;if(typeof window=="undefined")return"desktop:direct";try{let n=(0,H.detectDeviceClass)((e=navigator.userAgent)!=null?e:""),o=(0,H.detectTrafficSource)((t=document.referrer)!=null?t:"",window.location.origin);return`${n}:${o}`}catch(n){return"desktop:direct"}}var Te="https://api.sentient-ui.com/v1",T=(0,A.createContext)({client:null,apiKey:"",initialAssignments:{},sessionSegment:"desktop:direct",ssrFallback:"first",onAssignment:void 0,initialLayoutOrder:null,initialSlots:{},initialPersona:null,apiBaseUrl:Te,debug:!1});function De(e){var f,y;let[t,n]=(0,A.useState)(null),[o]=(0,A.useState)(()=>{var S;return(S=e.sessionSegment)!=null?S:Et()}),[a,r]=(0,A.useState)(le());(0,A.useEffect)(()=>Re(()=>r(le())),[]),(0,A.useEffect)(()=>{if(e.consent===!1&&!e.preConsentBehavior){n(m=>(m==null||m.destroy(),null));return}let S={apiKey:e.apiKey,context:e.context,debug:e.debug,initialAssignments:e.initialAssignments,sessionSegment:o,consent:e.consent,preConsentBehavior:e.preConsentBehavior,respectDoNotTrack:e.respectDoNotTrack,ssrSessionId:e.ssrSessionId,country:e.country,localMode:e.localMode,initialSlots:e.initialSlots,initialPersona:e.initialPersona,ingestUrl:e.apiBaseUrl?`${e.apiBaseUrl.replace(/\/$/,"")}/events`:void 0},c=!1,g=null,p=null,s=m=>{e.engagement!==!1&&import("@sentientui/core/engagement").then(({startEngagementCapture:h})=>{c||(p=h(m,{apiKey:e.apiKey,apiBase:e.apiBaseUrl?e.apiBaseUrl.replace(/\/$/,""):void 0}))})};return e.enableGraph!==!1?import("@sentientui/core/graph").then(({init:m})=>{c||(g=m(Z(P({},S),{graph:!0})),n(g),s(g))}):(g=(0,H.init)(S),n(g),s(g)),()=>{c=!0,p==null||p(),g==null||g.dispose()}},[e.consent]),(0,A.useEffect)(()=>{if(!t)return;let S=!1,c=async()=>{if(S)return;let p;try{p=await t.fetchWeights()}catch(s){return}if(!S)for(let s of p){let m={componentId:s.componentId,updatedAt:s.updatedAt,variants:s.variants.map(h=>{var k;return{variantId:h.variantId,pulls:h.pulls,avgReward:(k=h.avgReward)!=null?k:0}})};ke(s.componentId,m)}};c();let g=setInterval(()=>{c()},6e4);return()=>{S=!0,clearInterval(g)}},[t]);let u=(f=e.ssrFallback)!=null?f:"first",i=((y=e.apiBaseUrl)!=null?y:Te).replace(/\/$/,""),d=(0,A.useRef)(null);(0,A.useEffect)(()=>{var g;if(typeof process!="undefined"&&((g=process.env)==null?void 0:g.NODE_ENV)==="production")return;let S={apiKey:e.apiKey,context:e.context,country:e.country,apiBaseUrl:i},c=d.current;if(d.current=S,c!==null)for(let p of["apiKey","context","country","apiBaseUrl"])Object.is(c[p],S[p])||console.warn(`[sentient] AdaptiveProvider: \`${p}\` changed after initialisation, but the SDK client is stable for the session and only re-inits on \`consent\` \u2014 the new value is ignored. Remount the provider (e.g. via a changing \`key\` prop) to apply it.`)},[e.apiKey,e.context,e.country,i]),(0,A.useEffect)(()=>{var S;typeof process!="undefined"&&((S=process.env)==null?void 0:S.NODE_ENV)==="production"||Ee({apiKey:e.apiKey,apiBaseUrl:i,isLocal:(t==null?void 0:t.isLocal)===!0})},[t,e.apiKey,i]),(0,A.useEffect)(()=>{e.initialLayoutOrder&&e.initialLayoutOrder.length>0&&Pe(e.initialLayoutOrder)},[e.initialLayoutOrder]);let l=(0,A.useMemo)(()=>t&&a?Ge(t):t,[t,a]),b=(0,A.useMemo)(()=>{var S,c,g,p,s;return{client:l,apiKey:e.apiKey,initialAssignments:(S=e.initialAssignments)!=null?S:{},sessionSegment:o,ssrFallback:u,onAssignment:e.onAssignment,initialLayoutOrder:(c=e.initialLayoutOrder)!=null?c:null,initialSlots:(g=e.initialSlots)!=null?g:{},initialPersona:(p=e.initialPersona)!=null?p:null,apiBaseUrl:i,debug:(s=e.debug)!=null?s:!1}},[l,e.apiKey,e.initialAssignments,o,u,e.onAssignment,e.initialLayoutOrder,e.initialSlots,e.initialPersona,i,e.debug]);return(0,Ne.jsx)(T.Provider,{value:b,children:e.children})}function E(){return(0,A.useContext)(T).client}function j(){return(0,A.useContext)(T).apiKey}function re(){return(0,A.useContext)(T).initialAssignments}function ie(){return(0,A.useContext)(T).sessionSegment}function Me(){return(0,A.useContext)(T).ssrFallback}function oe(){return(0,A.useContext)(T).onAssignment}function Be(){return(0,A.useContext)(T).debug}function Ke(){let e=(0,A.useContext)(T).initialLayoutOrder,t=(0,A.useSyncExternalStore)(W,()=>{var n;return typeof window=="undefined"?null:(n=window.__sentient_layout_override)!=null?n:null},()=>null);return t!=null?t:e}function je(){return(0,A.useContext)(T).initialSlots}function Fe(){return(0,A.useContext)(T).initialPersona}function We(){return(0,A.useContext)(T).apiBaseUrl}var R=require("react"),$e=require("@sentientui/core");var D=require("react");function z(e){var n;if(typeof window=="undefined")return null;let t=(n=window.__sentient_overrides)==null?void 0:n[e];if(t)return t;if(!window.location.search)return null;try{let o=new URLSearchParams(window.location.search);for(let a of o.getAll("sentient_variant")){let r=a.indexOf(":");if(r!==-1&&a.slice(0,r)===e)return a.slice(r+1)}}catch(o){}return null}var Lt=5;function Ue(e,t){var o,a;let n=null;for(let r of e.variants){if(!t.includes(r.variantId))continue;let u=(o=r.pulls)!=null?o:0,i=u>0?u*r.avgReward/(u+Lt):0;(!n||i>n.score)&&(n={variantId:r.variantId,score:i})}return(a=n==null?void 0:n.variantId)!=null?a:null}function X(e,t,n,o){let a=re(),r=Me(),u=E(),i=ie(),d=oe(),l=Be(),b=(0,D.useRef)(null),f=(0,D.useSyncExternalStore)(W,()=>z(e),()=>null),y=f&&t.includes(f)?f:null,S=(0,D.useRef)(null);(0,D.useEffect)(()=>{l&&y&&S.current!==y&&(S.current=y,console.info(`[sentient] override active: ${e} -> ${y}`))},[l,y,e]);let[c,g]=(0,D.useState)(()=>{var h,k;if(y)return{variantId:y,content:null,isLoading:!1,settled:!0};if(!u){let C=a[e];return C&&t.includes(C)?{variantId:C,content:null,isLoading:!1,settled:!0}:r==="first"&&t.length>0?{variantId:t[0],content:null,isLoading:!1,settled:!1}:{variantId:null,content:null,isLoading:!0,settled:!1}}let s=u.getAssignment(e,i);if(s&&(t.includes(s.variantId)||s.content))return{variantId:s.variantId,content:(h=s.content)!=null?h:null,isLoading:!1,settled:!0};let m=Ce(e);if(m){let C=Ue(m,t);if(C)return{variantId:C,content:null,isLoading:!1,settled:!0}}return{variantId:(k=t[0])!=null?k:null,content:null,isLoading:!1,settled:!1}}),p=s=>{d&&b.current!==s&&(b.current=s,d(e,s))};return(0,D.useEffect)(()=>{var m;if(y||!u)return;let s=u.getAssignment(e,i);if(s&&(t.includes(s.variantId)||s.content)){g({variantId:s.variantId,content:(m=s.content)!=null?m:null,isLoading:!1,settled:!0}),p(s.variantId);return}g(h=>{var k;return h.variantId?h:{variantId:(k=t[0])!=null?k:null,content:null,isLoading:!1,settled:!1}})},[y,u,e,i]),(0,D.useEffect)(()=>{if(y||!u)return;let s=u.getAssignment(e,i);if(s&&t.includes(s.variantId))return;let m=!1;return u.assign(e,t,n,o).then(h=>{var k;m||h&&(!t.includes(h.variantId)&&!h.content||(g({variantId:h.variantId,content:(k=h.content)!=null?k:null,isLoading:!1,settled:!0}),p(h.variantId)))}),()=>{m=!0}},[y,u,e,i]),(0,D.useEffect)(()=>{if(!y&&u)return xe(e,s=>{var k;let m=u.getAssignment(e,i);if(m&&(t.includes(m.variantId)||m.content)){g({variantId:m.variantId,content:(k=m.content)!=null?k:null,isLoading:!1,settled:!0});return}let h=Ue(s,t);h&&g({variantId:h,content:null,isLoading:!1,settled:!0})})},[y,u,e,i]),y?{variantId:y,content:null,isLoading:!1,settled:!0,isOverride:!0}:c}var Je=require("react/jsx-runtime");function It(e){var k;let t=E(),n=j(),o=Object.keys(e.variants).join("\0"),a=(0,R.useMemo)(()=>Object.keys(e.variants),[o]),{variantId:r,content:u,isOverride:i,settled:d}=X(e.id,a,e.agentData,e.agentDataByVariant),l=(0,R.useRef)(null),[b,f]=(0,R.useState)(!1);(0,R.useEffect)(()=>{f(!0)},[]);let y=(0,R.useRef)(!1),S=(0,R.useRef)(new Set),c=(0,R.useRef)(null),g=typeof e.goal=="string"?e.goal:JSON.stringify(e.goal),p=(0,R.useMemo)(()=>B(e.goal),[g]),s=typeof e.goal=="string"?e.goal:p.type;if((0,R.useEffect)(()=>te({id:e.id,variantIds:a,goal:s}),[e.id,a,s]),(0,R.useEffect)(()=>{i||d&&(!t||!r||!n||c.current!==r&&(c.current=r,N(t,n,e.id,r)))},[t,r,n,e.id,i,d]),(0,R.useEffect)(()=>{y.current=!1,S.current=new Set},[r,p]),(0,R.useEffect)(()=>{if(i||!d||!t||!r)return;let C=l.current;if(!C)return;let _=null,v=0,w=()=>{v=Date.now(),_=setTimeout(()=>{t.track({projectId:n,componentId:e.id,variantId:r,eventType:"cursor_signal",payload:{hoverDuration:Date.now()-v}}),_=null},800)},x=()=>{_!==null&&(clearTimeout(_),_=null)};return C.addEventListener("mouseenter",w),C.addEventListener("mouseleave",x),()=>{C.removeEventListener("mouseenter",w),C.removeEventListener("mouseleave",x),_!==null&&clearTimeout(_)}},[t,r,n,e.id,i,d]),(0,R.useEffect)(()=>{if(i||!d||!t||!r)return;let C=l.current;if(!C)return;let _=Date.now();return(0,$e.attachMicroSignalDetectors)((v,w={})=>{var pe,me,ve;t.track({projectId:n,componentId:e.id,variantId:r,eventType:"micro_signal",payload:P({signalType:v},w)});let x=(pe=e.microSignalGoals)==null?void 0:pe[v];if(!x||S.current.has(v))return;S.current.add(v);let V=typeof x=="string"?x:x.name,Y=typeof x=="string"?1:(me=x.weight)!=null?me:1,yt=typeof x=="string"?0:(ve=x.stepIndex)!=null?ve:0;t.goal(V,P({signalType:v},w),Y,yt)},C,_)},[t,r,n,e.id,e.microSignalGoals,i,d]),(0,R.useEffect)(()=>{if(i||!t||!r)return;let C=l.current;if(C)return K(C,p,{fireGoal:()=>{y.current||(y.current=!0,t.track({projectId:n,componentId:e.id,variantId:r,eventType:"goal_achieved",goalType:s,payload:{reward:1}}),t.goal(s,{componentId:e.id,variantId:r},1,0))},fireStep:(_,v,w)=>{t.track({projectId:n,componentId:e.id,variantId:r,eventType:"goal_achieved",goalType:_,payload:{reward:v}}),t.goal(_,{},v,w)}})},[t,r,n,e.id,p,s,i]),e.clientOnly&&(!b||!t)||!r)return null;let m=(k=e.variants[r])!=null?k:null,h=m===null?u:null;return O()&&m===null&&h===null&&console.warn(`[sentient] <Adaptive id="${e.id}"> was assigned variant "${r}" but no matching key exists in props.variants. If this is a dashboard-managed text variant, use <AdaptiveText id="${e.id}"> instead.`),(0,Je.jsx)("div",{ref:l,"data-sentient-id":e.id,"data-sentient-variant":r,children:m!=null?m:h})}var Ve=(0,R.memo)(It,(e,t)=>{if(e.id!==t.id||e.goal!==t.goal&&JSON.stringify(e.goal)!==JSON.stringify(t.goal)||e.microSignalGoals!==t.microSignalGoals||e.clientOnly!==t.clientOnly||e.agentData!==t.agentData||e.agentDataByVariant!==t.agentDataByVariant)return!1;if(e.variants===t.variants)return!0;let n=Object.keys(e.variants),o=Object.keys(t.variants);return n.length!==o.length?!1:n.every(a=>a in t.variants&&Object.is(e.variants[a],t.variants[a]))});var L=require("react");var ze=require("react/jsx-runtime");function He({id:e,default:t,component:n="span",className:o,goal:a}){var _;let r=E(),u=j(),i=oe(),d=ie(),l=(0,L.useRef)(null),b=(0,L.useRef)(null),f=(0,L.useSyncExternalStore)(W,()=>z(e),()=>null),[y,S]=(0,L.useState)(()=>{var v,w;return(w=(v=r==null?void 0:r.getAssignment(e,d))==null?void 0:v.content)!=null?w:null}),[c,g]=(0,L.useState)(()=>{var v,w;return(w=(v=r==null?void 0:r.getAssignment(e,d))==null?void 0:v.variantId)!=null?w:null});(0,L.useEffect)(()=>{var w;if(f||!r||((w=r.getAssignment(e,d))==null?void 0:w.content)!==void 0)return;let v=!1;return r.assign(e).then(x=>{if(!v){if(!x){O()&&console.warn(`[sentient] <AdaptiveText id="${e}"> assignment failed \u2014 showing default text.`);return}g(x.variantId),x.content&&S(x.content)}}),()=>{v=!0}},[r,e,d,f]),(0,L.useEffect)(()=>{f||!r||!c||!u||l.current!==c&&(l.current=c,r.track({projectId:u,componentId:e,variantId:c,eventType:"variant_assigned",payload:{}}),i==null||i(e,c))},[r,c,u,e,i,f]);let p=a===void 0?"":typeof a=="string"?a:JSON.stringify(a),s=(0,L.useMemo)(()=>a===void 0?null:B(a),[p]),m=a===void 0?null:typeof a=="string"?a:s.type,h=(0,L.useRef)(!1);(0,L.useEffect)(()=>{h.current=!1},[c,p]),(0,L.useEffect)(()=>{if(f||!r||!c||!u||!s||!m)return;let v=b.current;if(v)return K(v,s,{fireGoal:()=>{h.current||(h.current=!0,r.track({projectId:u,componentId:e,variantId:c,eventType:"goal_achieved",goalType:m,payload:{reward:1}}),r.goal(m,{componentId:e,variantId:c},1,0))},fireStep:(w,x,V)=>{r.track({projectId:u,componentId:e,variantId:c,eventType:"goal_achieved",goalType:w,payload:{reward:x}}),r.goal(w,{},x,V)}})},[r,c,u,e,s,m,f]);let k=y!=null?y:t;if(f){let v=r==null?void 0:r.getAssignment(e,d);k=v&&v.variantId===f&&(_=v.content)!=null?_:t}return(0,ze.jsx)(n,{ref:v=>{b.current=v},className:o,children:k})}var Xe=require("react");function qe(e){let t=E();return(0,Xe.useCallback)((n,o)=>{var a,r;z(e)||(t==null||t.componentGoal(e,n,o),t==null||t.goal(n,(a=o==null?void 0:o.metadata)!=null?a:{},(r=o==null?void 0:o.reward)!=null?r:1,0))},[t,e])}var Ye=require("@sentientui/core"),Ze=require("@sentientui/policy"),tt=require("react/jsx-runtime");function Qe(e){return JSON.stringify(e).replace(/</g,"\\u003c")}function Pt(e){return e.persona?'(function(){try{var d=document.documentElement;if(d.hasAttribute("data-sentient-persona"))return;d.setAttribute("data-sentient-persona",'+Qe(e.persona.persona)+');d.setAttribute("data-sentient-confidence",'+Qe((0,Ze.confidenceBand)(e.persona.confidence))+");}catch(e){}})();":(0,Ye.renderPrePaintScript)(e.apiKey)}function et(e){return(0,tt.jsx)("script",{"data-sentient-persona-script":"",dangerouslySetInnerHTML:{__html:Pt(e)}})}var F=require("react"),ot=require("@sentientui/policy");var M=require("react"),$=require("@sentientui/core"),rt=require("@sentientui/policy");var nt=new Set;function se(e,t){var b;(0,M.useSyncExternalStore)(W,ue,()=>0);let n=E(),o=je(),[,a]=(0,M.useReducer)(f=>f+1,0),r=typeof window!="undefined"?(b=window.__sentient_slot_overrides)==null?void 0:b[e]:void 0,u=r===void 0?o[e]:void 0,i=r===void 0&&u===void 0&&n?n.getSlotResult(e):null,d=(n==null?void 0:n.isLocal)===!0&&r===void 0&&u===void 0&&i===null;(0,M.useEffect)(()=>{if(!d||!n)return;let f=!1;return n.decide({slots:[t]}).then(y=>{!f&&y&&a()}),()=>{f=!0}},[n,e,d]);let l=(()=>{if(r!==void 0)return{result:r,arm:(0,$.armOfResult)(r),source:"override"};if(u!==void 0)return{result:u,arm:(0,$.armOfResult)(u),source:"preloaded"};if(i!==null)return{result:i,arm:(0,$.armOfResult)(i),source:"client"};let f=(0,$.baselineResultFor)(t);return{result:f,arm:(0,$.armOfResult)(f),source:"baseline"}})();return(0,M.useEffect)(()=>{O()&&(!n||n.isLocal===!0||l.source==="baseline"&&(nt.has(e)||(nt.add(e),console.warn(`[sentient] slot "${e}" resolved to its baseline \u2014 no SSR-preloaded or decided result. Keyed clients decide slots server-side, so this slot serves baseline for the whole session and records no exposure. Preload it via loadAdaptiveDecision()/initialSlots so it can serve a decided arm and learn.`))))},[n,l.source,e]),l}function Tt(){var t;if(typeof window=="undefined")return null;let e=window.__sentient_persona_override;if(e!=null&&e.persona)return{persona:e.persona,confidence:(t=e.confidence)!=null?t:1};try{let n=new URLSearchParams(window.location.search).get("sentient_persona");if(n)return{persona:n,confidence:1}}catch(n){}return null}function it(){let e=E(),t=Fe();(0,M.useSyncExternalStore)(W,ue,()=>0);let[n,o]=(0,M.useState)(!1);(0,M.useEffect)(()=>o(!0),[]);let a=i=>({persona:i.persona,confidence:i.confidence,band:(0,rt.confidenceBand)(i.confidence)});if(!n)return t?a(t):null;let r=Tt();if(r)return a(r);if(t)return a(t);let u=e?e.getPersona():null;return u?a(u):null}var ce=new Set;function Dt(e){return typeof CSS!="undefined"&&typeof CSS.escape=="function"?CSS.escape(e):e.replace(/[\\"]/g,"\\$&")}function st(e,t,n){let o=E(),a=j(),r=JSON.stringify(t),u=(0,F.useMemo)(()=>({id:e,dims:t}),[e,r]),{result:i,arm:d,source:l}=se(e,u),b=(0,F.useMemo)(()=>typeof i=="string"?{}:i,[d]);if(O()&&!ce.has(e)){let c=(0,ot.validateSlotDecl)({id:e,dims:Object.fromEntries(Object.entries(t).map(([p,s])=>[p,[...s]]))}),g=Object.values(t).reduce((p,s)=>p*s.length,1);c.ok?g>4&&(ce.add(e),console.warn(`[sentient] useAdaptiveTokens("${e}") declares ${g} combinations \u2014 more than the recommended 4. Each extra combination needs more traffic to learn; consider fewer dims/values.`)):(ce.add(e),console.warn(`[sentient] useAdaptiveTokens("${e}"): invalid declaration \u2014 ${c.reason}. Serving baseline.`))}let f=(n==null?void 0:n.goal)===void 0?null:typeof n.goal=="string"?n.goal:JSON.stringify(n.goal);(0,F.useEffect)(()=>ne({id:e,dims:t}),[e]);let y=(0,F.useRef)(null);(0,F.useEffect)(()=>{!o||l==="baseline"||l==="override"||y.current===d||(y.current=d,N(o,a,e,d))},[o,a,e,d,l]),(0,F.useEffect)(()=>{if(!o||!(n!=null&&n.goal)||l==="override")return;let c=document.querySelector(`[data-sentient-slot="${Dt(e)}"]`);if(!c){O()&&console.warn(`[sentient] useAdaptiveTokens("${e}"): a goal is declared but no element carries the returned props \u2014 spread {...props} on the slot's element.`);return}let g=J(n.goal),p=!1;return K(c,B(n.goal),{fireGoal:()=>{p||(p=!0,o.componentGoal(e,g),o.goal(g,{componentId:e,arm:d},1,0))},fireStep:(s,m,h)=>{o.componentGoal(e,s,{reward:m}),o.goal(s,{componentId:e,arm:d},m,h)}})},[o,e,f,d,l]);let S=(0,F.useMemo)(()=>{let c={"data-sentient-slot":e};for(let[g,p]of Object.entries(b))c[`data-${g}`]=p;return c},[e,b]);return{tokens:b,props:S}}var G=require("react"),lt=require("@sentientui/core");var at=new Set;function ut(e,t){var _;if(O()&&!t.goal)throw new Error(`[sentient] useAdaptive("${e}"): a goal is required \u2014 without one the optimizer accumulates exposures with no rewards and cannot learn. Pass e.g. goal: 'buy_click'.`);let n=E(),o=j(),a=Object.keys(t.variants).join(" "),r=(0,G.useMemo)(()=>Object.keys(t.variants),[a]),{variantId:u,isOverride:i,settled:d}=X(e,r),l=(_=u!=null?u:r[0])!=null?_:"",b=t.variants[l],[f,y]=(0,G.useState)(null),S=(0,G.useRef)(null),c=(0,G.useCallback)(v=>{S.current=v,y(v)},[]),g=typeof t.goal=="string"?t.goal:JSON.stringify(t.goal),p=(0,G.useMemo)(()=>B(t.goal),[g]),s=J(t.goal);(0,G.useEffect)(()=>te({id:e,variantIds:r,goal:s}),[e,r,s]);let m=(0,G.useRef)(null);(0,G.useEffect)(()=>{i||d&&(!n||!l||!f||m.current!==l&&(m.current=l,N(n,o,e,l)))},[n,o,e,l,f,i,d]);let h=(0,G.useRef)(!1);(0,G.useEffect)(()=>{h.current=!1},[l,g]),(0,G.useEffect)(()=>{if(!i&&!(!n||!l||!f))return K(f,p,{fireGoal:()=>{h.current||(h.current=!0,n.track({projectId:o,componentId:e,variantId:l,eventType:"goal_achieved",goalType:s,payload:{reward:1}}),n.goal(s,{componentId:e,variantId:l},1,0))},fireStep:(v,w,x)=>{n.track({projectId:o,componentId:e,variantId:l,eventType:"goal_achieved",goalType:v,payload:{reward:w}}),n.goal(v,{},w,x)}})},[n,f,l,o,e,p,s,i]),(0,G.useEffect)(()=>{if(i||!n||!l||!f)return;let v=Date.now();return(0,lt.attachMicroSignalDetectors)((w,x={})=>{n.track({projectId:o,componentId:e,variantId:l,eventType:"micro_signal",payload:P({signalType:w},x)})},f,v)},[n,f,l,o,e,i]),(0,G.useEffect)(()=>{if(!O()||!n)return;let v=setTimeout(()=>{!S.current&&!at.has(e)&&(at.add(e),console.warn(`[sentient] useAdaptive("${e}"): bind was never attached \u2014 spread {...bind} on the rendered element, otherwise exposure and goal tracking cannot work and the optimizer learns nothing.`))},0);return()=>clearTimeout(v)},[n,e]);let k=(0,G.useCallback)((v,w)=>{var V,Y;if(i)return;let x=v!=null?v:s;n==null||n.componentGoal(e,x,w),n==null||n.goal(x,(V=w==null?void 0:w.metadata)!=null?V:{},(Y=w==null?void 0:w.reward)!=null?Y:1,0)},[n,e,s,i]),C=(0,G.useMemo)(()=>({ref:c,"data-sentient-id":e,"data-sentient-variant":l}),[c,e,l]);return{variant:l,value:b,bind:C,fireGoal:k}}var I=require("react");var dt=require("react/jsx-runtime"),ae=new Set;function ct(e){var p;let t=E(),n=j(),o=(0,I.useRef)(null),a=Object.keys(e.arrangements).join(" "),r=(0,I.useMemo)(()=>Object.keys(e.arrangements),[a]),u=(0,I.useMemo)(()=>P({id:e.id,arms:r},e.baseline!==void 0?{baseline:e.baseline}:{}),[e.id,r,e.baseline]),{arm:i,source:d}=se(e.id,u);O()&&e.baseline!==void 0&&e.baseline!==r[0]&&!ae.has(e.id+":baseline")&&(ae.add(e.id+":baseline"),console.warn(`[sentient] <AdaptiveGroup id="${e.id}">: baseline "${e.baseline}" is not the first-declared arrangement ("${r[0]}"). The first arrangement should usually be the page's real incumbent (the holdout sees it).`));let l=I.Children.toArray(e.children).filter(I.isValidElement),b=new Map;for(let s of l)b.set(String((p=s.key)!=null?p:"").replace(/^\.\$/,""),s);let f=e.arrangements[i],y=f!==void 0&&f.length===l.length&&f.every(s=>b.has(s));O()&&f!==void 0&&!y&&!ae.has(e.id+":keys")&&(ae.add(e.id+":keys"),console.warn(`[sentient] <AdaptiveGroup id="${e.id}">: arrangement "${i}" [${f.join(", ")}] does not match the children's keys \u2014 rendering declaration order (fail-safe).`));let S=y?f.map(s=>b.get(s)):l;(0,I.useEffect)(()=>ne({id:e.id,arms:Object.keys(e.arrangements)}),[e.id]);let c=(0,I.useRef)(null);(0,I.useEffect)(()=>{!t||d==="baseline"||d==="override"||c.current===i||(c.current=i,N(t,n,e.id,i))},[t,n,e.id,i,d]);let g=e.goal===void 0?null:typeof e.goal=="string"?e.goal:JSON.stringify(e.goal);return(0,I.useEffect)(()=>{if(!t||e.goal===void 0||d==="override")return;let s=o.current;if(!s)return;let m=J(e.goal),h=!1;return K(s,B(e.goal),{fireGoal:()=>{h||(h=!0,t.componentGoal(e.id,m),t.goal(m,{componentId:e.id,arm:i},1,0))},fireStep:(k,C,_)=>{t.componentGoal(e.id,k,{reward:C}),t.goal(k,{componentId:e.id,arm:i},C,_)}})},[t,e.id,g,i,d]),(0,dt.jsx)("div",{ref:o,"data-sentient-id":e.id,"data-sentient-variant":i,children:S})}var de=require("@sentientui/core");var Mt=["page","blocks","layoutOrder"],ft=new Map;function gt(e,t){ft.set(e,t)}function fe(e){return ft.get(e)}function pt(e){var a,r;let t=(r=(a=e.content)!=null?a:fe(e.page))!=null?r:{},n={};for(let[u,i]of Object.entries(t))Mt.includes(u)||(n[u]=i);let o=Z(P({},n),{page:e.page,blocks:e.blocks});return e.layoutOrder&&(o.layoutOrder=e.layoutOrder),o}function mt(e){return`<script type="application/ld+json">${ge(e)}</script>`}function ge(e){return JSON.stringify(P({"@context":"https://schema.org","@type":"WebPage"},e)).replace(/</g,"\\u003c")}function vt(e){let t=[];e.title&&t.push(`# ${e.title}`,""),e.summary&&t.push(String(e.summary),"");for(let[n,o]of Object.entries(e))["page","title","summary","blocks","layoutOrder"].includes(n)||t.push(`## ${n}`,"","```json",JSON.stringify(o,null,2),"```","");if(e.blocks.length>0){t.push("## blocks","");for(let n of e.blocks)t.push(`- **${n.id}** \u2192 variant \`${n.variant}\``),n.content!==void 0&&t.push(""," ```json",JSON.stringify(n.content,null,2)," ```");t.push("")}return t.join(`
3
3
  `).trimEnd()+`
4
4
  `}0&&(module.exports={Adaptive,AdaptiveGroup,AdaptiveProvider,AdaptiveText,SentientPersonaScript,buildAgentFeed,defineAgentContent,detectSegment,getAgentContent,renderAgentJsonLd,renderAgentJsonLdBody,renderAgentMarkdown,useAdaptive,useAdaptiveApiBaseUrl,useAdaptiveGoal,useAdaptivePersona,useAdaptiveTokens,useAssignment,useInitialAssignments,useLayoutOrder,useSentient});
5
5
  //# sourceMappingURL=index.js.map