@fork-api/chat-sdk 0.1.182 → 0.1.183

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.cjs CHANGED
@@ -1,6 +1,6 @@
1
- 'use strict';var Pn=require('react'),as=require('react-dom'),ls=require('react/jsx-runtime'),cs=require('react/jsx-dev-runtime'),lucideReact=require('lucide-react');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var Pn__namespace=/*#__PURE__*/_interopNamespace(Pn);var as__namespace=/*#__PURE__*/_interopNamespace(as);var ls__namespace=/*#__PURE__*/_interopNamespace(ls);var cs__namespace=/*#__PURE__*/_interopNamespace(cs);var rt="__FORK_SHARED__";function xn(){var t,n,r,o;let e=globalThis;return e[rt]||(e[rt]={}),(t=e[rt]).react||(t.react=Pn__namespace),(n=e[rt])["react-dom"]||(n["react-dom"]=as__namespace),(r=e[rt])["react/jsx-runtime"]||(r["react/jsx-runtime"]=ls__namespace),(o=e[rt])["react/jsx-dev-runtime"]||(o["react/jsx-dev-runtime"]=cs__namespace),e[rt]}function An(e){return Object.assign(xn(),e)}var Tr=false,En=null,Rn=null;function $r(e,t,n){Tr=e,En=t,Rn=n;}function pe(){if(!Tr)return {};let e={};return En&&(e["X-Fork-App-Id"]=En),Rn&&(e["X-Fork-Container-Id"]=Rn),e}async function In(e){let t=new URLSearchParams({app:e.appId,user:e.userId});e.containerId&&t.set("containerId",e.containerId);let n=`${e.baseUrl}/api/v1/manifest?${t.toString()}`,r={Authorization:`Bearer ${e.apiKey}`,"X-Fork-App-Id":e.appId,"X-Fork-User-Id":e.userId,...e.extraHeaders??{}};e.userHash&&(r["X-Fork-User-Hash"]=e.userHash),e.userJwt&&(r["X-Fork-User-Jwt"]=e.userJwt),e.previous?.etag&&(r["If-None-Match"]=e.previous.etag);let o=await fetch(n,{headers:r,signal:e.signal});if(o.status===304)return null;if(!o.ok)throw new Error(`manifest ${o.status} ${o.statusText}`);let s=await o.json(),i={};for(let[l,u]of Object.entries(s.modules)){let h=u.moduleUrl??u.bundleUrl??null,b=u.legacyModuleUrl??u.legacyBundleUrl??null;i[l]={forkId:u.forkId,moduleUrl:h,legacyModuleUrl:b,bundleUrl:u.bundleUrl??h,legacyBundleUrl:u.legacyBundleUrl??b,cssUrls:u.cssUrls??[],integrity:u.integrity,metadata:u.metadata,highlightHint:u.highlightHint,buildId:u.buildId,updatedAt:u.updatedAt};}return {containerId:s.containerId,forksPaused:!!s.forksPaused,slots:s.slots,modules:i,generatedAt:s.generatedAt,etag:o.headers.get("ETag")??void 0}}var us="fork:manifest:v1";function Cn(e,t,n){return `${us}:${e}:${t}:${n}`}function ds(e,t,n){if(typeof window>"u")return null;try{let r=window.localStorage.getItem(Cn(e,t,n));return r?JSON.parse(r):null}catch{return null}}function fs(e,t,n,r){if(!(typeof window>"u"))try{window.localStorage.setItem(Cn(e,t,n),JSON.stringify(r));}catch{}}function ps(e,t,n){if(!(typeof window>"u"))try{window.localStorage.removeItem(Cn(e,t,n));}catch{}}function ms(e,t){if(!e||!t)return e!==t;if(e.containerId!==t.containerId||!!e.forksPaused!=!!t.forksPaused)return true;let n=Object.entries(e.slots),r=Object.entries(t.slots);if(n.length!==r.length)return true;for(let[i,l]of n){let u=t.slots[i];if(!u||u.forkId!==l.forkId||u.buildId!==l.buildId)return true}let o=Object.entries(e.modules),s=Object.entries(t.modules);if(o.length!==s.length)return true;for(let[i,l]of o){let u=t.modules[i];if(!u||u.forkId!==l.forkId||u.buildId!==l.buildId)return true}return false}var Zt={isAdmin:false,actingUserId:null,containerId:null,containerName:null,containers:[]},Lr=Pn.createContext(null),ys=12e3,ks=45e3,Pr="fork:activity:v1",bs=new Set(["pending","running","building"]),ws="Setting up environment";function _e(e){return bs.has(e)}function vs(e,t){return t?.targetId?t:e.boundaryId?{targetKind:"module",targetId:e.boundaryId}:e.slotId?{targetKind:"slot",targetId:e.slotId}:null}function Ss(e,t){let n=vs(e,t);if(!n)return null;let r=new Date().toISOString();return {id:e.id,status:e.status,targetKind:n.targetKind,targetId:n.targetId,summary:e.summary??null,estimateMinutes:e.estimateMinutes??null,createdAt:e.createdAt||r,updatedAt:e.completedAt||r,completedAt:e.completedAt??null}}function _r(e){return {id:e.id,status:e.status,targetKind:e.targetKind,targetId:e.targetId,summary:e.summary??null,estimateMinutes:e.estimateMinutes??null,promptCount:e.promptCount,messageCount:e.messageCount,isActive:e.isActive,createdAt:e.createdAt,updatedAt:e.updatedAt,completedAt:e.completedAt??null}}function Qt(e,t){let n=typeof t.summary=="string"&&t.summary.trim()?t.summary.trim():void 0,r=typeof e?.summary=="string"&&e.summary.trim()?e.summary.trim():void 0,o=typeof t.estimateMinutes=="number"&&Number.isFinite(t.estimateMinutes)?t.estimateMinutes:void 0,s=typeof e?.estimateMinutes=="number"&&Number.isFinite(e.estimateMinutes)?e.estimateMinutes:void 0;return {...e,...t,summary:n??r??null,estimateMinutes:o??s??null,latestMessage:t.latestMessage??e?.latestMessage??null,unread:t.unread??e?.unread??false}}function At(e){return `${e.id}:${e.completedAt||e.updatedAt}`}function ot(e){if(typeof window>"u")return new Set;try{let t=window.localStorage.getItem(e);if(!t)return new Set;let n=JSON.parse(t);return Array.isArray(n)?new Set(n.filter(r=>typeof r=="string")):new Set}catch{return new Set}}function st(e,t){if(!(typeof window>"u"))try{window.localStorage.setItem(e,JSON.stringify([...t].slice(-200)));}catch{}}function Fs(e){if(e.estimateMinutes)return `~${e.estimateMinutes}m`}function xs(e){let t=e.data&&typeof e.data=="object"?e.data:{};if(e.type==="status"){let n=typeof t.status=="string"?t.status:"running",r=typeof t.summary=="string"?t.summary:void 0;return {status:n,latestMessage:_e(n)?"Building":void 0,summary:r,estimateMinutes:typeof t.estimateMinutes=="number"?t.estimateMinutes:void 0,updatedAt:e.timestamp}}return e.type==="tool_use"?{status:"running",latestMessage:"Building",updatedAt:e.timestamp}:e.type==="build_start"?{status:"building",latestMessage:"Building",updatedAt:e.timestamp}:e.type==="build_complete"?{status:"building",latestMessage:"Building",updatedAt:e.timestamp}:e.type==="complete"?{status:"complete",summary:typeof t.summary=="string"?t.summary:void 0,estimateMinutes:typeof t.estimateMinutes=="number"?t.estimateMinutes:void 0,latestMessage:"Fork ready",completedAt:e.timestamp,updatedAt:e.timestamp}:e.type==="error"||e.type==="build_error"?{status:"error",latestMessage:typeof t.error=="string"?t.error:typeof t.message=="string"?t.message:"Fork failed",updatedAt:e.timestamp}:{updatedAt:e.timestamp}}function As(e){let t=e.filter(o=>_e(o.status)),n=e.filter(o=>o.status==="complete"&&o.unread),r=[...e].sort((o,s)=>Date.parse(s.updatedAt)-Date.parse(o.updatedAt))[0]??null;if(t.length>1)return {state:"running",label:`${t.length} forks running`,count:t.length,runningCount:t.length,unreadCompletedCount:n.length,latest:t[0]};if(t.length===1){let o=t[0],s=!!(typeof o.summary=="string"&&o.summary.trim());return {state:"running",label:s?o.summary.trim():ws,detail:s?Fs(o):void 0,count:1,runningCount:1,unreadCompletedCount:n.length,latest:o}}if(n.length>1)return {state:"complete",label:`${n.length} forks ready`,count:n.length,runningCount:0,unreadCompletedCount:n.length,latest:n[0]};if(n.length===1){let o=n[0];return {state:"complete",label:o.summary||"Fork ready",count:1,runningCount:0,unreadCompletedCount:1,latest:o}}return {state:r?.status==="error"?"error":"idle",label:"Fork",count:0,runningCount:0,unreadCompletedCount:0,latest:r}}function Mn(e,t){if(!t)return t;try{return new URL(t,`${e.replace(/\/+$/,"")}/`).toString()}catch{return t}}function Es(e,t,n,r){let o={};for(let[s,i]of Object.entries(t.slots)){let l=i.bundleUrl??i.legacyBundleUrl;l&&(o[s]={id:i.forkId,userId:n,prompt:"",status:"complete",slotId:s,appId:r,bundleUrl:Mn(e,l),revealPending:i.revealPending===true,createdAt:i.updatedAt,completedAt:i.updatedAt});}return o}function Rs(e,t){let n={};for(let[r,o]of Object.entries(t.modules)){let s=o.moduleUrl??o.legacyModuleUrl??o.bundleUrl??"";s&&(n[r]={id:o.forkId,boundaryId:r,moduleUrl:Mn(e,s),cssUrls:(o.cssUrls??[]).map(i=>Mn(e,i)),integrity:o.integrity,metadata:o.metadata,highlightHint:o.highlightHint,createdAt:o.updatedAt});}return n}function Is(e){let{apiKey:t,baseUrl:n,children:r,appId:o,shared:s}=e,i="userId"in e?e.userId:void 0,l="userHash"in e?e.userHash:void 0,u="userJwt"in e?e.userJwt:void 0,h="authUrl"in e?e.authUrl:void 0,[b,d]=Pn.useState({}),[k,R]=Pn.useState(i?{userId:i,userHash:l,userJwt:u}:null),[v,f]=Pn.useState(!!i),[g,S]=Pn.useState(Zt),[I,m]=Pn.useState(false),[P,L]=Pn.useState(false),[j,O]=Pn.useState({}),[N,oe]=Pn.useState(!o),[Y,_]=Pn.useState(0),[F,H]=Pn.useState(null),[D,K]=Pn.useState(false),[V,W]=Pn.useState([]),[X,U]=Pn.useState(()=>typeof document>"u"?true:document.visibilityState!=="hidden"),C=Pn.useRef(new Map),M=Pn.useRef(new Map),[w,p]=Pn.useState(0),$=Pn.useRef(new Set),x=Pn.useRef(new Map),q=Pn.useRef(void 0),re=Pn.useRef(new Map),Ae=Pn.useRef([]),Te=Pn.useRef(new Set),Ue=Pn.useRef(false);xn(),Pn.useEffect(()=>{if(!o||!k?.userId||!(k.userHash||k.userJwt)){S(Zt),m(true);return}let c=false;m(false);let y=new URLSearchParams({app:o});return fetch(`${n}/api/v1/admin/containers?${y.toString()}`,{headers:{Authorization:`Bearer ${t}`,"X-Fork-App-Id":o,"X-Fork-User-Id":k.userId,...k.userHash?{"X-Fork-User-Hash":k.userHash}:{},...k.userJwt?{"X-Fork-User-Jwt":k.userJwt}:{}}}).then(async A=>A.status===403||!A.ok?null:A.json()).then(A=>{if(c)return;if(!A){S(Zt),m(true);return}let z=Array.isArray(A.containers)?A.containers:[],Q=A.currentContainerId??null,Z=z.find(ne=>ne.id===Q)?.name??null;S({isAdmin:true,actingUserId:typeof A.actingUserId=="string"?A.actingUserId:null,containerId:Q,containerName:Z,containers:z}),m(true);}).catch(()=>{c||(S(Zt),m(true));}),()=>{c=true;}},[t,o,k?.userHash,k?.userJwt,k?.userId,n]),Pn.useEffect(()=>{$r(g.isAdmin,o??null,g.containerId);},[g.isAdmin,g.containerId,o]);let Se=Pn.useCallback((c,y)=>{S(A=>{if(!A.isAdmin)return A;let z=A.containers.find(ne=>ne.id===c),Q=y??z?.name??null,Z=z?A.containers.map(ne=>({...ne,isPrimary:ne.id===c})):[{id:c,name:Q??"New container",isPrimary:true,forkCount:0},...A.containers.map(ne=>({...ne,isPrimary:false}))];return {...A,containerId:c,containerName:Q,containers:Z}}),L(false);},[]);s&&q.current!==s&&(An(s),q.current=s),Pn.useEffect(()=>{h&&(f(false),fetch(h,{credentials:"include"}).then(c=>{if(!c.ok)throw new Error(`Auth endpoint returned ${c.status}`);return c.json()}).then(c=>{if(!c.userId||typeof c.userId!="string")throw new Error("authUrl response must include userId");R({userId:c.userId,userHash:typeof c.userHash=="string"?c.userHash:void 0,userJwt:typeof c.userJwt=="string"?c.userJwt:void 0});}).catch(c=>{console.error("[ForkProvider] Failed to fetch user identity from authUrl:",c.message);}).finally(()=>{f(true);}));},[h]),Pn.useEffect(()=>{!h&&i&&(R({userId:i,userHash:l,userJwt:u}),f(true));},[i,l,u,h]);let te=k?.userId??"",se=k?.userHash,lt=k?.userJwt,$e=!!o,ke=Pn.useCallback(async()=>{if(!$e){H(null),K(false),O({}),oe(true),_(y=>y+1);return}if(!v){oe(false);return}if(!te||!o){H(null),K(false),d({}),O({}),oe(true),_(y=>y+1);return}oe(false);let c=g.isAdmin?g.containerId:null;if(g.isAdmin&&P){K(true),d({}),O({}),_(y=>y+1),oe(true);return}try{let y=await In({baseUrl:n,apiKey:t,appId:o,userId:te,userHash:se,userJwt:lt,containerId:c??void 0});y&&(H(y.containerId),K(g.isAdmin?!1:!!y.forksPaused),d(Es(n,y,te,o)),O(Rs(n,y)));}catch(y){console.error("[ForkProvider] Failed to fetch fork manifest:",y.message),H(null),K(false),d({}),O({});}finally{_(y=>y+1),oe(true);}},[t,o,n,v,$e,se,lt,te,g.isAdmin,g.containerId,P]);Pn.useEffect(()=>{if(!te||o)return;let c=new URLSearchParams({userId:te});se&&c.set("userHash",se),fetch(`${n}/api/v1/forks/active?${c.toString()}`,{headers:{Authorization:`Bearer ${t}`,...pe()}}).then(y=>{if(!y.ok)throw new Error(`${y.status}`);return y.json()}).then(y=>{y&&typeof y=="object"&&d(y);}).catch(()=>{});},[t,o,te,se,n]),Pn.useEffect(()=>{ke();},[ke]);let hn=Pn.useCallback(async c=>{if(o){if(g.isAdmin){L(c),K(c),c?(d({}),O({}),_(y=>y+1)):await ke();return}if(te){K(c),c&&(d({}),O({}),_(y=>y+1));try{let y=await fetch(`${n}/api/v1/containers/primary/paused`,{method:"PUT",headers:{Authorization:`Bearer ${t}`,"Content-Type":"application/json","X-Fork-App-Id":o},body:JSON.stringify({appId:o,paused:c,userId:te,userHash:se})});if(!y.ok)throw new Error(`${y.status}`);c||await ke();}catch(y){console.error("[ForkProvider] Failed to persist fork pause state:",y?.message??y),ke().catch(()=>{});}}}},[t,o,n,ke,g.isAdmin,se,te]),Bt=Pn.useCallback((c,y)=>{d(A=>({...A,[c]:y}));},[]),yn=Pn.useCallback(c=>{d(y=>{let A={...y};return delete A[c],A});},[]),Dt=Pn.useCallback(c=>{$.current.add(c);},[]),ge=Pn.useCallback(c=>$.current.has(c)?($.current.delete(c),true):false,[]),ct=Pn.useCallback(c=>{if(c.slotId&&d(A=>{let z=A[c.slotId];return !z||z.id!==c.id||!z.revealPending?A:{...A,[c.slotId]:{...z,revealPending:false}}}),g.isAdmin||!te)return;let y={Authorization:`Bearer ${t}`,"Content-Type":"application/json","X-Fork-User-Id":te};se&&(y["X-Fork-User-Hash"]=se),fetch(`${n}/api/v1/forks/reveals`,{method:"POST",headers:y,body:JSON.stringify({forkId:c.id,userId:te,userHash:se})}).catch(()=>{});},[t,n,g.isAdmin,se,te]),tt=Pn.useCallback((c,y)=>{x.current.set(c,y);},[]),jt=Pn.useCallback((c,y)=>x.current.get(c)!==y?false:(x.current.delete(c),true),[]),bt=Pn.useCallback(c=>{if(!o)return;let y=JSON.stringify(c);C.current.get(c.id)===y||M.current.get(c.id)?.signature===y||(M.current.set(c.id,{boundary:c,signature:y}),p(z=>z+1));},[o]);Pn.useEffect(()=>{if(!o||M.current.size===0)return;let c=setTimeout(()=>{let y=Array.from(M.current.values());y.length!==0&&fetch(`${n}/api/v1/boundaries`,{method:"POST",headers:{Authorization:`Bearer ${t}`,"Content-Type":"application/json"},body:JSON.stringify({appId:o,boundaries:y.map(A=>A.boundary)})}).then(A=>{if(!A.ok)throw new Error(`${A.status}`)}).then(()=>{for(let A of y)M.current.get(A.boundary.id)?.signature===A.signature&&(M.current.delete(A.boundary.id),C.current.set(A.boundary.id,A.signature));}).catch(A=>{console.error("[ForkProvider] Failed to register module boundaries:",A.message);});},50);return ()=>{clearTimeout(c);}},[t,o,n,w]);let ut=Pn.useCallback(c=>j[c],[j]),Be=g.isAdmin?`admin:${g.actingUserId??"op"}`:te,Xe=`${t}:${o||"no-app"}:${F||"no-container"}:${Be||"anonymous"}`,wt=g.isAdmin?`op:${g.actingUserId??"op"}`:te,Kt=`${t}:${o||"no-app"}:${wt||"anonymous"}`,Fe=`${Pr}:seen:${Xe}`,xe=`${Pr}:tracked:${Xe}`;Pn.useEffect(()=>{Ae.current=V;},[V]);let dt=Pn.useCallback(()=>{let c={Authorization:`Bearer ${t}`,...pe()};return o&&(c["X-Fork-App-Id"]=o),te&&(c["X-Fork-User-Id"]=te),se&&(c["X-Fork-User-Hash"]=se),c},[t,o,se,te]);Pn.useEffect(()=>{if(typeof window>"u")return;let c=window.__FORK_RUNTIME__,y={dataFetch:async(A,z,Q="POST")=>{if(!o||!F)throw new Error("Fork data is unavailable until appId and containerId are resolved");let Z=typeof A=="string"&&A.startsWith("/")?A:`/${String(A||"")}`,ne=Z.startsWith("/api/v1/data")?Z:`/api/v1/data${Z}`,ie=Q.toUpperCase(),be=new URL(`${n}${ne}`),ce={Authorization:`Bearer ${t}`,"Content-Type":"application/json","X-Fork-App-Id":o,...pe()};te&&(ce["X-Fork-User-Id"]=te),se&&(ce["X-Fork-User-Hash"]=se);let me={method:ie,headers:ce};ie==="GET"?(be.searchParams.set("appId",o),be.searchParams.set("containerId",F)):me.body=JSON.stringify({appId:o,containerId:F,...z&&typeof z=="object"?z:{}});let ae=await fetch(be.toString(),me),de=await ae.json().catch(()=>({}));if(!ae.ok)throw new Error(typeof de?.error=="string"?de.error:`Fork data API ${ae.status}`);return de}};return window.__FORK_RUNTIME__=y,()=>{window.__FORK_RUNTIME__===y&&(window.__FORK_RUNTIME__=c);}},[t,o,n,F,se,te]);let Ie=Pn.useCallback(async()=>{if(!F||!I)return;let c=new URLSearchParams({container_id:F}),y=await fetch(`${n}/api/v1/forks?${c.toString()}`,{headers:dt()}).catch(()=>null);if(!y||!y.ok)return;let A=await y.json().catch(()=>({})),z=Array.isArray(A.forks)?A.forks:[],Q=ot(Fe),Z=ot(xe),ne=false,ie=new Map(Ae.current.map(ce=>[ce.id,ce])),be=[];for(let ce of z){let me=_r(ce);_e(me.status)&&!Z.has(me.id)&&(Z.add(me.id),ne=true);let ae=ie.get(me.id),de=ae?_e(ae.status):false,we=At(me);me.status==="complete"&&(Z.has(me.id)||de)&&!Q.has(we)&&!Te.current.has(we)&&!ae?.unread&&(Ue.current||Z.has(me.id)||de)&&(Te.current.add(we),be.push(me));}if(W(ce=>{let me=new Map(ce.map(fe=>[fe.id,fe])),ae=new Set,de=new Map;for(let fe of z){let Ee=_r(fe);ae.add(Ee.id);let Pe=me.get(Ee.id),Le=Pe?_e(Pe.status):false,pt=At(Ee),Wt=Ee.status==="complete"&&(Z.has(Ee.id)||Le)&&!Q.has(pt),qe=Qt(Pe,{...Ee,unread:Wt});de.set(Ee.id,qe);}for(let fe of ce)ae.has(fe.id)||(_e(fe.status)||fe.unread)&&de.set(fe.id,fe);let we=[...de.values()].sort((fe,Ee)=>Date.parse(Ee.updatedAt)-Date.parse(fe.updatedAt));return Ae.current=we,we}),ne&&st(xe,Z),be.length>0){for(let ce of be)ce.targetKind==="module"&&tt(ce.targetId,ce.id);ke().catch(()=>{});}Ue.current=true;},[Fe,xe,I,n,dt,F,ke,tt]),zt=Pn.useCallback((c,y)=>{let A=Ss(c,y);if(!A)return;let z=c.containerId??c._containerId;if(z&&!F&&H(z),_e(A.status)){let ne=ot(xe);ne.has(A.id)||(ne.add(A.id),st(xe,ne)),K(false),g.isAdmin&&L(false);}let Q=new Map(Ae.current.map(ne=>[ne.id,ne]));Q.set(A.id,Qt(Q.get(A.id),A));let Z=[...Q.values()].sort((ne,ie)=>Date.parse(ie.updatedAt)-Date.parse(ne.updatedAt));Ae.current=Z,W(Z);},[xe,t,o,F,g.isAdmin]),Ne=Pn.useCallback((c,y)=>{let A=xs(y),z=ot(Fe),Q=ot(xe),Z=Ae.current.find(ae=>ae.id===c),ne=Z?_e(Z.status):false;A.status&&_e(A.status)&&!Q.has(c)&&(Q.add(c),st(xe,Q));let ie=Z?Qt(Z,{...Z,...A}):null,be=ie?At(ie):null,ce=!!(ie&&ie.status==="complete"&&(Q.has(c)||ne)&&be&&!z.has(be)&&!Te.current.has(be)&&!Z?.unread),me=y.type==="complete"&&Z?.targetKind==="module"?Z.targetId:null;if(W(ae=>{let de=ae.find(Le=>Le.id===c);if(!de)return ae;let we=Qt(de,{...de,...A}),fe=we.status==="complete"&&(Q.has(c)||_e(de.status))&&!z.has(At(we)),Ee={...we,unread:fe},Pe=ae.map(Le=>Le.id===c?Ee:Le).sort((Le,pt)=>Date.parse(pt.updatedAt)-Date.parse(Le.updatedAt));return Ae.current=Pe,Pe}),ce&&ie&&be&&Te.current.add(be),y.type==="complete"){let ae=y.data&&typeof y.data=="object"?y.data:{},de=typeof ae.boundaryId=="string"?ae.boundaryId:me;de&&tt(de,c),ke().catch(()=>{});}},[Fe,xe,ke,tt]),ft=Pn.useCallback(c=>{let y=ot(Fe),A=ot(xe),z=false,Q=false;for(let Z of Ae.current){if(Z.status!=="complete"||c&&Z.id!==c)continue;let ne=At(Z);y.has(ne)||(y.add(ne),z=true),A.delete(Z.id)&&(Q=true);}W(Z=>{let ne=Z.map(ie=>ie.status!=="complete"||c&&ie.id!==c?ie:{...ie,unread:false});return Ae.current=ne,ne}),z&&st(Fe,y),Q&&st(xe,A);},[Fe,xe]);Pn.useEffect(()=>{Ue.current=false,Te.current.clear(),W([]);for(let c of re.current.values())c.close();re.current.clear(),F&&Ie();},[F,Ie]),Pn.useEffect(()=>{if(typeof document>"u")return;let c=()=>{let y=document.visibilityState!=="hidden";U(y),y&&F&&Ie();};return document.addEventListener("visibilitychange",c),window.addEventListener("focus",c),window.addEventListener("online",c),()=>{document.removeEventListener("visibilitychange",c),window.removeEventListener("focus",c),window.removeEventListener("online",c);}},[F,Ie]),Pn.useEffect(()=>{let c=V.filter(z=>_e(z.status));if(!F||c.length===0)return;let y=X?ys:ks,A=window.setInterval(()=>{Ie();},y);return ()=>window.clearInterval(A)},[F,X,V,Ie]),Pn.useEffect(()=>{for(let c of re.current.values())c.close();re.current.clear();},[t,n,g.containerId,se,te]),Pn.useEffect(()=>{let c=new Set(V.filter(y=>_e(y.status)).map(y=>y.id));for(let[y,A]of re.current.entries())c.has(y)||(A.close(),re.current.delete(y));for(let y of c){if(re.current.has(y))continue;let A=new URLSearchParams({key:t});te&&A.set("userId",te),se&&A.set("userHash",se),g.isAdmin&&g.containerId&&A.set("containerId",g.containerId);let z=new EventSource(`${n}/api/v1/forks/${y}/events?${A.toString()}`);z.onmessage=Q=>{try{Ne(y,JSON.parse(Q.data));}catch{}},z.onerror=()=>{z.close(),re.current.delete(y);},re.current.set(y,z);}},[t,n,V,g.isAdmin,g.containerId,Ne,se,te]),Pn.useEffect(()=>()=>{for(let c of re.current.values())c.close();re.current.clear();},[]);let kn=As(V),bn=Pn.useCallback(async()=>{if(!te)throw new Error("Reset requires a resolved user identity.");let c=new URLSearchParams({userId:te});se&&c.set("userHash",se);let y={Authorization:`Bearer ${t}`,...pe()};o&&(y["X-Fork-App-Id"]=o);let A=await fetch(`${n}/api/v1/forks/all?${c.toString()}`,{method:"DELETE",headers:y});if(!A.ok){let Q=await A.json().catch(()=>({}));throw new Error(Q.error||`API error: ${A.status}`)}let z=await A.json().catch(()=>({}));return d({}),O({}),oe(true),_(Q=>Q+1),W([]),Te.current.clear(),st(Fe,new Set),st(xe,new Set),$.current.clear(),x.current.clear(),z},[Fe,xe,t,o,n,se,te]);return ls.jsx(Lr.Provider,{value:{apiKey:t,userId:te,userHash:se,baseUrl:n,appId:o,forks:b,moduleOverridesEnabled:$e,moduleManifestReady:N,moduleManifestVersion:Y,currentContainerId:F,forksPaused:D,setForksPaused:hn,forkActivities:V,activitySummary:kn,adminContext:g,setAdminContainer:Se,trackForkActivity:zt,recordForkActivityEvent:Ne,markForkActivitySeen:ft,refreshForkActivities:Ie,setSlotFork:Bt,clearSlotFork:yn,skipAnimationForSlot:Dt,shouldSkipAnimation:ge,markRevealSeen:ct,queueBoundaryAnimation:tt,consumeBoundaryAnimation:jt,registerBoundary:bt,getBoundaryOverride:ut,refreshModuleManifest:ke,resetAllForks:bn,highlightScope:Kt},children:r})}function ve(){let e=Pn.useContext(Lr);if(!e)throw new Error("useForkContext must be used within <ForkProvider>");return e}function en(e){return ve().forks[e]}var Et=class{constructor(t){this.values=new Map;this.snapshots=new Map;this.listeners=new Map;this.eventHandlers=new Map;this.slotId=t,window.__FORK_BRIDGE__||(window.__FORK_BRIDGE__={}),window.__FORK_BRIDGE__[t]=this;}set(t,n){let r=this.values.get(t);if(Object.is(r,n))return;if(r!==void 0&&n!==null&&r!==null&&typeof r=="object"&&typeof n=="object")try{if(JSON.stringify(r)===JSON.stringify(n))return}catch{}this.values.set(t,n),this.snapshots.set(t,n);let o=this.listeners.get(t);o&&o.forEach(s=>s());}get(t){return this.values.get(t)}getSnapshot(t){return this.snapshots.get(t)}subscribe(t,n){return this.listeners.has(t)||this.listeners.set(t,new Set),this.listeners.get(t).add(n),()=>{this.listeners.get(t)?.delete(n);}}useValue(t){let n=window.__FORK_REACT__;return n?.useSyncExternalStore?n.useSyncExternalStore(r=>this.subscribe(t,r),()=>this.getSnapshot(t)):(console.warn("[ForkBridge] React.useSyncExternalStore not available, returning static value"),this.values.get(t))}emit(t,...n){let r=this.eventHandlers.get(t);r&&r.forEach(o=>o(...n));}on(t,n){return this.eventHandlers.has(t)||this.eventHandlers.set(t,new Set),this.eventHandlers.get(t).add(n),()=>{this.eventHandlers.get(t)?.delete(n);}}destroy(){this.listeners.clear(),this.eventHandlers.clear(),this.values.clear(),this.snapshots.clear();let t=window.__FORK_BRIDGE__;t&&delete t[this.slotId];}};var Tn=new Set;function _n(e,t){let n;try{n=Pn.Children.only(e);}catch{let o=Pn.Children.count(e);throw new Error(`<ForkSlot slotId="${t}"> must wrap exactly one React component, got ${o} children. Wrap your slot's contents in a single named component, e.g. <ForkSlot slotId="${t}"><MyShell ...props /></ForkSlot>.`)}let r=n.type;if(typeof r=="string")throw new Error(`<ForkSlot slotId="${t}"> child must be a React component (function or class), not an HTML element <${r}>. Wrap your slot's contents in a single named component, e.g. <ForkSlot slotId="${t}"><MyShell ...props /></ForkSlot>.`);if(typeof r=="symbol")throw new Error(`<ForkSlot slotId="${t}"> child must be a single React component, not a fragment or special React element. Wrap your slot's contents in a single named component, e.g. <ForkSlot slotId="${t}"><MyShell ...props /></ForkSlot>.`);return n}var Or=new Set;function Nr(e){let t=[],n=e.querySelectorAll("*");for(let r of n){if(!(r instanceof HTMLElement))continue;let o=r.getBoundingClientRect();if(o.width<10||o.height<10||["SCRIPT","STYLE","META","LINK"].includes(r.tagName))continue;let s=getComputedStyle(r),i=parseFloat(s.borderTopLeftRadius)||0;t.push({tag:r.tagName,className:r.className||"",text:(r.textContent||"").slice(0,50).trim(),rect:o,borderRadius:i});}return t}function Ps(e,t){let n=[];for(let r of t)if(!e.find(s=>s.tag===r.tag&&s.className===r.className&&Math.abs(s.rect.top-r.rect.top)<20&&Math.abs(s.rect.left-r.rect.left)<20)&&!n.some(i=>r.rect.top>=i.rect.top&&r.rect.left>=i.rect.left&&r.rect.right<=i.rect.right&&r.rect.bottom<=i.rect.bottom)){for(let i=n.length-1;i>=0;i--){let l=n[i];l.rect.top>=r.rect.top&&l.rect.left>=r.rect.left&&l.rect.right<=r.rect.right&&l.rect.bottom<=r.rect.bottom&&n.splice(i,1);}n.push({rect:r.rect,borderRadius:r.borderRadius});}return n}function _s(e,t){let n=[];for(let r of e)if(!t.find(s=>s.tag===r.tag&&s.className===r.className&&Math.abs(s.rect.top-r.rect.top)<20&&Math.abs(s.rect.left-r.rect.left)<20)&&!n.some(i=>r.rect.top>=i.rect.top&&r.rect.left>=i.rect.left&&r.rect.right<=i.rect.right&&r.rect.bottom<=i.rect.bottom)){for(let i=n.length-1;i>=0;i--){let l=n[i];l.rect.top>=r.rect.top&&l.rect.left>=r.rect.left&&l.rect.right<=r.rect.right&&l.rect.bottom<=r.rect.bottom&&n.splice(i,1);}n.push({rect:r.rect,borderRadius:r.borderRadius});}return n}function Br(e,t,n,r,o){return o=Math.max(0,Math.min(o,n/2,r/2)),o===0?`M ${e} ${t} L ${e+n} ${t} L ${e+n} ${t+r} L ${e} ${t+r} Z`:[`M ${e+o} ${t}`,`L ${e+n-o} ${t}`,`A ${o} ${o} 0 0 1 ${e+n} ${t+o}`,`L ${e+n} ${t+r-o}`,`A ${o} ${o} 0 0 1 ${e+n-o} ${t+r}`,`L ${e+o} ${t+r}`,`A ${o} ${o} 0 0 1 ${e} ${t+r-o}`,`L ${e} ${t+o}`,`A ${o} ${o} 0 0 1 ${e+o} ${t}`,"Z"].join(" ")}function Ur(e){let t="http://www.w3.org/2000/svg",n=document.createElement("div");n.setAttribute("data-fork-highlights","true"),n.style.cssText="position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9999;";let r=document.createElementNS(t,"svg");r.setAttribute("width","100%"),r.setAttribute("height","100%"),r.style.cssText="position:absolute;top:0;left:0;overflow:visible;";let o=document.createElementNS(t,"defs");r.appendChild(o);let s=[];for(let b=0;b<e.length;b++){let{rect:d,borderRadius:k}=e[b],R=d.left-.5,v=d.top-.5,f=d.width+1,g=d.height+1,S=Math.min(k+.5,f/2,g/2),I=Br(R,v,f,g,S),m=`__fork-glow-${b}`,P=document.createElementNS(t,"filter");P.setAttribute("id",m),P.setAttribute("x","-100%"),P.setAttribute("y","-100%"),P.setAttribute("width","300%"),P.setAttribute("height","300%");let L=document.createElementNS(t,"feGaussianBlur");L.setAttribute("in","SourceGraphic"),L.setAttribute("stdDeviation","8"),P.appendChild(L),o.appendChild(P);let j=`__fork-mask-${b}`,O=document.createElementNS(t,"mask");O.setAttribute("id",j),O.setAttribute("maskUnits","userSpaceOnUse"),O.setAttribute("x",String(R-200)),O.setAttribute("y",String(v-200)),O.setAttribute("width",String(f+400)),O.setAttribute("height",String(g+400));let N=document.createElementNS(t,"rect");N.setAttribute("x",String(R-200)),N.setAttribute("y",String(v-200)),N.setAttribute("width",String(f+400)),N.setAttribute("height",String(g+400)),N.setAttribute("fill","white"),O.appendChild(N);let oe=document.createElementNS(t,"path");oe.setAttribute("d",I),oe.setAttribute("fill","black"),O.appendChild(oe),o.appendChild(O);let Y=document.createElementNS(t,"g");Y.setAttribute("mask",`url(#${j})`),Y.setAttribute("opacity","0");let _=document.createElementNS(t,"g");_.setAttribute("filter",`url(#${m})`);let F=document.createElementNS(t,"path");F.setAttribute("d",I),F.setAttribute("fill","none"),F.setAttribute("stroke","rgba(150, 185, 220, 0.6)"),F.setAttribute("stroke-width","6"),F.setAttribute("stroke-linecap","round"),_.appendChild(F),Y.appendChild(_),r.appendChild(Y);let H=document.createElementNS(t,"path");H.setAttribute("d",I),H.setAttribute("fill","none"),H.setAttribute("stroke","rgba(150, 185, 220, 0.35)"),H.setAttribute("stroke-width","2"),H.setAttribute("stroke-linecap","round"),H.setAttribute("opacity","0"),r.appendChild(H),s.push(F,H),F.__group=Y;}n.appendChild(r),document.body.appendChild(n);let i=[];for(let b=0;b<s.length;b+=2){let d=s[b],k=s[b+1],R=d.__group,v=k.getTotalLength(),f=d.getTotalLength();if(v<=0)continue;let g=v*.35;k.setAttribute("stroke-dasharray",`${g} ${v-g}`),k.setAttribute("stroke-dashoffset","0"),i.push(k.animate([{strokeDashoffset:0,opacity:0,offset:0},{strokeDashoffset:-0.2*v,opacity:.92,offset:.06},{strokeDashoffset:-2*v,opacity:.92,offset:.92},{strokeDashoffset:-2.25*v,opacity:0,offset:1}],{duration:14e3,easing:"ease-in-out",fill:"forwards"}));let S=f*.35;d.setAttribute("stroke-dasharray",`${S} ${f-S}`),d.setAttribute("stroke-dashoffset","0"),i.push(d.animate([{strokeDashoffset:0,offset:0},{strokeDashoffset:-0.2*f,offset:.06},{strokeDashoffset:-2*f,offset:.92},{strokeDashoffset:-2.25*f,offset:1}],{duration:14e3,easing:"ease-in-out",fill:"forwards"})),i.push(R.animate([{opacity:0,offset:0},{opacity:.92,offset:.06},{opacity:.92,offset:.92},{opacity:0,offset:1}],{duration:14e3,easing:"ease-in-out",fill:"forwards"}));}let l=false,u=()=>{if(l)return;l=true,clearTimeout(h);for(let d of i)try{d.cancel();}catch{}let b=n.animate([{opacity:1},{opacity:0}],{duration:400,fill:"forwards"});b.onfinish=()=>n.remove(),window.removeEventListener("click",u);},h=setTimeout(u,14500);return setTimeout(()=>{l||window.addEventListener("click",u);},500),u}function Ls(e){let t="http://www.w3.org/2000/svg",n=document.createElement("div");n.setAttribute("data-fork-removed","true"),n.style.cssText="position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9999;";let r=document.createElementNS(t,"svg");r.setAttribute("width","100%"),r.setAttribute("height","100%"),r.style.cssText="position:absolute;top:0;left:0;overflow:visible;";let o=document.createElementNS(t,"defs"),s=document.createElementNS(t,"filter");s.setAttribute("id","__fork-removed-shadow"),s.setAttribute("x","-10%"),s.setAttribute("y","-10%"),s.setAttribute("width","120%"),s.setAttribute("height","120%");let i=document.createElementNS(t,"feDropShadow");i.setAttribute("dx","0"),i.setAttribute("dy","1"),i.setAttribute("stdDeviation","2"),i.setAttribute("flood-color","rgba(0,0,0,0.15)"),s.appendChild(i),o.appendChild(s),r.appendChild(o);for(let{rect:l,borderRadius:u}of e){let h=l.left,b=l.top,d=l.width,k=l.height,R=Math.min(u,d/2,k/2),v=Br(h,b,d,k,R),f=document.createElementNS(t,"path");f.setAttribute("d",v),f.setAttribute("fill","none"),f.setAttribute("stroke","rgba(120, 125, 135, 0.6)"),f.setAttribute("stroke-width","1.5"),f.setAttribute("stroke-dasharray","8 4"),f.setAttribute("stroke-linecap","round"),f.setAttribute("filter","url(#__fork-removed-shadow)"),f.setAttribute("opacity","0"),r.appendChild(f),f.animate([{opacity:0,offset:0},{opacity:.6,offset:.08},{opacity:.05,offset:.45},{opacity:.6,offset:.85},{opacity:.05,offset:1}],{duration:5e3,easing:"ease-in-out",fill:"forwards"});}return n.appendChild(r),document.body.appendChild(n),n}function Hs(e,t){if(e===t)return true;let n=Object.keys(e);if(n.length!==Object.keys(t).length)return false;for(let r of n)if(!Object.is(e[r],t[r]))return false;return true}var Os=Pn__namespace.default.memo(function({component:t,containerRef:n,wrapperStyle:r,hostProps:o}){return ls.jsx("div",{ref:n,style:r,children:ls.jsx(t,{...o})})},(e,t)=>e.component===t.component&&Hs(e.hostProps,t.hostProps)),$n=class extends Pn__namespace.default.Component{constructor(t){super(t),this.state={hasError:false};}static getDerivedStateFromError(){return {hasError:true}}componentDidCatch(t){console.error(`[Fork:${this.props.slotId}] fork render failed`,t);}componentDidUpdate(t){t.resetKey!==this.props.resetKey&&this.state.hasError&&this.setState({hasError:false});}render(){return this.state.hasError?this.props.fallback:this.props.children}};function Dr({slotId:e,children:t,githubRepo:n,shared:r,events:o,entityBindings:s}){_n(t,e);let i=en(e),{baseUrl:l,apiKey:u,appId:h,shouldSkipAnimation:b,markRevealSeen:d}=ve(),[k,R]=Pn.useState(null),v=Pn.useRef(null),f=Pn.useRef(null),g=Pn.useRef(null),S=Pn.useRef(false),I=Pn.useRef(null),m=Pn.useRef(null),P=!!(r||o),L=Pn.useRef(null);P&&!L.current&&(L.current=new Et(e));let j=Pn.useRef(o);if(j.current=o,Pn.useEffect(()=>{if(P)return ()=>{L.current?.destroy(),L.current=null;}},[P,e]),P&&L.current&&r)for(let[_,F]of Object.entries(r))L.current.set(_,F);Pn.useEffect(()=>{if(!P)return;L.current||(L.current=new Et(e));let _=L.current,F=Object.keys(j.current||{}).map(H=>_.on(H,(...D)=>j.current?.[H]?.(...D)));return ()=>F.forEach(H=>H())},[P,e]),Pn.useEffect(()=>{if(Or.has(e))return;Or.add(e);let _={id:e,appId:h,label:e,eventsShape:"{ navigate?: string }",currentLayout:"",githubRepo:n,mode:"direct",sharedKeys:r?Object.keys(r):[],eventNames:o?Object.keys(o):[],propsShape:"",callbackNames:[],entityBindings:s||{}};fetch(`${l}/api/v1/slots`,{method:"POST",headers:{Authorization:`Bearer ${u}`,"Content-Type":"application/json"},body:JSON.stringify(_)}).catch(()=>{});},[e,l,u,n,h,s]);let O=i?.id||null;Pn.useEffect(()=>{if(i?.bundleUrl,v.current,f.current,!i?.bundleUrl||!O){return}let _=`${l}${i.bundleUrl.replace("bundle.js","component.js")}`,F=i.revealPending===true&&!Tn.has(O),H=b(e),D=!H&&F;if(i.revealPending,H&&F&&(Tn.add(O),d(i)),D&&f.current){let U=Nr(f.current);g.current=U,S.current=true,`${e}${U.length}`;}window.__FORK_REACT__=Pn__namespace.default,window.__FORK_REACT_DOM__=as__namespace,window.__FORK_REACT_JSX__=ls__namespace;let K=Date.now(),V=`${l}${i.bundleUrl.replace("bundle.js","component.css")}?t=${K}`,W=document.createElement("link");W.rel="stylesheet",W.href=V,W.dataset.forkSlot=e,document.head.appendChild(W);let X=document.createElement("script");return X.src=_+"?t="+K,X.onload=()=>{let U=window.__FORK_EXPORT__;if(U?.default){if(f.current&&g.current&&S.current){let C=f.current.getBoundingClientRect(),M=f.current.cloneNode(true);M.setAttribute("data-fork-clone-overlay","true"),M.style.position="fixed",M.style.top=`${C.top}px`,M.style.left=`${C.left}px`,M.style.width=`${C.width}px`,M.style.height=`${C.height}px`,M.style.flex="none",M.style.minHeight="auto",M.style.zIndex="9998",M.style.pointerEvents="none",M.style.overflow="hidden";let w=getComputedStyle(f.current).backgroundColor;M.style.backgroundColor=w&&w!=="rgba(0, 0, 0, 0)"&&w!=="transparent"?w:getComputedStyle(document.body).backgroundColor||"#ffffff",document.body.appendChild(M);let p=f.current.querySelectorAll("*"),$=M.querySelectorAll("*");for(let x=0;x<p.length;x++)p[x].scrollTop!==0&&($[x].scrollTop=p[x].scrollTop),p[x].scrollLeft!==0&&($[x].scrollLeft=p[x].scrollLeft);I.current=M;}R(()=>U.default),v.current=O;}else console.error(`[Fork:${e}] component.js loaded but no default export found`);window.__FORK_EXPORT__=void 0;},X.onerror=()=>{console.error(`[Fork:${e}] failed to load component.js`);},document.head.appendChild(X),()=>{X.remove(),W.remove(),m.current&&(clearTimeout(m.current),m.current=null),I.current&&(I.current.remove(),I.current=null);}},[O,l,e]),Pn.useEffect(()=>{if(!S.current||!k||!f.current){`${e}${S.current}`,f.current;return}let _=g.current;if(!_){return}requestAnimationFrame(()=>{requestAnimationFrame(()=>{if(!f.current)return;let F=Nr(f.current),H=Ps(_,F),D=_s(_,F),K=I.current;if(`${e}${H.length}${D.length}`,D.length>0&&K){let V=Ls(D);m.current=setTimeout(()=>{m.current=null;let W=400;K.animate([{opacity:1},{opacity:0}],{duration:W,fill:"forwards"}),V.animate([{opacity:1},{opacity:0}],{duration:W,fill:"forwards"}),setTimeout(()=>{K.remove(),V.remove(),I.current=null,H.length>0&&(Ur(H));},W);},3500);}else K&&(K.remove(),I.current=null),H.length>0&&(Ur(H));g.current=null,S.current=false,i&&O&&(Tn.add(O),d(i),`${e}`);});});},[k]);let N={flex:1,minHeight:0,display:"flex",flexDirection:"column"};if(!i||i.status!=="complete"||!i.bundleUrl)return ls.jsx("div",{ref:f,style:N,children:t});if(!k)return ls.jsx("div",{ref:f,style:N,children:t});let Y=t?.props??{};return ls.jsx($n,{slotId:e,resetKey:O,fallback:ls.jsx("div",{ref:f,style:N,children:t}),children:ls.jsx(Os,{component:k,containerRef:f,wrapperStyle:N,hostProps:Y})})}var Kr=new Set;function Bs(e){return `{ ${Object.entries(e).map(([n,r])=>r==null?`${n}: unknown`:Array.isArray(r)?`${n}: ${r.length>0?typeof r[0]:"unknown"}[]`:`${n}: ${typeof r}`).join("; ")} }`}function zr(e,t=new Set){return Pn.Children.forEach(e,n=>{if(!Pn.isValidElement(n))return;let r=n.props;for(let[o,s]of Object.entries(r))typeof s=="function"&&/^on[A-Z]/.test(o)&&t.add(o);r.children&&zr(r.children,t);}),t}function Ds({slotId:e,props:t,children:n,allowedFetches:r,entityBindings:o,githubRepo:s,callbacks:i,mode:l="iframe",shared:u,events:h}){if(_n(n,e),l==="direct")return ls.jsx(Dr,{slotId:e,githubRepo:s,shared:u,events:h,entityBindings:o,children:n});let b=en(e),{baseUrl:d,apiKey:k,appId:R,userId:v,userHash:f,currentContainerId:g}=ve(),S=Pn.useRef(null),I=Pn.useRef(false),m=Pn.useRef(null),P=Pn.useRef(i);P.current=i;let L=Pn.useRef(t);L.current=t;let j=Pn.useRef(r);j.current=r,Pn.useEffect(()=>{if(typeof process<"u")return;let Y=zr(n),_=new Set(i?Object.keys(i):[]),F=[...Y].filter(H=>!_.has(H));F.length>0&&console.error(`[ForkSlot:${e}] Missing bridged callbacks! The following callback props are used by children but not passed to ForkSlot's \`callbacks\` prop:
2
- `+F.map(H=>` - ${H}`).join(`
3
- `)+"\n\nThe forked component will not be able to call these. Add them to the `callbacks` prop of <ForkSlot>.");},[e,n,i]),Pn.useEffect(()=>{Kr.has(e)||(Kr.add(e),fetch(`${d}/api/v1/slots`,{method:"POST",headers:{Authorization:`Bearer ${k}`,"Content-Type":"application/json"},body:JSON.stringify({id:e,appId:R,label:e,propsShape:t?Bs(t):"",eventsShape:"{ navigate?: string }",currentLayout:"",githubRepo:s,callbackNames:i?Object.keys(i):[],mode:l||"iframe",entityBindings:o||{}})}).catch(()=>{}));},[e,d,k,s,R,o]);let O=Pn.useCallback(Y=>{let _=S.current;if(_?.contentWindow&&I.current){let F=P.current?Object.keys(P.current):[];_.contentWindow.postMessage({type:"slot:props",props:Y,callbackNames:F},"*"),m.current=null;}else m.current=Y;},[]),N=Pn.useCallback((Y,_)=>{let F=j.current;return !F||F.length===0?false:F.some(H=>{let[D,K]=H.split(" "),V=_.split("?")[0];return Y.toUpperCase()===D.toUpperCase()&&V.startsWith(K)})},[]);if(Pn.useEffect(()=>{if(!b?.bundleUrl)return;let Y=async _=>{if(_.source===S.current?.contentWindow){if(_.data?.type==="slot:ready")I.current=true,S.current?.contentWindow?.postMessage({type:"slot:allowed-fetches",paths:j.current||[]},"*"),j.current,m.current?O(m.current):O(L.current||{});else if(_.data?.type==="slot:event"){let F=_.data.event;F?.navigate&&(window.location.hash=F.navigate);}else if(_.data?.type==="slot:clipboard-write")navigator.clipboard.writeText(_.data.text).catch(F=>{console.warn(`[ForkSlot:${e}] clipboard write failed:`,F.message);});else if(_.data?.type==="slot:callback"){let{name:F,args:H}=_.data,D=P.current?.[F];D?(D(...H||[])):console.warn(`[ForkSlot:${e}] unknown callback: ${F}`);}else if(_.data?.type==="slot:fetch"){let{id:F,method:H,url:D,body:K}=_.data,V=S.current?.contentWindow;if(!V)return;let W=H||"GET";if(!N(W,D)){console.warn(`[ForkSlot:${e}] BLOCKED fetch #${F}: ${W} ${D} \u2014 not in allowedFetches`),V.postMessage({type:"slot:fetch-response",id:F,error:`Fetch not allowed: ${W} ${D}`},"*");return}try{let X={method:W};K&&W!=="GET"&&(X.headers={"Content-Type":"application/json"},X.body=JSON.stringify(K));let U=await fetch(D,X),C=await U.json();`${e}${F}${U.status}`,V.postMessage({type:"slot:fetch-response",id:F,data:C,status:U.status},"*");}catch(X){console.error(`[ForkSlot:${e}] fetch #${F} failed:`,X.message),V.postMessage({type:"slot:fetch-response",id:F,error:X.message},"*");}}else if(_.data?.type==="slot:fork-data"){let{id:F,path:H,method:D,body:K}=_.data,V=S.current?.contentWindow;if(!V)return;if(!g||!R){V.postMessage({type:"slot:fork-data-response",id:F,error:"Fork data is unavailable until appId and containerId are resolved"},"*");return}let W=typeof H=="string"&&H.startsWith("/")?H:`/${String(H||"")}`,X=W.startsWith("/api/v1/data")?W:`/api/v1/data${W}`;try{let U={Authorization:`Bearer ${k}`,"Content-Type":"application/json","X-Fork-App-Id":R,...pe()};v&&(U["X-Fork-User-Id"]=v),f&&(U["X-Fork-User-Hash"]=f);let C=typeof D=="string"?D.toUpperCase():"POST",M=new URL(`${d}${X}`),w={method:C,headers:U};C==="GET"?(M.searchParams.set("appId",R),M.searchParams.set("containerId",g)):w.body=JSON.stringify({appId:R,containerId:g,...K&&typeof K=="object"?K:{}});let p=await fetch(M.toString(),w),$=await p.json().catch(()=>({}));if(!p.ok){let x=typeof $?.error=="string"?$.error:`Fork data API ${p.status}`;V.postMessage({type:"slot:fork-data-response",id:F,error:x,status:p.status},"*");return}V.postMessage({type:"slot:fork-data-response",id:F,data:$,status:p.status},"*");}catch(U){V.postMessage({type:"slot:fork-data-response",id:F,error:U.message},"*");}}}};return window.addEventListener("message",Y),()=>{window.removeEventListener("message",Y),I.current=false;}},[b?.bundleUrl,e,O,N,g,R,k,d,f,v]),Pn.useEffect(()=>{b?.bundleUrl&&I.current&&O(t||{});},[t,b?.bundleUrl,O]),!b||b.status!=="complete"||!b.bundleUrl)return `${e}${b?.status||"none"}${b?.bundleUrl||"none"}`,ls.jsx(ls.Fragment,{children:n});`${e}${b.bundleUrl}`;let oe=`${d}${b.bundleUrl.replace("/bundle.js","/host")}`;return ls.jsx("iframe",{ref:S,src:oe,sandbox:"allow-scripts allow-same-origin allow-forms allow-clipboard-write",title:`Forked ${e}`,style:{width:"100%",border:"none",flex:1,minHeight:0}})}function nn({style:e={width:20,height:20},...t}){return ls.jsxs("svg",{viewBox:"320 95 270 345",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:e,...t,children:[ls.jsx("path",{stroke:"currentColor",strokeWidth:"30",strokeLinejoin:"round",strokeLinecap:"round",d:"M357.789 145.428c0-16.186 13.121-29.307 29.307-29.307 7.773 0 15.227 3.088 20.723 8.584 5.496 5.496 8.584 12.95 8.584 20.723 0 16.186-13.121 29.307-29.307 29.307s-29.307-13.121-29.307-29.307z"}),ls.jsx("path",{stroke:"currentColor",strokeWidth:"30",strokeLinejoin:"round",strokeLinecap:"round",d:"M387.096 174.735v188"}),ls.jsx("path",{stroke:"currentColor",strokeWidth:"30",strokeLinejoin:"round",strokeLinecap:"round",d:"M357.789 394.572c0-16.186 13.121-29.307 29.307-29.307 7.773 0 15.227 3.088 20.723 8.584 5.496 5.496 8.584 12.95 8.584 20.723 0 16.186-13.121 29.307-29.307 29.307s-29.307-13.121-29.307-29.307z"}),ls.jsx("path",{stroke:"currentColor",strokeWidth:"30",strokeLinejoin:"round",strokeLinecap:"round",d:"M388.739 319c10.168-6.317 43.997-26.932 61.009-37.9 17.012-10.968 31.758-19.978 41.064-27.91 9.305-7.931 11.782-14.213 14.767-19.679 2.985-5.465 3.014-8.99 3.141-13.114.128-4.124-.999-8.178-2.377-11.632-1.378-3.454-3.563-6.55-5.889-9.094-2.326-2.543-4.98-4.679-8.066-6.167-3.085-1.488-6.624-2.601-10.448-2.76-3.823-.159-8.624.2-12.495 1.806-3.871 1.607-8.047 4.68-10.732 7.835-2.685 3.156-4.446 7.448-5.378 11.099-.932 3.651-.742 7.485-.213 10.807.528 3.322 1.864 6.46 3.386 9.123 1.523 2.663 3.543 4.843 5.75 6.854 2.207 2.011 4.38 3.914 7.491 5.214 3.111 1.3 6.57 2.808 11.178 2.584 4.607-.225 9.363-.471 16.466-3.932 7.103-3.46 16.076-5.382 26.154-16.831 10.077-11.449 28.593-43.219 34.312-51.862"}),ls.jsx("path",{fill:"currentColor",stroke:"currentColor",strokeWidth:"1",strokeLinejoin:"round",d:"M527.117 162.547L570.487 134.368Q577.196 130.009 577.624 137.997L580.39 189.69Q580.818 197.678 573.69 194.047L527.536 170.538Q520.408 166.907 527.117 162.547Z"})]})}var Wr=5600,Hn=2147483002;function Js(e){return !e||e.state!=="complete"||!e.latest?null:`${e.latest.id}:${e.latest.completedAt??e.latest.updatedAt}`}function Vs(){return typeof document>"u"?false:!!document.querySelector("[data-fork-clone-overlay], [data-fork-removed], [data-fork-highlights]")}function On(e,t){let n=Math.min(e.length,t?26:34)*7.4,r=t?Math.min(t.length,24)*6.8+10:0;return Math.round(Math.min(390,Math.max(116,56+n+r)))}function Xs(e,t=false){return e?.state==="complete"&&e.unreadCompletedCount>0?e.unreadCompletedCount>1?`${e.unreadCompletedCount} forks ready`:`${e.label} ready`:t?"Fork update ready":void 0}function Nn({onClick:e,hasNotification:t=false,activity:n}){let[r,o]=Pn.useState(false),[s,i]=Pn.useState(false),[l,u]=Pn.useState(null),[h,b]=Pn.useState(null),[d,k]=Pn.useState(null),R=Pn.useRef(0),v=r?48:40,f=Js(n),g=!!(f&&n?.state==="complete"&&n.unreadCompletedCount>0),S=g?f:h?.key??null,I=!!(n&&n.state==="running"&&n.runningCount>0),m=!!(S&&S!==l&&(g||h)),P=I||m,L=g?n?.label:h?.label,j=m?"Built":n?.label??"Fork this app",O=m?L:n?.detail,N=On(n?.label??"Fork this app",n?.detail),oe=On(j,O),Y=m?Math.min(420,Math.max(326,oe,h?.width??0,R.current+40)):oe,_=m?46:40,F=P?[j,O].filter(Boolean).join(" "):Xs(n,t)??"Fork this app",H=P?`${j}:${O??""}`:"idle",D=(t||n?.state==="complete"&&n.unreadCompletedCount>0)&&!P;Pn.useEffect(()=>{if(typeof document>"u")return;let p=document.createElement("div");return p.setAttribute("data-fork-button-host","true"),p.style.position="relative",p.style.zIndex=String(Hn),document.body.appendChild(p),k(p),()=>{p.remove(),k(null);}},[]),Pn.useEffect(()=>{I&&(R.current=N);},[N,I]),Pn.useEffect(()=>{!g||!f||!n?.label||b(p=>{if(p?.key===f)return p;let $=Math.min(420,Math.max(326,On("Built",n.label),R.current+40));return {key:f,label:n.label,width:$,startedAt:Date.now()}});},[n?.label,f,g]),Pn.useEffect(()=>{n&&n.unreadCompletedCount===0&&n.state!=="running"&&b(null);},[n,n?.state,n?.unreadCompletedCount]),Pn.useEffect(()=>{if(!S||!m||S===l)return;let p,$=h?.key===S?h.startedAt:Date.now(),x=()=>{let q=Date.now()-$;if(q>=Wr&&!Vs()||q>=Wr*3){u(S);return}p=window.setTimeout(x,250);};return p=window.setTimeout(x,250),()=>{p!==void 0&&window.clearTimeout(p);}},[S,l,h?.key,h?.startedAt,m]);let K=P?{position:"fixed",bottom:24,right:24,zIndex:Hn,width:`min(${Y}px, calc(100vw - 32px))`,height:_,minWidth:0,maxWidth:"calc(100vw - 32px)",borderRadius:m?12:999,backgroundColor:r?"#ffffff":"rgba(255, 255, 255, 0.92)",border:"1px solid rgba(148, 163, 184, 0.42)",display:"inline-flex",alignItems:"center",justifyContent:m?"flex-start":"center",gap:m?10:8,color:"#111827",boxShadow:r?"0 12px 24px -16px rgba(15, 23, 42, 0.45), 0 4px 10px -6px rgba(15, 23, 42, 0.25)":"0 10px 20px -18px rgba(15, 23, 42, 0.35), 0 2px 7px -5px rgba(15, 23, 42, 0.18)",transform:s?"scale(0.98)":"scale(1)",transition:"width 320ms cubic-bezier(0.16, 1, 0.3, 1), height 320ms cubic-bezier(0.16, 1, 0.3, 1), border-radius 320ms cubic-bezier(0.16, 1, 0.3, 1), transform 180ms ease, box-shadow 180ms ease, background-color 180ms ease, border-color 180ms ease",cursor:"pointer",padding:m?"0 16px 0 14px":"0 13px 0 11px",margin:0,outline:"none",boxSizing:"border-box",fontFamily:'Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif'}:{position:"fixed",bottom:24,right:24,zIndex:Hn,width:v,height:v,borderRadius:"50%",backgroundColor:r?"rgba(255, 255, 255, 1)":"rgba(255, 255, 255, 0.3)",border:r?"1px solid rgba(156, 163, 175, 1)":"1px solid rgba(156, 163, 175, 0.3)",display:"flex",alignItems:"center",justifyContent:"center",color:r?"#111827":"rgba(17, 24, 39, 0.5)",boxShadow:r?"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)":"0 1px 2px 0 rgba(0, 0, 0, 0.05)",transform:s?"scale(0.95)":"scale(1)",transition:"width 320ms cubic-bezier(0.16, 1, 0.3, 1), height 320ms cubic-bezier(0.16, 1, 0.3, 1), border-radius 320ms cubic-bezier(0.16, 1, 0.3, 1), transform 180ms ease, box-shadow 180ms ease, background-color 180ms ease, border-color 180ms ease, color 180ms ease",cursor:"pointer",padding:0,margin:0,outline:"none",boxSizing:"border-box"},V={minWidth:0,maxWidth:I?286:m?82:O?116:238,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:13,fontWeight:650,lineHeight:"16px",letterSpacing:0},W={minWidth:0,maxWidth:m?278:void 0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flexShrink:m?1:0,color:"#64748b",fontSize:I?13:12,fontWeight:650,lineHeight:"16px",letterSpacing:0},X={minWidth:0,flex:m?1:void 0,display:"inline-flex",alignItems:"center",justifyContent:m?"flex-start":void 0,gap:8,animation:"__forkButtonTextSwap 220ms ease-out"},U={width:8,height:8,borderRadius:"50%",backgroundColor:n?.state==="complete"?"#16a34a":"#ef4444",boxShadow:n?.state==="complete"?"0 0 0 3px rgba(22, 163, 74, 0.14)":"none",animation:m?"__forkButtonBuiltDot 420ms ease-out":void 0,flexShrink:0},w=ls.jsxs(ls.Fragment,{children:[ls.jsx("style",{children:`
1
+ 'use strict';var sr=require('react'),Ws=require('react-dom'),Js=require('react/jsx-runtime'),Vs=require('react/jsx-dev-runtime'),lucideReact=require('lucide-react');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var sr__namespace=/*#__PURE__*/_interopNamespace(sr);var Ws__namespace=/*#__PURE__*/_interopNamespace(Ws);var Js__namespace=/*#__PURE__*/_interopNamespace(Js);var Vs__namespace=/*#__PURE__*/_interopNamespace(Vs);var bt="__FORK_SHARED__";function Gn(){var t,n,r,o;let e=globalThis;return e[bt]||(e[bt]={}),(t=e[bt]).react||(t.react=sr__namespace),(n=e[bt])["react-dom"]||(n["react-dom"]=Ws__namespace),(r=e[bt])["react/jsx-runtime"]||(r["react/jsx-runtime"]=Js__namespace),(o=e[bt])["react/jsx-dev-runtime"]||(o["react/jsx-dev-runtime"]=Vs__namespace),e[bt]}function Yn(e){return Object.assign(Gn(),e)}var fo=false,Zn=null,Qn=null;function po(e,t,n){fo=e,Zn=t,Qn=n;}function fe(){if(!fo)return {};let e={};return Zn&&(e["X-Fork-App-Id"]=Zn),Qn&&(e["X-Fork-Container-Id"]=Qn),e}async function er(e){let t=new URLSearchParams({app:e.appId,user:e.userId});e.containerId&&t.set("containerId",e.containerId);let n=`${e.baseUrl}/api/v1/manifest?${t.toString()}`,r={Authorization:`Bearer ${e.apiKey}`,"X-Fork-App-Id":e.appId,"X-Fork-User-Id":e.userId,...e.extraHeaders??{}};e.userHash&&(r["X-Fork-User-Hash"]=e.userHash),e.userJwt&&(r["X-Fork-User-Jwt"]=e.userJwt),e.previous?.etag&&(r["If-None-Match"]=e.previous.etag);let o=await fetch(n,{headers:r,signal:e.signal});if(o.status===304)return null;if(!o.ok)throw new Error(`manifest ${o.status} ${o.statusText}`);let i=await o.json(),a={};for(let[l,d]of Object.entries(i.modules)){let S=d.moduleUrl??d.bundleUrl??null,A=d.legacyModuleUrl??d.legacyBundleUrl??null;a[l]={forkId:d.forkId,moduleUrl:S,legacyModuleUrl:A,bundleUrl:d.bundleUrl??S,legacyBundleUrl:d.legacyBundleUrl??A,cssUrls:d.cssUrls??[],integrity:d.integrity,metadata:d.metadata,highlightHint:d.highlightHint,buildId:d.buildId,updatedAt:d.updatedAt};}return {containerId:i.containerId,forksPaused:!!i.forksPaused,slots:i.slots,modules:a,generatedAt:i.generatedAt,etag:o.headers.get("ETag")??void 0}}var Xs="fork:manifest:v1";function tr(e,t,n){return `${Xs}:${e}:${t}:${n}`}function qs(e,t,n){if(typeof window>"u")return null;try{let r=window.localStorage.getItem(tr(e,t,n));return r?JSON.parse(r):null}catch{return null}}function Gs(e,t,n,r){if(!(typeof window>"u"))try{window.localStorage.setItem(tr(e,t,n),JSON.stringify(r));}catch{}}function Ys(e,t,n){if(!(typeof window>"u"))try{window.localStorage.removeItem(tr(e,t,n));}catch{}}function Zs(e,t){if(!e||!t)return e!==t;if(e.containerId!==t.containerId||!!e.forksPaused!=!!t.forksPaused)return true;let n=Object.entries(e.slots),r=Object.entries(t.slots);if(n.length!==r.length)return true;for(let[a,l]of n){let d=t.slots[a];if(!d||d.forkId!==l.forkId||d.buildId!==l.buildId)return true}let o=Object.entries(e.modules),i=Object.entries(t.modules);if(o.length!==i.length)return true;for(let[a,l]of o){let d=t.modules[a];if(!d||d.forkId!==l.forkId||d.buildId!==l.buildId)return true}return false}var En={isAdmin:false,actingUserId:null,containerId:null,containerName:null,containers:[]},ho=sr.createContext(null),ti=12e3,ni=45e3,go="fork:activity:v1",ri=new Set(["pending","running","building"]),oi="Setting up environment";function Be(e){return ri.has(e)}function si(e,t){return t?.targetId?t:e.boundaryId?{targetKind:"module",targetId:e.boundaryId}:e.slotId?{targetKind:"slot",targetId:e.slotId}:null}function ii(e,t){let n=si(e,t);if(!n)return null;let r=new Date().toISOString();return {id:e.id,status:e.status,targetKind:n.targetKind,targetId:n.targetId,summary:e.summary??null,estimateMinutes:e.estimateMinutes??null,createdAt:e.createdAt||r,updatedAt:e.completedAt||r,completedAt:e.completedAt??null}}function mo(e){return {id:e.id,status:e.status,targetKind:e.targetKind,targetId:e.targetId,summary:e.summary??null,estimateMinutes:e.estimateMinutes??null,promptCount:e.promptCount,messageCount:e.messageCount,isActive:e.isActive,createdAt:e.createdAt,updatedAt:e.updatedAt,completedAt:e.completedAt??null}}function In(e,t){let n=typeof t.summary=="string"&&t.summary.trim()?t.summary.trim():void 0,r=typeof e?.summary=="string"&&e.summary.trim()?e.summary.trim():void 0,o=typeof t.estimateMinutes=="number"&&Number.isFinite(t.estimateMinutes)?t.estimateMinutes:void 0,i=typeof e?.estimateMinutes=="number"&&Number.isFinite(e.estimateMinutes)?e.estimateMinutes:void 0;return {...e,...t,summary:n??r??null,estimateMinutes:o??i??null,latestMessage:t.latestMessage??e?.latestMessage??null,unread:t.unread??e?.unread??false}}function Xt(e){return `${e.id}:${e.completedAt||e.updatedAt}`}function vt(e){if(typeof window>"u")return new Set;try{let t=window.localStorage.getItem(e);if(!t)return new Set;let n=JSON.parse(t);return Array.isArray(n)?new Set(n.filter(r=>typeof r=="string")):new Set}catch{return new Set}}function wt(e,t){if(!(typeof window>"u"))try{window.localStorage.setItem(e,JSON.stringify([...t].slice(-200)));}catch{}}function ai(e){if(e.estimateMinutes)return `~${e.estimateMinutes}m`}function li(e){let t=e.data&&typeof e.data=="object"?e.data:{};if(e.type==="status"){let n=typeof t.status=="string"?t.status:"running",r=typeof t.summary=="string"?t.summary:void 0;return {status:n,latestMessage:Be(n)?"Building":void 0,summary:r,estimateMinutes:typeof t.estimateMinutes=="number"?t.estimateMinutes:void 0,updatedAt:e.timestamp}}return e.type==="tool_use"?{status:"running",latestMessage:"Building",updatedAt:e.timestamp}:e.type==="build_start"?{status:"building",latestMessage:"Building",updatedAt:e.timestamp}:e.type==="build_complete"?{status:"building",latestMessage:"Building",updatedAt:e.timestamp}:e.type==="complete"?{status:"complete",summary:typeof t.summary=="string"?t.summary:void 0,estimateMinutes:typeof t.estimateMinutes=="number"?t.estimateMinutes:void 0,latestMessage:"Fork ready",completedAt:e.timestamp,updatedAt:e.timestamp}:e.type==="error"||e.type==="build_error"?{status:"error",latestMessage:typeof t.error=="string"?t.error:typeof t.message=="string"?t.message:"Fork failed",updatedAt:e.timestamp}:{updatedAt:e.timestamp}}function ci(e){let t=e.filter(o=>Be(o.status)),n=e.filter(o=>o.status==="complete"&&o.unread),r=[...e].sort((o,i)=>Date.parse(i.updatedAt)-Date.parse(o.updatedAt))[0]??null;if(t.length>1)return {state:"running",label:`${t.length} forks running`,count:t.length,runningCount:t.length,unreadCompletedCount:n.length,latest:t[0]};if(t.length===1){let o=t[0],i=!!(typeof o.summary=="string"&&o.summary.trim());return {state:"running",label:i?o.summary.trim():oi,detail:i?ai(o):void 0,count:1,runningCount:1,unreadCompletedCount:n.length,latest:o}}if(n.length>1)return {state:"complete",label:`${n.length} forks ready`,count:n.length,runningCount:0,unreadCompletedCount:n.length,latest:n[0]};if(n.length===1){let o=n[0];return {state:"complete",label:o.summary||"Fork ready",count:1,runningCount:0,unreadCompletedCount:1,latest:o}}return {state:r?.status==="error"?"error":"idle",label:"Fork",count:0,runningCount:0,unreadCompletedCount:0,latest:r}}function nr(e,t){if(!t)return t;try{return new URL(t,`${e.replace(/\/+$/,"")}/`).toString()}catch{return t}}function di(e,t,n,r){let o={};for(let[i,a]of Object.entries(t.slots)){let l=a.bundleUrl??a.legacyBundleUrl;l&&(o[i]={id:a.forkId,userId:n,prompt:"",status:"complete",slotId:i,appId:r,bundleUrl:nr(e,l),revealPending:a.revealPending===true,createdAt:a.updatedAt,completedAt:a.updatedAt});}return o}function ui(e,t){let n={};for(let[r,o]of Object.entries(t.modules)){let i=o.moduleUrl??o.legacyModuleUrl??o.bundleUrl??"";i&&(n[r]={id:o.forkId,boundaryId:r,moduleUrl:nr(e,i),cssUrls:(o.cssUrls??[]).map(a=>nr(e,a)),integrity:o.integrity,metadata:o.metadata,highlightHint:o.highlightHint,createdAt:o.updatedAt});}return n}function fi(e){let{apiKey:t,baseUrl:n,children:r,appId:o,shared:i}=e,a="userId"in e?e.userId:void 0,l="userHash"in e?e.userHash:void 0,d="userJwt"in e?e.userJwt:void 0,S="authUrl"in e?e.authUrl:void 0,[A,h]=sr.useState({}),[C,N]=sr.useState(a?{userId:a,userHash:l,userJwt:d}:null),[R,p]=sr.useState(!!a),[u,$]=sr.useState(En),[F,m]=sr.useState(false),[L,U]=sr.useState(false),[D,P]=sr.useState({}),[H,B]=sr.useState(!o),[z,_]=sr.useState(0),[x,O]=sr.useState(null),[V,X]=sr.useState(false),[Y,G]=sr.useState([]),[Z,re]=sr.useState(()=>typeof document>"u"?true:document.visibilityState!=="hidden"),pe=sr.useRef(new Map),oe=sr.useRef(new Map),[ye,te]=sr.useState(0),f=sr.useRef(new Set),b=sr.useRef(new Map),E=sr.useRef(void 0),c=sr.useRef(new Map),y=sr.useRef([]),I=sr.useRef(new Set),K=sr.useRef(false);Gn(),sr.useEffect(()=>{if(!o||!C?.userId||!(C.userHash||C.userJwt)){$(En),m(true);return}let g=false;m(false);let v=new URLSearchParams({app:o});return fetch(`${n}/api/v1/admin/containers?${v.toString()}`,{headers:{Authorization:`Bearer ${t}`,"X-Fork-App-Id":o,"X-Fork-User-Id":C.userId,...C.userHash?{"X-Fork-User-Hash":C.userHash}:{},...C.userJwt?{"X-Fork-User-Jwt":C.userJwt}:{}}}).then(async M=>M.status===403||!M.ok?null:M.json()).then(M=>{if(g)return;if(!M){$(En),m(true);return}let ee=Array.isArray(M.containers)?M.containers:[],ue=M.currentContainerId??null,le=ee.find(de=>de.id===ue)?.name??null;$({isAdmin:true,actingUserId:typeof M.actingUserId=="string"?M.actingUserId:null,containerId:ue,containerName:le,containers:ee}),m(true);}).catch(()=>{g||($(En),m(true));}),()=>{g=true;}},[t,o,C?.userHash,C?.userJwt,C?.userId,n]),sr.useEffect(()=>{po(u.isAdmin,o??null,u.containerId);},[u.isAdmin,u.containerId,o]);let Q=sr.useCallback((g,v)=>{$(M=>{if(!M.isAdmin)return M;let ee=M.containers.find(de=>de.id===g),ue=v??ee?.name??null,le=ee?M.containers.map(de=>({...de,isPrimary:de.id===g})):[{id:g,name:ue??"New container",isPrimary:true,forkCount:0},...M.containers.map(de=>({...de,isPrimary:false}))];return {...M,containerId:g,containerName:ue,containers:le}}),U(false);},[]);i&&E.current!==i&&(Yn(i),E.current=i),sr.useEffect(()=>{S&&(p(false),fetch(S,{credentials:"include"}).then(g=>{if(!g.ok)throw new Error(`Auth endpoint returned ${g.status}`);return g.json()}).then(g=>{if(!g.userId||typeof g.userId!="string")throw new Error("authUrl response must include userId");N({userId:g.userId,userHash:typeof g.userHash=="string"?g.userHash:void 0,userJwt:typeof g.userJwt=="string"?g.userJwt:void 0});}).catch(g=>{console.error("[ForkProvider] Failed to fetch user identity from authUrl:",g.message);}).finally(()=>{p(true);}));},[S]),sr.useEffect(()=>{!S&&a&&(N({userId:a,userHash:l,userJwt:d}),p(true));},[a,l,d,S]);let J=C?.userId??"",ae=C?.userHash,ct=C?.userJwt,ke=!!o,Le=sr.useCallback(async()=>{if(!ke){O(null),X(false),P({}),B(true),_(v=>v+1);return}if(!R){B(false);return}if(!J||!o){O(null),X(false),h({}),P({}),B(true),_(v=>v+1);return}B(false);let g=u.isAdmin?u.containerId:null;if(u.isAdmin&&L){X(true),h({}),P({}),_(v=>v+1),B(true);return}try{let v=await er({baseUrl:n,apiKey:t,appId:o,userId:J,userHash:ae,userJwt:ct,containerId:g??void 0});v&&(O(v.containerId),X(u.isAdmin?!1:!!v.forksPaused),h(di(n,v,J,o)),P(ui(n,v)));}catch(v){console.error("[ForkProvider] Failed to fetch fork manifest:",v.message),O(null),X(false),h({}),P({});}finally{_(v=>v+1),B(true);}},[t,o,n,R,ke,ae,ct,J,u.isAdmin,u.containerId,L]);sr.useEffect(()=>{if(!J||o)return;let g=new URLSearchParams({userId:J});ae&&g.set("userHash",ae),fetch(`${n}/api/v1/forks/active?${g.toString()}`,{headers:{Authorization:`Bearer ${t}`,...fe()}}).then(v=>{if(!v.ok)throw new Error(`${v.status}`);return v.json()}).then(v=>{v&&typeof v=="object"&&h(v);}).catch(()=>{});},[t,o,J,ae,n]),sr.useEffect(()=>{Le();},[Le]);let un=sr.useCallback(async g=>{if(o){if(u.isAdmin){U(g),X(g),g?(h({}),P({}),_(v=>v+1)):await Le();return}if(J){X(g),g&&(h({}),P({}),_(v=>v+1));try{let v=await fetch(`${n}/api/v1/containers/primary/paused`,{method:"PUT",headers:{Authorization:`Bearer ${t}`,"Content-Type":"application/json","X-Fork-App-Id":o},body:JSON.stringify({appId:o,paused:g,userId:J,userHash:ae})});if(!v.ok)throw new Error(`${v.status}`);g||await Le();}catch(v){console.error("[ForkProvider] Failed to persist fork pause state:",v?.message??v),Le().catch(()=>{});}}}},[t,o,n,Le,u.isAdmin,ae,J]),$e=sr.useCallback((g,v)=>{h(M=>({...M,[g]:v}));},[]),fn=sr.useCallback(g=>{h(v=>{let M={...v};return delete M[g],M});},[]),At=sr.useCallback(g=>{f.current.add(g);},[]),dt=sr.useCallback(g=>f.current.has(g)?(f.current.delete(g),true):false,[]),ut=sr.useCallback(g=>{if(g.slotId&&h(M=>{let ee=M[g.slotId];return !ee||ee.id!==g.id||!ee.revealPending?M:{...M,[g.slotId]:{...ee,revealPending:false}}}),u.isAdmin||!J)return;let v={Authorization:`Bearer ${t}`,"Content-Type":"application/json","X-Fork-User-Id":J};ae&&(v["X-Fork-User-Hash"]=ae),fetch(`${n}/api/v1/forks/reveals`,{method:"POST",headers:v,body:JSON.stringify({forkId:g.id,userId:J,userHash:ae})}).catch(()=>{});},[t,n,u.isAdmin,ae,J]),tt=sr.useCallback((g,v)=>{b.current.set(g,v);},[]),Rt=sr.useCallback((g,v)=>b.current.get(g)!==v?false:(b.current.delete(g),true),[]),Et=sr.useCallback(g=>{if(!o)return;let v=JSON.stringify(g);pe.current.get(g.id)===v||oe.current.get(g.id)?.signature===v||(oe.current.set(g.id,{boundary:g,signature:v}),te(ee=>ee+1));},[o]);sr.useEffect(()=>{if(!o||oe.current.size===0)return;let g=setTimeout(()=>{let v=Array.from(oe.current.values());v.length!==0&&fetch(`${n}/api/v1/boundaries`,{method:"POST",headers:{Authorization:`Bearer ${t}`,"Content-Type":"application/json"},body:JSON.stringify({appId:o,boundaries:v.map(M=>M.boundary)})}).then(M=>{if(!M.ok)throw new Error(`${M.status}`)}).then(()=>{for(let M of v)oe.current.get(M.boundary.id)?.signature===M.signature&&(oe.current.delete(M.boundary.id),pe.current.set(M.boundary.id,M.signature));}).catch(M=>{console.error("[ForkProvider] Failed to register module boundaries:",M.message);});},50);return ()=>{clearTimeout(g);}},[t,o,n,ye]);let pn=sr.useCallback(g=>D[g],[D]),It=u.isAdmin?`admin:${u.actingUserId??"op"}`:J,ft=`${t}:${o||"no-app"}:${x||"no-container"}:${It||"anonymous"}`,gn=u.isAdmin?`op:${u.actingUserId??"op"}`:J,pt=`${t}:${o||"no-app"}:${gn||"anonymous"}`,Ee=`${go}:seen:${ft}`,Ie=`${go}:tracked:${ft}`;sr.useEffect(()=>{y.current=Y;},[Y]);let mn=sr.useCallback(()=>{let g={Authorization:`Bearer ${t}`,...fe()};return o&&(g["X-Fork-App-Id"]=o),J&&(g["X-Fork-User-Id"]=J),ae&&(g["X-Fork-User-Hash"]=ae),g},[t,o,ae,J]);sr.useEffect(()=>{if(typeof window>"u")return;let g=window.__FORK_RUNTIME__,v={dataFetch:async(M,ee,ue="POST")=>{if(!o||!x)throw new Error("Fork data is unavailable until appId and containerId are resolved");let le=typeof M=="string"&&M.startsWith("/")?M:`/${String(M||"")}`,de=le.startsWith("/api/v1/data")?le:`/api/v1/data${le}`,se=ue.toUpperCase(),Fe=new URL(`${n}${de}`),we={Authorization:`Bearer ${t}`,"Content-Type":"application/json","X-Fork-App-Id":o,...fe()};J&&(we["X-Fork-User-Id"]=J),ae&&(we["X-Fork-User-Hash"]=ae);let Se={method:se,headers:we};se==="GET"?(Fe.searchParams.set("appId",o),Fe.searchParams.set("containerId",x)):Se.body=JSON.stringify({appId:o,containerId:x,...ee&&typeof ee=="object"?ee:{}});let me=await fetch(Fe.toString(),Se),he=await me.json().catch(()=>({}));if(!me.ok)throw new Error(typeof he?.error=="string"?he.error:`Fork data API ${me.status}`);return he}};return window.__FORK_RUNTIME__=v,()=>{window.__FORK_RUNTIME__===v&&(window.__FORK_RUNTIME__=g);}},[t,o,n,x,ae,J]);let ze=sr.useCallback(async()=>{if(!x||!F)return;let g=new URLSearchParams({container_id:x}),v=await fetch(`${n}/api/v1/forks?${g.toString()}`,{headers:mn()}).catch(()=>null);if(!v||!v.ok)return;let M=await v.json().catch(()=>({})),ee=Array.isArray(M.forks)?M.forks:[],ue=vt(Ee),le=vt(Ie),de=false,se=new Map(y.current.map(we=>[we.id,we])),Fe=[];for(let we of ee){let Se=mo(we);Be(Se.status)&&!le.has(Se.id)&&(le.add(Se.id),de=true);let me=se.get(Se.id),he=me?Be(me.status):false,Ae=Xt(Se);Se.status==="complete"&&(le.has(Se.id)||he)&&!ue.has(Ae)&&!I.current.has(Ae)&&!me?.unread&&(K.current||le.has(Se.id)||he)&&(I.current.add(Ae),Fe.push(Se));}if(G(we=>{let Se=new Map(we.map(be=>[be.id,be])),me=new Set,he=new Map;for(let be of ee){let Me=mo(be);me.add(Me.id);let Xe=Se.get(Me.id),Pe=Xe?Be(Xe.status):false,jt=Xt(Me),zt=Me.status==="complete"&&(le.has(Me.id)||Pe)&&!ue.has(jt),nt=In(Xe,{...Me,unread:zt});he.set(Me.id,nt);}for(let be of we)me.has(be.id)||(Be(be.status)||be.unread)&&he.set(be.id,be);let Ae=[...he.values()].sort((be,Me)=>Date.parse(Me.updatedAt)-Date.parse(be.updatedAt));return y.current=Ae,Ae}),de&&wt(Ie,le),Fe.length>0){for(let we of Fe)we.targetKind==="module"&&tt(we.targetId,we.id);Le().catch(()=>{});}K.current=true;},[Ee,Ie,F,n,mn,x,Le,tt]),Dt=sr.useCallback((g,v)=>{let M=ii(g,v);if(!M)return;let ee=g.containerId??g._containerId;if(ee&&!x&&O(ee),Be(M.status)){let de=vt(Ie);de.has(M.id)||(de.add(M.id),wt(Ie,de)),X(false),u.isAdmin&&U(false);}let ue=new Map(y.current.map(de=>[de.id,de]));ue.set(M.id,In(ue.get(M.id),M));let le=[...ue.values()].sort((de,se)=>Date.parse(se.updatedAt)-Date.parse(de.updatedAt));y.current=le,G(le);},[Ie,t,o,x,u.isAdmin]),Ve=sr.useCallback((g,v)=>{let M=li(v),ee=vt(Ee),ue=vt(Ie),le=y.current.find(me=>me.id===g),de=le?Be(le.status):false;M.status&&Be(M.status)&&!ue.has(g)&&(ue.add(g),wt(Ie,ue));let se=le?In(le,{...le,...M}):null,Fe=se?Xt(se):null,we=!!(se&&se.status==="complete"&&(ue.has(g)||de)&&Fe&&!ee.has(Fe)&&!I.current.has(Fe)&&!le?.unread),Se=v.type==="complete"&&le?.targetKind==="module"?le.targetId:null;if(G(me=>{let he=me.find(Pe=>Pe.id===g);if(!he)return me;let Ae=In(he,{...he,...M}),be=Ae.status==="complete"&&(ue.has(g)||Be(he.status))&&!ee.has(Xt(Ae)),Me={...Ae,unread:be},Xe=me.map(Pe=>Pe.id===g?Me:Pe).sort((Pe,jt)=>Date.parse(jt.updatedAt)-Date.parse(Pe.updatedAt));return y.current=Xe,Xe}),we&&se&&Fe&&I.current.add(Fe),v.type==="complete"){let me=v.data&&typeof v.data=="object"?v.data:{},he=typeof me.boundaryId=="string"?me.boundaryId:Se;he&&tt(he,g),Le().catch(()=>{});}},[Ee,Ie,Le,tt]),Te=sr.useCallback(g=>{let v=vt(Ee),M=vt(Ie),ee=false,ue=false;for(let le of y.current){if(le.status!=="complete"||g&&le.id!==g)continue;let de=Xt(le);v.has(de)||(v.add(de),ee=true),M.delete(le.id)&&(ue=true);}G(le=>{let de=le.map(se=>se.status!=="complete"||g&&se.id!==g?se:{...se,unread:false});return y.current=de,de}),ee&&wt(Ee,v),ue&&wt(Ie,M);},[Ee,Ie]);sr.useEffect(()=>{K.current=false,I.current.clear(),G([]);for(let g of c.current.values())g.close();c.current.clear(),x&&ze();},[x,ze]),sr.useEffect(()=>{if(typeof document>"u")return;let g=()=>{let v=document.visibilityState!=="hidden";re(v),v&&x&&ze();};return document.addEventListener("visibilitychange",g),window.addEventListener("focus",g),window.addEventListener("online",g),()=>{document.removeEventListener("visibilitychange",g),window.removeEventListener("focus",g),window.removeEventListener("online",g);}},[x,ze]),sr.useEffect(()=>{let g=Y.filter(ee=>Be(ee.status));if(!x||g.length===0)return;let v=Z?ti:ni,M=window.setInterval(()=>{ze();},v);return ()=>window.clearInterval(M)},[x,Z,Y,ze]),sr.useEffect(()=>{for(let g of c.current.values())g.close();c.current.clear();},[t,n,u.containerId,ae,J]),sr.useEffect(()=>{let g=new Set(Y.filter(v=>Be(v.status)).map(v=>v.id));for(let[v,M]of c.current.entries())g.has(v)||(M.close(),c.current.delete(v));for(let v of g){if(c.current.has(v))continue;let M=new URLSearchParams({key:t});J&&M.set("userId",J),ae&&M.set("userHash",ae),u.isAdmin&&u.containerId&&M.set("containerId",u.containerId);let ee=new EventSource(`${n}/api/v1/forks/${v}/events?${M.toString()}`);ee.onmessage=ue=>{try{Ve(v,JSON.parse(ue.data));}catch{}},ee.onerror=()=>{ee.close(),c.current.delete(v);},c.current.set(v,ee);}},[t,n,Y,u.isAdmin,u.containerId,Ve,ae,J]),sr.useEffect(()=>()=>{for(let g of c.current.values())g.close();c.current.clear();},[]);let gt=ci(Y),mt=sr.useCallback(async()=>{if(!J)throw new Error("Reset requires a resolved user identity.");let g=new URLSearchParams({userId:J});ae&&g.set("userHash",ae);let v={Authorization:`Bearer ${t}`,...fe()};o&&(v["X-Fork-App-Id"]=o);let M=await fetch(`${n}/api/v1/forks/all?${g.toString()}`,{method:"DELETE",headers:v});if(!M.ok){let ue=await M.json().catch(()=>({}));throw new Error(ue.error||`API error: ${M.status}`)}let ee=await M.json().catch(()=>({}));return h({}),P({}),B(true),_(ue=>ue+1),G([]),I.current.clear(),wt(Ee,new Set),wt(Ie,new Set),f.current.clear(),b.current.clear(),ee},[Ee,Ie,t,o,n,ae,J]);return Js.jsx(ho.Provider,{value:{apiKey:t,userId:J,userHash:ae,baseUrl:n,appId:o,forks:A,moduleOverridesEnabled:ke,moduleManifestReady:H,moduleManifestVersion:z,currentContainerId:x,forksPaused:V,setForksPaused:un,forkActivities:Y,activitySummary:gt,adminContext:u,setAdminContainer:Q,trackForkActivity:Dt,recordForkActivityEvent:Ve,markForkActivitySeen:Te,refreshForkActivities:ze,setSlotFork:$e,clearSlotFork:fn,skipAnimationForSlot:At,shouldSkipAnimation:dt,markRevealSeen:ut,queueBoundaryAnimation:tt,consumeBoundaryAnimation:Rt,registerBoundary:Et,getBoundaryOverride:pn,refreshModuleManifest:Le,resetAllForks:mt,highlightScope:pt},children:r})}function Ce(){let e=sr.useContext(ho);if(!e)throw new Error("useForkContext must be used within <ForkProvider>");return e}function Cn(e){return Ce().forks[e]}var qt=class{constructor(t){this.values=new Map;this.snapshots=new Map;this.listeners=new Map;this.eventHandlers=new Map;this.slotId=t,window.__FORK_BRIDGE__||(window.__FORK_BRIDGE__={}),window.__FORK_BRIDGE__[t]=this;}set(t,n){let r=this.values.get(t);if(Object.is(r,n))return;if(r!==void 0&&n!==null&&r!==null&&typeof r=="object"&&typeof n=="object")try{if(JSON.stringify(r)===JSON.stringify(n))return}catch{}this.values.set(t,n),this.snapshots.set(t,n);let o=this.listeners.get(t);o&&o.forEach(i=>i());}get(t){return this.values.get(t)}getSnapshot(t){return this.snapshots.get(t)}subscribe(t,n){return this.listeners.has(t)||this.listeners.set(t,new Set),this.listeners.get(t).add(n),()=>{this.listeners.get(t)?.delete(n);}}useValue(t){let n=window.__FORK_REACT__;return n?.useSyncExternalStore?n.useSyncExternalStore(r=>this.subscribe(t,r),()=>this.getSnapshot(t)):(console.warn("[ForkBridge] React.useSyncExternalStore not available, returning static value"),this.values.get(t))}emit(t,...n){let r=this.eventHandlers.get(t);r&&r.forEach(o=>o(...n));}on(t,n){return this.eventHandlers.has(t)||this.eventHandlers.set(t,new Set),this.eventHandlers.get(t).add(n),()=>{this.eventHandlers.get(t)?.delete(n);}}destroy(){this.listeners.clear(),this.eventHandlers.clear(),this.values.clear(),this.snapshots.clear();let t=window.__FORK_BRIDGE__;t&&delete t[this.slotId];}};var rr=new Set;function ir(e,t){let n;try{n=sr.Children.only(e);}catch{let o=sr.Children.count(e);throw new Error(`<ForkSlot slotId="${t}"> must wrap exactly one React component, got ${o} children. Wrap your slot's contents in a single named component, e.g. <ForkSlot slotId="${t}"><MyShell ...props /></ForkSlot>.`)}let r=n.type;if(typeof r=="string")throw new Error(`<ForkSlot slotId="${t}"> child must be a React component (function or class), not an HTML element <${r}>. Wrap your slot's contents in a single named component, e.g. <ForkSlot slotId="${t}"><MyShell ...props /></ForkSlot>.`);if(typeof r=="symbol")throw new Error(`<ForkSlot slotId="${t}"> child must be a single React component, not a fragment or special React element. Wrap your slot's contents in a single named component, e.g. <ForkSlot slotId="${t}"><MyShell ...props /></ForkSlot>.`);return n}var ko=new Set;function bo(e){let t=[],n=e.querySelectorAll("*");for(let r of n){if(!(r instanceof HTMLElement))continue;let o=r.getBoundingClientRect();if(o.width<10||o.height<10||["SCRIPT","STYLE","META","LINK"].includes(r.tagName))continue;let i=getComputedStyle(r),a=parseFloat(i.borderTopLeftRadius)||0;t.push({tag:r.tagName,className:r.className||"",text:(r.textContent||"").slice(0,50).trim(),rect:o,borderRadius:a});}return t}function yi(e,t){let n=[];for(let r of t)if(!e.find(i=>i.tag===r.tag&&i.className===r.className&&Math.abs(i.rect.top-r.rect.top)<20&&Math.abs(i.rect.left-r.rect.left)<20)&&!n.some(a=>r.rect.top>=a.rect.top&&r.rect.left>=a.rect.left&&r.rect.right<=a.rect.right&&r.rect.bottom<=a.rect.bottom)){for(let a=n.length-1;a>=0;a--){let l=n[a];l.rect.top>=r.rect.top&&l.rect.left>=r.rect.left&&l.rect.right<=r.rect.right&&l.rect.bottom<=r.rect.bottom&&n.splice(a,1);}n.push({rect:r.rect,borderRadius:r.borderRadius});}return n}function ki(e,t){let n=[];for(let r of e)if(!t.find(i=>i.tag===r.tag&&i.className===r.className&&Math.abs(i.rect.top-r.rect.top)<20&&Math.abs(i.rect.left-r.rect.left)<20)&&!n.some(a=>r.rect.top>=a.rect.top&&r.rect.left>=a.rect.left&&r.rect.right<=a.rect.right&&r.rect.bottom<=a.rect.bottom)){for(let a=n.length-1;a>=0;a--){let l=n[a];l.rect.top>=r.rect.top&&l.rect.left>=r.rect.left&&l.rect.right<=r.rect.right&&l.rect.bottom<=r.rect.bottom&&n.splice(a,1);}n.push({rect:r.rect,borderRadius:r.borderRadius});}return n}function wo(e,t,n,r,o){return o=Math.max(0,Math.min(o,n/2,r/2)),o===0?`M ${e} ${t} L ${e+n} ${t} L ${e+n} ${t+r} L ${e} ${t+r} Z`:[`M ${e+o} ${t}`,`L ${e+n-o} ${t}`,`A ${o} ${o} 0 0 1 ${e+n} ${t+o}`,`L ${e+n} ${t+r-o}`,`A ${o} ${o} 0 0 1 ${e+n-o} ${t+r}`,`L ${e+o} ${t+r}`,`A ${o} ${o} 0 0 1 ${e} ${t+r-o}`,`L ${e} ${t+o}`,`A ${o} ${o} 0 0 1 ${e+o} ${t}`,"Z"].join(" ")}function vo(e){let t="http://www.w3.org/2000/svg",n=document.createElement("div");n.setAttribute("data-fork-highlights","true"),n.style.cssText="position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9999;";let r=document.createElementNS(t,"svg");r.setAttribute("width","100%"),r.setAttribute("height","100%"),r.style.cssText="position:absolute;top:0;left:0;overflow:visible;";let o=document.createElementNS(t,"defs");r.appendChild(o);let i=[];for(let A=0;A<e.length;A++){let{rect:h,borderRadius:C}=e[A],N=h.left-.5,R=h.top-.5,p=h.width+1,u=h.height+1,$=Math.min(C+.5,p/2,u/2),F=wo(N,R,p,u,$),m=`__fork-glow-${A}`,L=document.createElementNS(t,"filter");L.setAttribute("id",m),L.setAttribute("x","-100%"),L.setAttribute("y","-100%"),L.setAttribute("width","300%"),L.setAttribute("height","300%");let U=document.createElementNS(t,"feGaussianBlur");U.setAttribute("in","SourceGraphic"),U.setAttribute("stdDeviation","8"),L.appendChild(U),o.appendChild(L);let D=`__fork-mask-${A}`,P=document.createElementNS(t,"mask");P.setAttribute("id",D),P.setAttribute("maskUnits","userSpaceOnUse"),P.setAttribute("x",String(N-200)),P.setAttribute("y",String(R-200)),P.setAttribute("width",String(p+400)),P.setAttribute("height",String(u+400));let H=document.createElementNS(t,"rect");H.setAttribute("x",String(N-200)),H.setAttribute("y",String(R-200)),H.setAttribute("width",String(p+400)),H.setAttribute("height",String(u+400)),H.setAttribute("fill","white"),P.appendChild(H);let B=document.createElementNS(t,"path");B.setAttribute("d",F),B.setAttribute("fill","black"),P.appendChild(B),o.appendChild(P);let z=document.createElementNS(t,"g");z.setAttribute("mask",`url(#${D})`),z.setAttribute("opacity","0");let _=document.createElementNS(t,"g");_.setAttribute("filter",`url(#${m})`);let x=document.createElementNS(t,"path");x.setAttribute("d",F),x.setAttribute("fill","none"),x.setAttribute("stroke","rgba(150, 185, 220, 0.6)"),x.setAttribute("stroke-width","6"),x.setAttribute("stroke-linecap","round"),_.appendChild(x),z.appendChild(_),r.appendChild(z);let O=document.createElementNS(t,"path");O.setAttribute("d",F),O.setAttribute("fill","none"),O.setAttribute("stroke","rgba(150, 185, 220, 0.35)"),O.setAttribute("stroke-width","2"),O.setAttribute("stroke-linecap","round"),O.setAttribute("opacity","0"),r.appendChild(O),i.push(x,O),x.__group=z;}n.appendChild(r),document.body.appendChild(n);let a=[];for(let A=0;A<i.length;A+=2){let h=i[A],C=i[A+1],N=h.__group,R=C.getTotalLength(),p=h.getTotalLength();if(R<=0)continue;let u=R*.35;C.setAttribute("stroke-dasharray",`${u} ${R-u}`),C.setAttribute("stroke-dashoffset","0"),a.push(C.animate([{strokeDashoffset:0,opacity:0,offset:0},{strokeDashoffset:-0.2*R,opacity:.92,offset:.06},{strokeDashoffset:-2*R,opacity:.92,offset:.92},{strokeDashoffset:-2.25*R,opacity:0,offset:1}],{duration:14e3,easing:"ease-in-out",fill:"forwards"}));let $=p*.35;h.setAttribute("stroke-dasharray",`${$} ${p-$}`),h.setAttribute("stroke-dashoffset","0"),a.push(h.animate([{strokeDashoffset:0,offset:0},{strokeDashoffset:-0.2*p,offset:.06},{strokeDashoffset:-2*p,offset:.92},{strokeDashoffset:-2.25*p,offset:1}],{duration:14e3,easing:"ease-in-out",fill:"forwards"})),a.push(N.animate([{opacity:0,offset:0},{opacity:.92,offset:.06},{opacity:.92,offset:.92},{opacity:0,offset:1}],{duration:14e3,easing:"ease-in-out",fill:"forwards"}));}let l=false,d=()=>{if(l)return;l=true,clearTimeout(S);for(let h of a)try{h.cancel();}catch{}let A=n.animate([{opacity:1},{opacity:0}],{duration:400,fill:"forwards"});A.onfinish=()=>n.remove(),window.removeEventListener("click",d);},S=setTimeout(d,14500);return setTimeout(()=>{l||window.addEventListener("click",d);},500),d}function bi(e){let t="http://www.w3.org/2000/svg",n=document.createElement("div");n.setAttribute("data-fork-removed","true"),n.style.cssText="position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9999;";let r=document.createElementNS(t,"svg");r.setAttribute("width","100%"),r.setAttribute("height","100%"),r.style.cssText="position:absolute;top:0;left:0;overflow:visible;";let o=document.createElementNS(t,"defs"),i=document.createElementNS(t,"filter");i.setAttribute("id","__fork-removed-shadow"),i.setAttribute("x","-10%"),i.setAttribute("y","-10%"),i.setAttribute("width","120%"),i.setAttribute("height","120%");let a=document.createElementNS(t,"feDropShadow");a.setAttribute("dx","0"),a.setAttribute("dy","1"),a.setAttribute("stdDeviation","2"),a.setAttribute("flood-color","rgba(0,0,0,0.15)"),i.appendChild(a),o.appendChild(i),r.appendChild(o);for(let{rect:l,borderRadius:d}of e){let S=l.left,A=l.top,h=l.width,C=l.height,N=Math.min(d,h/2,C/2),R=wo(S,A,h,C,N),p=document.createElementNS(t,"path");p.setAttribute("d",R),p.setAttribute("fill","none"),p.setAttribute("stroke","rgba(120, 125, 135, 0.6)"),p.setAttribute("stroke-width","1.5"),p.setAttribute("stroke-dasharray","8 4"),p.setAttribute("stroke-linecap","round"),p.setAttribute("filter","url(#__fork-removed-shadow)"),p.setAttribute("opacity","0"),r.appendChild(p),p.animate([{opacity:0,offset:0},{opacity:.6,offset:.08},{opacity:.05,offset:.45},{opacity:.6,offset:.85},{opacity:.05,offset:1}],{duration:5e3,easing:"ease-in-out",fill:"forwards"});}return n.appendChild(r),document.body.appendChild(n),n}function vi(e,t){if(e===t)return true;let n=Object.keys(e);if(n.length!==Object.keys(t).length)return false;for(let r of n)if(!Object.is(e[r],t[r]))return false;return true}var wi=sr__namespace.default.memo(function({component:t,containerRef:n,wrapperStyle:r,hostProps:o}){return Js.jsx("div",{ref:n,style:r,children:Js.jsx(t,{...o})})},(e,t)=>e.component===t.component&&vi(e.hostProps,t.hostProps)),or=class extends sr__namespace.default.Component{constructor(t){super(t),this.state={hasError:false};}static getDerivedStateFromError(){return {hasError:true}}componentDidCatch(t){console.error(`[Fork:${this.props.slotId}] fork render failed`,t);}componentDidUpdate(t){t.resetKey!==this.props.resetKey&&this.state.hasError&&this.setState({hasError:false});}render(){return this.state.hasError?this.props.fallback:this.props.children}};function So({slotId:e,children:t,githubRepo:n,shared:r,events:o,entityBindings:i}){ir(t,e);let a=Cn(e),{baseUrl:l,apiKey:d,appId:S,shouldSkipAnimation:A,markRevealSeen:h}=Ce(),[C,N]=sr.useState(null),R=sr.useRef(null),p=sr.useRef(null),u=sr.useRef(null),$=sr.useRef(false),F=sr.useRef(null),m=sr.useRef(null),L=!!(r||o),U=sr.useRef(null);L&&!U.current&&(U.current=new qt(e));let D=sr.useRef(o);if(D.current=o,sr.useEffect(()=>{if(L)return ()=>{U.current?.destroy(),U.current=null;}},[L,e]),L&&U.current&&r)for(let[_,x]of Object.entries(r))U.current.set(_,x);sr.useEffect(()=>{if(!L)return;U.current||(U.current=new qt(e));let _=U.current,x=Object.keys(D.current||{}).map(O=>_.on(O,(...V)=>D.current?.[O]?.(...V)));return ()=>x.forEach(O=>O())},[L,e]),sr.useEffect(()=>{if(ko.has(e))return;ko.add(e);let _={id:e,appId:S,label:e,eventsShape:"{ navigate?: string }",currentLayout:"",githubRepo:n,mode:"direct",sharedKeys:r?Object.keys(r):[],eventNames:o?Object.keys(o):[],propsShape:"",callbackNames:[],entityBindings:i||{}};fetch(`${l}/api/v1/slots`,{method:"POST",headers:{Authorization:`Bearer ${d}`,"Content-Type":"application/json"},body:JSON.stringify(_)}).catch(()=>{});},[e,l,d,n,S,i]);let P=a?.id||null;sr.useEffect(()=>{if(a?.bundleUrl,R.current,p.current,!a?.bundleUrl||!P){return}let _=`${l}${a.bundleUrl.replace("bundle.js","component.js")}`,x=a.revealPending===true&&!rr.has(P),O=A(e),V=!O&&x;if(a.revealPending,O&&x&&(rr.add(P),h(a)),V&&p.current){let re=bo(p.current);u.current=re,$.current=true,`${e}${re.length}`;}window.__FORK_REACT__=sr__namespace.default,window.__FORK_REACT_DOM__=Ws__namespace,window.__FORK_REACT_JSX__=Js__namespace;let X=Date.now(),Y=`${l}${a.bundleUrl.replace("bundle.js","component.css")}?t=${X}`,G=document.createElement("link");G.rel="stylesheet",G.href=Y,G.dataset.forkSlot=e,document.head.appendChild(G);let Z=document.createElement("script");return Z.src=_+"?t="+X,Z.onload=()=>{let re=window.__FORK_EXPORT__;if(re?.default){if(p.current&&u.current&&$.current){let pe=p.current.getBoundingClientRect(),oe=p.current.cloneNode(true);oe.setAttribute("data-fork-clone-overlay","true"),oe.style.position="fixed",oe.style.top=`${pe.top}px`,oe.style.left=`${pe.left}px`,oe.style.width=`${pe.width}px`,oe.style.height=`${pe.height}px`,oe.style.flex="none",oe.style.minHeight="auto",oe.style.zIndex="9998",oe.style.pointerEvents="none",oe.style.overflow="hidden";let ye=getComputedStyle(p.current).backgroundColor;oe.style.backgroundColor=ye&&ye!=="rgba(0, 0, 0, 0)"&&ye!=="transparent"?ye:getComputedStyle(document.body).backgroundColor||"#ffffff",document.body.appendChild(oe);let te=p.current.querySelectorAll("*"),f=oe.querySelectorAll("*");for(let b=0;b<te.length;b++)te[b].scrollTop!==0&&(f[b].scrollTop=te[b].scrollTop),te[b].scrollLeft!==0&&(f[b].scrollLeft=te[b].scrollLeft);F.current=oe;}N(()=>re.default),R.current=P;}else console.error(`[Fork:${e}] component.js loaded but no default export found`);window.__FORK_EXPORT__=void 0;},Z.onerror=()=>{console.error(`[Fork:${e}] failed to load component.js`);},document.head.appendChild(Z),()=>{Z.remove(),G.remove(),m.current&&(clearTimeout(m.current),m.current=null),F.current&&(F.current.remove(),F.current=null);}},[P,l,e]),sr.useEffect(()=>{if(!$.current||!C||!p.current){`${e}${$.current}`,p.current;return}let _=u.current;if(!_){return}requestAnimationFrame(()=>{requestAnimationFrame(()=>{if(!p.current)return;let x=bo(p.current),O=yi(_,x),V=ki(_,x),X=F.current;if(`${e}${O.length}${V.length}`,V.length>0&&X){let Y=bi(V);m.current=setTimeout(()=>{m.current=null;let G=400;X.animate([{opacity:1},{opacity:0}],{duration:G,fill:"forwards"}),Y.animate([{opacity:1},{opacity:0}],{duration:G,fill:"forwards"}),setTimeout(()=>{X.remove(),Y.remove(),F.current=null,O.length>0&&(vo(O));},G);},3500);}else X&&(X.remove(),F.current=null),O.length>0&&(vo(O));u.current=null,$.current=false,a&&P&&(rr.add(P),h(a),`${e}`);});});},[C]);let H={flex:1,minHeight:0,display:"flex",flexDirection:"column"};if(!a||a.status!=="complete"||!a.bundleUrl)return Js.jsx("div",{ref:p,style:H,children:t});if(!C)return Js.jsx("div",{ref:p,style:H,children:t});let z=t?.props??{};return Js.jsx(or,{slotId:e,resetKey:P,fallback:Js.jsx("div",{ref:p,style:H,children:t}),children:Js.jsx(wi,{component:C,containerRef:p,wrapperStyle:H,hostProps:z})})}var Fo=new Set;function Fi(e){return `{ ${Object.entries(e).map(([n,r])=>r==null?`${n}: unknown`:Array.isArray(r)?`${n}: ${r.length>0?typeof r[0]:"unknown"}[]`:`${n}: ${typeof r}`).join("; ")} }`}function Ao(e,t=new Set){return sr.Children.forEach(e,n=>{if(!sr.isValidElement(n))return;let r=n.props;for(let[o,i]of Object.entries(r))typeof i=="function"&&/^on[A-Z]/.test(o)&&t.add(o);r.children&&Ao(r.children,t);}),t}function Ai({slotId:e,props:t,children:n,allowedFetches:r,entityBindings:o,githubRepo:i,callbacks:a,mode:l="iframe",shared:d,events:S}){if(ir(n,e),l==="direct")return Js.jsx(So,{slotId:e,githubRepo:i,shared:d,events:S,entityBindings:o,children:n});let A=Cn(e),{baseUrl:h,apiKey:C,appId:N,userId:R,userHash:p,currentContainerId:u}=Ce(),$=sr.useRef(null),F=sr.useRef(false),m=sr.useRef(null),L=sr.useRef(a);L.current=a;let U=sr.useRef(t);U.current=t;let D=sr.useRef(r);D.current=r,sr.useEffect(()=>{if(typeof process<"u")return;let z=Ao(n),_=new Set(a?Object.keys(a):[]),x=[...z].filter(O=>!_.has(O));x.length>0&&console.error(`[ForkSlot:${e}] Missing bridged callbacks! The following callback props are used by children but not passed to ForkSlot's \`callbacks\` prop:
2
+ `+x.map(O=>` - ${O}`).join(`
3
+ `)+"\n\nThe forked component will not be able to call these. Add them to the `callbacks` prop of <ForkSlot>.");},[e,n,a]),sr.useEffect(()=>{Fo.has(e)||(Fo.add(e),fetch(`${h}/api/v1/slots`,{method:"POST",headers:{Authorization:`Bearer ${C}`,"Content-Type":"application/json"},body:JSON.stringify({id:e,appId:N,label:e,propsShape:t?Fi(t):"",eventsShape:"{ navigate?: string }",currentLayout:"",githubRepo:i,callbackNames:a?Object.keys(a):[],mode:l||"iframe",entityBindings:o||{}})}).catch(()=>{}));},[e,h,C,i,N,o]);let P=sr.useCallback(z=>{let _=$.current;if(_?.contentWindow&&F.current){let x=L.current?Object.keys(L.current):[];_.contentWindow.postMessage({type:"slot:props",props:z,callbackNames:x},"*"),m.current=null;}else m.current=z;},[]),H=sr.useCallback((z,_)=>{let x=D.current;return !x||x.length===0?false:x.some(O=>{let[V,X]=O.split(" "),Y=_.split("?")[0];return z.toUpperCase()===V.toUpperCase()&&Y.startsWith(X)})},[]);if(sr.useEffect(()=>{if(!A?.bundleUrl)return;let z=async _=>{if(_.source===$.current?.contentWindow){if(_.data?.type==="slot:ready")F.current=true,$.current?.contentWindow?.postMessage({type:"slot:allowed-fetches",paths:D.current||[]},"*"),D.current,m.current?P(m.current):P(U.current||{});else if(_.data?.type==="slot:event"){let x=_.data.event;x?.navigate&&(window.location.hash=x.navigate);}else if(_.data?.type==="slot:clipboard-write")navigator.clipboard.writeText(_.data.text).catch(x=>{console.warn(`[ForkSlot:${e}] clipboard write failed:`,x.message);});else if(_.data?.type==="slot:callback"){let{name:x,args:O}=_.data,V=L.current?.[x];V?(V(...O||[])):console.warn(`[ForkSlot:${e}] unknown callback: ${x}`);}else if(_.data?.type==="slot:fetch"){let{id:x,method:O,url:V,body:X}=_.data,Y=$.current?.contentWindow;if(!Y)return;let G=O||"GET";if(!H(G,V)){console.warn(`[ForkSlot:${e}] BLOCKED fetch #${x}: ${G} ${V} \u2014 not in allowedFetches`),Y.postMessage({type:"slot:fetch-response",id:x,error:`Fetch not allowed: ${G} ${V}`},"*");return}try{let Z={method:G};X&&G!=="GET"&&(Z.headers={"Content-Type":"application/json"},Z.body=JSON.stringify(X));let re=await fetch(V,Z),pe=await re.json();`${e}${x}${re.status}`,Y.postMessage({type:"slot:fetch-response",id:x,data:pe,status:re.status},"*");}catch(Z){console.error(`[ForkSlot:${e}] fetch #${x} failed:`,Z.message),Y.postMessage({type:"slot:fetch-response",id:x,error:Z.message},"*");}}else if(_.data?.type==="slot:fork-data"){let{id:x,path:O,method:V,body:X}=_.data,Y=$.current?.contentWindow;if(!Y)return;if(!u||!N){Y.postMessage({type:"slot:fork-data-response",id:x,error:"Fork data is unavailable until appId and containerId are resolved"},"*");return}let G=typeof O=="string"&&O.startsWith("/")?O:`/${String(O||"")}`,Z=G.startsWith("/api/v1/data")?G:`/api/v1/data${G}`;try{let re={Authorization:`Bearer ${C}`,"Content-Type":"application/json","X-Fork-App-Id":N,...fe()};R&&(re["X-Fork-User-Id"]=R),p&&(re["X-Fork-User-Hash"]=p);let pe=typeof V=="string"?V.toUpperCase():"POST",oe=new URL(`${h}${Z}`),ye={method:pe,headers:re};pe==="GET"?(oe.searchParams.set("appId",N),oe.searchParams.set("containerId",u)):ye.body=JSON.stringify({appId:N,containerId:u,...X&&typeof X=="object"?X:{}});let te=await fetch(oe.toString(),ye),f=await te.json().catch(()=>({}));if(!te.ok){let b=typeof f?.error=="string"?f.error:`Fork data API ${te.status}`;Y.postMessage({type:"slot:fork-data-response",id:x,error:b,status:te.status},"*");return}Y.postMessage({type:"slot:fork-data-response",id:x,data:f,status:te.status},"*");}catch(re){Y.postMessage({type:"slot:fork-data-response",id:x,error:re.message},"*");}}}};return window.addEventListener("message",z),()=>{window.removeEventListener("message",z),F.current=false;}},[A?.bundleUrl,e,P,H,u,N,C,h,p,R]),sr.useEffect(()=>{A?.bundleUrl&&F.current&&P(t||{});},[t,A?.bundleUrl,P]),!A||A.status!=="complete"||!A.bundleUrl)return `${e}${A?.status||"none"}${A?.bundleUrl||"none"}`,Js.jsx(Js.Fragment,{children:n});`${e}${A.bundleUrl}`;let B=`${h}${A.bundleUrl.replace("/bundle.js","/host")}`;return Js.jsx("iframe",{ref:$,src:B,sandbox:"allow-scripts allow-same-origin allow-forms allow-clipboard-write",title:`Forked ${e}`,style:{width:"100%",border:"none",flex:1,minHeight:0}})}function $n({style:e={width:20,height:20},...t}){return Js.jsxs("svg",{viewBox:"320 95 270 345",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:e,...t,children:[Js.jsx("path",{stroke:"currentColor",strokeWidth:"30",strokeLinejoin:"round",strokeLinecap:"round",d:"M357.789 145.428c0-16.186 13.121-29.307 29.307-29.307 7.773 0 15.227 3.088 20.723 8.584 5.496 5.496 8.584 12.95 8.584 20.723 0 16.186-13.121 29.307-29.307 29.307s-29.307-13.121-29.307-29.307z"}),Js.jsx("path",{stroke:"currentColor",strokeWidth:"30",strokeLinejoin:"round",strokeLinecap:"round",d:"M387.096 174.735v188"}),Js.jsx("path",{stroke:"currentColor",strokeWidth:"30",strokeLinejoin:"round",strokeLinecap:"round",d:"M357.789 394.572c0-16.186 13.121-29.307 29.307-29.307 7.773 0 15.227 3.088 20.723 8.584 5.496 5.496 8.584 12.95 8.584 20.723 0 16.186-13.121 29.307-29.307 29.307s-29.307-13.121-29.307-29.307z"}),Js.jsx("path",{stroke:"currentColor",strokeWidth:"30",strokeLinejoin:"round",strokeLinecap:"round",d:"M388.739 319c10.168-6.317 43.997-26.932 61.009-37.9 17.012-10.968 31.758-19.978 41.064-27.91 9.305-7.931 11.782-14.213 14.767-19.679 2.985-5.465 3.014-8.99 3.141-13.114.128-4.124-.999-8.178-2.377-11.632-1.378-3.454-3.563-6.55-5.889-9.094-2.326-2.543-4.98-4.679-8.066-6.167-3.085-1.488-6.624-2.601-10.448-2.76-3.823-.159-8.624.2-12.495 1.806-3.871 1.607-8.047 4.68-10.732 7.835-2.685 3.156-4.446 7.448-5.378 11.099-.932 3.651-.742 7.485-.213 10.807.528 3.322 1.864 6.46 3.386 9.123 1.523 2.663 3.543 4.843 5.75 6.854 2.207 2.011 4.38 3.914 7.491 5.214 3.111 1.3 6.57 2.808 11.178 2.584 4.607-.225 9.363-.471 16.466-3.932 7.103-3.46 16.076-5.382 26.154-16.831 10.077-11.449 28.593-43.219 34.312-51.862"}),Js.jsx("path",{fill:"currentColor",stroke:"currentColor",strokeWidth:"1",strokeLinejoin:"round",d:"M527.117 162.547L570.487 134.368Q577.196 130.009 577.624 137.997L580.39 189.69Q580.818 197.678 573.69 194.047L527.536 170.538Q520.408 166.907 527.117 162.547Z"})]})}var Ro=5600,lr=2147483002;function Ti(e){return !e||e.state!=="complete"||!e.latest?null:`${e.latest.id}:${e.latest.completedAt??e.latest.updatedAt}`}function $i(){return typeof document>"u"?false:!!document.querySelector("[data-fork-clone-overlay], [data-fork-removed], [data-fork-highlights]")}function cr(e,t){let n=Math.min(e.length,t?26:34)*7.4,r=t?Math.min(t.length,24)*6.8+10:0;return Math.round(Math.min(390,Math.max(116,56+n+r)))}function Mi(e,t=false){return e?.state==="complete"&&e.unreadCompletedCount>0?e.unreadCompletedCount>1?`${e.unreadCompletedCount} forks ready`:`${e.label} ready`:t?"Fork update ready":void 0}function dr({onClick:e,hasNotification:t=false,activity:n}){let[r,o]=sr.useState(false),[i,a]=sr.useState(false),[l,d]=sr.useState(null),[S,A]=sr.useState(null),[h,C]=sr.useState(null),N=sr.useRef(0),R=r?48:40,p=Ti(n),u=!!(p&&n?.state==="complete"&&n.unreadCompletedCount>0),$=u?p:S?.key??null,F=!!(n&&n.state==="running"&&n.runningCount>0),m=!!($&&$!==l&&(u||S)),L=F||m,U=u?n?.label:S?.label,D=m?"Built":n?.label??"Fork this app",P=m?U:n?.detail,H=cr(n?.label??"Fork this app",n?.detail),B=cr(D,P),z=m?Math.min(420,Math.max(326,B,S?.width??0,N.current+40)):B,_=m?46:40,x=L?[D,P].filter(Boolean).join(" "):Mi(n,t)??"Fork this app",O=L?`${D}:${P??""}`:"idle",V=(t||n?.state==="complete"&&n.unreadCompletedCount>0)&&!L;sr.useEffect(()=>{if(typeof document>"u")return;let te=document.createElement("div");return te.setAttribute("data-fork-button-host","true"),te.style.position="relative",te.style.zIndex=String(lr),document.body.appendChild(te),C(te),()=>{te.remove(),C(null);}},[]),sr.useEffect(()=>{F&&(N.current=H);},[H,F]),sr.useEffect(()=>{!u||!p||!n?.label||A(te=>{if(te?.key===p)return te;let f=Math.min(420,Math.max(326,cr("Built",n.label),N.current+40));return {key:p,label:n.label,width:f,startedAt:Date.now()}});},[n?.label,p,u]),sr.useEffect(()=>{n&&n.unreadCompletedCount===0&&n.state!=="running"&&A(null);},[n,n?.state,n?.unreadCompletedCount]),sr.useEffect(()=>{if(!$||!m||$===l)return;let te,f=S?.key===$?S.startedAt:Date.now(),b=()=>{let E=Date.now()-f;if(E>=Ro&&!$i()||E>=Ro*3){d($);return}te=window.setTimeout(b,250);};return te=window.setTimeout(b,250),()=>{te!==void 0&&window.clearTimeout(te);}},[$,l,S?.key,S?.startedAt,m]);let X=L?{position:"fixed",bottom:24,right:24,zIndex:lr,width:`min(${z}px, calc(100vw - 32px))`,height:_,minWidth:0,maxWidth:"calc(100vw - 32px)",borderRadius:m?12:999,backgroundColor:r?"#ffffff":"rgba(255, 255, 255, 0.92)",border:"1px solid rgba(148, 163, 184, 0.42)",display:"inline-flex",alignItems:"center",justifyContent:m?"flex-start":"center",gap:m?10:8,color:"#111827",boxShadow:r?"0 12px 24px -16px rgba(15, 23, 42, 0.45), 0 4px 10px -6px rgba(15, 23, 42, 0.25)":"0 10px 20px -18px rgba(15, 23, 42, 0.35), 0 2px 7px -5px rgba(15, 23, 42, 0.18)",transform:i?"scale(0.98)":"scale(1)",transition:"width 320ms cubic-bezier(0.16, 1, 0.3, 1), height 320ms cubic-bezier(0.16, 1, 0.3, 1), border-radius 320ms cubic-bezier(0.16, 1, 0.3, 1), transform 180ms ease, box-shadow 180ms ease, background-color 180ms ease, border-color 180ms ease",cursor:"pointer",padding:m?"0 16px 0 14px":"0 13px 0 11px",margin:0,outline:"none",boxSizing:"border-box",fontFamily:'Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif'}:{position:"fixed",bottom:24,right:24,zIndex:lr,width:R,height:R,borderRadius:"50%",backgroundColor:r?"rgba(255, 255, 255, 1)":"rgba(255, 255, 255, 0.3)",border:r?"1px solid rgba(156, 163, 175, 1)":"1px solid rgba(156, 163, 175, 0.3)",display:"flex",alignItems:"center",justifyContent:"center",color:r?"#111827":"rgba(17, 24, 39, 0.5)",boxShadow:r?"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)":"0 1px 2px 0 rgba(0, 0, 0, 0.05)",transform:i?"scale(0.95)":"scale(1)",transition:"width 320ms cubic-bezier(0.16, 1, 0.3, 1), height 320ms cubic-bezier(0.16, 1, 0.3, 1), border-radius 320ms cubic-bezier(0.16, 1, 0.3, 1), transform 180ms ease, box-shadow 180ms ease, background-color 180ms ease, border-color 180ms ease, color 180ms ease",cursor:"pointer",padding:0,margin:0,outline:"none",boxSizing:"border-box"},Y={minWidth:0,maxWidth:F?286:m?82:P?116:238,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:13,fontWeight:650,lineHeight:"16px",letterSpacing:0},G={minWidth:0,maxWidth:m?278:void 0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flexShrink:m?1:0,color:"#64748b",fontSize:F?13:12,fontWeight:650,lineHeight:"16px",letterSpacing:0},Z={minWidth:0,flex:m?1:void 0,display:"inline-flex",alignItems:"center",justifyContent:m?"flex-start":void 0,gap:8,animation:"__forkButtonTextSwap 220ms ease-out"},re={width:8,height:8,borderRadius:"50%",backgroundColor:n?.state==="complete"?"#16a34a":"#ef4444",boxShadow:n?.state==="complete"?"0 0 0 3px rgba(22, 163, 74, 0.14)":"none",animation:m?"__forkButtonBuiltDot 420ms ease-out":void 0,flexShrink:0},ye=Js.jsxs(Js.Fragment,{children:[Js.jsx("style",{children:`
4
4
  @keyframes __forkButtonSpin { to { transform: rotate(360deg); } }
5
5
  @keyframes __forkButtonTextSwap {
6
6
  from { opacity: 0; transform: translateY(2px); }
@@ -15,7 +15,7 @@
15
15
  70% { opacity: 1; transform: scale(1.18); }
16
16
  100% { opacity: 1; transform: scale(1); }
17
17
  }
18
- `}),ls.jsxs("button",{onClick:e,onMouseEnter:()=>o(true),onMouseLeave:()=>{o(false),i(false);},onMouseDown:()=>i(true),onMouseUp:()=>i(false),style:K,title:F,"aria-label":F,children:[P&&n?ls.jsxs(ls.Fragment,{children:[I?ls.jsx("span",{"aria-hidden":true,style:{width:14,height:14,borderRadius:"50%",border:"2px solid rgba(17, 24, 39, 0.18)",borderTopColor:"#111827",animation:"__forkButtonSpin 780ms linear infinite",flexShrink:0,boxSizing:"border-box"}}):ls.jsx("span",{"aria-hidden":true,style:U}),ls.jsxs("span",{style:X,children:[ls.jsx("span",{style:V,children:j}),O&&ls.jsx("span",{style:W,children:O})]},H)]}):ls.jsx(nn,{style:{width:24,height:24,animation:"__forkButtonLogoIn 220ms ease-out"}}),D&&ls.jsx("span",{"aria-hidden":true,style:{position:"absolute",top:2,right:2,width:10,height:10,borderRadius:"50%",backgroundColor:"#111827",border:"2px solid #ffffff",boxSizing:"border-box",pointerEvents:"none"}})]})]});return d?as.createPortal(w,d):w}var ni={status:lucideReact.Loader2,agent_message:lucideReact.MessageSquare,tool_use:lucideReact.Wrench,build_start:lucideReact.Package,build_complete:lucideReact.Check,build_error:lucideReact.AlertCircle,complete:lucideReact.Sparkles,error:lucideReact.AlertCircle},ri={status:"#60a5fa",agent_message:"#a0a0a0",tool_use:"#fbbf24",build_start:"#c084fc",build_complete:"#6b7280",build_error:"#f87171",complete:"#6b7280",error:"#f87171"},oi={read:lucideReact.FileSearch,write:lucideReact.Pencil,search:lucideReact.FileSearch,shell:lucideReact.Terminal,build:lucideReact.Package},si={read:"#60a5fa",write:"#fbbf24",search:"#60a5fa",shell:"#a78bfa",build:"#c084fc"};function Bn(e){let t=e.data;switch(e.type){case "status":return `${t.message||t.status||"..."}`;case "agent_message":{let n=String(t.content||"");return /failed:/i.test(n)&&(n.includes("ENOENT")||n.includes("{")||n.includes("/Users/"))?"Adapting approach...":n}case "tool_use":return String(t.label||"Working on it");case "build_start":return "Bundling your component...";case "build_complete":return "Build complete!";case "build_error":return `Build failed: ${t.error}`;case "complete":return "Your fork is ready!";case "error":return `Error: ${t.error}`;default:return JSON.stringify(t)}}function Zr({events:e}){let t=Pn.useRef(null);return Pn.useEffect(()=>{t.current&&(t.current.scrollTop=t.current.scrollHeight);},[e]),ls.jsxs(ls.Fragment,{children:[ls.jsx("style",{children:`
18
+ `}),Js.jsxs("button",{onClick:e,onMouseEnter:()=>o(true),onMouseLeave:()=>{o(false),a(false);},onMouseDown:()=>a(true),onMouseUp:()=>a(false),style:X,title:x,"aria-label":x,children:[L&&n?Js.jsxs(Js.Fragment,{children:[F?Js.jsx("span",{"aria-hidden":true,style:{width:14,height:14,borderRadius:"50%",border:"2px solid rgba(17, 24, 39, 0.18)",borderTopColor:"#111827",animation:"__forkButtonSpin 780ms linear infinite",flexShrink:0,boxSizing:"border-box"}}):Js.jsx("span",{"aria-hidden":true,style:re}),Js.jsxs("span",{style:Z,children:[Js.jsx("span",{style:Y,children:D}),P&&Js.jsx("span",{style:G,children:P})]},O)]}):Js.jsx($n,{style:{width:24,height:24,animation:"__forkButtonLogoIn 220ms ease-out"}}),V&&Js.jsx("span",{"aria-hidden":true,style:{position:"absolute",top:2,right:2,width:10,height:10,borderRadius:"50%",backgroundColor:"#111827",border:"2px solid #ffffff",boxSizing:"border-box",pointerEvents:"none"}})]})]});return h?Ws.createPortal(ye,h):ye}var Bi={status:lucideReact.Loader2,agent_message:lucideReact.MessageSquare,tool_use:lucideReact.Wrench,build_start:lucideReact.Package,build_complete:lucideReact.Check,build_error:lucideReact.AlertCircle,complete:lucideReact.Sparkles,error:lucideReact.AlertCircle},Di={status:"#60a5fa",agent_message:"#a0a0a0",tool_use:"#fbbf24",build_start:"#c084fc",build_complete:"#6b7280",build_error:"#f87171",complete:"#6b7280",error:"#f87171"},ji={read:lucideReact.FileSearch,write:lucideReact.Pencil,search:lucideReact.FileSearch,shell:lucideReact.Terminal,build:lucideReact.Package},zi={read:"#60a5fa",write:"#fbbf24",search:"#60a5fa",shell:"#a78bfa",build:"#c084fc"};function fr(e){let t=e.data;switch(e.type){case "status":return `${t.message||t.status||"..."}`;case "agent_message":{let n=String(t.content||"");return /failed:/i.test(n)&&(n.includes("ENOENT")||n.includes("{")||n.includes("/Users/"))?"Adapting approach...":n}case "tool_use":return String(t.label||"Working on it");case "build_start":return "Bundling your component...";case "build_complete":return "Build complete!";case "build_error":return `Build failed: ${t.error}`;case "complete":return "Your fork is ready!";case "error":return `Error: ${t.error}`;default:return JSON.stringify(t)}}function Po({events:e}){let t=sr.useRef(null);return sr.useEffect(()=>{t.current&&(t.current.scrollTop=t.current.scrollHeight);},[e]),Js.jsxs(Js.Fragment,{children:[Js.jsx("style",{children:`
19
19
  @keyframes __fork-spin {
20
20
  from { transform: rotate(0deg); }
21
21
  to { transform: rotate(360deg); }
@@ -33,8 +33,8 @@
33
33
  .__fork-stream::-webkit-scrollbar-thumb:hover {
34
34
  background: rgba(255, 255, 255, 0.3);
35
35
  }
36
- `}),ls.jsxs("div",{className:"__fork-stream",ref:t,style:{scrollbarWidth:"thin",scrollbarColor:"rgba(255, 255, 255, 0.15) transparent",backgroundColor:"#1a1a2e",borderRadius:"8px",padding:"12px",fontFamily:"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace",fontSize:"11px",maxHeight:"300px",overflowY:"auto",boxSizing:"border-box"},children:[e.length===0&&ls.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"6px",color:"#6b7280",fontSize:"11px"},children:[ls.jsx(lucideReact.Loader2,{style:{width:"12px",height:"12px",animation:"__fork-spin 1s linear infinite",flexShrink:0}}),"Connecting to agent..."]}),e.map((n,r)=>{let o=r===e.length-1,s=n.type==="complete"||n.type==="error"||n.type==="build_complete"||n.type==="build_error",i=o&&!s&&(n.type==="status"||n.type==="tool_use"||n.type==="build_start"),l=ni[n.type]||lucideReact.Code,u=ri[n.type]||"#9ca3af";if(n.type==="tool_use"){let h=String(n.data.category||"");l=oi[h]||lucideReact.Wrench,u=si[h]||"#fbbf24";}return i?l=lucideReact.Loader2:!o&&n.type==="status"&&(l=lucideReact.Check,u="#4ade80"),ls.jsxs("div",{style:{display:"flex",gap:"6px",marginBottom:"6px",lineHeight:1.625},children:[ls.jsx(l,{style:{width:"12px",height:"12px",marginTop:"2px",flexShrink:0,color:u,...i?{animation:"__fork-spin 1s linear infinite"}:{}}}),ls.jsx("span",{style:{color:o&&!s?"#d1d5db":"#6b7280",wordBreak:"break-all"},children:Bn(n)})]},r)})]})]})}var ai=0;function li(e){let t=/^data:([^;,]+);base64,(.+)$/.exec(e);return t?{mediaType:t[1],data:t[2]}:null}function ci(e){return new Promise((t,n)=>{let r=URL.createObjectURL(e),o=new Image;o.onload=()=>{URL.revokeObjectURL(r),t(o);},o.onerror=()=>{URL.revokeObjectURL(r),n(new Error("Failed to decode image"));},o.src=r;})}async function Qr(e){if(!e.type.startsWith("image/"))return null;let t;try{t=await ci(e);}catch{return null}let{naturalWidth:n,naturalHeight:r}=t;if(!n||!r)return null;let o=Math.min(1,1568/Math.max(n,r)),s=document.createElement("canvas");s.width=Math.max(1,Math.round(n*o)),s.height=Math.max(1,Math.round(r*o));let i=s.getContext("2d");if(!i)return null;i.fillStyle="#ffffff",i.fillRect(0,0,s.width,s.height),i.drawImage(t,0,0,s.width,s.height);let l=s.toDataURL("image/png");l.length>2e6&&(l=s.toDataURL("image/jpeg",.85));let u=li(l);return u?{id:`img-${++ai}-${Date.now().toString(36)}`,dataUrl:l,mediaType:u.mediaType,data:u.data}:null}function eo(e){let t=e.clipboardData?.items;if(!t)return [];let n=[];for(let r=0;r<t.length;r++){let o=t[r];if(o.kind==="file"&&o.type.startsWith("image/")){let s=o.getAsFile();s&&n.push(s);}}return n}var ui="rgba(59, 130, 246, 0.16)",di="1px solid #3b82f6";function fi(e){let t=e;for(;t;){if(t.hasAttribute("data-fork-panel-host")||t.hasAttribute("data-fork-button-host")||t.hasAttribute("data-fork-picker-overlay"))return true;let n=t.getRootNode();t=t.parentElement??(n instanceof ShadowRoot?n.host:null);}return false}function to(e){let t=Object.keys(e).find(o=>o.startsWith("__reactFiber$")||o.startsWith("__reactInternalInstance$"));if(!t)return;let n=e[t],r=0;for(;n&&r<30;){let o=n.type;if(typeof o=="function"){let s=o.displayName||o.name;if(s&&!/^(styled|ForwardRef|Anonymous)/.test(s))return s}else if(typeof o=="object"&&o!==null){let s=o.displayName||o.render?.displayName||o.render?.name;if(s)return s}n=n.return,r++;}}function pi(e){let t=[],n=e,r=0;for(;n&&n!==document.body&&r<6;){let o=n.tagName.toLowerCase();if(n.id){t.unshift(`#${CSS.escape(n.id)}`);break}let s=Array.from(n.classList).filter(i=>!/[[\]:]/.test(i)).slice(0,2);if(s.length>0)o+="."+s.map(i=>CSS.escape(i)).join(".");else if(n.parentElement){let i=Array.from(n.parentElement.children).filter(l=>l.tagName===n.tagName);i.length>1&&(o+=`:nth-of-type(${i.indexOf(n)+1})`);}t.unshift(o),n=n.parentElement,r++;}return t.join(" > ")}function mi(e){let t=e.outerHTML;if(t.length>2e3){let n=t.indexOf(">");n>-1&&n<1900?t=t.slice(0,2e3)+`
37
- <!-- \u2026truncated\u2026 -->`:t=t.slice(0,2e3);}return t}function gi(e){let t=e.getBoundingClientRect(),n=(e.textContent??"").replace(/\s+/g," ").trim(),r={tag:e.tagName.toLowerCase(),selector:pi(e),html:mi(e),rect:{x:Math.round(t.x),y:Math.round(t.y),width:Math.round(t.width),height:Math.round(t.height)}};e.id&&(r.id=e.id);let o=Array.from(e.classList).slice(0,10);o.length>0&&(r.classes=o),n&&(r.text=n.slice(0,300));let s=to(e);return s&&(r.componentName=s),r}function an(e){let t=e.tag;if(e.id)t+=`#${e.id}`;else if(e.classes?.length)t+=`.${e.classes.slice(0,2).join(".")}`;else if(e.componentName)return `<${e.componentName}>`;return t.length>36?t.slice(0,35)+"\u2026":t}function no(e){let t=document.createElement("div");t.setAttribute("data-fork-picker-overlay",""),t.style.cssText=["position: fixed","inset: 0","pointer-events: none","z-index: 2147483001"].join(";");let n=document.createElement("div");n.style.cssText=["position: fixed","display: none",`background: ${ui}`,`border: ${di}`,"border-radius: 2px","pointer-events: none","box-sizing: border-box","transition: all 40ms linear"].join(";");let r=document.createElement("div");r.style.cssText=["position: fixed","display: none","background: #1f2937","color: #ffffff","font: 500 11px/1.4 ui-sans-serif, system-ui, sans-serif","padding: 3px 8px","border-radius: 6px","pointer-events: none","white-space: nowrap","box-shadow: 0 2px 8px rgba(0,0,0,0.25)"].join(";"),t.appendChild(n),t.appendChild(r),document.body.appendChild(t);let o=document.createElement("style");o.textContent="*, * > * { cursor: crosshair !important; }",document.head.appendChild(o);let s=null,i=false,l=()=>{s=null,n.style.display="none",r.style.display="none";},u=g=>{let S=g.getBoundingClientRect();n.style.display="block",n.style.left=`${S.left}px`,n.style.top=`${S.top}px`,n.style.width=`${S.width}px`,n.style.height=`${S.height}px`;let I=to(g),m=g.tagName.toLowerCase();g.id?m+=`#${g.id}`:g.classList.length>0&&(m+=`.${Array.from(g.classList).slice(0,2).join(".")}`),m.length>42&&(m=m.slice(0,41)+"\u2026"),r.textContent=I?`${m} \xB7 ${I} \xB7 ${Math.round(S.width)}\xD7${Math.round(S.height)}`:`${m} \xB7 ${Math.round(S.width)}\xD7${Math.round(S.height)}`,r.style.display="block";let P=S.top>=30?S.top-26:Math.max(4,S.top+4);r.style.top=`${P}px`,r.style.left=`${Math.max(4,Math.min(S.left,window.innerWidth-320))}px`;},h=(g,S)=>{let I=document.elementFromPoint(g,S);return !I||I===document.documentElement||I===document.body||fi(I)?null:I},b=g=>{let S=h(g.clientX,g.clientY);if(!S){l();return}S!==s&&(s=S,u(S));},d=()=>{s&&u(s);},k=g=>{let S=h(g.clientX,g.clientY);if(!S)return;g.preventDefault(),g.stopPropagation();let I=gi(S);f(),e.onPick(I);},R=g=>{h(g.clientX,g.clientY)&&(g.preventDefault(),g.stopPropagation());},v=g=>{g.key==="Escape"&&(g.preventDefault(),g.stopPropagation(),f(),e.onCancel());};function f(){i||(i=true,document.removeEventListener("mousemove",b,true),document.removeEventListener("click",k,true),document.removeEventListener("mousedown",R,true),document.removeEventListener("mouseup",R,true),document.removeEventListener("keydown",v,true),document.removeEventListener("scroll",d,true),window.removeEventListener("resize",d),t.remove(),o.remove());}return document.addEventListener("mousemove",b,true),document.addEventListener("click",k,true),document.addEventListener("mousedown",R,true),document.addEventListener("mouseup",R,true),document.addEventListener("keydown",v,true),document.addEventListener("scroll",d,true),window.addEventListener("resize",d),{stop:f}}function ro(){if(typeof window>"u")return null;let e=window;return e.SpeechRecognition||e.webkitSpeechRecognition||null}function oo(){return ro()!==null}function so(e){let t=ro();if(!t)return null;let n=true,r="",o=null,s=0,i=0,l=()=>{let u=new t;u.lang=typeof navigator<"u"&&navigator.language||"en-US",u.continuous=true,u.interimResults=true,u.onresult=h=>{let b="";for(let d=h.resultIndex;d<h.results.length;d++){let k=h.results[d],R=k[0]?.transcript??"";k.isFinal?r+=R:b+=R;}n&&e.onText(r,b);},u.onerror=h=>{let b=String(h?.error??"");if(b==="no-speech"||b==="aborted")return;n=false;let d=b==="not-allowed"||b==="service-not-allowed"?"not-allowed":b==="network"?"network":"other";e.onError(d);},u.onend=()=>{if(!n)return;let h=Date.now();if(h-s<1e3){if(i++,i>2){n=false,e.onError("other");return}}else i=0;s=h;try{u.start();}catch{try{l();}catch{n=false,e.onError("other");}}},o=u,u.start();};try{l();}catch{return null}return {stop:()=>{n=false;try{o?.stop();}catch{}}}}var lo=35,Ei="Setting up environment",Ri="Built Custom Feature",jn=360,Tt=380;function Kn(e){let t=Date.parse(e);if(Number.isNaN(t))return "";let n=Math.max(1,Math.round((Date.now()-t)/1e3));if(n<60)return `${n}s`;let r=Math.round(n/60);if(r<60)return `${r}m`;let o=Math.round(r/60);return o<24?`${o}h`:`${Math.round(o/24)}d`}function Ii(e){return e.length<=lo?e:e.slice(0,lo-3).trimEnd()+"..."}function Ci({events:e}){let[t,n]=Pn.useState("Setting up environment..."),[r,o]=Pn.useState(true),s=Pn.useRef(t),i=Pn.useRef(false);return Pn.useEffect(()=>{if(!i.current){for(let u of e)if(u.type==="status"&&String(u.data.message||"").includes("Agent started")){i.current=true;break}}let l="Setting up environment...";if(i.current)for(let u=e.length-1;u>=0;u--){let h=e[u];if(h.type==="tool_use"||h.type==="build_start"||h.type==="build_complete"){l=Ii(Bn(h));break}}if(l!==s.current){o(false);let u=setTimeout(()=>{n(l),s.current=l,o(true);},200);return ()=>clearTimeout(u)}},[e]),ls.jsx("span",{style:{fontSize:12.5,color:"#334155",fontWeight:600,opacity:r?1:0,transition:"opacity 0.2s ease",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",minWidth:0},children:t})}function Mi({children:e}){let[t,n]=Pn.useState(null);return Pn.useEffect(()=>{if(typeof document>"u")return;let r=document.createElement("div");r.setAttribute("data-fork-panel-host",""),r.style.cssText="all: initial;",document.body.appendChild(r);let o=r.attachShadow({mode:"open"});return n(o),()=>{r.remove();}},[]),t?as.createPortal(e,t):null}function dn({state:e,fork:t,events:n,error:r,runs:o={},slotId:s,targetId:i,targetLabel:l,historyMode:u="slot",onSubmit:h,onUndo:b,onClose:d,baseUrl:k,apiKey:R,userId:v,userHash:f,appId:g,embedded:S=false,completeVariant:I="bubble"}){let[m,P]=Pn.useState(""),[L,j]=Pn.useState([]),[O,N]=Pn.useState(false),[oe,Y]=Pn.useState(false),[_,F]=Pn.useState(false),[H,D]=Pn.useState(false),[K,V]=Pn.useState(false),[W,X]=Pn.useState(false),[U,C]=Pn.useState(false),[M,w]=Pn.useState(false),[p,$]=Pn.useState(false),[x,q]=Pn.useState(null),[re,Ae]=Pn.useState(false),[Te,Ue]=Pn.useState([]),[Se,te]=Pn.useState(null),[se,lt]=Pn.useState(false),[$e,ke]=Pn.useState(false),[hn,Bt]=Pn.useState(false),[yn,Dt]=Pn.useState(null),[ge,ct]=Pn.useState(null),[tt,jt]=Pn.useState(false),[bt,ut]=Pn.useState(false),[Be,Xe]=Pn.useState(""),wt=Pn.useRef(null),[Kt,Fe]=Pn.useState(null),[xe,dt]=Pn.useState(false),[Ie,zt]=Pn.useState(null),[Ne,ft]=Pn.useState([]),[kn,bn]=Pn.useState(0),[c,y]=Pn.useState(null),[A,z]=Pn.useState(false),Q=Pn.useRef(false),Z=Pn.useRef(null),ne=Pn.useRef(null),[ie,be]=Pn.useState([]),[ce,me]=Pn.useState(null),[ae,de]=Pn.useState(false),we=Pn.useRef(null),[fe,Ee]=Pn.useState(false),Pe=Pn.useRef(null),Le=Pn.useRef(""),[pt,Wt]=Pn.useState(null),qe=Pn.useRef(null),ir=Pn.useRef(null),[Bo,ar]=Pn.useState(false),[Do,lr]=Pn.useState(false),[jo,cr]=Pn.useState(false),[Ko,ur]=Pn.useState(null),{resetAllForks:zo,adminContext:He,setAdminContainer:Wo,currentContainerId:dr,forksPaused:mt,setForksPaused:Jo,forkActivities:fr,markForkActivitySeen:pr}=ve(),Jt=He.containerId??dr,Vt=!!(He.isAdmin&&xe),Vo=!!(He.containerId??dr),[mr,gr]=Pn.useState(false),Oe=Ie!==null,hr=Pn.useRef(d);Pn.useEffect(()=>{hr.current=d;});let wn=Pn.useRef(null),Xt=Pn.useRef(false),yr=typeof window<"u"&&"documentPictureInPicture"in window,Xo=async()=>{if(!(!yr||Oe))try{let a=await window.documentPictureInPicture.requestWindow({width:jn,height:640});a.document.body.style.margin="0",a.document.body.style.padding="0",a.document.body.style.height="100vh",a.document.body.style.overflow="hidden",a.document.body.style.background="#ffffff";try{let T=document.adoptedStyleSheets??[];T.length>0&&(a.document.adoptedStyleSheets=[...T]);}catch{}a.addEventListener("pagehide",()=>{wn.current=null,zt(null),Xt.current||hr.current(),Xt.current=!1;},{once:!0}),wn.current=a,zt(a);}catch(a){console.warn("[Fork] PiP open failed:",a);}},qo=()=>{Ie&&(Xt.current=true,Ie.close());};Pn.useEffect(()=>()=>{Xt.current=true,wn.current?.close();},[]);let vt=i??s??"";(l||vt).replace(/[-_]+/g," ").replace(/\b\w/g,a=>a.toUpperCase());let qt=Pn.useRef(""),St=()=>{let a={Authorization:`Bearer ${R}`,...pe()};return g&&(a["X-Fork-App-Id"]=g),v&&(a["X-Fork-User-Id"]=v),f&&(a["X-Fork-User-Hash"]=f),a},gt=S?true:oe&&!_,Ft=c?o[c]??null:null,vn=c?Ne.find(a=>a.id===c)??null:null,Go=vn?(a=>a==="pending"||a==="running"||a==="building")(vn.status):false,De=c?Ft?.state??(Go?"running":null):A?e:null,ht=c?Ft?.events??[]:A?n:[],Yo=c?Ft?.state==="error"?Ft.error:null:A&&e==="error"?r:null,Sn=c?Ft?.fork??null:A?t:null,Zo=Object.values(o).filter(a=>a.state!=="running").length,kr=c?!!fr.find(a=>a.id===c)?.unread:false;Pn.useEffect(()=>{c&&kr&&pr(c);},[c,kr,pr]);let Qo=ht.find(a=>{let T=a.data;return a.type==="status"&&T.summary})?.data?.summary||Sn?.summary||Ei,nt=ht.find(a=>{let T=a.data;return (a.type==="status"||a.type==="complete")&&typeof T?.estimateMinutes=="number"})?.data?.estimateMinutes??Sn?.estimateMinutes;Pn.useEffect(()=>{if(u==="none"){N(true);return}if(!k||!R)return;if(!c){j([]),N(true);return}let a=new AbortController;return fetch(`${k}/api/v1/forks/${encodeURIComponent(c)}/messages`,{headers:St(),signal:a.signal}).then(T=>T.ok?T.json():[]).then(T=>{if(a.signal.aborted)return;let B=[];for(let G of T){let le=G.forkId??c;if(G.role==="user"){let je=(G.attachments??[]).filter(Me=>Me&&typeof Me.mediaType=="string"&&typeof Me.data=="string").map(Me=>({dataUrl:`data:${Me.mediaType};base64,${Me.data}`}));B.push({type:"user",text:G.content,forkId:le,timestamp:G.timestamp,attachments:je.length>0?je:void 0,selectedElement:G.selectedElement?{label:an(G.selectedElement)}:void 0});}else B.push({type:"applied",text:G.content,forkId:le,timestamp:G.timestamp});}j(B),N(true);}).catch(()=>{a.signal.aborted||N(true);}),()=>{a.abort();}},[R,g,k,u,c,He.containerId,f,v,t?.id,t?.completedAt]),Pn.useEffect(()=>{if(u==="none"||!k||!R||!se)return;if(!Se){ft([]);return}let a=new AbortController,T=new URLSearchParams({container_id:Se});return fetch(`${k}/api/v1/forks?${T.toString()}`,{headers:St(),signal:a.signal}).then(B=>B.ok?B.json():{forks:[]}).then(B=>{a.signal.aborted||ft(B.forks??[]);}).catch(()=>{}),()=>{a.abort();}},[R,g,k,u,Se,se,t?.id,t?.completedAt,Zo,kn,He.containerId,f,v]),Pn.useEffect(()=>{e==="complete"&&w(false);},[e]);let br=Ne.some(a=>a.status==="pending"||a.status==="running"||a.status==="building");Pn.useEffect(()=>{if(!br||!k||!R||!Se)return;let a=new URLSearchParams({container_id:Se}),T=St(),G=setInterval(async()=>{try{let le=await fetch(`${k}/api/v1/forks?${a.toString()}`,{headers:T});if(!le.ok)return;let je=await le.json();ft(je.forks??[]);}catch{}},3e3);return ()=>clearInterval(G)},[br,k,R,g,Se]),Pn.useEffect(()=>{if(S&&u==="none"){Ue([]),te(null),lt(true),dt(false);return}if(He.isAdmin){Fe(null),Ue(He.containers.map(a=>({id:a.id,name:a.name,createdAt:"",hasAccess:true,isPrimary:a.isPrimary}))),te(He.containerId??null),dt(true),lt(true);return}Jt?(Ue([{id:Jt,name:"Primary container",createdAt:""}]),te(Jt)):(Ue([]),te(null)),lt(true),dt(false);},[R,Jt,k,S,u,He.isAdmin,He.containerId,He.containers]);let Gt=Pn.useRef(void 0);Pn.useEffect(()=>{if(se){if(Gt.current===void 0){Gt.current=Se;return}Gt.current!==Se&&(Gt.current=Se,j([]),N(false));}},[Se,se]);let Yt=Pn.useRef(null);Pn.useEffect(()=>{if(!$e)return;let a=B=>{if(!Yt.current)return;let G=typeof B.composedPath=="function"?B.composedPath():[];Yt.current.contains(B.target)||G.includes(Yt.current)||ke(false);},T=B=>{B.key==="Escape"&&ke(false);};return document.addEventListener("mousedown",a,true),document.addEventListener("keydown",T,true),()=>{document.removeEventListener("mousedown",a,true),document.removeEventListener("keydown",T,true);}},[$e]),Pn.useEffect(()=>{if(S||!gt||_||Oe||ae)return;let a=T=>{(typeof T.composedPath=="function"?T.composedPath():[]).some(le=>le instanceof Element&&le.hasAttribute("data-fork-panel-host"))||(F(true),Y(false),setTimeout(()=>d(),Tt));};return document.addEventListener("mousedown",a,true),()=>{document.removeEventListener("mousedown",a,true);}},[S,gt,_,Oe,ae,d]),Pn.useEffect(()=>{$e||(ut(false),Xe(""));},[$e]),Pn.useEffect(()=>{bt&&(wt.current?.focus(),wt.current?.select());},[bt]),Pn.useEffect(()=>{if(S)return;let a=requestAnimationFrame(()=>Y(true));return ()=>cancelAnimationFrame(a)},[S]),Pn.useEffect(()=>{let a=S||Oe;if((a||gt)&&(e==="prompting"||e==="complete")){let T=setTimeout(()=>Z.current?.focus(),a?100:Tt+100);return ()=>clearTimeout(T)}},[gt,S,Oe,e]);let wr=Pn.useRef(new Set);Pn.useEffect(()=>{for(let a of Object.values(o)){if(a.state!=="complete"||a.events.length===0)continue;let T=`${a.forkId}:${a.fork.completedAt??""}`;if(wr.current.has(T))continue;wr.current.add(T);let G=a.events.find(le=>le.type==="complete")?.data?.summary||a.fork.summary||Ri;j(le=>{let je=[...le].reverse().find(Me=>Me.forkId===a.forkId);return je?.type==="applied"&&je.text===G?le:[...le,{type:"applied",text:G,forkId:a.forkId,timestamp:a.fork.completedAt??new Date().toISOString()}]});}},[o]),Pn.useEffect(()=>{De==="complete"&&qt.current&&(P(""),setTimeout(()=>Z.current?.focus(),200));},[De]),Pn.useEffect(()=>{ne.current&&(ne.current.scrollTop=ne.current.scrollHeight);},[L,e]),Pn.useEffect(()=>{let a=Z.current;a&&(a.style.height="auto",a.style.height=Math.min(a.scrollHeight,160)+"px");},[m]);let Ge=a=>{Wt(a),qe.current&&clearTimeout(qe.current),qe.current=setTimeout(()=>{qe.current=null,Wt(null);},3200);},vr=async a=>{if(a.length===0)return;let T=4-ie.length;if(T<=0){Ge(`Up to ${4} images per prompt`);return}a.length>T&&Ge(`Up to ${4} images per prompt`);let G=(await Promise.all(a.slice(0,T).map(Qr))).filter(le=>le!==null);G.length!==0&&(be(le=>[...le,...G].slice(0,4)),Z.current?.focus());},Sr=()=>{we.current?.stop(),we.current=null,de(false);},es=()=>{if(ae){Sr();return}de(true),Ge("Click an element on the page \xB7 Esc to cancel"),we.current=no({onPick:a=>{we.current=null,de(false),me(a),Z.current?.focus();},onCancel:()=>{we.current=null,de(false);}});},Fr=()=>{Pe.current?.stop(),Pe.current=null,Ee(false);},ts=()=>{if(fe){Fr();return}if(!oo()){Ge("Voice input is coming soon for this browser");return}let a=m.length>0&&!m.endsWith(" ")?m+" ":m;Le.current=a;let T=so({onText:(B,G)=>{P(Le.current+B+G);},onError:B=>{Pe.current=null,Ee(false),Ge(B==="not-allowed"?"Microphone access is blocked":B==="network"?"Voice input is coming soon for this browser":"Voice input stopped");}});if(!T){Ge("Voice input is coming soon for this browser");return}Pe.current=T,Ee(true);};Pn.useEffect(()=>()=>{we.current?.stop(),Pe.current?.stop(),qe.current&&clearTimeout(qe.current);},[]);let yt=!!(m.trim()||ie.length>0),xr=()=>{if(!yt)return;fe&&Fr(),ae&&Sr();let a=m.trim()||"See the attached screenshot.";qt.current=a;let T={};ie.length>0&&(T.attachments=ie.map(({mediaType:G,data:le})=>({mediaType:G,data:le}))),ce&&(T.selectedElement=ce);let B=A||!c;B?(T.forceNew=true,Q.current=true,A||z(true)):T.forkId=c,B||j(G=>[...G,{type:"user",text:a,forkId:c,attachments:ie.length>0?ie.map(le=>({dataUrl:le.dataUrl})):void 0,selectedElement:ce?{label:an(ce)}:void 0}]),h(a,vt,Se,T),P(""),be([]),me(null);};Pn.useEffect(()=>{if(Q.current){if(e==="error"){Q.current=false;return}t?.id&&(y(t.id),z(false),Q.current=false);}},[t?.id,e]);let Ar=Pn.useRef(new Set);Pn.useEffect(()=>{t?.id&&(Q.current||e!=="running"&&e!=="complete"||Ar.current.has(t.id)||(Ar.current.add(t.id),y(a=>a??t.id),z(false)));},[t?.id,e]);let Er=a=>{Wo(a.container.id,a.container.name),te(a.container.id),Ue(T=>{let B=T.filter(G=>G.id!==a.container.id);return [{...a.container,isPrimary:true,hasAccess:true},...B.map(G=>({...G,isPrimary:false}))]}),y(null),z(false),Q.current=false,j([]),N(false),qt.current="";},ns=async a=>{if(!(!Vt||ge)){ct(a),Fe(null);try{let T=await fetch(`${k}/api/v1/admin/containers/${encodeURIComponent(a)}/primary`,{method:"POST",headers:St()});if(!T.ok){let B=await T.json().catch(()=>({}));throw new Error(B.error||`API error: ${T.status}`)}Er(await T.json()),ke(!1);}catch(T){Fe(T instanceof Error?T.message:String(T));}finally{ct(null);}}},Rr=async a=>{if(!Vt||ge)return;let T=a.trim();if(T){ct("__new__"),Fe(null);try{let B=await fetch(`${k}/api/v1/admin/containers`,{method:"POST",headers:{...St(),"Content-Type":"application/json"},body:JSON.stringify({name:T})});if(!B.ok){let G=await B.json().catch(()=>({}));throw new Error(G.error||`API error: ${B.status}`)}Er(await B.json()),ut(!1),Xe(""),ke(!1);}catch(B){Fe(B instanceof Error?B.message:String(B));}finally{ct(null);}}},Ir=async()=>{if(!(!b||p||!vt)){$(true);try{(await b(vt,c))?.removed?(j([]),y(null),z(!1),Q.current=!1):j(T=>{let B=[...T];return B.length>=2&&B[B.length-1]?.type==="applied"?B.splice(-2,2):B.length>=1&&B[B.length-1]?.type==="applied"&&B.splice(-1,1),B}),bn(T=>T+1);}catch{}finally{$(false);}}},Cr=()=>{if(S){d();return}if(Oe){Ie?.close();return}F(true),Y(false),setTimeout(()=>d(),Tt);},rs=S||Oe?{position:"relative",width:"100%",height:"100%",background:"#ffffff",display:"flex",flexDirection:"column",fontFamily:'ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif'}:{position:"fixed",top:0,right:0,bottom:0,zIndex:2147483e3,width:jn,maxWidth:"100vw",background:"#ffffff",boxShadow:gt?"-12px 0 32px -16px rgba(0, 0, 0, 0.18), -2px 0 8px -2px rgba(0, 0, 0, 0.06)":"none",borderLeft:"1px solid rgba(0, 0, 0, 0.08)",transform:gt?"translateX(0)":"translateX(100%)",transition:`transform ${Tt}ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow ${Tt}ms ease`,display:"flex",flexDirection:"column",fontFamily:'ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif'},Mr=Te.find(a=>a.id===Se)?.name??(se?"Fork":"Loading..."),xt=A?[]:c?L.filter(a=>a.forkId===c||a.forkId==null):L,Fn=ls.jsxs(ls.Fragment,{children:[ls.jsx("style",{children:`
36
+ `}),Js.jsxs("div",{className:"__fork-stream",ref:t,style:{scrollbarWidth:"thin",scrollbarColor:"rgba(255, 255, 255, 0.15) transparent",backgroundColor:"#1a1a2e",borderRadius:"8px",padding:"12px",fontFamily:"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace",fontSize:"11px",maxHeight:"300px",overflowY:"auto",boxSizing:"border-box"},children:[e.length===0&&Js.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"6px",color:"#6b7280",fontSize:"11px"},children:[Js.jsx(lucideReact.Loader2,{style:{width:"12px",height:"12px",animation:"__fork-spin 1s linear infinite",flexShrink:0}}),"Connecting to agent..."]}),e.map((n,r)=>{let o=r===e.length-1,i=n.type==="complete"||n.type==="error"||n.type==="build_complete"||n.type==="build_error",a=o&&!i&&(n.type==="status"||n.type==="tool_use"||n.type==="build_start"),l=Bi[n.type]||lucideReact.Code,d=Di[n.type]||"#9ca3af";if(n.type==="tool_use"){let S=String(n.data.category||"");l=ji[S]||lucideReact.Wrench,d=zi[S]||"#fbbf24";}return a?l=lucideReact.Loader2:!o&&n.type==="status"&&(l=lucideReact.Check,d="#4ade80"),Js.jsxs("div",{style:{display:"flex",gap:"6px",marginBottom:"6px",lineHeight:1.625},children:[Js.jsx(l,{style:{width:"12px",height:"12px",marginTop:"2px",flexShrink:0,color:d,...a?{animation:"__fork-spin 1s linear infinite"}:{}}}),Js.jsx("span",{style:{color:o&&!i?"#d1d5db":"#6b7280",wordBreak:"break-all"},children:fr(n)})]},r)})]})]})}var Wi=0;function Ji(e){let t=/^data:([^;,]+);base64,(.+)$/.exec(e);return t?{mediaType:t[1],data:t[2]}:null}function Vi(e){return new Promise((t,n)=>{let r=URL.createObjectURL(e),o=new Image;o.onload=()=>{URL.revokeObjectURL(r),t(o);},o.onerror=()=>{URL.revokeObjectURL(r),n(new Error("Failed to decode image"));},o.src=r;})}async function _o(e){if(!e.type.startsWith("image/"))return null;let t;try{t=await Vi(e);}catch{return null}let{naturalWidth:n,naturalHeight:r}=t;if(!n||!r)return null;let o=Math.min(1,1568/Math.max(n,r)),i=document.createElement("canvas");i.width=Math.max(1,Math.round(n*o)),i.height=Math.max(1,Math.round(r*o));let a=i.getContext("2d");if(!a)return null;a.fillStyle="#ffffff",a.fillRect(0,0,i.width,i.height),a.drawImage(t,0,0,i.width,i.height);let l=i.toDataURL("image/png");l.length>2e6&&(l=i.toDataURL("image/jpeg",.85));let d=Ji(l);return d?{id:`img-${++Wi}-${Date.now().toString(36)}`,dataUrl:l,mediaType:d.mediaType,data:d.data}:null}function Lo(e){let t=e.clipboardData?.items;if(!t)return [];let n=[];for(let r=0;r<t.length;r++){let o=t[r];if(o.kind==="file"&&o.type.startsWith("image/")){let i=o.getAsFile();i&&n.push(i);}}return n}var Xi="rgba(59, 130, 246, 0.16)",qi="1px solid #3b82f6";function Gi(e){let t=e;for(;t;){if(t.hasAttribute("data-fork-panel-host")||t.hasAttribute("data-fork-button-host")||t.hasAttribute("data-fork-picker-overlay"))return true;let n=t.getRootNode();t=t.parentElement??(n instanceof ShadowRoot?n.host:null);}return false}function Ho(e){let t=Object.keys(e).find(o=>o.startsWith("__reactFiber$")||o.startsWith("__reactInternalInstance$"));if(!t)return;let n=e[t],r=0;for(;n&&r<30;){let o=n.type;if(typeof o=="function"){let i=o.displayName||o.name;if(i&&!/^(styled|ForwardRef|Anonymous)/.test(i))return i}else if(typeof o=="object"&&o!==null){let i=o.displayName||o.render?.displayName||o.render?.name;if(i)return i}n=n.return,r++;}}function Yi(e){let t=[],n=e,r=0;for(;n&&n!==document.body&&r<6;){let o=n.tagName.toLowerCase();if(n.id){t.unshift(`#${CSS.escape(n.id)}`);break}let i=Array.from(n.classList).filter(a=>!/[[\]:]/.test(a)).slice(0,2);if(i.length>0)o+="."+i.map(a=>CSS.escape(a)).join(".");else if(n.parentElement){let a=Array.from(n.parentElement.children).filter(l=>l.tagName===n.tagName);a.length>1&&(o+=`:nth-of-type(${a.indexOf(n)+1})`);}t.unshift(o),n=n.parentElement,r++;}return t.join(" > ")}function Zi(e){let t=e.outerHTML;if(t.length>2e3){let n=t.indexOf(">");n>-1&&n<1900?t=t.slice(0,2e3)+`
37
+ <!-- \u2026truncated\u2026 -->`:t=t.slice(0,2e3);}return t}function Qi(e){let t=e.getBoundingClientRect(),n=(e.textContent??"").replace(/\s+/g," ").trim(),r={tag:e.tagName.toLowerCase(),selector:Yi(e),html:Zi(e),rect:{x:Math.round(t.x),y:Math.round(t.y),width:Math.round(t.width),height:Math.round(t.height)}};e.id&&(r.id=e.id);let o=Array.from(e.classList).slice(0,10);o.length>0&&(r.classes=o),n&&(r.text=n.slice(0,300));let i=Ho(e);return i&&(r.componentName=i),r}function Ln(e){let t=e.tag;if(e.id)t+=`#${e.id}`;else if(e.classes?.length)t+=`.${e.classes.slice(0,2).join(".")}`;else if(e.componentName)return `<${e.componentName}>`;return t.length>36?t.slice(0,35)+"\u2026":t}function Oo(e){let t=document.createElement("div");t.setAttribute("data-fork-picker-overlay",""),t.style.cssText=["position: fixed","inset: 0","pointer-events: none","z-index: 2147483001"].join(";");let n=document.createElement("div");n.style.cssText=["position: fixed","display: none",`background: ${Xi}`,`border: ${qi}`,"border-radius: 2px","pointer-events: none","box-sizing: border-box","transition: all 40ms linear"].join(";");let r=document.createElement("div");r.style.cssText=["position: fixed","display: none","background: #1f2937","color: #ffffff","font: 500 11px/1.4 ui-sans-serif, system-ui, sans-serif","padding: 3px 8px","border-radius: 6px","pointer-events: none","white-space: nowrap","box-shadow: 0 2px 8px rgba(0,0,0,0.25)"].join(";"),t.appendChild(n),t.appendChild(r),document.body.appendChild(t);let o=document.createElement("style");o.textContent="*, * > * { cursor: crosshair !important; }",document.head.appendChild(o);let i=null,a=false,l=()=>{i=null,n.style.display="none",r.style.display="none";},d=u=>{let $=u.getBoundingClientRect();n.style.display="block",n.style.left=`${$.left}px`,n.style.top=`${$.top}px`,n.style.width=`${$.width}px`,n.style.height=`${$.height}px`;let F=Ho(u),m=u.tagName.toLowerCase();u.id?m+=`#${u.id}`:u.classList.length>0&&(m+=`.${Array.from(u.classList).slice(0,2).join(".")}`),m.length>42&&(m=m.slice(0,41)+"\u2026"),r.textContent=F?`${m} \xB7 ${F} \xB7 ${Math.round($.width)}\xD7${Math.round($.height)}`:`${m} \xB7 ${Math.round($.width)}\xD7${Math.round($.height)}`,r.style.display="block";let L=$.top>=30?$.top-26:Math.max(4,$.top+4);r.style.top=`${L}px`,r.style.left=`${Math.max(4,Math.min($.left,window.innerWidth-320))}px`;},S=(u,$)=>{let F=document.elementFromPoint(u,$);return !F||F===document.documentElement||F===document.body||Gi(F)?null:F},A=u=>{let $=S(u.clientX,u.clientY);if(!$){l();return}$!==i&&(i=$,d($));},h=()=>{i&&d(i);},C=u=>{let $=S(u.clientX,u.clientY);if(!$)return;u.preventDefault(),u.stopPropagation();let F=Qi($);p(),e.onPick(F);},N=u=>{S(u.clientX,u.clientY)&&(u.preventDefault(),u.stopPropagation());},R=u=>{u.key==="Escape"&&(u.preventDefault(),u.stopPropagation(),p(),e.onCancel());};function p(){a||(a=true,document.removeEventListener("mousemove",A,true),document.removeEventListener("click",C,true),document.removeEventListener("mousedown",N,true),document.removeEventListener("mouseup",N,true),document.removeEventListener("keydown",R,true),document.removeEventListener("scroll",h,true),window.removeEventListener("resize",h),t.remove(),o.remove());}return document.addEventListener("mousemove",A,true),document.addEventListener("click",C,true),document.addEventListener("mousedown",N,true),document.addEventListener("mouseup",N,true),document.addEventListener("keydown",R,true),document.addEventListener("scroll",h,true),window.addEventListener("resize",h),{stop:p}}function No(){if(typeof window>"u")return null;let e=window;return e.SpeechRecognition||e.webkitSpeechRecognition||null}function Uo(){return No()!==null}function Bo(e){let t=No();if(!t)return null;let n=true,r="",o=null,i=0,a=0,l=()=>{let d=new t;d.lang=typeof navigator<"u"&&navigator.language||"en-US",d.continuous=true,d.interimResults=true,d.onresult=S=>{let A="";for(let h=S.resultIndex;h<S.results.length;h++){let C=S.results[h],N=C[0]?.transcript??"";C.isFinal?r+=N:A+=N;}n&&e.onText(r,A);},d.onerror=S=>{let A=String(S?.error??"");if(A==="no-speech"||A==="aborted")return;n=false;let h=A==="not-allowed"||A==="service-not-allowed"?"not-allowed":A==="network"?"network":"other";e.onError(h);},d.onend=()=>{if(!n)return;let S=Date.now();if(S-i<1e3){if(a++,a>2){n=false,e.onError("other");return}}else a=0;i=S;try{d.start();}catch{try{l();}catch{n=false,e.onError("other");}}},o=d,d.start();};try{l();}catch{return null}return {stop:()=>{n=false;try{o?.stop();}catch{}}}}var zo=35,ua="Setting up environment",fa="Built Custom Feature",gr=360,en=380;function mr(e){let t=Date.parse(e);if(Number.isNaN(t))return "";let n=Math.max(1,Math.round((Date.now()-t)/1e3));if(n<60)return `${n}s`;let r=Math.round(n/60);if(r<60)return `${r}m`;let o=Math.round(r/60);return o<24?`${o}h`:`${Math.round(o/24)}d`}function pa(e){return e.length<=zo?e:e.slice(0,zo-3).trimEnd()+"..."}function ga({events:e}){let[t,n]=sr.useState("Setting up environment..."),[r,o]=sr.useState(true),i=sr.useRef(t),a=sr.useRef(false);return sr.useEffect(()=>{if(!a.current){for(let d of e)if(d.type==="status"&&String(d.data.message||"").includes("Agent started")){a.current=true;break}}let l="Setting up environment...";if(a.current)for(let d=e.length-1;d>=0;d--){let S=e[d];if(S.type==="tool_use"||S.type==="build_start"||S.type==="build_complete"){l=pa(fr(S));break}}if(l!==i.current){o(false);let d=setTimeout(()=>{n(l),i.current=l,o(true);},200);return ()=>clearTimeout(d)}},[e]),Js.jsx("span",{style:{fontSize:12.5,color:"#334155",fontWeight:600,opacity:r?1:0,transition:"opacity 0.2s ease",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",minWidth:0},children:t})}function ma({children:e}){let[t,n]=sr.useState(null);return sr.useEffect(()=>{if(typeof document>"u")return;let r=document.createElement("div");r.setAttribute("data-fork-panel-host",""),r.style.cssText="all: initial;",document.body.appendChild(r);let o=r.attachShadow({mode:"open"});return n(o),()=>{r.remove();}},[]),t?Ws.createPortal(e,t):null}function Nn({state:e,fork:t,events:n,error:r,runs:o={},slotId:i,targetId:a,targetLabel:l,historyMode:d="slot",onSubmit:S,onUndo:A,onPlanRevert:h,onRevert:C,onSetForkDisabled:N,onRenameFork:R,onClose:p,baseUrl:u,apiKey:$,userId:F,userHash:m,appId:L,embedded:U=false,completeVariant:D="bubble"}){let[P,H]=sr.useState(""),[B,z]=sr.useState([]),[_,x]=sr.useState(false),[O,V]=sr.useState(false),[X,Y]=sr.useState(false),[G,Z]=sr.useState(false),[re,pe]=sr.useState(false),[oe,ye]=sr.useState(false),[te,f]=sr.useState(false),[b,E]=sr.useState(false),[c,y]=sr.useState(false),[I,K]=sr.useState(null),[Q,J]=sr.useState(null),[ae,ct]=sr.useState(null),[ke,Le]=sr.useState(false),[un,$e]=sr.useState(null),[fn,At]=sr.useState(0),[dt,ut]=sr.useState(null),[tt,Rt]=sr.useState(null),[Et,pn]=sr.useState(false),[It,ft]=sr.useState(null),[gn,pt]=sr.useState(""),[Ee,Ie]=sr.useState(false),[mn,ze]=sr.useState(false),[Dt,Ve]=sr.useState([]),[Te,gt]=sr.useState(null),[mt,g]=sr.useState(false),[v,M]=sr.useState(false),[ee,ue]=sr.useState(false),[le,de]=sr.useState(null),[se,Fe]=sr.useState(null),[we,Se]=sr.useState(false),[me,he]=sr.useState(false),[Ae,be]=sr.useState(""),Me=sr.useRef(null),[Xe,Pe]=sr.useState(null),[jt,zt]=sr.useState(false),[nt,$r]=sr.useState(null),[Ct,hn]=sr.useState([]),[vs,ws]=sr.useState(0),[ce,qe]=sr.useState(null),[Ke,Ge]=sr.useState(false),rt=sr.useRef(false),Tt=sr.useRef(null),yn=sr.useRef(null),[ot,zn]=sr.useState([]),[ht,Kn]=sr.useState(null),[yt,kn]=sr.useState(false),$t=sr.useRef(null),[Mt,Wn]=sr.useState(false),Kt=sr.useRef(null),Mr=sr.useRef(""),[Pr,_r]=sr.useState(null),Pt=sr.useRef(null),Lr=sr.useRef(null),[Ss,Hr]=sr.useState(false),[xs,Or]=sr.useState(false),[Fs,Nr]=sr.useState(false),[As,Ur]=sr.useState(null),{resetAllForks:Rs,adminContext:De,setAdminContainer:Es,currentContainerId:Br,forksPaused:_t,setForksPaused:Is,forkActivities:Dr,markForkActivitySeen:jr}=Ce(),bn=De.containerId??Br,vn=!!(De.isAdmin&&jt),Cs=!!(De.containerId??Br),[zr,Kr]=sr.useState(false),je=nt!==null,Wr=sr.useRef(p);sr.useEffect(()=>{Wr.current=p;});let Jn=sr.useRef(null),wn=sr.useRef(false),Jr=typeof window<"u"&&"documentPictureInPicture"in window,Ts=async()=>{if(!(!Jr||je))try{let s=await window.documentPictureInPicture.requestWindow({width:gr,height:640});s.document.body.style.margin="0",s.document.body.style.padding="0",s.document.body.style.height="100vh",s.document.body.style.overflow="hidden",s.document.body.style.background="#ffffff";try{let w=document.adoptedStyleSheets??[];w.length>0&&(s.document.adoptedStyleSheets=[...w]);}catch{}s.addEventListener("pagehide",()=>{Jn.current=null,$r(null),wn.current||Wr.current(),wn.current=!1;},{once:!0}),Jn.current=s,$r(s);}catch(s){console.warn("[Fork] PiP open failed:",s);}},$s=()=>{nt&&(wn.current=true,nt.close());};sr.useEffect(()=>()=>{wn.current=true,Jn.current?.close();},[]);let Wt=a??i??"";(l||Wt).replace(/[-_]+/g," ").replace(/\b\w/g,s=>s.toUpperCase());let Sn=sr.useRef(""),Jt=()=>{let s={Authorization:`Bearer ${$}`,...fe()};return L&&(s["X-Fork-App-Id"]=L),F&&(s["X-Fork-User-Id"]=F),m&&(s["X-Fork-User-Hash"]=m),s},Lt=U?true:O&&!X,Vt=ce?o[ce]??null:null,Vn=ce?Ct.find(s=>s.id===ce)??null:null,Ms=Vn?(s=>s==="pending"||s==="running"||s==="building")(Vn.status):false,We=ce?Vt?.state??(Ms?"running":null):Ke?e:null,Ht=ce?Vt?.events??[]:Ke?n:[],Ps=ce?Vt?.state==="error"?Vt.error:null:Ke&&e==="error"?r:null,Xn=ce?Vt?.fork??null:Ke?t:null,_s=Object.values(o).filter(s=>s.state!=="running").length,Vr=ce?!!Dr.find(s=>s.id===ce)?.unread:false;sr.useEffect(()=>{ce&&Vr&&jr(ce);},[ce,Vr,jr]);let Ls=Ht.find(s=>{let w=s.data;return s.type==="status"&&w.summary})?.data?.summary||Xn?.summary||ua,kt=Ht.find(s=>{let w=s.data;return (s.type==="status"||s.type==="complete")&&typeof w?.estimateMinutes=="number"})?.data?.estimateMinutes??Xn?.estimateMinutes;sr.useEffect(()=>{if(d==="none"){x(true);return}if(!u||!$)return;if(!ce){z([]),x(true);return}let s=new AbortController;return fetch(`${u}/api/v1/forks/${encodeURIComponent(ce)}/messages`,{headers:Jt(),signal:s.signal}).then(w=>w.ok?w.json():[]).then(w=>{if(s.signal.aborted)return;let T=[];for(let j of w){let ie=j.forkId??ce,ve={promptId:j.promptId??null,promptKind:j.promptKind??null,reverted:!!j.reverted};if(j.role==="user"){let Ye=(j.attachments??[]).filter(He=>He&&typeof He.mediaType=="string"&&typeof He.data=="string").map(He=>({dataUrl:`data:${He.mediaType};base64,${He.data}`}));T.push({type:"user",text:j.content,forkId:ie,timestamp:j.timestamp,attachments:Ye.length>0?Ye:void 0,selectedElement:j.selectedElement?{label:Ln(j.selectedElement)}:void 0,...ve});}else T.push({type:"applied",text:j.content,forkId:ie,timestamp:j.timestamp,...ve});}z(T),x(true);}).catch(()=>{s.signal.aborted||x(true);}),()=>{s.abort();}},[$,L,u,d,ce,De.containerId,m,F,t?.id,t?.completedAt,fn]),sr.useEffect(()=>{if(d==="none"||!u||!$||!mt)return;if(!Te){hn([]);return}let s=new AbortController,w=new URLSearchParams({container_id:Te});return fetch(`${u}/api/v1/forks?${w.toString()}`,{headers:Jt(),signal:s.signal}).then(T=>T.ok?T.json():{forks:[]}).then(T=>{s.signal.aborted||hn(T.forks??[]);}).catch(()=>{}),()=>{s.abort();}},[$,L,u,d,Te,mt,t?.id,t?.completedAt,_s,vs,De.containerId,m,F,fn]),sr.useEffect(()=>{e==="complete"&&E(false);},[e]);let Xr=Ct.some(s=>s.status==="pending"||s.status==="running"||s.status==="building");sr.useEffect(()=>{if(!Xr||!u||!$||!Te)return;let s=new URLSearchParams({container_id:Te}),w=Jt(),j=setInterval(async()=>{try{let ie=await fetch(`${u}/api/v1/forks?${s.toString()}`,{headers:w});if(!ie.ok)return;let ve=await ie.json();hn(ve.forks??[]);}catch{}},3e3);return ()=>clearInterval(j)},[Xr,u,$,L,Te]),sr.useEffect(()=>{if(U&&d==="none"){Ve([]),gt(null),g(true),zt(false);return}if(De.isAdmin){Pe(null),Ve(De.containers.map(s=>({id:s.id,name:s.name,createdAt:"",hasAccess:true,isPrimary:s.isPrimary}))),gt(De.containerId??null),zt(true),g(true);return}bn?(Ve([{id:bn,name:"Primary container",createdAt:""}]),gt(bn)):(Ve([]),gt(null)),g(true),zt(false);},[$,bn,u,U,d,De.isAdmin,De.containerId,De.containers]);let xn=sr.useRef(void 0);sr.useEffect(()=>{if(mt){if(xn.current===void 0){xn.current=Te;return}xn.current!==Te&&(xn.current=Te,z([]),x(false));}},[Te,mt]);let Fn=sr.useRef(null);sr.useEffect(()=>{if(!v)return;let s=T=>{if(!Fn.current)return;let j=typeof T.composedPath=="function"?T.composedPath():[];Fn.current.contains(T.target)||j.includes(Fn.current)||M(false);},w=T=>{T.key==="Escape"&&M(false);};return document.addEventListener("mousedown",s,true),document.addEventListener("keydown",w,true),()=>{document.removeEventListener("mousedown",s,true),document.removeEventListener("keydown",w,true);}},[v]),sr.useEffect(()=>{if(U||!Lt||X||je||yt)return;let s=w=>{(typeof w.composedPath=="function"?w.composedPath():[]).some(ie=>ie instanceof Element&&ie.hasAttribute("data-fork-panel-host"))||(Y(true),V(false),setTimeout(()=>p(),en));};return document.addEventListener("mousedown",s,true),()=>{document.removeEventListener("mousedown",s,true);}},[U,Lt,X,je,yt,p]),sr.useEffect(()=>{v||(he(false),be(""));},[v]),sr.useEffect(()=>{me&&(Me.current?.focus(),Me.current?.select());},[me]),sr.useEffect(()=>{if(U)return;let s=requestAnimationFrame(()=>V(true));return ()=>cancelAnimationFrame(s)},[U]),sr.useEffect(()=>{let s=U||je;if((s||Lt)&&(e==="prompting"||e==="complete")){let w=setTimeout(()=>Tt.current?.focus(),s?100:en+100);return ()=>clearTimeout(w)}},[Lt,U,je,e]);let qr=sr.useRef(new Set);sr.useEffect(()=>{for(let s of Object.values(o)){if(s.state!=="complete"||s.events.length===0)continue;let w=`${s.forkId}:${s.fork.completedAt??""}`;if(qr.current.has(w))continue;qr.current.add(w);let j=s.events.find(ie=>ie.type==="complete")?.data?.summary||s.fork.summary||fa;z(ie=>{let ve=[...ie].reverse().find(Ye=>Ye.forkId===s.forkId);return ve?.type==="applied"&&ve.text===j?ie:[...ie,{type:"applied",text:j,forkId:s.forkId,timestamp:s.fork.completedAt??new Date().toISOString()}]});}},[o]),sr.useEffect(()=>{We==="complete"&&Sn.current&&(H(""),setTimeout(()=>Tt.current?.focus(),200));},[We]),sr.useEffect(()=>{yn.current&&(yn.current.scrollTop=yn.current.scrollHeight);},[B,e]),sr.useEffect(()=>{let s=Tt.current;s&&(s.style.height="auto",s.style.height=Math.min(s.scrollHeight,160)+"px");},[P]);let st=s=>{_r(s),Pt.current&&clearTimeout(Pt.current),Pt.current=setTimeout(()=>{Pt.current=null,_r(null);},3200);},Gr=async s=>{if(s.length===0)return;let w=4-ot.length;if(w<=0){st(`Up to ${4} images per prompt`);return}s.length>w&&st(`Up to ${4} images per prompt`);let j=(await Promise.all(s.slice(0,w).map(_o))).filter(ie=>ie!==null);j.length!==0&&(zn(ie=>[...ie,...j].slice(0,4)),Tt.current?.focus());},Yr=()=>{$t.current?.stop(),$t.current=null,kn(false);},Hs=()=>{if(yt){Yr();return}kn(true),st("Click an element on the page \xB7 Esc to cancel"),$t.current=Oo({onPick:s=>{$t.current=null,kn(false),Kn(s),Tt.current?.focus();},onCancel:()=>{$t.current=null,kn(false);}});},Zr=()=>{Kt.current?.stop(),Kt.current=null,Wn(false);},Os=()=>{if(Mt){Zr();return}if(!Uo()){st("Voice input is coming soon for this browser");return}let s=P.length>0&&!P.endsWith(" ")?P+" ":P;Mr.current=s;let w=Bo({onText:(T,j)=>{H(Mr.current+T+j);},onError:T=>{Kt.current=null,Wn(false),st(T==="not-allowed"?"Microphone access is blocked":T==="network"?"Voice input is coming soon for this browser":"Voice input stopped");}});if(!w){st("Voice input is coming soon for this browser");return}Kt.current=w,Wn(true);};sr.useEffect(()=>()=>{$t.current?.stop(),Kt.current?.stop(),Pt.current&&clearTimeout(Pt.current);},[]);let Ot=!!(P.trim()||ot.length>0),Qr=()=>{if(!Ot)return;Mt&&Zr(),yt&&Yr();let s=P.trim()||"See the attached screenshot.";Sn.current=s;let w={};ot.length>0&&(w.attachments=ot.map(({mediaType:j,data:ie})=>({mediaType:j,data:ie}))),ht&&(w.selectedElement=ht);let T=Ke||!ce;T?(w.forceNew=true,rt.current=true,Ke||Ge(true)):w.forkId=ce,T||z(j=>[...j,{type:"user",text:s,forkId:ce,attachments:ot.length>0?ot.map(ie=>({dataUrl:ie.dataUrl})):void 0,selectedElement:ht?{label:Ln(ht)}:void 0}]),S(s,Wt,Te,w),H(""),zn([]),Kn(null);};sr.useEffect(()=>{if(rt.current){if(e==="error"){rt.current=false;return}t?.id&&(qe(t.id),Ge(false),rt.current=false);}},[t?.id,e]);let eo=sr.useRef(new Set);sr.useEffect(()=>{t?.id&&(rt.current||e!=="running"&&e!=="complete"||eo.current.has(t.id)||(eo.current.add(t.id),qe(s=>s??t.id),Ge(false)));},[t?.id,e]);let to=s=>{Es(s.container.id,s.container.name),gt(s.container.id),Ve(w=>{let T=w.filter(j=>j.id!==s.container.id);return [{...s.container,isPrimary:true,hasAccess:true},...T.map(j=>({...j,isPrimary:false}))]}),qe(null),Ge(false),rt.current=false,z([]),x(false),Sn.current="";},Ns=async s=>{if(!(!vn||se)){Fe(s),Pe(null);try{let w=await fetch(`${u}/api/v1/admin/containers/${encodeURIComponent(s)}/primary`,{method:"POST",headers:Jt()});if(!w.ok){let T=await w.json().catch(()=>({}));throw new Error(T.error||`API error: ${w.status}`)}to(await w.json()),M(!1);}catch(w){Pe(w instanceof Error?w.message:String(w));}finally{Fe(null);}}},no=async s=>{if(!vn||se)return;let w=s.trim();if(w){Fe("__new__"),Pe(null);try{let T=await fetch(`${u}/api/v1/admin/containers`,{method:"POST",headers:{...Jt(),"Content-Type":"application/json"},body:JSON.stringify({name:w})});if(!T.ok){let j=await T.json().catch(()=>({}));throw new Error(j.error||`API error: ${T.status}`)}to(await T.json()),he(!1),be(""),M(!1);}catch(T){Pe(T instanceof Error?T.message:String(T));}finally{Fe(null);}}},ro=async()=>{if(!(!A||c||!Wt)){y(true);try{(await A(Wt,ce))?.removed?(z([]),qe(null),Ge(!1),rt.current=!1):z(w=>{let T=[...w];return T.length>=2&&T[T.length-1]?.type==="applied"?T.splice(-2,2):T.length>=1&&T[T.length-1]?.type==="applied"&&T.splice(-1,1),T}),ws(w=>w+1);}catch{}finally{y(false);}}},oo=async(s,w)=>{if(!h||!s.forkId||!s.promptId||ke)return;let T=s.forkId,j=s.promptId;$e(null),ct(j),J({forkId:T,promptId:j,mode:w,scope:"step",plan:null});try{let ie=await h(T,j,w);J(ve=>ve&&ve.forkId===T&&ve.promptId===j&&ve.mode===w?{...ve,plan:ie}:ve);}catch(ie){$e(ie instanceof Error?ie.message:String(ie)),J(ve=>ve&&ve.forkId===T&&ve.promptId===j?null:ve);}finally{ct(null);}},Us=async s=>{if(!(!h||ke)){ut(null),$e(null),ct(s),J({forkId:s,mode:"remove_step",scope:"fork",plan:null});try{let w=await h(s,void 0,"remove_step");J(T=>T&&T.forkId===s&&T.scope==="fork"?{...T,plan:w}:T);}catch(w){let T=w instanceof Error?w.message:String(w);Rt(s),$e(/not found/i.test(T)?`Error: ${T} for this fork`:`Error: ${T}`),J(j=>j&&j.forkId===s?null:j);}finally{ct(null);}}},so=async()=>{if(!(!R||!It||Ee)){Ie(true),$e(null);try{await R(It,gn.trim()),ft(null),pt(""),At(s=>s+1);}catch(s){$e(s instanceof Error?s.message:String(s));}finally{Ie(false);}}},Bs=async(s,w)=>{if(!(!N||Et)){ut(null),$e(null),Rt(null),pn(true);try{await N(s,w),At(T=>T+1);}catch(T){let j=T instanceof Error?T.message:String(T);Rt(s),/not found/i.test(j)?($e("Error: this fork no longer exists \u2014 refreshing the list."),setTimeout(()=>{Rt(null),$e(null),At(ie=>ie+1);},1800)):$e(`Error: ${j}`);}finally{pn(false);}}},io=async s=>{if(!(!C||!Q?.plan||ke)){Le(true),$e(null);try{let w=await C({forkId:Q.forkId,promptId:Q.promptId,mode:Q.mode,strategy:s});J(null),w.agentic?(Ge(!1),qe(w.fork.id)):w.removed&&(z([]),qe(null)),At(T=>T+1);}catch(w){$e(w instanceof Error?w.message:String(w));}finally{Le(false);}}},ao=()=>{if(U){p();return}if(je){nt?.close();return}Y(true),V(false),setTimeout(()=>p(),en);},Ds=U||je?{position:"relative",width:"100%",height:"100%",background:"#ffffff",display:"flex",flexDirection:"column",fontFamily:'ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif'}:{position:"fixed",top:0,right:0,bottom:0,zIndex:2147483e3,width:gr,maxWidth:"100vw",background:"#ffffff",boxShadow:Lt?"-12px 0 32px -16px rgba(0, 0, 0, 0.18), -2px 0 8px -2px rgba(0, 0, 0, 0.06)":"none",borderLeft:"1px solid rgba(0, 0, 0, 0.08)",transform:Lt?"translateX(0)":"translateX(100%)",transition:`transform ${en}ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow ${en}ms ease`,display:"flex",flexDirection:"column",fontFamily:'ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif'},lo=Dt.find(s=>s.id===Te)?.name??(mt?"Fork":"Loading..."),js=[...Ct].sort((s,w)=>+!!s.disabledAt-+!!w.disabledAt),Nt=Ke?[]:ce?B.filter(s=>s.forkId===ce||s.forkId==null):B,Ut=Q?.scope==="fork",Je=Q?.plan??null,co=Q?Js.jsxs("div",{style:{animation:"__fork-expand-in 0.22s cubic-bezier(0.22, 1, 0.36, 1)",overflow:"hidden",background:"#f9fafb",border:"1px solid #f3f4f6",borderRadius:10,padding:"10px 12px"},children:[Js.jsx("div",{style:{fontSize:13,fontWeight:600,color:"#111827",textAlign:"center"},children:Q.mode==="revert_to"?"Go Back to This Point?":Ut?"Delete This Fork?":"Remove This Change?"}),Je?Js.jsxs(Js.Fragment,{children:[Js.jsxs("div",{style:{fontSize:12,color:"#6b7280",marginTop:3,lineHeight:1.5,textAlign:"center"},children:[Q.mode==="revert_to"?`${Je.removes.length} later change${Je.removes.length===1?"":"s"} will be discarded.`:Je.laterSteps.length>0?`${Je.laterSteps.length} later change${Je.laterSteps.length===1?" was":"s were"} built on top of ${Ut?"this fork":"this one"}.`:Ut?"Deleting it is instant and cannot be undone.":"This is the latest change; removing it is instant.",Je.busy&&" A run is in progress \u2014 try again once it finishes."]}),Js.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",flexWrap:"wrap",gap:8,marginTop:10},children:[Je.strategies.some(s=>s.id==="keep_later")&&Js.jsx("button",{onClick:()=>io("keep_later"),disabled:ke,style:{padding:"5px 12px",fontSize:12,fontWeight:500,borderRadius:7,border:"none",background:"#eef2ff",color:"#4338ca",cursor:ke?"default":"pointer",opacity:ke?.5:1,transition:"background 0.12s"},onMouseEnter:s=>s.currentTarget.style.background="#e0e7ff",onMouseLeave:s=>s.currentTarget.style.background="#eef2ff",children:`Keep them (~${Je.strategies.find(s=>s.id==="keep_later")?.estimateMinutes??2}m)`}),Js.jsx("button",{onClick:()=>{J(null),$e(null);},disabled:ke,style:{padding:"5px 12px",fontSize:12,fontWeight:500,borderRadius:7,border:"none",background:"#f3f4f6",color:"#374151",cursor:ke?"default":"pointer",transition:"background 0.12s"},onMouseEnter:s=>s.currentTarget.style.background="#e5e7eb",onMouseLeave:s=>s.currentTarget.style.background="#f3f4f6",children:"Cancel"}),Js.jsx("button",{onClick:()=>io("discard_later"),disabled:ke,style:{padding:"5px 12px",fontSize:12,fontWeight:500,borderRadius:7,border:"none",background:"#fef2f2",color:"#b91c1c",cursor:ke?"default":"pointer",opacity:ke?.5:1,transition:"background 0.12s"},onMouseEnter:s=>s.currentTarget.style.background="#fee2e2",onMouseLeave:s=>s.currentTarget.style.background="#fef2f2",children:Q.mode==="revert_to"?"Go back to here":Je.laterSteps.length>0?Ut?"Delete all":"Remove all":Ut?"Delete":"Remove"})]})]}):Js.jsx("div",{style:{fontSize:12,color:"#9ca3af",fontStyle:"italic",marginTop:4,textAlign:"center",animation:"__fork-pulse 1.2s ease-in-out infinite"},children:Q.mode==="revert_to"?"Evaluating undo...":Ut?"Evaluating delete...":"Evaluating remove..."})]}):null,An=un?Js.jsx("div",{style:{animation:"__fork-expand-in 0.22s cubic-bezier(0.22, 1, 0.36, 1)",marginTop:8,fontSize:12,color:"#b91c1c",background:"#fef2f2",border:"1px solid #fecaca",borderRadius:8,padding:"6px 10px"},children:un}):null,qn=Js.jsxs(Js.Fragment,{children:[Js.jsx("style",{children:`
38
38
  @keyframes __fork-pulse {
39
39
  0%, 100% { opacity: 1; }
40
40
  50% { opacity: 0.5; }
@@ -43,6 +43,10 @@
43
43
  from { transform: rotate(0deg); }
44
44
  to { transform: rotate(360deg); }
45
45
  }
46
+ @keyframes __fork-expand-in {
47
+ from { opacity: 0; max-height: 0; transform: translateY(-4px); }
48
+ to { opacity: 1; max-height: 220px; transform: none; }
49
+ }
46
50
  .__fork-panel ::-webkit-scrollbar { width: 2px; }
47
51
  .__fork-panel ::-webkit-scrollbar-track { background: transparent; }
48
52
  .__fork-panel ::-webkit-scrollbar-thumb {
@@ -56,9 +60,9 @@
56
60
  scrollbar-width: thin;
57
61
  scrollbar-color: rgba(0, 0, 0, 0.12) transparent;
58
62
  }
59
- `}),ls.jsxs("div",{className:"__fork-panel",style:rs,children:[ls.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"0 16px",height:54,boxSizing:"border-box",borderBottom:"1px solid rgba(229, 231, 235, 0.8)",flexShrink:0},children:[ls.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,minWidth:0,flex:1},children:[c||A?ls.jsxs(ls.Fragment,{children:[ls.jsx("button",{onClick:()=>{y(null),z(false),Q.current=false;},style:{width:30,height:30,borderRadius:9,background:"#ffffff",border:"1px solid #e5e7eb",color:"#111827",cursor:"pointer",display:"inline-flex",alignItems:"center",justifyContent:"center",padding:0,flexShrink:0,transition:"background 0.12s, border-color 0.12s"},onMouseEnter:a=>{a.currentTarget.style.background="#f9fafb",a.currentTarget.style.borderColor="#d1d5db";},onMouseLeave:a=>{a.currentTarget.style.background="#ffffff",a.currentTarget.style.borderColor="#e5e7eb";},title:"Back to all forks",children:ls.jsx(lucideReact.ChevronLeft,{style:{width:15,height:15}})}),(()=>{let a=c?o[c]:void 0,B=(a?a.events.find(G=>{let le=G.data;return G.type==="status"&&le.summary})?.data?.summary??a.fork.summary:void 0)||vn?.summary||"New Feature";return ls.jsx("span",{style:{fontSize:13.5,fontWeight:700,color:"#111827",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",minWidth:0},title:B,children:B})})()]}):ls.jsxs(ls.Fragment,{children:[ls.jsx("span",{onDoubleClick:async a=>{if(a.stopPropagation(),!re&&confirm("Kill all forks in this container?")){Ae(true);try{let T=await zo();`${T?.deleted??0}`,ft([]),y(null),z(!1),P("");}catch(T){console.error("[Fork] Reset failed:",T);}finally{Ae(false);}}},style:{display:"inline-flex",alignItems:"center",justifyContent:"center",padding:4,margin:-4,cursor:"pointer",flexShrink:0},children:ls.jsx(nn,{style:{width:16,height:16,color:"#111827",pointerEvents:"none"}})}),De==="running"?ls.jsx("span",{style:{fontSize:13,fontWeight:600,color:"#111827",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:Qo}):Te.length===0&&!Vt?ls.jsx("span",{style:{fontSize:13,fontWeight:600,color:"#111827",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:"Fork"}):Vt?ls.jsxs("div",{ref:Yt,style:{position:"relative",minWidth:0,display:"inline-flex"},children:[ls.jsxs("button",{type:"button",onClick:()=>{ke(a=>!a);},onMouseEnter:()=>Bt(true),onMouseLeave:()=>Bt(false),"aria-haspopup":"menu","aria-expanded":$e,style:{display:"inline-flex",alignItems:"center",gap:4,padding:"3px 6px",border:"1px solid transparent",borderRadius:6,background:hn||$e?"#f3f4f6":"transparent",fontSize:13,fontWeight:600,color:"#111827",fontFamily:"inherit",cursor:"pointer",maxWidth:180,minWidth:0,transition:"background-color 0.12s"},children:[ls.jsx("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:Mr}),ls.jsx(lucideReact.ChevronDown,{style:{width:12,height:12,color:"#6b7280",flexShrink:0,transform:$e?"rotate(180deg)":void 0,transition:"transform 0.15s"}})]}),$e&&ls.jsxs("div",{role:"menu",style:{position:"absolute",top:"calc(100% + 4px)",left:0,minWidth:200,maxWidth:260,background:"#ffffff",border:"1px solid #e5e7eb",borderRadius:8,boxShadow:"0 4px 12px rgba(0,0,0,0.08), 0 1px 3px rgba(0,0,0,0.06)",padding:4,zIndex:2147483001},children:[Te.map(a=>{let T=a.id===Se,B=yn===a.id,G=ge===a.id;return ls.jsxs("button",{type:"button",role:"menuitem",onMouseEnter:()=>Dt(a.id),onMouseLeave:()=>Dt(null),onClick:()=>{a.id!==Se&&ns(a.id);},disabled:!!ge,style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"6px 8px",border:"none",background:B?"#f3f4f6":"transparent",borderRadius:4,fontSize:13,fontFamily:"inherit",color:"#111827",cursor:ge?"default":"pointer",textAlign:"left",fontWeight:T?600:400,opacity:ge&&!G?.55:1},children:[ls.jsx("span",{style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:14,height:14,color:"#111827",flexShrink:0},children:T&&ls.jsx(lucideReact.Check,{style:{width:12,height:12}})}),ls.jsx("span",{style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:G?"Switching...":a.name})]},a.id)}),ls.jsx("div",{style:{height:1,background:"#e5e7eb",margin:"4px 0"}}),bt?ls.jsxs("div",{style:{display:"flex",alignItems:"center",gap:4,padding:"4px 4px"},children:[ls.jsx("input",{ref:wt,type:"text",value:Be,placeholder:"Container name",disabled:ge==="__new__",onChange:a=>Xe(a.target.value),onKeyDown:a=>{a.key==="Enter"?(a.preventDefault(),Rr(Be)):a.key==="Escape"&&(a.preventDefault(),a.stopPropagation(),ut(false),Xe(""));},style:{flex:1,minWidth:0,padding:"5px 8px",border:"1px solid #d1d5db",borderRadius:4,fontSize:13,fontFamily:"inherit",color:"#111827",background:"#ffffff",outline:"none"},onFocus:a=>{a.currentTarget.style.borderColor="#111827",a.currentTarget.style.boxShadow="0 0 0 2px rgba(17,24,39,0.15)";},onBlur:a=>{a.currentTarget.style.borderColor="#d1d5db",a.currentTarget.style.boxShadow="none";}}),ls.jsx("button",{type:"button",onClick:()=>{Rr(Be);},disabled:!Be.trim()||ge==="__new__",title:"Create",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:26,height:26,border:"none",borderRadius:4,background:!Be.trim()||ge==="__new__"?"#e5e7eb":"#111827",color:!Be.trim()||ge==="__new__"?"#9ca3af":"#ffffff",cursor:!Be.trim()||ge==="__new__"?"default":"pointer",flexShrink:0},children:ge==="__new__"?ls.jsx("span",{style:{width:10,height:10,border:"1.5px solid currentColor",borderTopColor:"transparent",borderRadius:"50%",animation:"__fork-spin 0.7s linear infinite"}}):ls.jsx(lucideReact.Check,{style:{width:12,height:12}})})]}):ls.jsx("button",{type:"button",role:"menuitem",onMouseEnter:()=>jt(true),onMouseLeave:()=>jt(false),onClick:()=>{ge||(Fe(null),Xe(""),ut(true));},disabled:!!ge,style:{display:"flex",alignItems:"center",width:"100%",padding:"6px 8px",border:"none",background:tt?"#f3f4f6":"transparent",borderRadius:4,fontSize:13,fontFamily:"inherit",color:"#111827",cursor:ge?"default":"pointer",textAlign:"left",opacity:ge&&ge!=="__new__"?.55:1},children:"+ New container"}),Kt&&ls.jsx("div",{style:{padding:"6px 8px",fontSize:11,lineHeight:1.35,color:"#b91c1c"},children:Kt})]})]}):ls.jsx("span",{style:{fontSize:13,fontWeight:600,color:"#111827",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:Mr})]}),De==="running"&&ls.jsx("span",{title:nt?`Estimated ~${nt} min`:"Estimating\u2026",style:{fontSize:10,fontWeight:600,color:nt?"#111827":"#9ca3af",backgroundColor:nt?"rgba(17, 24, 39, 0.08)":"rgba(156, 163, 175, 0.12)",padding:"1px 6px",borderRadius:999,flexShrink:0,fontVariantNumeric:"tabular-nums",animation:nt?void 0:"__fork-pulse 1.4s ease-in-out infinite",minWidth:28,textAlign:"center"},children:nt?`~${nt}m`:"~ m"})]}),ls.jsxs("div",{style:{display:"flex",alignItems:"center",gap:2,flexShrink:0},children:[Vo&&ls.jsx("button",{type:"button",role:"switch","aria-checked":!mt,"aria-label":mt?"Turn Fork back on":"Turn Fork off",title:mt?"Fork is off \u2014 you're seeing the original app. Turn it back on. Only affects you.":"Turn Fork off to see the original app. Only affects you.",onClick:()=>{Jo(!mt);},onMouseEnter:()=>gr(true),onMouseLeave:()=>gr(false),style:{position:"relative",width:26,height:15,borderRadius:999,border:"none",padding:0,marginRight:6,flexShrink:0,cursor:"pointer",backgroundColor:mt?mr?"#9ca3af":"#d1d5db":mr?"#374151":"#111827",transition:"background-color 0.18s ease",outline:"none",boxSizing:"border-box"},children:ls.jsx("span",{"aria-hidden":true,style:{position:"absolute",top:2,left:mt?2:13,width:11,height:11,borderRadius:"50%",backgroundColor:"#ffffff",boxShadow:"0 1px 2px rgba(15, 23, 42, 0.25)",transition:"left 0.18s cubic-bezier(0.16, 1, 0.3, 1)"}})}),!S&&ls.jsxs(ls.Fragment,{children:[yr&&ls.jsx("button",{onClick:Oe?qo:Xo,onMouseEnter:()=>V(true),onMouseLeave:()=>V(false),title:Oe?"Redock to sidebar":"Pop out into window",style:{padding:6,borderRadius:6,color:K?"#4b5563":"#9ca3af",backgroundColor:K?"#f3f4f6":"transparent",border:"none",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",transition:"background-color 0.15s, color 0.15s"},children:Oe?ls.jsx(lucideReact.PictureInPicture,{style:{width:16,height:16}}):ls.jsx(lucideReact.PictureInPicture2,{style:{width:16,height:16}})}),ls.jsx("button",{onClick:Cr,onMouseEnter:()=>D(true),onMouseLeave:()=>D(false),style:{padding:6,borderRadius:6,color:H?"#4b5563":"#9ca3af",backgroundColor:H?"#f3f4f6":"transparent",border:"none",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",transition:"background-color 0.15s, color 0.15s"},children:ls.jsx(lucideReact.X,{style:{width:16,height:16}})})]})]})]}),ls.jsxs("div",{ref:ne,style:{flex:1,overflowY:"auto",minHeight:0,display:"flex",flexDirection:"column"},children:[!c&&!A&&ls.jsxs("div",{style:{display:"flex",flexDirection:"column"},children:[Ne.length===0&&ls.jsx("div",{style:{padding:"24px 20px",textAlign:"center",fontSize:13,color:"#6b7280"},children:"No forks yet. Describe a feature below to start one."}),Ne.length>0&&ls.jsx("div",{style:{display:"flex",flexDirection:"column"},children:Ne.map((a,T)=>{let B=o[a.id],le=(B?B.events.find(Ye=>{let ss=Ye.data;return Ye.type==="status"&&ss.summary})?.data?.summary??B.fork.summary:void 0)||a.summary||"Untitled fork",je=!!fr.find(Ye=>Ye.id===a.id)?.unread,Me=o[a.id]?.state??a.status,os=Me==="running"||Me==="building"||Me==="pending";return ls.jsxs(Pn.Fragment,{children:[ls.jsxs("button",{onClick:()=>{z(false),y(a.id);},style:{textAlign:"left",padding:"12px 16px",background:"transparent",border:"none",cursor:"pointer",display:"flex",alignItems:"flex-start",gap:8,width:"100%",transition:"background 0.12s",fontFamily:"inherit"},onMouseEnter:Ye=>{Ye.currentTarget.style.background="#fafafa";},onMouseLeave:Ye=>{Ye.currentTarget.style.background="transparent";},children:[je&&ls.jsx("span",{"aria-label":"Not viewed yet",title:"Not viewed yet",style:{width:7,height:7,borderRadius:"50%",backgroundColor:"#111827",flexShrink:0,marginTop:5}}),ls.jsxs("div",{style:{flex:1,minWidth:0,display:"flex",flexDirection:"column",gap:5,alignItems:"flex-start"},children:[ls.jsx("span",{style:{fontSize:13.5,fontWeight:600,color:"#111827",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%"},children:le}),ls.jsx("span",{style:{fontFamily:'ui-monospace, SFMono-Regular, Menlo, Monaco, "Liberation Mono", "Courier New", monospace',fontSize:10,color:"#9ca3af",background:"#f8f9fa",borderRadius:5,padding:"1px 6px",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%",boxSizing:"border-box"},children:a.targetId})]}),os&&ls.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:5,background:"#fff7ed",border:"1px solid #fed7aa",color:"#c2410c",borderRadius:999,padding:"2px 9px",fontSize:11,fontWeight:600,flexShrink:0},children:[ls.jsx("span",{style:{width:6,height:6,borderRadius:"50%",background:"#f59e0b",animation:"__fork-pulse 1.4s ease-in-out infinite"}}),"Running"]}),Me==="error"&&ls.jsx("span",{style:{display:"inline-flex",alignItems:"center",gap:5,background:"#fef2f2",border:"1px solid #fecaca",color:"#b91c1c",borderRadius:999,padding:"2px 9px",fontSize:11,fontWeight:600,flexShrink:0},children:"Failed"}),ls.jsx("span",{style:{fontSize:11.5,color:"#9ca3af",flexShrink:0,marginTop:2},children:Kn(a.updatedAt)})]}),T<Ne.length-1&&ls.jsx("div",{style:{height:1,background:"#f3f4f6",margin:"0 16px",flexShrink:0}})]},a.id)})})]}),c&&xt.length>0&&ls.jsx("div",{style:{margin:"16px 16px 0 16px"},children:xt.map((a,T)=>ls.jsx("div",{style:{marginBottom:T<xt.length-1?12:0},children:a.type==="user"?ls.jsx("div",{style:{display:"flex",justifyContent:"flex-end"},children:ls.jsxs("div",{style:{backgroundColor:"#f3f4f6",borderRadius:12,padding:"10px 14px",fontSize:13,color:"#374151",lineHeight:1.5,maxWidth:"85%"},children:[a.attachments&&a.attachments.length>0&&ls.jsx("div",{style:{display:"flex",flexWrap:"wrap",gap:4,marginBottom:6},children:a.attachments.map((B,G)=>ls.jsx("img",{src:B.dataUrl,alt:"attachment",style:{maxWidth:150,maxHeight:110,borderRadius:8,border:"1px solid #e5e7eb",display:"block",objectFit:"cover"}},G))}),a.selectedElement&&ls.jsxs("div",{style:{display:"inline-flex",alignItems:"center",gap:4,background:"#eef2ff",border:"1px solid #c7d2fe",color:"#4338ca",borderRadius:999,padding:"2px 8px",fontSize:10.5,fontWeight:500,marginRight:6,maxWidth:"100%"},children:[ls.jsx(lucideReact.MousePointer2,{style:{width:10,height:10,flexShrink:0}}),ls.jsx("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace"},children:a.selectedElement.label})]}),a.text]})}):I==="item"&&T===xt.length-1?ls.jsxs("div",{style:{display:"flex",alignItems:"flex-start",gap:12,padding:12,borderRadius:8,border:"1px solid #e4e4e7",background:"#ffffff"},children:[ls.jsx("div",{style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:28,height:28,flexShrink:0,borderRadius:6,background:"#f4f4f5",color:"#0a0a0a"},children:ls.jsx(lucideReact.BadgeCheck,{style:{width:16,height:16}})}),ls.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:2,flex:1,minWidth:0},children:[ls.jsx("div",{style:{fontSize:13,fontWeight:500,color:"#0a0a0a",lineHeight:1.3},children:"Feature applied"}),ls.jsx("div",{style:{fontSize:13,color:"#71717a",lineHeight:1.4},children:a.text})]}),b&&De!=="running"&&ls.jsx("button",{onClick:B=>{B.stopPropagation(),Ir();},disabled:p,style:{padding:"4px 10px",fontSize:12,fontWeight:500,borderRadius:6,border:"1px solid #e4e4e7",background:"#ffffff",color:"#0a0a0a",cursor:p?"default":"pointer",opacity:p?.4:1,height:28,flexShrink:0},children:"Undo"})]}):ls.jsxs("div",{style:{display:"inline-flex",alignItems:"center",gap:8,background:"#ffffff",border:"1px solid #e5e7eb",borderRadius:10,boxShadow:"0 1px 2px rgba(0, 0, 0, 0.03)",padding:"9px 12px",maxWidth:"90%",boxSizing:"border-box"},children:[ls.jsx("span",{style:{width:7,height:7,borderRadius:"50%",background:"#94a3b8",flexShrink:0}}),ls.jsx("span",{style:{fontSize:12.5,fontWeight:600,color:"#334155",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:a.text}),a.timestamp&&ls.jsx("span",{style:{fontSize:11,color:"#9ca3af",flexShrink:0},children:Kn(a.timestamp)}),b&&T===xt.length-1&&De!=="running"&&ls.jsxs("button",{onClick:B=>{B.stopPropagation(),Ir();},onMouseEnter:()=>q(T),onMouseLeave:()=>q(null),disabled:p,style:{position:"relative",padding:2,borderRadius:4,border:"none",background:x===T?"rgba(0,0,0,0.06)":"transparent",color:x===T?"#6b7280":"#d1d5db",cursor:p?"default":"pointer",display:"flex",alignItems:"center",justifyContent:"center",transition:"color 0.15s, background 0.15s",opacity:p?.4:1,flexShrink:0},children:[ls.jsx(lucideReact.Undo2,{style:{width:12,height:12}}),x===T&&ls.jsx("span",{style:{position:"absolute",bottom:"calc(100% + 4px)",right:0,fontSize:10,fontWeight:500,color:"#fff",background:"#374151",borderRadius:4,padding:"2px 6px",whiteSpace:"nowrap",pointerEvents:"none",lineHeight:"16px"},children:"Undo"})]})]})},T))}),De==="running"&&ls.jsx("div",{style:{margin:"12px 16px 0 16px"},children:ls.jsxs("div",{onClick:()=>w(!M),style:{background:"#ffffff",border:"1px solid #e5e7eb",borderRadius:10,boxShadow:"0 1px 2px rgba(0, 0, 0, 0.03)",overflow:"hidden",cursor:"pointer",transition:"all 0.3s cubic-bezier(0.22, 1, 0.36, 1)"},children:[ls.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"9px 12px"},children:[ls.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,minWidth:0},children:[ls.jsx("span",{style:{width:7,height:7,borderRadius:"50%",background:"#f59e0b",flexShrink:0,animation:"__fork-pulse 1.4s ease-in-out infinite"}}),ls.jsx(Ci,{events:ht},c??"__compose__")]}),ls.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,flexShrink:0,marginLeft:8},children:[ht[0]?.timestamp&&ls.jsx("span",{style:{fontSize:11,color:"#9ca3af"},children:Kn(ht[0].timestamp)}),ls.jsx("div",{style:{color:"#9ca3af",transition:"transform 0.2s ease",transform:M?"rotate(180deg)":"rotate(0deg)",display:"flex"},children:ls.jsx(lucideReact.ChevronDown,{style:{width:14,height:14}})})]})]}),ls.jsx("div",{style:{maxHeight:M?320:0,opacity:M?1:0,transition:"max-height 0.35s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.25s ease",overflow:"hidden"},children:ls.jsx("div",{style:{background:"#1a1a2e",borderTop:"1px solid #e5e7eb",maxHeight:320,overflowY:"auto"},children:ls.jsx(Zr,{events:ht},c??"__compose__")})})]})}),De==="error"&&ls.jsxs("div",{style:{padding:"20px 16px",textAlign:"center"},children:[ls.jsx("div",{style:{width:36,height:36,backgroundColor:"#fef2f2",borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",margin:"0 auto 10px auto"},children:ls.jsx(lucideReact.X,{style:{width:18,height:18,color:"#ef4444"}})}),ls.jsx("p",{style:{fontSize:12,color:"#6b7280",marginBottom:10,maxWidth:260,margin:"0 auto 10px auto"},children:Yo??r}),ls.jsxs("button",{onClick:()=>{let a=Sn?.prompt||qt.current;a&&h(a,vt);},onMouseEnter:()=>C(true),onMouseLeave:()=>C(false),style:{display:"inline-flex",alignItems:"center",gap:6,padding:"6px 12px",borderRadius:8,fontSize:12,fontWeight:500,color:"#111827",backgroundColor:U?"#e5e7eb":"#f3f4f6",border:"none",cursor:"pointer",transition:"background-color 0.15s",fontFamily:"inherit"},children:[ls.jsx(lucideReact.RotateCcw,{style:{width:12,height:12}})," Try Again"]})]})]}),!(c?De==="running":A&&e==="running")&&ls.jsxs("div",{style:{padding:"8px 12px 12px 12px",borderTop:"1px solid rgba(229, 231, 235, 0.6)",flexShrink:0,position:"relative"},children:[pt&&ls.jsx("div",{style:{position:"absolute",top:-42,left:"50%",transform:"translateX(-50%)",background:"#111827",color:"#ffffff",fontSize:12,fontWeight:500,padding:"7px 14px",borderRadius:999,boxShadow:"0 4px 16px rgba(0, 0, 0, 0.22)",whiteSpace:"nowrap",maxWidth:jn-32,overflow:"hidden",textOverflow:"ellipsis",pointerEvents:"none",zIndex:5},children:pt}),ls.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:6,borderRadius:14,padding:"10px 10px 8px 12px",background:"#ffffff",border:"1px solid #e5e7eb",boxShadow:"0 1px 2px rgba(0, 0, 0, 0.04), 0 4px 14px -6px rgba(0, 0, 0, 0.08)"},children:[(ie.length>0||ce)&&ls.jsxs("div",{style:{display:"flex",flexWrap:"wrap",gap:6,alignItems:"center"},children:[ie.map(a=>ls.jsxs("div",{onMouseEnter:()=>ur(a.id),onMouseLeave:()=>ur(null),style:{position:"relative",width:44,height:44,borderRadius:8,overflow:"hidden",border:"1px solid #e5e7eb",flexShrink:0},children:[ls.jsx("img",{src:a.dataUrl,alt:"attachment",style:{width:"100%",height:"100%",objectFit:"cover",display:"block"}}),ls.jsx("button",{onClick:()=>be(T=>T.filter(B=>B.id!==a.id)),title:"Remove image",style:{position:"absolute",top:2,right:2,width:15,height:15,borderRadius:"50%",background:"rgba(17, 24, 39, 0.78)",color:"#ffffff",border:"none",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",padding:0,opacity:Ko===a.id?1:.6,transition:"opacity 0.12s"},children:ls.jsx(lucideReact.X,{style:{width:9,height:9}})})]},a.id)),ce&&ls.jsxs("div",{style:{display:"inline-flex",alignItems:"center",gap:5,background:"#eef2ff",border:"1px solid #c7d2fe",color:"#4338ca",borderRadius:999,padding:"4px 6px 4px 9px",fontSize:11,fontWeight:500,maxWidth:"100%",minWidth:0},children:[ls.jsx(lucideReact.MousePointer2,{style:{width:11,height:11,flexShrink:0}}),ls.jsx("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace"},children:an(ce)}),ls.jsx("button",{onClick:()=>me(null),title:"Remove element context",style:{width:14,height:14,borderRadius:"50%",background:"transparent",color:"#6366f1",border:"none",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",padding:0,flexShrink:0},children:ls.jsx(lucideReact.X,{style:{width:10,height:10}})})]})]}),ls.jsx("textarea",{ref:Z,value:m,onChange:a=>P(a.target.value),onPaste:a=>{let T=eo(a.nativeEvent);T.length>0&&(a.preventDefault(),vr(T));},onKeyDown:a=>{a.key==="Enter"&&!a.shiftKey&&(a.preventDefault(),xr()),a.key==="Escape"&&!S&&Cr();},placeholder:c?"Iterate on this feature...":"Start building a new Fork...",rows:1,style:{width:"100%",backgroundColor:"transparent",fontSize:13,color:"#111827",border:"none",outline:"none",padding:0,fontFamily:"inherit",resize:"none",lineHeight:1.5,maxHeight:160,overflow:"auto",boxSizing:"border-box"}}),ls.jsxs("div",{style:{display:"flex",alignItems:"center",gap:2},children:[ls.jsx("button",{onClick:()=>ir.current?.click(),onMouseEnter:()=>ar(true),onMouseLeave:()=>ar(false),title:"Attach an image",style:{width:28,height:28,borderRadius:8,display:"flex",alignItems:"center",justifyContent:"center",background:Bo?"rgba(0, 0, 0, 0.05)":"transparent",color:"#6b7280",border:"none",cursor:"pointer",padding:0,flexShrink:0,transition:"background 0.12s"},children:ls.jsx(lucideReact.ImagePlus,{style:{width:16,height:16}})}),ls.jsx("button",{onClick:es,onMouseEnter:()=>lr(true),onMouseLeave:()=>lr(false),title:ae?"Cancel element selection":"Select an element on the page",style:{width:28,height:28,borderRadius:8,display:"flex",alignItems:"center",justifyContent:"center",background:ae?"#eef2ff":Do?"rgba(0, 0, 0, 0.05)":"transparent",color:ae?"#4f46e5":"#6b7280",border:"none",cursor:"pointer",padding:0,flexShrink:0,transition:"background 0.12s, color 0.12s"},children:ls.jsx(lucideReact.MousePointer2,{style:{width:16,height:16}})}),ls.jsx("div",{style:{flex:1}}),ls.jsx("button",{onClick:ts,onMouseEnter:()=>cr(true),onMouseLeave:()=>cr(false),title:fe?"Stop voice input":"Voice input",style:{width:28,height:28,borderRadius:8,display:"flex",alignItems:"center",justifyContent:"center",background:fe?"#fef2f2":jo?"rgba(0, 0, 0, 0.05)":"transparent",color:fe?"#dc2626":"#6b7280",border:"none",cursor:"pointer",padding:0,flexShrink:0,transition:"background 0.12s, color 0.12s",animation:fe?"__fork-pulse 1.4s ease-in-out infinite":void 0},children:ls.jsx(lucideReact.Mic,{style:{width:16,height:16}})}),ls.jsx("button",{onClick:xr,disabled:!yt,onMouseEnter:()=>X(true),onMouseLeave:()=>X(false),title:"Send",style:{width:28,height:28,borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",color:"#ffffff",opacity:yt?1:.35,transform:W&&yt?"scale(1.08)":"scale(1)",background:yt?"#111827":"rgba(0, 0, 0, 0.12)",border:"none",cursor:yt?"pointer":"default",flexShrink:0,transition:"transform 0.15s, opacity 0.15s, background 0.15s",padding:0,marginLeft:4},children:ls.jsx(lucideReact.ArrowUp,{style:{width:14,height:14}})})]})]}),ls.jsx("input",{ref:ir,type:"file",accept:"image/*",multiple:true,style:{display:"none"},onChange:a=>{let T=Array.from(a.target.files??[]);a.target.value="",vr(T);}})]})]})]});return S?Fn:Oe&&Ie?as.createPortal(Fn,Ie.document.body):ls.jsx(Mi,{children:Fn})}function uo(e){if("target"in e&&e.target)return e.target;if("boundaryId"in e&&e.boundaryId)return {type:"boundary",id:e.boundaryId,title:e.title};if("slotId"in e&&e.slotId)return {type:"slot",id:e.slotId,title:e.title??e.slotLabel};throw new Error("Fork chat target requires either target, slotId, or boundaryId.")}function zn(e){let{apiKey:t,userId:n,userHash:r,baseUrl:o,appId:s,adminContext:i,refreshModuleManifest:l,queueBoundaryAnimation:u,trackForkActivity:h,recordForkActivityEvent:b}=ve(),[d,k]=Pn.useState({}),[R,v]=Pn.useState(null),[f,g]=Pn.useState("idle"),[S,I]=Pn.useState(false),[m,P]=Pn.useState(null),L=Pn.useRef(new Map),j=Pn.useCallback((C,M)=>{k(w=>{let $=w[C]??{forkId:C,state:"running",fork:M.fork,events:[],error:null};return {...w,[C]:{...$,...M}}});},[]),O=Pn.useCallback((C,M)=>{k(w=>{let p=w[C];return p?{...w,[C]:{...p,events:[...p.events,M]}}:w});},[]),N=Pn.useCallback(C=>{let M=L.current.get(C);M&&(M.close(),L.current.delete(C));},[]),oe=Pn.useCallback(()=>{g("prompting"),P(null),I(false),v(null);},[]),Y=Pn.useCallback(()=>{g("idle"),I(false),P(null),v(null);for(let C of L.current.values())C.close();L.current.clear(),k({});},[]),_=Pn.useCallback((C,M)=>{N(C.id);let w=new URLSearchParams({key:t});n&&w.set("userId",n),r&&w.set("userHash",r),i.isAdmin&&i.containerId&&w.set("containerId",i.containerId);let p=new EventSource(`${o}/api/v1/forks/${C.id}/events?${w.toString()}`);L.current.set(C.id,p),p.onmessage=$=>{try{let x=JSON.parse($.data);if(b(C.id,x),O(C.id,x),x.type==="complete"){let q=x.data;u(M,C.id),l().catch(()=>{}).finally(()=>{let re={...C,status:"complete",moduleUrl:q.moduleUrl,cssUrls:q.cssUrls,summary:q.summary,completedAt:new Date().toISOString()};j(C.id,{state:"complete",fork:re}),N(C.id);});}else if(x.type==="error"){let q=x.data;j(C.id,{state:"error",error:q.error||"Unknown error"}),N(C.id);}}catch{}},p.onerror=()=>{let $={Authorization:`Bearer ${t}`,...pe()};n&&($["X-Fork-User-Id"]=n),r&&($["X-Fork-User-Hash"]=r),fetch(`${o}/api/v1/forks/${C.id}`,{headers:$}).then(x=>x.json()).then(x=>{x.status==="complete"?(u(M,x.id),l().catch(()=>{}),j(C.id,{state:"complete",fork:x})):x.status==="error"?j(C.id,{state:"error",fork:x,error:x.error||"Fork generation failed"}):j(C.id,{fork:x});}).catch(()=>{j(C.id,{state:"error",error:"Connection lost"});}),N(C.id);};},[i.containerId,i.isAdmin,t,O,o,N,u,b,l,j,r,n]),F=Pn.useCallback(async(C,M,w)=>{try{if(!s)throw new Error("ForkProvider requires appId for module boundary prompts.");I(!0),P(null),v(null);let p;if(w?.forkId){let $={prompt:C};n&&($.userId=n),r&&($.userHash=r),w?.attachments?.length&&($.attachments=w.attachments),w?.selectedElement&&($.selectedElement=w.selectedElement);let x=await fetch(`${o}/api/v1/forks/${encodeURIComponent(w.forkId)}/prompts`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${t}`,...pe()},body:JSON.stringify($)});if(!x.ok){let q=await x.json().catch(()=>({}));throw new Error(q.error||`API error: ${x.status}`)}p=await x.json();}else {let $={userId:n,prompt:C,boundaryId:e,appId:s};M?$.containerId=M:i.isAdmin&&i.containerId&&($.containerId=i.containerId),r&&($.userHash=r),w?.forceNew&&($.force_new=!0),w?.attachments?.length&&($.attachments=w.attachments),w?.selectedElement&&($.selectedElement=w.selectedElement);let x=await fetch(`${o}/api/v1/forks`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${t}`,...pe()},body:JSON.stringify($)});if(!x.ok){let q=await x.json().catch(()=>({}));throw new Error(q.error||`API error: ${x.status}`)}p=await x.json();}k($=>({...$,[p.id]:{forkId:p.id,state:"running",fork:p,events:[],error:null}})),v(p.id),I(!1),h(p,{targetKind:"module",targetId:e}),_(p,p.boundaryId??e);}catch(p){P(p.message),I(false);}},[i.containerId,i.isAdmin,t,s,o,e,_,h,r,n]),H=Pn.useCallback(async C=>{try{let M={Authorization:`Bearer ${t}`,...pe()};n&&(M["X-Fork-User-Id"]=n),r&&(M["X-Fork-User-Hash"]=r);let w=await fetch(`${o}/api/v1/forks/${C}`,{headers:M});if(!w.ok)return;let p=await w.json(),$=p.boundaryId??e;if(h(p,{targetKind:"module",targetId:$}),p.status==="complete"){k(x=>({...x,[p.id]:{forkId:p.id,state:"complete",fork:p,events:[],error:null}})),v(p.id);return}if(p.status==="error"){k(x=>({...x,[p.id]:{forkId:p.id,state:"error",fork:p,events:[],error:p.error||"Fork generation failed"}})),v(p.id);return}if(p.status!=="pending"&&p.status!=="running"&&p.status!=="building")return;k(x=>({...x,[p.id]:{forkId:p.id,state:"running",fork:p,events:[],error:null}})),v(p.id),_(p,$);}catch{}},[t,o,e,_,h,r,n]),D=Pn.useCallback(async C=>{try{if(!s)throw new Error("ForkProvider requires appId for boundary undo.");let M={userId:n,boundaryId:e,appId:s};r&&(M.userHash=r),C&&(M.fork_id=C);let w=await fetch(`${o}/api/v1/forks/undo`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${t}`},body:JSON.stringify(M)});if(!w.ok){let $=await w.json().catch(()=>({}));throw new Error($.error||`API error: ${w.status}`)}let p=await w.json();if(await l().catch(()=>{}),p.removed)k($=>{let x={};for(let[q,re]of Object.entries($))(re.fork.boundaryId??e)!==e&&(x[q]=re);return x}),v(null),g("prompting");else if(p.fork){let $=p.fork;j($.id,{state:"complete",fork:$}),v($.id);}return p}catch(M){throw P(M.message),M}},[t,s,o,e,l,j,r,n]),K=R?d[R]??null:null,V=S?"running":m?"error":K?K.state:f,W=K?.fork??null,X=K?.events??[],U=m??K?.error??null;return {state:V,fork:W,events:X,error:U,runs:d,open:oe,close:Y,startFork:F,undoFork:D,adoptRunningFork:H}}var Pi=0;function mo(e){let{state:t,fork:n,events:r,error:o,runs:s,open:i,close:l,startFork:u,undoFork:h,adoptRunningFork:b}=zn(e),[d,k]=Pn.useState(false),R=Pn.useRef(null),v=Pn.useRef(t),f=Pn.useCallback(()=>{R.current!==null&&(clearTimeout(R.current),R.current=null);},[]),g=Pn.useCallback(()=>{f(),k(true),i();},[f,i]),S=Pn.useCallback(()=>{f(),k(false),l();},[f,l]),I=Pn.useCallback(async P=>{f(),k(true),await b(P);},[b,f]),m=Object.values(s).filter(P=>P.state==="running").length;return Pn.useEffect(()=>{let P=v.current;v.current=t,t==="complete"&&P==="running"&&d&&m===0&&(f(),R.current=setTimeout(()=>{R.current=null,k(false),l();},Pi)),(t==="running"||t==="prompting")&&f();},[t,d,m,f,l]),Pn.useEffect(()=>f,[f]),{state:t,fork:n,events:r,error:o,runs:s,isOpen:d,open:g,close:S,submit:u,undo:h,adoptRunningFork:I}}function Wn(){let{apiKey:e,userId:t,userHash:n,baseUrl:r,adminContext:o,setSlotFork:s,clearSlotFork:i,skipAnimationForSlot:l,trackForkActivity:u,recordForkActivityEvent:h}=ve(),[b,d]=Pn.useState({}),[k,R]=Pn.useState(null),[v,f]=Pn.useState("idle"),[g,S]=Pn.useState(false),[I,m]=Pn.useState(null),P=Pn.useRef(new Map),L=Pn.useCallback((U,C)=>{d(M=>{let p=M[U]??{forkId:U,state:"running",fork:C.fork,events:[],error:null};return {...M,[U]:{...p,...C}}});},[]),j=Pn.useCallback((U,C)=>{d(M=>{let w=M[U];return w?{...M,[U]:{...w,events:[...w.events,C]}}:M});},[]),O=Pn.useCallback(U=>{let C=P.current.get(U);C&&(C.close(),P.current.delete(U));},[]),N=Pn.useCallback(()=>{f("prompting"),m(null),S(false),R(null);},[]),oe=Pn.useCallback(()=>{f("idle"),S(false),m(null),R(null);for(let U of P.current.values())U.close();P.current.clear(),d({});},[]),Y=Pn.useCallback((U,C)=>{O(U.id);let M=new URLSearchParams({key:e});t&&M.set("userId",t),n&&M.set("userHash",n),o.isAdmin&&o.containerId&&M.set("containerId",o.containerId);let w=new EventSource(`${r}/api/v1/forks/${U.id}/events?${M.toString()}`);P.current.set(U.id,w),w.onmessage=p=>{try{let $=JSON.parse(p.data);if(h(U.id,$),j(U.id,$),$.type==="complete"){let x=$.data,q={...U,status:"complete",bundleUrl:x.bundleUrl,summary:x.summary,revealPending:!0,completedAt:new Date().toISOString()};L(U.id,{state:"complete",fork:q});let re=C??U.slotId;re&&x.bundleUrl&&s(re,q),O(U.id);}else if($.type==="error"){let x=$.data;L(U.id,{state:"error",error:x.error||"Unknown error"}),O(U.id);}}catch{}},w.onerror=()=>{let p={Authorization:`Bearer ${e}`,...pe()};t&&(p["X-Fork-User-Id"]=t),n&&(p["X-Fork-User-Hash"]=n),fetch(`${r}/api/v1/forks/${U.id}`,{headers:p}).then($=>$.json()).then($=>{if($.status==="complete"){L(U.id,{state:"complete",fork:{...$,revealPending:true}});let x=C??$.slotId;x&&$.bundleUrl&&s(x,{...$,revealPending:true});}else $.status==="error"?L(U.id,{state:"error",fork:$,error:$.error||"Fork generation failed"}):L(U.id,{fork:$});}).catch(()=>{L(U.id,{state:"error",error:"Connection lost"});}),O(U.id);};},[o.containerId,o.isAdmin,e,j,r,O,h,s,L,n,t]),_=Pn.useCallback(async(U,C,M,w)=>{try{S(!0),m(null),R(null);let p;if(w?.forkId){let x={prompt:U};t&&(x.userId=t),n&&(x.userHash=n),w?.attachments?.length&&(x.attachments=w.attachments),w?.selectedElement&&(x.selectedElement=w.selectedElement);let q=await fetch(`${r}/api/v1/forks/${encodeURIComponent(w.forkId)}/prompts`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e}`,...pe()},body:JSON.stringify(x)});if(!q.ok){let re=await q.json().catch(()=>({}));throw new Error(re.error||`API error: ${q.status}`)}p=await q.json();}else {let x={userId:t,prompt:U};C&&(x.slotId=C),M?x.containerId=M:o.isAdmin&&o.containerId&&(x.containerId=o.containerId),n&&(x.userHash=n),w?.forceNew&&(x.force_new=!0),w?.attachments?.length&&(x.attachments=w.attachments),w?.selectedElement&&(x.selectedElement=w.selectedElement);let q=await fetch(`${r}/api/v1/forks`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e}`,...pe()},body:JSON.stringify(x)});if(!q.ok){let re=await q.json().catch(()=>({}));throw new Error(re.error||`API error: ${q.status}`)}p=await q.json();}d(x=>({...x,[p.id]:{forkId:p.id,state:"running",fork:p,events:[],error:null}})),R(p.id),S(!1);let $=C??p.slotId;$&&u(p,{targetKind:"slot",targetId:$}),Y(p,C);}catch(p){m(p.message),S(false);}},[o.containerId,o.isAdmin,e,r,Y,u,n,t]),F=Pn.useCallback(async U=>{try{let C={Authorization:`Bearer ${e}`,...pe()};t&&(C["X-Fork-User-Id"]=t),n&&(C["X-Fork-User-Hash"]=n);let M=await fetch(`${r}/api/v1/forks/${U}`,{headers:C});if(!M.ok)return;let w=await M.json();if(w.slotId&&u(w,{targetKind:"slot",targetId:w.slotId}),w.status==="complete"){d(p=>({...p,[w.id]:{forkId:w.id,state:"complete",fork:w,events:[],error:null}})),R(w.id);return}if(w.status==="error"){d(p=>({...p,[w.id]:{forkId:w.id,state:"error",fork:w,events:[],error:w.error||"Fork generation failed"}})),R(w.id);return}if(w.status!=="pending"&&w.status!=="running"&&w.status!=="building")return;d(p=>({...p,[w.id]:{forkId:w.id,state:"running",fork:w,events:[],error:null}})),R(w.id),Y(w,w.slotId);}catch{}},[e,r,Y,u,n,t]),H=Pn.useCallback(async U=>{try{let C={userId:t,slotId:U};n&&(C.userHash=n);let M=await fetch(`${r}/api/v1/forks/undo`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e}`},body:JSON.stringify(C)});if(!M.ok){let p=await M.json().catch(()=>({}));throw new Error(p.error||`API error: ${M.status}`)}let w=await M.json();if(l(U),w.removed)i(U),d(p=>{let $={};for(let[x,q]of Object.entries(p))q.fork.slotId!==U&&($[x]=q);return $}),R(null),f("prompting");else if(w.fork){s(U,w.fork);let p=w.fork;L(p.id,{state:"complete",fork:p});}return w}catch(C){throw m(C.message),C}},[e,t,n,r,i,s,l,L]),D=k?b[k]??null:null,K=g?"running":I?"error":D?D.state:v,V=D?.fork??null,W=D?.events??[],X=I??D?.error??null;return {state:K,fork:V,events:W,error:X,runs:b,open:N,close:oe,startFork:_,undoFork:H,adoptRunningFork:F}}var Hi=0;function yo(){let{state:e,fork:t,events:n,error:r,runs:o,open:s,close:i,startFork:l,undoFork:u,adoptRunningFork:h}=Wn(),[b,d]=Pn.useState(false),k=Pn.useRef(null),R=Pn.useRef(e),v=Pn.useCallback(()=>{k.current!==null&&(clearTimeout(k.current),k.current=null);},[]),f=Pn.useCallback(()=>{v(),d(true),s();},[v,s]),g=Pn.useCallback(()=>{v(),d(false),i();},[v,i]),S=Pn.useCallback(async m=>{v(),d(true),await h(m);},[h,v]),I=Object.values(o).filter(m=>m.state==="running").length;return Pn.useEffect(()=>{let m=R.current;R.current=e,e==="complete"&&m==="running"&&b&&I===0&&(v(),k.current=setTimeout(()=>{k.current=null,d(false),i();},Hi)),(e==="running"||e==="prompting")&&v();},[e,b,I,v,i]),Pn.useEffect(()=>v,[v]),{state:e,fork:t,events:n,error:r,runs:o,isOpen:b,open:f,close:g,submit:l,undo:u,adoptRunningFork:S}}var Oi=new Set(["pending","running","building"]);function Vn(e){let t=uo(e),n=yo(),r=mo(t.type==="boundary"?t.id:""),{baseUrl:o,apiKey:s,userId:i,userHash:l,appId:u,activitySummary:h,forkActivities:b}=ve(),d=t.type==="slot"?n:r,k=t.type==="slot"?"slot":"boundary",R=t.id,v=t.title,f=t.type==="slot"?"slot":"module",g=b.find(L=>L.targetKind===f&&L.targetId===t.id&&Oi.has(L.status)),S=b.find(L=>L.targetKind===f&&L.targetId===t.id&&L.status==="complete"&&L.unread),I=Pn.useCallback(()=>{let L=g??S;if(L){d.adoptRunningFork(L.id);return}d.open();},[d,g,S]),m=Pn.useCallback((L,j,O,N)=>t.type==="slot"?n.submit(L,j??t.id,O,N):r.submit(L,O,N),[r,n,t]),P=Pn.useCallback((L,j)=>t.type==="slot"?n.undo(L??t.id):r.undo(j),[r,n,t]);return {...d,open:I,target:t,targetId:R,targetLabel:v,historyMode:k,submit:m,undo:P,buttonProps:{onClick:I,hasNotification:h.unreadCompletedCount>0,activity:h},panelProps:{state:d.state,fork:d.fork,events:d.events,error:d.error,runs:d.runs,...t.type==="slot"?{slotId:R,targetLabel:v,historyMode:k}:{targetId:R,targetLabel:v,historyMode:k},onSubmit:m,onUndo:P,onClose:d.close,baseUrl:o,apiKey:s,userId:i,userHash:l,appId:u}}}function _t(e){let{embedded:t,completeVariant:n}=e,r=Vn(e);return t?ls.jsx(dn,{...r.panelProps,embedded:true,completeVariant:n}):r.isOpen?ls.jsx(dn,{...r.panelProps,completeVariant:n}):ls.jsx(Nn,{...r.buttonProps})}function Ni({boundaryId:e,title:t}){return ls.jsx(_t,{boundaryId:e,title:t})}function qn(e){let t=Array.from(e.children).filter(r=>r instanceof HTMLElement);return t.length===1?t[0]:getComputedStyle(e).display==="contents"?null:e}function ko(e){let t=e.getBoundingClientRect(),n=e.cloneNode(true);n.setAttribute("data-fork-clone-overlay","true"),n.style.position="fixed",n.style.top=`${t.top}px`,n.style.left=`${t.left}px`,n.style.width=`${t.width}px`,n.style.height=`${t.height}px`,n.style.flex="none",n.style.minHeight="auto",n.style.zIndex="9998",n.style.pointerEvents="none",n.style.overflow="hidden";let r=getComputedStyle(e).backgroundColor;n.style.backgroundColor=r&&r!=="rgba(0, 0, 0, 0)"&&r!=="transparent"?r:getComputedStyle(document.body).backgroundColor||"#ffffff",document.body.appendChild(n);let o=e.querySelectorAll("*"),s=n.querySelectorAll("*");for(let i=0;i<o.length;i+=1)o[i].scrollTop!==0&&(s[i].scrollTop=o[i].scrollTop),o[i].scrollLeft!==0&&(s[i].scrollLeft=o[i].scrollLeft);return n}function Gn(e){let t=[],n=e.querySelectorAll("*");for(let r of n){if(!(r instanceof HTMLElement))continue;let o=r.getBoundingClientRect();if(o.width<10||o.height<10||["SCRIPT","STYLE","META","LINK"].includes(r.tagName))continue;let s=getComputedStyle(r),i=parseFloat(s.borderTopLeftRadius)||0;t.push({tag:r.tagName,className:r.className||"",text:(r.textContent||"").slice(0,50).trim(),rect:o,borderRadius:i});}return t}function bo(e,t){let n=[];for(let r of t)if(!(e.find(i=>i.tag===r.tag&&i.className===r.className&&Math.abs(i.rect.top-r.rect.top)<20&&Math.abs(i.rect.left-r.rect.left)<20)||n.some(i=>r.rect.top>=i.rect.top&&r.rect.left>=i.rect.left&&r.rect.right<=i.rect.right&&r.rect.bottom<=i.rect.bottom))){for(let i=n.length-1;i>=0;i-=1){let l=n[i];l.rect.top>=r.rect.top&&l.rect.left>=r.rect.left&&l.rect.right<=r.rect.right&&l.rect.bottom<=r.rect.bottom&&n.splice(i,1);}n.push({rect:r.rect,borderRadius:r.borderRadius});}return n}function wo(e,t){let n=[];for(let r of e)if(!(t.find(i=>i.tag===r.tag&&i.className===r.className&&Math.abs(i.rect.top-r.rect.top)<20&&Math.abs(i.rect.left-r.rect.left)<20)||n.some(i=>r.rect.top>=i.rect.top&&r.rect.left>=i.rect.left&&r.rect.right<=i.rect.right&&r.rect.bottom<=i.rect.bottom))){for(let i=n.length-1;i>=0;i-=1){let l=n[i];l.rect.top>=r.rect.top&&l.rect.left>=r.rect.left&&l.rect.right<=r.rect.right&&l.rect.bottom<=r.rect.bottom&&n.splice(i,1);}n.push({rect:r.rect,borderRadius:r.borderRadius});}return n}function vo(e,t,n,r,o){let s=Math.max(0,Math.min(o,n/2,r/2));return s===0?`M ${e} ${t} L ${e+n} ${t} L ${e+n} ${t+r} L ${e} ${t+r} Z`:[`M ${e+s} ${t}`,`L ${e+n-s} ${t}`,`A ${s} ${s} 0 0 1 ${e+n} ${t+s}`,`L ${e+n} ${t+r-s}`,`A ${s} ${s} 0 0 1 ${e+n-s} ${t+r}`,`L ${e+s} ${t+r}`,`A ${s} ${s} 0 0 1 ${e} ${t+r-s}`,`L ${e} ${t+s}`,`A ${s} ${s} 0 0 1 ${e+s} ${t}`,"Z"].join(" ")}function Yn(e){let t="http://www.w3.org/2000/svg",n=document.createElement("div");n.setAttribute("data-fork-highlights","true"),n.style.cssText="position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9999;";let r=document.createElementNS(t,"svg");r.setAttribute("width","100%"),r.setAttribute("height","100%"),r.style.cssText="position:absolute;top:0;left:0;overflow:visible;";let o=document.createElementNS(t,"defs");r.appendChild(o);let s=[];for(let b=0;b<e.length;b+=1){let{rect:d,borderRadius:k}=e[b],R=d.left-.5,v=d.top-.5,f=d.width+1,g=d.height+1,S=Math.min(k+.5,f/2,g/2),I=vo(R,v,f,g,S),m=`__fork-glow-${b}`,P=document.createElementNS(t,"filter");P.setAttribute("id",m),P.setAttribute("x","-100%"),P.setAttribute("y","-100%"),P.setAttribute("width","300%"),P.setAttribute("height","300%");let L=document.createElementNS(t,"feGaussianBlur");L.setAttribute("in","SourceGraphic"),L.setAttribute("stdDeviation","8"),P.appendChild(L),o.appendChild(P);let j=`__fork-mask-${b}`,O=document.createElementNS(t,"mask");O.setAttribute("id",j),O.setAttribute("maskUnits","userSpaceOnUse"),O.setAttribute("x",String(R-200)),O.setAttribute("y",String(v-200)),O.setAttribute("width",String(f+400)),O.setAttribute("height",String(g+400));let N=document.createElementNS(t,"rect");N.setAttribute("x",String(R-200)),N.setAttribute("y",String(v-200)),N.setAttribute("width",String(f+400)),N.setAttribute("height",String(g+400)),N.setAttribute("fill","white"),O.appendChild(N);let oe=document.createElementNS(t,"path");oe.setAttribute("d",I),oe.setAttribute("fill","black"),O.appendChild(oe),o.appendChild(O);let Y=document.createElementNS(t,"g");Y.setAttribute("mask",`url(#${j})`),Y.setAttribute("opacity","0");let _=document.createElementNS(t,"g");_.setAttribute("filter",`url(#${m})`);let F=document.createElementNS(t,"path");F.setAttribute("d",I),F.setAttribute("fill","none"),F.setAttribute("stroke","rgba(150, 185, 220, 0.6)"),F.setAttribute("stroke-width","6"),F.setAttribute("stroke-linecap","round"),_.appendChild(F),Y.appendChild(_),r.appendChild(Y);let H=document.createElementNS(t,"path");H.setAttribute("d",I),H.setAttribute("fill","none"),H.setAttribute("stroke","rgba(150, 185, 220, 0.35)"),H.setAttribute("stroke-width","2"),H.setAttribute("stroke-linecap","round"),H.setAttribute("opacity","0"),r.appendChild(H),s.push(F,H),F.__group=Y;}n.appendChild(r),document.body.appendChild(n);let i=[];for(let b=0;b<s.length;b+=2){let d=s[b],k=s[b+1],R=d.__group;if(!R)continue;let v=k.getTotalLength(),f=d.getTotalLength();if(v<=0)continue;let g=v*.35;k.setAttribute("stroke-dasharray",`${g} ${v-g}`),k.setAttribute("stroke-dashoffset","0"),i.push(k.animate([{strokeDashoffset:0,opacity:0,offset:0},{strokeDashoffset:-0.2*v,opacity:.92,offset:.06},{strokeDashoffset:-2*v,opacity:.92,offset:.92},{strokeDashoffset:-2.25*v,opacity:0,offset:1}],{duration:14e3,easing:"ease-in-out",fill:"forwards"}));let S=f*.35;d.setAttribute("stroke-dasharray",`${S} ${f-S}`),d.setAttribute("stroke-dashoffset","0"),i.push(d.animate([{strokeDashoffset:0,offset:0},{strokeDashoffset:-0.2*f,offset:.06},{strokeDashoffset:-2*f,offset:.92},{strokeDashoffset:-2.25*f,offset:1}],{duration:14e3,easing:"ease-in-out",fill:"forwards"})),i.push(R.animate([{opacity:0,offset:0},{opacity:.92,offset:.06},{opacity:.92,offset:.92},{opacity:0,offset:1}],{duration:14e3,easing:"ease-in-out",fill:"forwards"}));}let l=false,u=()=>{if(l)return;l=true,clearTimeout(h);for(let d of i)try{d.cancel();}catch{}let b=n.animate([{opacity:1},{opacity:0}],{duration:400,fill:"forwards"});b.onfinish=()=>n.remove(),window.removeEventListener("click",u);},h=setTimeout(u,14500);return setTimeout(()=>{l||window.addEventListener("click",u);},500),u}function So(e){let t="http://www.w3.org/2000/svg",n=document.createElement("div");n.setAttribute("data-fork-removed","true"),n.style.cssText="position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9999;";let r=document.createElementNS(t,"svg");r.setAttribute("width","100%"),r.setAttribute("height","100%"),r.style.cssText="position:absolute;top:0;left:0;overflow:visible;";let o=document.createElementNS(t,"defs"),s=document.createElementNS(t,"filter");s.setAttribute("id","__fork-removed-shadow"),s.setAttribute("x","-10%"),s.setAttribute("y","-10%"),s.setAttribute("width","120%"),s.setAttribute("height","120%");let i=document.createElementNS(t,"feDropShadow");i.setAttribute("dx","0"),i.setAttribute("dy","1"),i.setAttribute("stdDeviation","2"),i.setAttribute("flood-color","rgba(0,0,0,0.15)"),s.appendChild(i),o.appendChild(s),r.appendChild(o);for(let{rect:l,borderRadius:u}of e){let h=document.createElementNS(t,"path");h.setAttribute("d",vo(l.left,l.top,l.width,l.height,u)),h.setAttribute("fill","none"),h.setAttribute("stroke","rgba(120, 125, 135, 0.6)"),h.setAttribute("stroke-width","1.5"),h.setAttribute("stroke-dasharray","8 4"),h.setAttribute("stroke-linecap","round"),h.setAttribute("filter","url(#__fork-removed-shadow)"),h.setAttribute("opacity","0"),r.appendChild(h),h.animate([{opacity:0,offset:0},{opacity:.6,offset:.08},{opacity:.05,offset:.45},{opacity:.6,offset:.85},{opacity:.05,offset:1}],{duration:5e3,easing:"ease-in-out",fill:"forwards"});}return n.appendChild(r),document.body.appendChild(n),n}function Ao(e,t){if(Bi(t.selector))return xo(e,t);let r=xo(e,t);if(r)return r;try{let s=document.querySelector(t.selector);if(s instanceof HTMLElement&&s!==e&&e.contains(s))return s}catch{}if(Fo(t.selector))try{let s=e.querySelector(t.selector);if(s instanceof HTMLElement&&s!==e)return s}catch{}if(t.textHint){let s=t.textHint.trim();if(s){let i=Qn(e,b=>b===s);if(i)return i;let l=s.toLowerCase(),u=Qn(e,b=>b.toLowerCase()===l);if(u)return u;let h=Qn(e,b=>b.toLowerCase().includes(l));if(h)return h}}let o=Di(t.selector);if(o&&o!==t.selector&&Fo(o))try{let s=e.querySelector(o);if(s instanceof HTMLElement&&s!==e)return s}catch{}return null}function Fo(e){let t=e.split(/\s+|>|~|\+/),n=t[t.length-1]??"";return /[#\[]|:not\(|:nth-/.test(n)}function xo(e,t){let n=Array.from(e.querySelectorAll("[data-fork-new]"));if(n.length===0)return null;let r=Zn(t.label),o=Zn(t.textHint);return n.find(i=>{let l=Zn(i.getAttribute("data-fork-new"));return !!l&&(l===r||l===o)})??null}function Bi(e){return e.trim()==="[data-fork-new]"}function Zn(e){return e?.trim().replace(/\s+/g," ").toLowerCase()||null}function Di(e){return e.replace(/\[class[\*~|^$]?=("[^"]*"|'[^']*'|[^\]]+)\]/g,"").replace(/\.[A-Za-z_][\w-]*/g,"").replace(/\s+/g," ").trim()}function Qn(e,t){let n=null,r=1/0,o=e.querySelectorAll("*");for(let s of o){let i=s.textContent?.trim();if(!i||!t(i))continue;let l=s.getBoundingClientRect();if(l.width<4||l.height<4)continue;let u=l.width*l.height;u<r&&(n=s,r=u);}return n}var er=2147483600,ji=1600,Ki=3e4,zi=300,Qe=10;function Wi(e){let n=getComputedStyle(e).borderTopLeftRadius;if(!n)return 4;if(n.endsWith("%")){let i=parseFloat(n);if(!Number.isFinite(i)||i<=0)return 4;let l=e.getBoundingClientRect(),u=Math.min(l.width,l.height);return Math.max(4,i/100*u)}let r=parseFloat(n);if(!Number.isFinite(r)||r<=0)return 4;let o=e.getBoundingClientRect(),s=Math.min(o.width,o.height)/2;return r>=s?s:Math.min(r,16)}function Ji(e,t,n,r){let s=window.innerWidth,i=window.innerHeight,l=e;l==="top"&&t.top<r+Qe+8?l="bottom":l==="bottom"&&i-t.bottom<r+Qe+8?l="top":l==="left"&&t.left<n+Qe+8?l="right":l==="right"&&s-t.right<n+Qe+8&&(l="left");let u=0,h=0;return l==="top"?(u=t.top-r-Qe,h=t.left+t.width/2-n/2):l==="bottom"?(u=t.bottom+Qe,h=t.left+t.width/2-n/2):l==="left"?(u=t.top+t.height/2-r/2,h=t.left-n-Qe):(u=t.top+t.height/2-r/2,h=t.right+Qe),h=Math.max(8,Math.min(h,s-n-8)),u=Math.max(8,Math.min(u,i-r-8)),{top:u,left:h,placement:l}}function Vi(e){let t=document.createElement("div");t.setAttribute("data-fork-highlight-outline","true"),t.style.cssText=["position:fixed","pointer-events:none",`z-index:${er}`,"border:1.5px solid rgba(59,130,246,0.85)","box-sizing:border-box","opacity:0","transition:opacity 200ms ease-out"].join(";");let n=document.createElement("div");n.setAttribute("data-fork-highlight-glow","true"),n.style.cssText=["position:fixed","pointer-events:none",`z-index:${er-1}`,"box-sizing:border-box","border:1px solid rgba(59,130,246,0.36)","box-shadow:0 0 0 4px rgba(59,130,246,0.16), 0 0 18px 2px rgba(59,130,246,0.31)","opacity:0","transition:opacity 200ms ease-out"].join(";");let r=document.createElement("div");return r.setAttribute("data-fork-highlight-tooltip","true"),r.style.cssText=["position:fixed","pointer-events:none",`z-index:${er+1}`,"padding:6px 10px","font:500 12px/1.2 -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif","color:#ffffff","background:linear-gradient(135deg,#64748b,#475569)","border-radius:999px","box-shadow:0 4px 14px rgba(71,85,105,0.31),0 1px 2px rgba(0,0,0,0.1)","white-space:nowrap","opacity:0","transform:translateY(-2px)","transition:opacity 200ms ease-out, transform 200ms ease-out"].join(";"),r.textContent=`New: ${e}`,{outline:t,glow:n,tooltip:r}}function Xi(){if(document.getElementById("__fork-highlight-keyframes"))return;let e=document.createElement("style");e.id="__fork-highlight-keyframes",e.textContent=`
63
+ `}),Js.jsxs("div",{className:"__fork-panel",style:Ds,children:[Js.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"0 16px",height:54,boxSizing:"border-box",borderBottom:"1px solid rgba(229, 231, 235, 0.8)",flexShrink:0},children:[Js.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,minWidth:0,flex:1},children:[ce||Ke?Js.jsxs(Js.Fragment,{children:[Js.jsx("button",{onClick:()=>{qe(null),Ge(false),rt.current=false;},style:{width:30,height:30,borderRadius:9,background:"#ffffff",border:"1px solid #e5e7eb",color:"#111827",cursor:"pointer",display:"inline-flex",alignItems:"center",justifyContent:"center",padding:0,flexShrink:0,transition:"background 0.12s, border-color 0.12s"},onMouseEnter:s=>{s.currentTarget.style.background="#f9fafb",s.currentTarget.style.borderColor="#d1d5db";},onMouseLeave:s=>{s.currentTarget.style.background="#ffffff",s.currentTarget.style.borderColor="#e5e7eb";},title:"Back to all forks",children:Js.jsx(lucideReact.ChevronLeft,{style:{width:15,height:15}})}),(()=>{let s=ce?o[ce]:void 0,T=(s?s.events.find(j=>{let ie=j.data;return j.type==="status"&&ie.summary})?.data?.summary??s.fork.summary:void 0)||Vn?.summary||"New Feature";return Js.jsx("span",{style:{fontSize:13.5,fontWeight:700,color:"#111827",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",minWidth:0},title:T,children:T})})()]}):Js.jsxs(Js.Fragment,{children:[Js.jsx("span",{onDoubleClick:async s=>{if(s.stopPropagation(),!mn&&confirm("Kill all forks in this container?")){ze(true);try{let w=await Rs();`${w?.deleted??0}`,hn([]),qe(null),Ge(!1),H("");}catch(w){console.error("[Fork] Reset failed:",w);}finally{ze(false);}}},style:{display:"inline-flex",alignItems:"center",justifyContent:"center",padding:4,margin:-4,cursor:"pointer",flexShrink:0},children:Js.jsx($n,{style:{width:16,height:16,color:"#111827",pointerEvents:"none"}})}),We==="running"?Js.jsx("span",{style:{fontSize:13,fontWeight:600,color:"#111827",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:Ls}):Dt.length===0&&!vn?Js.jsx("span",{style:{fontSize:13,fontWeight:600,color:"#111827",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:"Fork"}):vn?Js.jsxs("div",{ref:Fn,style:{position:"relative",minWidth:0,display:"inline-flex"},children:[Js.jsxs("button",{type:"button",onClick:()=>{M(s=>!s);},onMouseEnter:()=>ue(true),onMouseLeave:()=>ue(false),"aria-haspopup":"menu","aria-expanded":v,style:{display:"inline-flex",alignItems:"center",gap:4,padding:"3px 6px",border:"1px solid transparent",borderRadius:6,background:ee||v?"#f3f4f6":"transparent",fontSize:13,fontWeight:600,color:"#111827",fontFamily:"inherit",cursor:"pointer",maxWidth:180,minWidth:0,transition:"background-color 0.12s"},children:[Js.jsx("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:lo}),Js.jsx(lucideReact.ChevronDown,{style:{width:12,height:12,color:"#6b7280",flexShrink:0,transform:v?"rotate(180deg)":void 0,transition:"transform 0.15s"}})]}),v&&Js.jsxs("div",{role:"menu",style:{position:"absolute",top:"calc(100% + 4px)",left:0,minWidth:200,maxWidth:260,background:"#ffffff",border:"1px solid #e5e7eb",borderRadius:8,boxShadow:"0 4px 12px rgba(0,0,0,0.08), 0 1px 3px rgba(0,0,0,0.06)",padding:4,zIndex:2147483001},children:[Dt.map(s=>{let w=s.id===Te,T=le===s.id,j=se===s.id;return Js.jsxs("button",{type:"button",role:"menuitem",onMouseEnter:()=>de(s.id),onMouseLeave:()=>de(null),onClick:()=>{s.id!==Te&&Ns(s.id);},disabled:!!se,style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"6px 8px",border:"none",background:T?"#f3f4f6":"transparent",borderRadius:4,fontSize:13,fontFamily:"inherit",color:"#111827",cursor:se?"default":"pointer",textAlign:"left",fontWeight:w?600:400,opacity:se&&!j?.55:1},children:[Js.jsx("span",{style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:14,height:14,color:"#111827",flexShrink:0},children:w&&Js.jsx(lucideReact.Check,{style:{width:12,height:12}})}),Js.jsx("span",{style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:j?"Switching...":s.name})]},s.id)}),Js.jsx("div",{style:{height:1,background:"#e5e7eb",margin:"4px 0"}}),me?Js.jsxs("div",{style:{display:"flex",alignItems:"center",gap:4,padding:"4px 4px"},children:[Js.jsx("input",{ref:Me,type:"text",value:Ae,placeholder:"Container name",disabled:se==="__new__",onChange:s=>be(s.target.value),onKeyDown:s=>{s.key==="Enter"?(s.preventDefault(),no(Ae)):s.key==="Escape"&&(s.preventDefault(),s.stopPropagation(),he(false),be(""));},style:{flex:1,minWidth:0,padding:"5px 8px",border:"1px solid #d1d5db",borderRadius:4,fontSize:13,fontFamily:"inherit",color:"#111827",background:"#ffffff",outline:"none"},onFocus:s=>{s.currentTarget.style.borderColor="#111827",s.currentTarget.style.boxShadow="0 0 0 2px rgba(17,24,39,0.15)";},onBlur:s=>{s.currentTarget.style.borderColor="#d1d5db",s.currentTarget.style.boxShadow="none";}}),Js.jsx("button",{type:"button",onClick:()=>{no(Ae);},disabled:!Ae.trim()||se==="__new__",title:"Create",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:26,height:26,border:"none",borderRadius:4,background:!Ae.trim()||se==="__new__"?"#e5e7eb":"#111827",color:!Ae.trim()||se==="__new__"?"#9ca3af":"#ffffff",cursor:!Ae.trim()||se==="__new__"?"default":"pointer",flexShrink:0},children:se==="__new__"?Js.jsx("span",{style:{width:10,height:10,border:"1.5px solid currentColor",borderTopColor:"transparent",borderRadius:"50%",animation:"__fork-spin 0.7s linear infinite"}}):Js.jsx(lucideReact.Check,{style:{width:12,height:12}})})]}):Js.jsx("button",{type:"button",role:"menuitem",onMouseEnter:()=>Se(true),onMouseLeave:()=>Se(false),onClick:()=>{se||(Pe(null),be(""),he(true));},disabled:!!se,style:{display:"flex",alignItems:"center",width:"100%",padding:"6px 8px",border:"none",background:we?"#f3f4f6":"transparent",borderRadius:4,fontSize:13,fontFamily:"inherit",color:"#111827",cursor:se?"default":"pointer",textAlign:"left",opacity:se&&se!=="__new__"?.55:1},children:"+ New container"}),Xe&&Js.jsx("div",{style:{padding:"6px 8px",fontSize:11,lineHeight:1.35,color:"#b91c1c"},children:Xe})]})]}):Js.jsx("span",{style:{fontSize:13,fontWeight:600,color:"#111827",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:lo})]}),We==="running"&&Js.jsx("span",{title:kt?`Estimated ~${kt} min`:"Estimating\u2026",style:{fontSize:10,fontWeight:600,color:kt?"#111827":"#9ca3af",backgroundColor:kt?"rgba(17, 24, 39, 0.08)":"rgba(156, 163, 175, 0.12)",padding:"1px 6px",borderRadius:999,flexShrink:0,fontVariantNumeric:"tabular-nums",animation:kt?void 0:"__fork-pulse 1.4s ease-in-out infinite",minWidth:28,textAlign:"center"},children:kt?`~${kt}m`:"~ m"})]}),Js.jsxs("div",{style:{display:"flex",alignItems:"center",gap:2,flexShrink:0},children:[Cs&&!ce&&Js.jsx("button",{type:"button",role:"switch","aria-checked":!_t,"aria-label":_t?"Turn Fork back on":"Turn Fork off",title:_t?"Fork is off \u2014 you're seeing the original app. Turn it back on. Only affects you.":"Turn Fork off to see the original app. Only affects you.",onClick:()=>{Is(!_t);},onMouseEnter:()=>Kr(true),onMouseLeave:()=>Kr(false),style:{position:"relative",width:26,height:15,borderRadius:999,border:"none",padding:0,marginRight:6,flexShrink:0,cursor:"pointer",backgroundColor:_t?zr?"#9ca3af":"#d1d5db":zr?"#374151":"#111827",transition:"background-color 0.18s ease",outline:"none",boxSizing:"border-box"},children:Js.jsx("span",{"aria-hidden":true,style:{position:"absolute",top:2,left:_t?2:13,width:11,height:11,borderRadius:"50%",backgroundColor:"#ffffff",boxShadow:"0 1px 2px rgba(15, 23, 42, 0.25)",transition:"left 0.18s cubic-bezier(0.16, 1, 0.3, 1)"}})}),!U&&Js.jsxs(Js.Fragment,{children:[Jr&&Js.jsx("button",{onClick:je?$s:Ts,onMouseEnter:()=>pe(true),onMouseLeave:()=>pe(false),title:je?"Redock to sidebar":"Pop out into window",style:{padding:6,borderRadius:6,color:re?"#4b5563":"#9ca3af",backgroundColor:re?"#f3f4f6":"transparent",border:"none",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",transition:"background-color 0.15s, color 0.15s"},children:je?Js.jsx(lucideReact.PictureInPicture,{style:{width:16,height:16}}):Js.jsx(lucideReact.PictureInPicture2,{style:{width:16,height:16}})}),Js.jsx("button",{onClick:ao,onMouseEnter:()=>Z(true),onMouseLeave:()=>Z(false),style:{padding:6,borderRadius:6,color:G?"#4b5563":"#9ca3af",backgroundColor:G?"#f3f4f6":"transparent",border:"none",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",transition:"background-color 0.15s, color 0.15s"},children:Js.jsx(lucideReact.X,{style:{width:16,height:16}})})]})]})]}),Js.jsxs("div",{ref:yn,style:{flex:1,overflowY:"auto",minHeight:0,display:"flex",flexDirection:"column"},children:[dt&&Js.jsx("div",{onClick:()=>ut(null),style:{position:"fixed",inset:0,zIndex:10}}),!ce&&!Ke&&Js.jsxs("div",{style:{display:"flex",flexDirection:"column"},children:[Ct.length===0&&Js.jsx("div",{style:{padding:"24px 20px",textAlign:"center",fontSize:13,color:"#6b7280"},children:"No forks yet. Describe a feature below to start one."}),Ct.length>0&&Js.jsx("div",{style:{display:"flex",flexDirection:"column"},children:js.map((s,w)=>{let T=o[s.id],j=T?T.events.find(ne=>{let zs=ne.data;return ne.type==="status"&&zs.summary})?.data?.summary??T.fork.summary:void 0,ie=s.customName||j||s.summary||"Untitled fork",ve=!!Dr.find(ne=>ne.id===s.id)?.unread,Ye=o[s.id]?.state??s.status,He=Ye==="running"||Ye==="building"||Ye==="pending",Rn=!!s.revertedAt,uo=!!s.disabledAt;return Js.jsxs(sr.Fragment,{children:[Js.jsxs("div",{style:{position:"relative"},children:[It===s.id?Js.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"10px 16px"},children:[Js.jsx("input",{autoFocus:true,value:gn,disabled:Ee,onChange:ne=>pt(ne.target.value),onKeyDown:ne=>{ne.key==="Enter"&&so(),ne.key==="Escape"&&(ft(null),pt(""));},style:{flex:1,fontSize:13.5,fontWeight:600,color:"#111827",border:"1px solid #d1d5db",borderRadius:6,padding:"5px 8px",outline:"none",fontFamily:"inherit",minWidth:0}}),Js.jsx("button",{onClick:so,disabled:Ee,style:{padding:"4px 10px",fontSize:12,fontWeight:500,borderRadius:6,border:"1px solid #e5e7eb",background:"#111827",color:"#ffffff",cursor:Ee?"default":"pointer",opacity:Ee?.5:1,flexShrink:0},children:"Save"}),Js.jsx("button",{onClick:()=>{ft(null),pt("");},disabled:Ee,style:{padding:"4px 8px",fontSize:12,fontWeight:500,borderRadius:6,border:"none",background:"transparent",color:"#6b7280",cursor:Ee?"default":"pointer",flexShrink:0},children:"Cancel"})]}):Js.jsxs("button",{onClick:()=>{Ge(false),qe(s.id);},style:{textAlign:"left",padding:"12px 72px 12px 16px",background:"transparent",border:"none",cursor:"pointer",display:"flex",alignItems:"flex-start",gap:8,width:"100%",transition:"background 0.12s",fontFamily:"inherit"},onMouseEnter:ne=>{ne.currentTarget.style.background="#fafafa";},onMouseLeave:ne=>{ne.currentTarget.style.background="transparent";},children:[ve&&Js.jsx("span",{"aria-label":"Not viewed yet",title:"Not viewed yet",style:{width:7,height:7,borderRadius:"50%",backgroundColor:"#111827",flexShrink:0,marginTop:5}}),Js.jsxs("div",{style:{flex:1,minWidth:0,display:"flex",flexDirection:"column",gap:5,alignItems:"flex-start"},children:[Js.jsx("span",{style:{fontSize:13.5,fontWeight:600,color:Rn||uo?"#9ca3af":"#111827",textDecoration:Rn?"line-through":"none",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%"},children:ie}),Js.jsx("span",{style:{fontFamily:'ui-monospace, SFMono-Regular, Menlo, Monaco, "Liberation Mono", "Courier New", monospace',fontSize:10,color:"#9ca3af",background:"#f8f9fa",borderRadius:5,padding:"1px 6px",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%",boxSizing:"border-box"},children:s.targetId})]}),Rn&&Js.jsx("span",{style:{fontSize:10,fontWeight:600,color:"#9ca3af",border:"1px solid #e5e7eb",borderRadius:4,padding:"1px 5px",flexShrink:0,alignSelf:"center"},children:"removed"}),uo&&!Rn&&Js.jsx("span",{style:{fontSize:10,fontWeight:600,color:"#6b7280",background:"#f3f4f6",border:"1px solid #e5e7eb",borderRadius:5,padding:"3px 8px",flexShrink:0,alignSelf:"center"},children:"disabled"}),He&&Js.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:5,background:"#fff7ed",border:"1px solid #fed7aa",color:"#c2410c",borderRadius:999,padding:"2px 9px",fontSize:11,fontWeight:600,flexShrink:0},children:[Js.jsx("span",{style:{width:6,height:6,borderRadius:"50%",background:"#f59e0b",animation:"__fork-pulse 1.4s ease-in-out infinite"}}),"Running"]}),Ye==="error"&&Js.jsx("span",{style:{display:"inline-flex",alignItems:"center",gap:5,background:"#fef2f2",border:"1px solid #fecaca",color:"#b91c1c",borderRadius:999,padding:"2px 9px",fontSize:11,fontWeight:600,flexShrink:0},children:"Failed"})]}),It!==s.id&&Js.jsxs("div",{style:{position:"absolute",top:0,bottom:0,right:10,display:"flex",alignItems:"center",gap:8,pointerEvents:"none"},children:[Js.jsx("span",{style:{fontSize:11.5,color:"#9ca3af",flexShrink:0},children:mr(s.updatedAt)}),Js.jsx("button",{"aria-label":"Fork actions",onClick:ne=>{ne.stopPropagation(),ut(dt===s.id?null:s.id);},style:{padding:4,borderRadius:6,border:"none",background:dt===s.id?"#f3f4f6":"transparent",color:"#9ca3af",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",pointerEvents:"auto"},onMouseEnter:ne=>{ne.currentTarget.style.background="#f3f4f6",ne.currentTarget.style.color="#4b5563";},onMouseLeave:ne=>{dt!==s.id&&(ne.currentTarget.style.background="transparent"),ne.currentTarget.style.color="#9ca3af";},children:Js.jsx(lucideReact.MoreHorizontal,{style:{width:15,height:15}})})]}),dt===s.id&&Js.jsxs("div",{style:{position:"absolute",top:32,right:8,zIndex:20,background:"#ffffff",border:"1px solid #e5e7eb",borderRadius:8,boxShadow:"0 8px 24px rgba(0,0,0,0.10)",padding:4,minWidth:130,display:"flex",flexDirection:"column"},children:[R&&Js.jsx("button",{onClick:ne=>{ne.stopPropagation(),ut(null),ft(s.id),pt(s.customName??ie);},style:{padding:"6px 10px",fontSize:12,fontWeight:500,textAlign:"left",border:"none",borderRadius:6,background:"transparent",color:"#111827",cursor:"pointer"},onMouseEnter:ne=>ne.currentTarget.style.background="#f3f4f6",onMouseLeave:ne=>ne.currentTarget.style.background="transparent",children:"Rename"}),N&&Js.jsx("button",{onClick:ne=>{ne.stopPropagation(),Bs(s.id,!s.disabledAt);},disabled:Et||He,style:{padding:"6px 10px",fontSize:12,fontWeight:500,textAlign:"left",border:"none",borderRadius:6,background:"transparent",color:"#111827",cursor:Et||He?"default":"pointer",opacity:Et||He?.5:1},onMouseEnter:ne=>ne.currentTarget.style.background="#f3f4f6",onMouseLeave:ne=>ne.currentTarget.style.background="transparent",children:s.disabledAt?"Enable":"Disable"}),h&&C&&Js.jsx("button",{onClick:ne=>{ne.stopPropagation(),Us(s.id);},disabled:ke||ae!==null||He,style:{padding:"6px 10px",fontSize:12,fontWeight:500,textAlign:"left",border:"none",borderRadius:6,background:"transparent",color:"#b91c1c",cursor:ke||ae||He?"default":"pointer",opacity:ke||ae||He?.5:1},onMouseEnter:ne=>ne.currentTarget.style.background="#fef2f2",onMouseLeave:ne=>ne.currentTarget.style.background="transparent",children:"Delete"})]})]}),(Q?.forkId===s.id||tt===s.id)&&!ce&&Js.jsxs("div",{style:{padding:"2px 16px 12px 16px"},children:[co,An]}),w<Ct.length-1&&Js.jsx("div",{style:{height:1,background:"#f3f4f6",margin:"0 16px",flexShrink:0}})]},s.id)})}),!Q&&!tt&&An&&Js.jsx("div",{style:{padding:"0 16px 12px 16px"},children:An})]}),ce&&Nt.length>0&&Js.jsxs("div",{style:{margin:"16px 16px 0 16px"},children:[Nt.map((s,w)=>Js.jsx("div",{style:{marginBottom:w<Nt.length-1?12:0},children:s.type==="user"?Js.jsx("div",{style:{display:"flex",justifyContent:"flex-end"},children:Js.jsxs("div",{style:{backgroundColor:"#f3f4f6",borderRadius:12,padding:"10px 14px",fontSize:13,color:s.reverted?"#9ca3af":"#374151",textDecoration:s.reverted?"line-through":"none",lineHeight:1.5,maxWidth:"85%"},children:[s.attachments&&s.attachments.length>0&&Js.jsx("div",{style:{display:"flex",flexWrap:"wrap",gap:4,marginBottom:6},children:s.attachments.map((T,j)=>Js.jsx("img",{src:T.dataUrl,alt:"attachment",style:{maxWidth:150,maxHeight:110,borderRadius:8,border:"1px solid #e5e7eb",display:"block",objectFit:"cover"}},j))}),s.selectedElement&&Js.jsxs("div",{style:{display:"inline-flex",alignItems:"center",gap:4,background:"#eef2ff",border:"1px solid #c7d2fe",color:"#4338ca",borderRadius:999,padding:"2px 8px",fontSize:10.5,fontWeight:500,marginRight:6,maxWidth:"100%"},children:[Js.jsx(lucideReact.MousePointer2,{style:{width:10,height:10,flexShrink:0}}),Js.jsx("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace"},children:s.selectedElement.label})]}),s.text]})}):D==="item"&&w===Nt.length-1?Js.jsxs("div",{style:{display:"flex",alignItems:"flex-start",gap:12,padding:12,borderRadius:8,border:"1px solid #e4e4e7",background:"#ffffff"},children:[Js.jsx("div",{style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:28,height:28,flexShrink:0,borderRadius:6,background:"#f4f4f5",color:"#0a0a0a"},children:Js.jsx(lucideReact.BadgeCheck,{style:{width:16,height:16}})}),Js.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:2,flex:1,minWidth:0},children:[Js.jsx("div",{style:{fontSize:13,fontWeight:500,color:"#0a0a0a",lineHeight:1.3},children:"Feature applied"}),Js.jsx("div",{style:{fontSize:13,color:"#71717a",lineHeight:1.4},children:s.text})]}),A&&We!=="running"&&Js.jsx("button",{onClick:T=>{T.stopPropagation(),ro();},disabled:c,style:{padding:"4px 10px",fontSize:12,fontWeight:500,borderRadius:6,border:"1px solid #e4e4e7",background:"#ffffff",color:"#0a0a0a",cursor:c?"default":"pointer",opacity:c?.4:1,height:28,flexShrink:0},children:"Undo"})]}):Js.jsxs("div",{style:{display:"inline-flex",alignItems:"center",gap:8,background:"#ffffff",border:"1px solid #e5e7eb",borderRadius:10,boxShadow:"0 1px 2px rgba(0, 0, 0, 0.03)",padding:"9px 12px",maxWidth:"90%",boxSizing:"border-box"},children:[Js.jsx("span",{style:{width:7,height:7,borderRadius:"50%",background:"#94a3b8",flexShrink:0}}),Js.jsx("span",{style:{fontSize:12.5,fontWeight:600,color:s.reverted?"#9ca3af":"#334155",textDecoration:s.reverted?"line-through":"none",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:s.text}),s.reverted&&Js.jsx("span",{style:{fontSize:10,fontWeight:600,color:"#9ca3af",border:"1px solid #e5e7eb",borderRadius:4,padding:"1px 5px",flexShrink:0},children:"removed"}),s.timestamp&&Js.jsx("span",{style:{fontSize:11,color:"#9ca3af",flexShrink:0},children:mr(s.timestamp)}),h&&C&&s.promptId&&!s.reverted&&w!==Nt.length-1&&We!=="running"&&Js.jsxs("span",{style:{display:"inline-flex",gap:4,flexShrink:0},children:[Js.jsx("button",{onClick:T=>{T.stopPropagation(),oo(s,"revert_to");},disabled:ke||ae!==null,title:"Go back to this point \u2014 discard every later change",style:{padding:"1px 6px",fontSize:10,fontWeight:500,borderRadius:4,border:"1px solid #e5e7eb",background:"#ffffff",color:"#6b7280",cursor:ke||ae?"default":"pointer",opacity:ae===s.promptId?.5:1},children:"To here"}),Js.jsx("button",{onClick:T=>{T.stopPropagation(),oo(s,"remove_step");},disabled:ke||ae!==null,title:"Remove this change (choose what happens to later ones)",style:{padding:"1px 6px",fontSize:10,fontWeight:500,borderRadius:4,border:"1px solid #e5e7eb",background:"#ffffff",color:"#b91c1c",cursor:ke||ae?"default":"pointer",opacity:ae===s.promptId?.5:1},children:"Remove"})]}),A&&w===Nt.length-1&&We!=="running"&&Js.jsxs("button",{onClick:T=>{T.stopPropagation(),ro();},onMouseEnter:()=>K(w),onMouseLeave:()=>K(null),disabled:c,style:{position:"relative",padding:2,borderRadius:4,border:"none",background:I===w?"rgba(0,0,0,0.06)":"transparent",color:I===w?"#6b7280":"#d1d5db",cursor:c?"default":"pointer",display:"flex",alignItems:"center",justifyContent:"center",transition:"color 0.15s, background 0.15s",opacity:c?.4:1,flexShrink:0},children:[Js.jsx(lucideReact.Undo2,{style:{width:12,height:12}}),I===w&&Js.jsx("span",{style:{position:"absolute",bottom:"calc(100% + 4px)",right:0,fontSize:10,fontWeight:500,color:"#fff",background:"#374151",borderRadius:4,padding:"2px 6px",whiteSpace:"nowrap",pointerEvents:"none",lineHeight:"16px"},children:"Undo"})]})]})},w)),co,An]}),We==="running"&&Js.jsx("div",{style:{margin:"12px 16px 0 16px"},children:Js.jsxs("div",{onClick:()=>E(!b),style:{background:"#ffffff",border:"1px solid #e5e7eb",borderRadius:10,boxShadow:"0 1px 2px rgba(0, 0, 0, 0.03)",overflow:"hidden",cursor:"pointer",transition:"all 0.3s cubic-bezier(0.22, 1, 0.36, 1)"},children:[Js.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"9px 12px"},children:[Js.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,minWidth:0},children:[Js.jsx("span",{style:{width:7,height:7,borderRadius:"50%",background:"#f59e0b",flexShrink:0,animation:"__fork-pulse 1.4s ease-in-out infinite"}}),Js.jsx(ga,{events:Ht},ce??"__compose__")]}),Js.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,flexShrink:0,marginLeft:8},children:[Ht[0]?.timestamp&&Js.jsx("span",{style:{fontSize:11,color:"#9ca3af"},children:mr(Ht[0].timestamp)}),Js.jsx("div",{style:{color:"#9ca3af",transition:"transform 0.2s ease",transform:b?"rotate(180deg)":"rotate(0deg)",display:"flex"},children:Js.jsx(lucideReact.ChevronDown,{style:{width:14,height:14}})})]})]}),Js.jsx("div",{style:{maxHeight:b?320:0,opacity:b?1:0,transition:"max-height 0.35s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.25s ease",overflow:"hidden"},children:Js.jsx("div",{style:{background:"#1a1a2e",borderTop:"1px solid #e5e7eb",maxHeight:320,overflowY:"auto"},children:Js.jsx(Po,{events:Ht},ce??"__compose__")})})]})}),We==="error"&&Js.jsxs("div",{style:{padding:"20px 16px",textAlign:"center"},children:[Js.jsx("div",{style:{width:36,height:36,backgroundColor:"#fef2f2",borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",margin:"0 auto 10px auto"},children:Js.jsx(lucideReact.X,{style:{width:18,height:18,color:"#ef4444"}})}),Js.jsx("p",{style:{fontSize:12,color:"#6b7280",marginBottom:10,maxWidth:260,margin:"0 auto 10px auto"},children:Ps??r}),Js.jsxs("button",{onClick:()=>{let s=Xn?.prompt||Sn.current;s&&S(s,Wt);},onMouseEnter:()=>f(true),onMouseLeave:()=>f(false),style:{display:"inline-flex",alignItems:"center",gap:6,padding:"6px 12px",borderRadius:8,fontSize:12,fontWeight:500,color:"#111827",backgroundColor:te?"#e5e7eb":"#f3f4f6",border:"none",cursor:"pointer",transition:"background-color 0.15s",fontFamily:"inherit"},children:[Js.jsx(lucideReact.RotateCcw,{style:{width:12,height:12}})," Try Again"]})]})]}),!(ce?We==="running":Ke&&e==="running")&&Js.jsxs("div",{style:{padding:"8px 12px 12px 12px",flexShrink:0,position:"relative"},children:[Pr&&Js.jsx("div",{style:{position:"absolute",top:-42,left:"50%",transform:"translateX(-50%)",background:"#111827",color:"#ffffff",fontSize:12,fontWeight:500,padding:"7px 14px",borderRadius:999,boxShadow:"0 4px 16px rgba(0, 0, 0, 0.22)",whiteSpace:"nowrap",maxWidth:gr-32,overflow:"hidden",textOverflow:"ellipsis",pointerEvents:"none",zIndex:5},children:Pr}),Js.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:6,borderRadius:14,padding:"10px 10px 8px 12px",background:"#ffffff",border:"1px solid #e5e7eb",boxShadow:"0 1px 2px rgba(0, 0, 0, 0.03)"},children:[(ot.length>0||ht)&&Js.jsxs("div",{style:{display:"flex",flexWrap:"wrap",gap:6,alignItems:"center"},children:[ot.map(s=>Js.jsxs("div",{onMouseEnter:()=>Ur(s.id),onMouseLeave:()=>Ur(null),style:{position:"relative",width:44,height:44,borderRadius:8,overflow:"hidden",border:"1px solid #e5e7eb",flexShrink:0},children:[Js.jsx("img",{src:s.dataUrl,alt:"attachment",style:{width:"100%",height:"100%",objectFit:"cover",display:"block"}}),Js.jsx("button",{onClick:()=>zn(w=>w.filter(T=>T.id!==s.id)),title:"Remove image",style:{position:"absolute",top:2,right:2,width:15,height:15,borderRadius:"50%",background:"rgba(17, 24, 39, 0.78)",color:"#ffffff",border:"none",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",padding:0,opacity:As===s.id?1:.6,transition:"opacity 0.12s"},children:Js.jsx(lucideReact.X,{style:{width:9,height:9}})})]},s.id)),ht&&Js.jsxs("div",{style:{display:"inline-flex",alignItems:"center",gap:5,background:"#eef2ff",border:"1px solid #c7d2fe",color:"#4338ca",borderRadius:999,padding:"4px 6px 4px 9px",fontSize:11,fontWeight:500,maxWidth:"100%",minWidth:0},children:[Js.jsx(lucideReact.MousePointer2,{style:{width:11,height:11,flexShrink:0}}),Js.jsx("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace"},children:Ln(ht)}),Js.jsx("button",{onClick:()=>Kn(null),title:"Remove element context",style:{width:14,height:14,borderRadius:"50%",background:"transparent",color:"#6366f1",border:"none",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",padding:0,flexShrink:0},children:Js.jsx(lucideReact.X,{style:{width:10,height:10}})})]})]}),Js.jsx("textarea",{ref:Tt,value:P,onChange:s=>H(s.target.value),onPaste:s=>{let w=Lo(s.nativeEvent);w.length>0&&(s.preventDefault(),Gr(w));},onKeyDown:s=>{s.key==="Enter"&&!s.shiftKey&&(s.preventDefault(),Qr()),s.key==="Escape"&&!U&&ao();},placeholder:ce?"Iterate on this feature...":"Start building a new Fork...",rows:1,style:{width:"100%",backgroundColor:"transparent",fontSize:13,color:"#111827",border:"none",outline:"none",padding:0,fontFamily:"inherit",resize:"none",lineHeight:1.5,maxHeight:160,overflow:"auto",boxSizing:"border-box"}}),Js.jsxs("div",{style:{display:"flex",alignItems:"center",gap:2},children:[Js.jsx("button",{onClick:()=>Lr.current?.click(),onMouseEnter:()=>Hr(true),onMouseLeave:()=>Hr(false),title:"Attach an image",style:{width:28,height:28,borderRadius:8,display:"flex",alignItems:"center",justifyContent:"center",background:Ss?"rgba(0, 0, 0, 0.05)":"transparent",color:"#6b7280",border:"none",cursor:"pointer",padding:0,flexShrink:0,transition:"background 0.12s"},children:Js.jsx(lucideReact.ImagePlus,{style:{width:16,height:16}})}),Js.jsx("button",{onClick:Hs,onMouseEnter:()=>Or(true),onMouseLeave:()=>Or(false),title:yt?"Cancel element selection":"Select an element on the page",style:{width:28,height:28,borderRadius:8,display:"flex",alignItems:"center",justifyContent:"center",background:yt?"#eef2ff":xs?"rgba(0, 0, 0, 0.05)":"transparent",color:yt?"#4f46e5":"#6b7280",border:"none",cursor:"pointer",padding:0,flexShrink:0,transition:"background 0.12s, color 0.12s"},children:Js.jsx(lucideReact.MousePointer2,{style:{width:16,height:16}})}),Js.jsx("div",{style:{flex:1}}),Js.jsx("button",{onClick:Os,onMouseEnter:()=>Nr(true),onMouseLeave:()=>Nr(false),title:Mt?"Stop voice input":"Voice input",style:{width:28,height:28,borderRadius:8,display:"flex",alignItems:"center",justifyContent:"center",background:Mt?"#fef2f2":Fs?"rgba(0, 0, 0, 0.05)":"transparent",color:Mt?"#dc2626":"#6b7280",border:"none",cursor:"pointer",padding:0,flexShrink:0,transition:"background 0.12s, color 0.12s",animation:Mt?"__fork-pulse 1.4s ease-in-out infinite":void 0},children:Js.jsx(lucideReact.Mic,{style:{width:16,height:16}})}),Js.jsx("button",{onClick:Qr,disabled:!Ot,onMouseEnter:()=>ye(true),onMouseLeave:()=>ye(false),title:"Send",style:{width:28,height:28,borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",color:"#ffffff",opacity:Ot?1:.35,transform:oe&&Ot?"scale(1.08)":"scale(1)",background:Ot?"#111827":"rgba(0, 0, 0, 0.12)",border:"none",cursor:Ot?"pointer":"default",flexShrink:0,transition:"transform 0.15s, opacity 0.15s, background 0.15s",padding:0,marginLeft:4},children:Js.jsx(lucideReact.ArrowUp,{style:{width:14,height:14}})})]})]}),Js.jsx("input",{ref:Lr,type:"file",accept:"image/*",multiple:true,style:{display:"none"},onChange:s=>{let w=Array.from(s.target.files??[]);s.target.value="",Gr(w);}})]})]})]});return U?qn:je&&nt?Ws.createPortal(qn,nt.document.body):Js.jsx(ma,{children:qn})}function Wo(e){if("target"in e&&e.target)return e.target;if("boundaryId"in e&&e.boundaryId)return {type:"boundary",id:e.boundaryId,title:e.title};if("slotId"in e&&e.slotId)return {type:"slot",id:e.slotId,title:e.title??e.slotLabel};throw new Error("Fork chat target requires either target, slotId, or boundaryId.")}function hr(e){let{apiKey:t,userId:n,userHash:r,baseUrl:o,appId:i,adminContext:a,refreshModuleManifest:l,queueBoundaryAnimation:d,trackForkActivity:S,recordForkActivityEvent:A}=Ce(),[h,C]=sr.useState({}),[N,R]=sr.useState(null),[p,u]=sr.useState("idle"),[$,F]=sr.useState(false),[m,L]=sr.useState(null),U=sr.useRef(new Map),D=sr.useCallback((f,b)=>{C(E=>{let y=E[f]??{forkId:f,state:"running",fork:b.fork,events:[],error:null};return {...E,[f]:{...y,...b}}});},[]),P=sr.useCallback((f,b)=>{C(E=>{let c=E[f];return c?{...E,[f]:{...c,events:[...c.events,b]}}:E});},[]),H=sr.useCallback(f=>{let b=U.current.get(f);b&&(b.close(),U.current.delete(f));},[]),B=sr.useCallback(()=>{u("prompting"),L(null),F(false),R(null);},[]),z=sr.useCallback(()=>{u("idle"),F(false),L(null),R(null);for(let f of U.current.values())f.close();U.current.clear(),C({});},[]),_=sr.useCallback((f,b)=>{H(f.id);let E=new URLSearchParams({key:t});n&&E.set("userId",n),r&&E.set("userHash",r),a.isAdmin&&a.containerId&&E.set("containerId",a.containerId);let c=new EventSource(`${o}/api/v1/forks/${f.id}/events?${E.toString()}`);U.current.set(f.id,c),c.onmessage=y=>{try{let I=JSON.parse(y.data);if(A(f.id,I),P(f.id,I),I.type==="complete"){let K=I.data;d(b,f.id),l().catch(()=>{}).finally(()=>{let Q={...f,status:"complete",moduleUrl:K.moduleUrl,cssUrls:K.cssUrls,summary:K.summary,completedAt:new Date().toISOString()};D(f.id,{state:"complete",fork:Q}),H(f.id);});}else if(I.type==="error"){let K=I.data;D(f.id,{state:"error",error:K.error||"Unknown error"}),H(f.id);}}catch{}},c.onerror=()=>{let y={Authorization:`Bearer ${t}`,...fe()};n&&(y["X-Fork-User-Id"]=n),r&&(y["X-Fork-User-Hash"]=r),fetch(`${o}/api/v1/forks/${f.id}`,{headers:y}).then(I=>I.json()).then(I=>{I.status==="complete"?(d(b,I.id),l().catch(()=>{}),D(f.id,{state:"complete",fork:I})):I.status==="error"?D(f.id,{state:"error",fork:I,error:I.error||"Fork generation failed"}):D(f.id,{fork:I});}).catch(()=>{D(f.id,{state:"error",error:"Connection lost"});}),H(f.id);};},[a.containerId,a.isAdmin,t,P,o,H,d,A,l,D,r,n]),x=sr.useCallback(async(f,b,E)=>{try{if(!i)throw new Error("ForkProvider requires appId for module boundary prompts.");F(!0),L(null),R(null);let c;if(E?.forkId){let y={prompt:f};n&&(y.userId=n),r&&(y.userHash=r),E?.attachments?.length&&(y.attachments=E.attachments),E?.selectedElement&&(y.selectedElement=E.selectedElement);let I=await fetch(`${o}/api/v1/forks/${encodeURIComponent(E.forkId)}/prompts`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${t}`,...fe()},body:JSON.stringify(y)});if(!I.ok){let K=await I.json().catch(()=>({}));throw new Error(K.error||`API error: ${I.status}`)}c=await I.json();}else {let y={userId:n,prompt:f,boundaryId:e,appId:i};b?y.containerId=b:a.isAdmin&&a.containerId&&(y.containerId=a.containerId),r&&(y.userHash=r),E?.forceNew&&(y.force_new=!0),E?.attachments?.length&&(y.attachments=E.attachments),E?.selectedElement&&(y.selectedElement=E.selectedElement);let I=await fetch(`${o}/api/v1/forks`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${t}`,...fe()},body:JSON.stringify(y)});if(!I.ok){let K=await I.json().catch(()=>({}));throw new Error(K.error||`API error: ${I.status}`)}c=await I.json();}C(y=>({...y,[c.id]:{forkId:c.id,state:"running",fork:c,events:[],error:null}})),R(c.id),F(!1),S(c,{targetKind:"module",targetId:e}),_(c,c.boundaryId??e);}catch(c){L(c.message),F(false);}},[a.containerId,a.isAdmin,t,i,o,e,_,S,r,n]),O=sr.useCallback(async f=>{try{let b={Authorization:`Bearer ${t}`,...fe()};n&&(b["X-Fork-User-Id"]=n),r&&(b["X-Fork-User-Hash"]=r);let E=await fetch(`${o}/api/v1/forks/${f}`,{headers:b});if(!E.ok)return;let c=await E.json(),y=c.boundaryId??e;if(S(c,{targetKind:"module",targetId:y}),c.status==="complete"){C(I=>({...I,[c.id]:{forkId:c.id,state:"complete",fork:c,events:[],error:null}})),R(c.id);return}if(c.status==="error"){C(I=>({...I,[c.id]:{forkId:c.id,state:"error",fork:c,events:[],error:c.error||"Fork generation failed"}})),R(c.id);return}if(c.status!=="pending"&&c.status!=="running"&&c.status!=="building")return;C(I=>({...I,[c.id]:{forkId:c.id,state:"running",fork:c,events:[],error:null}})),R(c.id),_(c,y);}catch{}},[t,o,e,_,S,r,n]),V=sr.useCallback(async f=>{try{if(!i)throw new Error("ForkProvider requires appId for boundary undo.");let b={userId:n,boundaryId:e,appId:i};r&&(b.userHash=r),f&&(b.fork_id=f);let E=await fetch(`${o}/api/v1/forks/undo`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${t}`},body:JSON.stringify(b)});if(!E.ok){let y=await E.json().catch(()=>({}));throw new Error(y.error||`API error: ${E.status}`)}let c=await E.json();if(await l().catch(()=>{}),c.removed)C(y=>{let I={};for(let[K,Q]of Object.entries(y))(Q.fork.boundaryId??e)!==e&&(I[K]=Q);return I}),R(null),u("prompting");else if(c.fork){let y=c.fork;D(y.id,{state:"complete",fork:y}),R(y.id);}return c}catch(b){throw L(b.message),b}},[t,i,o,e,l,D,r,n]),X=sr.useCallback(async(f,b,E="remove_step")=>{let c={Authorization:`Bearer ${t}`,...fe()};n&&(c["X-Fork-User-Id"]=n),r&&(c["X-Fork-User-Hash"]=r);let y=new URLSearchParams({mode:E});b&&y.set("prompt_id",b);let I=await fetch(`${o}/api/v1/forks/${encodeURIComponent(f)}/revert-plan?${y.toString()}`,{headers:c});if(!I.ok){let K=await I.json().catch(()=>({}));throw new Error(K.error||`API error: ${I.status}`)}return I.json()},[t,o,r,n]),Y=sr.useCallback(async f=>{try{let b={userId:n,mode:f.mode,strategy:f.strategy};f.promptId&&(b.prompt_id=f.promptId),r&&(b.userHash=r);let E=await fetch(`${o}/api/v1/forks/${encodeURIComponent(f.forkId)}/revert`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${t}`,...fe()},body:JSON.stringify(b)});if(!E.ok){let y=await E.json().catch(()=>({}));throw new Error(y.error||`API error: ${E.status}`)}let c=await E.json();return c.agentic?(await O(c.fork.id),c):(await l().catch(()=>{}),c.removed?(C(y=>{let I={};for(let[K,Q]of Object.entries(y))(Q.fork.boundaryId??e)!==e&&(I[K]=Q);return I}),R(null),u("prompting")):c.fork&&(D(c.fork.id,{state:"complete",fork:c.fork}),R(c.fork.id)),c)}catch(b){throw L(b.message),b}},[O,t,o,e,l,D,r,n]),G=sr.useCallback(async(f,b)=>{let E={userId:n,name:b};r&&(E.userHash=r);let c=await fetch(`${o}/api/v1/forks/${encodeURIComponent(f)}/name`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${t}`,...fe()},body:JSON.stringify(E)});if(!c.ok){let y=await c.json().catch(()=>({}));throw new Error(y.error||`API error: ${c.status}`)}return c.json()},[t,o,r,n]),Z=sr.useCallback(async(f,b)=>{let E={userId:n,disabled:b};r&&(E.userHash=r);let c=await fetch(`${o}/api/v1/forks/${encodeURIComponent(f)}/disabled`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${t}`,...fe()},body:JSON.stringify(E)});if(!c.ok){let I=await c.json().catch(()=>({}));throw new Error(I.error||`API error: ${c.status}`)}let y=await c.json();return await l().catch(()=>{}),y},[t,o,l,r,n]),re=N?h[N]??null:null,pe=$?"running":m?"error":re?re.state:p,oe=re?.fork??null,ye=re?.events??[],te=m??re?.error??null;return {state:pe,fork:oe,events:ye,error:te,runs:h,open:B,close:z,startFork:x,undoFork:V,planRevert:X,revertFork:Y,setForkDisabled:Z,renameFork:G,adoptRunningFork:O}}var ka=0;function Xo(e){let{state:t,fork:n,events:r,error:o,runs:i,open:a,close:l,startFork:d,undoFork:S,planRevert:A,revertFork:h,setForkDisabled:C,renameFork:N,adoptRunningFork:R}=hr(e),[p,u]=sr.useState(false),$=sr.useRef(null),F=sr.useRef(t),m=sr.useCallback(()=>{$.current!==null&&(clearTimeout($.current),$.current=null);},[]),L=sr.useCallback(()=>{m(),u(true),a();},[m,a]),U=sr.useCallback(()=>{m(),u(false),l();},[m,l]),D=sr.useCallback(async H=>{m(),u(true),await R(H);},[R,m]),P=Object.values(i).filter(H=>H.state==="running").length;return sr.useEffect(()=>{let H=F.current;F.current=t,t==="complete"&&H==="running"&&p&&P===0&&(m(),$.current=setTimeout(()=>{$.current=null,u(false),l();},ka)),(t==="running"||t==="prompting")&&m();},[t,p,P,m,l]),sr.useEffect(()=>m,[m]),{state:t,fork:n,events:r,error:o,runs:i,isOpen:p,open:L,close:U,submit:d,undo:S,planRevert:A,revertFork:h,setForkDisabled:C,renameFork:N,adoptRunningFork:D}}function yr(){let{apiKey:e,userId:t,userHash:n,baseUrl:r,adminContext:o,setSlotFork:i,clearSlotFork:a,skipAnimationForSlot:l,trackForkActivity:d,recordForkActivityEvent:S,refreshModuleManifest:A}=Ce(),[h,C]=sr.useState({}),[N,R]=sr.useState(null),[p,u]=sr.useState("idle"),[$,F]=sr.useState(false),[m,L]=sr.useState(null),U=sr.useRef(new Map),D=sr.useCallback((f,b)=>{C(E=>{let y=E[f]??{forkId:f,state:"running",fork:b.fork,events:[],error:null};return {...E,[f]:{...y,...b}}});},[]),P=sr.useCallback((f,b)=>{C(E=>{let c=E[f];return c?{...E,[f]:{...c,events:[...c.events,b]}}:E});},[]),H=sr.useCallback(f=>{let b=U.current.get(f);b&&(b.close(),U.current.delete(f));},[]),B=sr.useCallback(()=>{u("prompting"),L(null),F(false),R(null);},[]),z=sr.useCallback(()=>{u("idle"),F(false),L(null),R(null);for(let f of U.current.values())f.close();U.current.clear(),C({});},[]),_=sr.useCallback((f,b)=>{H(f.id);let E=new URLSearchParams({key:e});t&&E.set("userId",t),n&&E.set("userHash",n),o.isAdmin&&o.containerId&&E.set("containerId",o.containerId);let c=new EventSource(`${r}/api/v1/forks/${f.id}/events?${E.toString()}`);U.current.set(f.id,c),c.onmessage=y=>{try{let I=JSON.parse(y.data);if(S(f.id,I),P(f.id,I),I.type==="complete"){let K=I.data,Q={...f,status:"complete",bundleUrl:K.bundleUrl,summary:K.summary,revealPending:!0,completedAt:new Date().toISOString()};D(f.id,{state:"complete",fork:Q});let J=b??f.slotId;J&&K.bundleUrl&&i(J,Q),H(f.id);}else if(I.type==="error"){let K=I.data;D(f.id,{state:"error",error:K.error||"Unknown error"}),H(f.id);}}catch{}},c.onerror=()=>{let y={Authorization:`Bearer ${e}`,...fe()};t&&(y["X-Fork-User-Id"]=t),n&&(y["X-Fork-User-Hash"]=n),fetch(`${r}/api/v1/forks/${f.id}`,{headers:y}).then(I=>I.json()).then(I=>{if(I.status==="complete"){D(f.id,{state:"complete",fork:{...I,revealPending:true}});let K=b??I.slotId;K&&I.bundleUrl&&i(K,{...I,revealPending:true});}else I.status==="error"?D(f.id,{state:"error",fork:I,error:I.error||"Fork generation failed"}):D(f.id,{fork:I});}).catch(()=>{D(f.id,{state:"error",error:"Connection lost"});}),H(f.id);};},[o.containerId,o.isAdmin,e,P,r,H,S,i,D,n,t]),x=sr.useCallback(async(f,b,E,c)=>{try{F(!0),L(null),R(null);let y;if(c?.forkId){let K={prompt:f};t&&(K.userId=t),n&&(K.userHash=n),c?.attachments?.length&&(K.attachments=c.attachments),c?.selectedElement&&(K.selectedElement=c.selectedElement);let Q=await fetch(`${r}/api/v1/forks/${encodeURIComponent(c.forkId)}/prompts`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e}`,...fe()},body:JSON.stringify(K)});if(!Q.ok){let J=await Q.json().catch(()=>({}));throw new Error(J.error||`API error: ${Q.status}`)}y=await Q.json();}else {let K={userId:t,prompt:f};b&&(K.slotId=b),E?K.containerId=E:o.isAdmin&&o.containerId&&(K.containerId=o.containerId),n&&(K.userHash=n),c?.forceNew&&(K.force_new=!0),c?.attachments?.length&&(K.attachments=c.attachments),c?.selectedElement&&(K.selectedElement=c.selectedElement);let Q=await fetch(`${r}/api/v1/forks`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e}`,...fe()},body:JSON.stringify(K)});if(!Q.ok){let J=await Q.json().catch(()=>({}));throw new Error(J.error||`API error: ${Q.status}`)}y=await Q.json();}C(K=>({...K,[y.id]:{forkId:y.id,state:"running",fork:y,events:[],error:null}})),R(y.id),F(!1);let I=b??y.slotId;I&&d(y,{targetKind:"slot",targetId:I}),_(y,b);}catch(y){L(y.message),F(false);}},[o.containerId,o.isAdmin,e,r,_,d,n,t]),O=sr.useCallback(async f=>{try{let b={Authorization:`Bearer ${e}`,...fe()};t&&(b["X-Fork-User-Id"]=t),n&&(b["X-Fork-User-Hash"]=n);let E=await fetch(`${r}/api/v1/forks/${f}`,{headers:b});if(!E.ok)return;let c=await E.json();if(c.slotId&&d(c,{targetKind:"slot",targetId:c.slotId}),c.status==="complete"){C(y=>({...y,[c.id]:{forkId:c.id,state:"complete",fork:c,events:[],error:null}})),R(c.id);return}if(c.status==="error"){C(y=>({...y,[c.id]:{forkId:c.id,state:"error",fork:c,events:[],error:c.error||"Fork generation failed"}})),R(c.id);return}if(c.status!=="pending"&&c.status!=="running"&&c.status!=="building")return;C(y=>({...y,[c.id]:{forkId:c.id,state:"running",fork:c,events:[],error:null}})),R(c.id),_(c,c.slotId);}catch{}},[e,r,_,d,n,t]),V=sr.useCallback(async(f,b)=>{try{let E={userId:t,slotId:f};n&&(E.userHash=n),b&&(E.fork_id=b);let c=await fetch(`${r}/api/v1/forks/undo`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e}`},body:JSON.stringify(E)});if(!c.ok){let I=await c.json().catch(()=>({}));throw new Error(I.error||`API error: ${c.status}`)}let y=await c.json();if(l(f),y.removed)a(f),C(I=>{let K={};for(let[Q,J]of Object.entries(I))J.fork.slotId!==f&&(K[Q]=J);return K}),R(null),u("prompting");else if(y.fork){i(f,y.fork);let I=y.fork;D(I.id,{state:"complete",fork:I});}return y}catch(E){throw L(E.message),E}},[e,t,n,r,a,i,l,D]),X=sr.useCallback(async(f,b,E="remove_step")=>{let c={Authorization:`Bearer ${e}`,...fe()};t&&(c["X-Fork-User-Id"]=t),n&&(c["X-Fork-User-Hash"]=n);let y=new URLSearchParams({mode:E});b&&y.set("prompt_id",b);let I=await fetch(`${r}/api/v1/forks/${encodeURIComponent(f)}/revert-plan?${y.toString()}`,{headers:c});if(!I.ok){let K=await I.json().catch(()=>({}));throw new Error(K.error||`API error: ${I.status}`)}return I.json()},[e,r,n,t]),Y=sr.useCallback(async(f,b)=>{try{let E={userId:t,mode:b.mode,strategy:b.strategy};b.promptId&&(E.prompt_id=b.promptId),n&&(E.userHash=n);let c=await fetch(`${r}/api/v1/forks/${encodeURIComponent(b.forkId)}/revert`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e}`,...fe()},body:JSON.stringify(E)});if(!c.ok){let I=await c.json().catch(()=>({}));throw new Error(I.error||`API error: ${c.status}`)}let y=await c.json();return y.agentic?(await O(y.fork.id),y):(l(f),y.removed?(a(f),C(I=>{let K={};for(let[Q,J]of Object.entries(I))J.fork.slotId!==f&&(K[Q]=J);return K}),R(null),u("prompting")):y.fork&&(i(f,y.fork),D(y.fork.id,{state:"complete",fork:y.fork})),y)}catch(E){throw L(E.message),E}},[O,e,r,a,i,l,D,n,t]),G=sr.useCallback(async(f,b)=>{let E={userId:t,name:b};n&&(E.userHash=n);let c=await fetch(`${r}/api/v1/forks/${encodeURIComponent(f)}/name`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e}`,...fe()},body:JSON.stringify(E)});if(!c.ok){let y=await c.json().catch(()=>({}));throw new Error(y.error||`API error: ${c.status}`)}return c.json()},[e,r,n,t]),Z=sr.useCallback(async(f,b)=>{let E={userId:t,disabled:b};n&&(E.userHash=n);let c=await fetch(`${r}/api/v1/forks/${encodeURIComponent(f)}/disabled`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e}`,...fe()},body:JSON.stringify(E)});if(!c.ok){let I=await c.json().catch(()=>({}));throw new Error(I.error||`API error: ${c.status}`)}let y=await c.json();return await A().catch(()=>{}),y},[e,r,A,n,t]),re=N?h[N]??null:null,pe=$?"running":m?"error":re?re.state:p,oe=re?.fork??null,ye=re?.events??[],te=m??re?.error??null;return {state:pe,fork:oe,events:ye,error:te,runs:h,open:B,close:z,startFork:x,undoFork:V,planRevert:X,revertFork:Y,setForkDisabled:Z,renameFork:G,adoptRunningFork:O}}var wa=0;function Yo(){let{state:e,fork:t,events:n,error:r,runs:o,open:i,close:a,startFork:l,undoFork:d,planRevert:S,revertFork:A,setForkDisabled:h,renameFork:C,adoptRunningFork:N}=yr(),[R,p]=sr.useState(false),u=sr.useRef(null),$=sr.useRef(e),F=sr.useCallback(()=>{u.current!==null&&(clearTimeout(u.current),u.current=null);},[]),m=sr.useCallback(()=>{F(),p(true),i();},[F,i]),L=sr.useCallback(()=>{F(),p(false),a();},[F,a]),U=sr.useCallback(async P=>{F(),p(true),await N(P);},[N,F]),D=Object.values(o).filter(P=>P.state==="running").length;return sr.useEffect(()=>{let P=$.current;$.current=e,e==="complete"&&P==="running"&&R&&D===0&&(F(),u.current=setTimeout(()=>{u.current=null,p(false),a();},wa)),(e==="running"||e==="prompting")&&F();},[e,R,D,F,a]),sr.useEffect(()=>F,[F]),{state:e,fork:t,events:n,error:r,runs:o,isOpen:R,open:m,close:L,submit:l,undo:d,planRevert:S,revertFork:A,setForkDisabled:h,renameFork:C,adoptRunningFork:U}}var Sa=new Set(["pending","running","building"]);function kr(e){let t=Wo(e),n=Yo(),r=Xo(t.type==="boundary"?t.id:""),{baseUrl:o,apiKey:i,userId:a,userHash:l,appId:d,activitySummary:S,forkActivities:A}=Ce(),h=t.type==="slot"?n:r,C=t.type==="slot"?"slot":"boundary",N=t.id,R=t.title,p=t.type==="slot"?"slot":"module",u=A.find(B=>B.targetKind===p&&B.targetId===t.id&&Sa.has(B.status)),$=A.find(B=>B.targetKind===p&&B.targetId===t.id&&B.status==="complete"&&B.unread),F=sr.useCallback(()=>{let B=u??$;if(B){h.adoptRunningFork(B.id);return}h.open();},[h,u,$]),m=sr.useCallback((B,z,_,x)=>t.type==="slot"?n.submit(B,z??t.id,_,x):r.submit(B,_,x),[r,n,t]),L=sr.useCallback((B,z)=>t.type==="slot"?n.undo(B??t.id,z):r.undo(z),[r,n,t]),U=sr.useCallback((B,z,_="remove_step")=>t.type==="slot"?n.planRevert(B,z,_):r.planRevert(B,z,_),[r,n,t]),D=sr.useCallback(B=>t.type==="slot"?n.revertFork(t.id,B):r.revertFork(B),[r,n,t]),P=sr.useCallback((B,z)=>t.type==="slot"?n.setForkDisabled(B,z):r.setForkDisabled(B,z),[r,n,t]),H=sr.useCallback((B,z)=>t.type==="slot"?n.renameFork(B,z):r.renameFork(B,z),[r,n,t]);return {...h,open:F,target:t,targetId:N,targetLabel:R,historyMode:C,submit:m,undo:L,planRevert:U,revert:D,buttonProps:{onClick:F,hasNotification:S.unreadCompletedCount>0,activity:S},panelProps:{state:h.state,fork:h.fork,events:h.events,error:h.error,runs:h.runs,...t.type==="slot"?{slotId:N,targetLabel:R,historyMode:C}:{targetId:N,targetLabel:R,historyMode:C},onSubmit:m,onUndo:L,onPlanRevert:U,onRevert:D,onSetForkDisabled:P,onRenameFork:H,onClose:h.close,baseUrl:o,apiKey:i,userId:a,userHash:l,appId:d}}}function on(e){let{embedded:t,completeVariant:n}=e,r=kr(e);return t?Js.jsx(Nn,{...r.panelProps,embedded:true,completeVariant:n}):r.isOpen?Js.jsx(Nn,{...r.panelProps,completeVariant:n}):Js.jsx(dr,{...r.buttonProps})}function xa({boundaryId:e,title:t}){return Js.jsx(on,{boundaryId:e,title:t})}function vr(e){let t=Array.from(e.children).filter(r=>r instanceof HTMLElement);return t.length===1?t[0]:getComputedStyle(e).display==="contents"?null:e}function Zo(e){let t=e.getBoundingClientRect(),n=e.cloneNode(true);n.setAttribute("data-fork-clone-overlay","true"),n.style.position="fixed",n.style.top=`${t.top}px`,n.style.left=`${t.left}px`,n.style.width=`${t.width}px`,n.style.height=`${t.height}px`,n.style.flex="none",n.style.minHeight="auto",n.style.zIndex="9998",n.style.pointerEvents="none",n.style.overflow="hidden";let r=getComputedStyle(e).backgroundColor;n.style.backgroundColor=r&&r!=="rgba(0, 0, 0, 0)"&&r!=="transparent"?r:getComputedStyle(document.body).backgroundColor||"#ffffff",document.body.appendChild(n);let o=e.querySelectorAll("*"),i=n.querySelectorAll("*");for(let a=0;a<o.length;a+=1)o[a].scrollTop!==0&&(i[a].scrollTop=o[a].scrollTop),o[a].scrollLeft!==0&&(i[a].scrollLeft=o[a].scrollLeft);return n}function wr(e){let t=[],n=e.querySelectorAll("*");for(let r of n){if(!(r instanceof HTMLElement))continue;let o=r.getBoundingClientRect();if(o.width<10||o.height<10||["SCRIPT","STYLE","META","LINK"].includes(r.tagName))continue;let i=getComputedStyle(r),a=parseFloat(i.borderTopLeftRadius)||0;t.push({tag:r.tagName,className:r.className||"",text:(r.textContent||"").slice(0,50).trim(),rect:o,borderRadius:a});}return t}function Qo(e,t){let n=[];for(let r of t)if(!(e.find(a=>a.tag===r.tag&&a.className===r.className&&Math.abs(a.rect.top-r.rect.top)<20&&Math.abs(a.rect.left-r.rect.left)<20)||n.some(a=>r.rect.top>=a.rect.top&&r.rect.left>=a.rect.left&&r.rect.right<=a.rect.right&&r.rect.bottom<=a.rect.bottom))){for(let a=n.length-1;a>=0;a-=1){let l=n[a];l.rect.top>=r.rect.top&&l.rect.left>=r.rect.left&&l.rect.right<=r.rect.right&&l.rect.bottom<=r.rect.bottom&&n.splice(a,1);}n.push({rect:r.rect,borderRadius:r.borderRadius});}return n}function es(e,t){let n=[];for(let r of e)if(!(t.find(a=>a.tag===r.tag&&a.className===r.className&&Math.abs(a.rect.top-r.rect.top)<20&&Math.abs(a.rect.left-r.rect.left)<20)||n.some(a=>r.rect.top>=a.rect.top&&r.rect.left>=a.rect.left&&r.rect.right<=a.rect.right&&r.rect.bottom<=a.rect.bottom))){for(let a=n.length-1;a>=0;a-=1){let l=n[a];l.rect.top>=r.rect.top&&l.rect.left>=r.rect.left&&l.rect.right<=r.rect.right&&l.rect.bottom<=r.rect.bottom&&n.splice(a,1);}n.push({rect:r.rect,borderRadius:r.borderRadius});}return n}function ts(e,t,n,r,o){let i=Math.max(0,Math.min(o,n/2,r/2));return i===0?`M ${e} ${t} L ${e+n} ${t} L ${e+n} ${t+r} L ${e} ${t+r} Z`:[`M ${e+i} ${t}`,`L ${e+n-i} ${t}`,`A ${i} ${i} 0 0 1 ${e+n} ${t+i}`,`L ${e+n} ${t+r-i}`,`A ${i} ${i} 0 0 1 ${e+n-i} ${t+r}`,`L ${e+i} ${t+r}`,`A ${i} ${i} 0 0 1 ${e} ${t+r-i}`,`L ${e} ${t+i}`,`A ${i} ${i} 0 0 1 ${e+i} ${t}`,"Z"].join(" ")}function Sr(e){let t="http://www.w3.org/2000/svg",n=document.createElement("div");n.setAttribute("data-fork-highlights","true"),n.style.cssText="position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9999;";let r=document.createElementNS(t,"svg");r.setAttribute("width","100%"),r.setAttribute("height","100%"),r.style.cssText="position:absolute;top:0;left:0;overflow:visible;";let o=document.createElementNS(t,"defs");r.appendChild(o);let i=[];for(let A=0;A<e.length;A+=1){let{rect:h,borderRadius:C}=e[A],N=h.left-.5,R=h.top-.5,p=h.width+1,u=h.height+1,$=Math.min(C+.5,p/2,u/2),F=ts(N,R,p,u,$),m=`__fork-glow-${A}`,L=document.createElementNS(t,"filter");L.setAttribute("id",m),L.setAttribute("x","-100%"),L.setAttribute("y","-100%"),L.setAttribute("width","300%"),L.setAttribute("height","300%");let U=document.createElementNS(t,"feGaussianBlur");U.setAttribute("in","SourceGraphic"),U.setAttribute("stdDeviation","8"),L.appendChild(U),o.appendChild(L);let D=`__fork-mask-${A}`,P=document.createElementNS(t,"mask");P.setAttribute("id",D),P.setAttribute("maskUnits","userSpaceOnUse"),P.setAttribute("x",String(N-200)),P.setAttribute("y",String(R-200)),P.setAttribute("width",String(p+400)),P.setAttribute("height",String(u+400));let H=document.createElementNS(t,"rect");H.setAttribute("x",String(N-200)),H.setAttribute("y",String(R-200)),H.setAttribute("width",String(p+400)),H.setAttribute("height",String(u+400)),H.setAttribute("fill","white"),P.appendChild(H);let B=document.createElementNS(t,"path");B.setAttribute("d",F),B.setAttribute("fill","black"),P.appendChild(B),o.appendChild(P);let z=document.createElementNS(t,"g");z.setAttribute("mask",`url(#${D})`),z.setAttribute("opacity","0");let _=document.createElementNS(t,"g");_.setAttribute("filter",`url(#${m})`);let x=document.createElementNS(t,"path");x.setAttribute("d",F),x.setAttribute("fill","none"),x.setAttribute("stroke","rgba(150, 185, 220, 0.6)"),x.setAttribute("stroke-width","6"),x.setAttribute("stroke-linecap","round"),_.appendChild(x),z.appendChild(_),r.appendChild(z);let O=document.createElementNS(t,"path");O.setAttribute("d",F),O.setAttribute("fill","none"),O.setAttribute("stroke","rgba(150, 185, 220, 0.35)"),O.setAttribute("stroke-width","2"),O.setAttribute("stroke-linecap","round"),O.setAttribute("opacity","0"),r.appendChild(O),i.push(x,O),x.__group=z;}n.appendChild(r),document.body.appendChild(n);let a=[];for(let A=0;A<i.length;A+=2){let h=i[A],C=i[A+1],N=h.__group;if(!N)continue;let R=C.getTotalLength(),p=h.getTotalLength();if(R<=0)continue;let u=R*.35;C.setAttribute("stroke-dasharray",`${u} ${R-u}`),C.setAttribute("stroke-dashoffset","0"),a.push(C.animate([{strokeDashoffset:0,opacity:0,offset:0},{strokeDashoffset:-0.2*R,opacity:.92,offset:.06},{strokeDashoffset:-2*R,opacity:.92,offset:.92},{strokeDashoffset:-2.25*R,opacity:0,offset:1}],{duration:14e3,easing:"ease-in-out",fill:"forwards"}));let $=p*.35;h.setAttribute("stroke-dasharray",`${$} ${p-$}`),h.setAttribute("stroke-dashoffset","0"),a.push(h.animate([{strokeDashoffset:0,offset:0},{strokeDashoffset:-0.2*p,offset:.06},{strokeDashoffset:-2*p,offset:.92},{strokeDashoffset:-2.25*p,offset:1}],{duration:14e3,easing:"ease-in-out",fill:"forwards"})),a.push(N.animate([{opacity:0,offset:0},{opacity:.92,offset:.06},{opacity:.92,offset:.92},{opacity:0,offset:1}],{duration:14e3,easing:"ease-in-out",fill:"forwards"}));}let l=false,d=()=>{if(l)return;l=true,clearTimeout(S);for(let h of a)try{h.cancel();}catch{}let A=n.animate([{opacity:1},{opacity:0}],{duration:400,fill:"forwards"});A.onfinish=()=>n.remove(),window.removeEventListener("click",d);},S=setTimeout(d,14500);return setTimeout(()=>{l||window.addEventListener("click",d);},500),d}function ns(e){let t="http://www.w3.org/2000/svg",n=document.createElement("div");n.setAttribute("data-fork-removed","true"),n.style.cssText="position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9999;";let r=document.createElementNS(t,"svg");r.setAttribute("width","100%"),r.setAttribute("height","100%"),r.style.cssText="position:absolute;top:0;left:0;overflow:visible;";let o=document.createElementNS(t,"defs"),i=document.createElementNS(t,"filter");i.setAttribute("id","__fork-removed-shadow"),i.setAttribute("x","-10%"),i.setAttribute("y","-10%"),i.setAttribute("width","120%"),i.setAttribute("height","120%");let a=document.createElementNS(t,"feDropShadow");a.setAttribute("dx","0"),a.setAttribute("dy","1"),a.setAttribute("stdDeviation","2"),a.setAttribute("flood-color","rgba(0,0,0,0.15)"),i.appendChild(a),o.appendChild(i),r.appendChild(o);for(let{rect:l,borderRadius:d}of e){let S=document.createElementNS(t,"path");S.setAttribute("d",ts(l.left,l.top,l.width,l.height,d)),S.setAttribute("fill","none"),S.setAttribute("stroke","rgba(120, 125, 135, 0.6)"),S.setAttribute("stroke-width","1.5"),S.setAttribute("stroke-dasharray","8 4"),S.setAttribute("stroke-linecap","round"),S.setAttribute("filter","url(#__fork-removed-shadow)"),S.setAttribute("opacity","0"),r.appendChild(S),S.animate([{opacity:0,offset:0},{opacity:.6,offset:.08},{opacity:.05,offset:.45},{opacity:.6,offset:.85},{opacity:.05,offset:1}],{duration:5e3,easing:"ease-in-out",fill:"forwards"});}return n.appendChild(r),document.body.appendChild(n),n}function ss(e,t){if(Aa(t.selector))return os(e,t);let r=os(e,t);if(r)return r;try{let i=document.querySelector(t.selector);if(i instanceof HTMLElement&&i!==e&&e.contains(i))return i}catch{}if(rs(t.selector))try{let i=e.querySelector(t.selector);if(i instanceof HTMLElement&&i!==e)return i}catch{}if(t.textHint){let i=t.textHint.trim();if(i){let a=Fr(e,A=>A===i);if(a)return a;let l=i.toLowerCase(),d=Fr(e,A=>A.toLowerCase()===l);if(d)return d;let S=Fr(e,A=>A.toLowerCase().includes(l));if(S)return S}}let o=Ra(t.selector);if(o&&o!==t.selector&&rs(o))try{let i=e.querySelector(o);if(i instanceof HTMLElement&&i!==e)return i}catch{}return null}function rs(e){let t=e.split(/\s+|>|~|\+/),n=t[t.length-1]??"";return /[#\[]|:not\(|:nth-/.test(n)}function os(e,t){let n=Array.from(e.querySelectorAll("[data-fork-new]"));if(n.length===0)return null;let r=xr(t.label),o=xr(t.textHint);return n.find(a=>{let l=xr(a.getAttribute("data-fork-new"));return !!l&&(l===r||l===o)})??null}function Aa(e){return e.trim()==="[data-fork-new]"}function xr(e){return e?.trim().replace(/\s+/g," ").toLowerCase()||null}function Ra(e){return e.replace(/\[class[\*~|^$]?=("[^"]*"|'[^']*'|[^\]]+)\]/g,"").replace(/\.[A-Za-z_][\w-]*/g,"").replace(/\s+/g," ").trim()}function Fr(e,t){let n=null,r=1/0,o=e.querySelectorAll("*");for(let i of o){let a=i.textContent?.trim();if(!a||!t(a))continue;let l=i.getBoundingClientRect();if(l.width<4||l.height<4)continue;let d=l.width*l.height;d<r&&(n=i,r=d);}return n}var Ar=2147483600,Ea=1600,Ia=3e4,Ca=300,at=10;function Ta(e){let n=getComputedStyle(e).borderTopLeftRadius;if(!n)return 4;if(n.endsWith("%")){let a=parseFloat(n);if(!Number.isFinite(a)||a<=0)return 4;let l=e.getBoundingClientRect(),d=Math.min(l.width,l.height);return Math.max(4,a/100*d)}let r=parseFloat(n);if(!Number.isFinite(r)||r<=0)return 4;let o=e.getBoundingClientRect(),i=Math.min(o.width,o.height)/2;return r>=i?i:Math.min(r,16)}function $a(e,t,n,r){let i=window.innerWidth,a=window.innerHeight,l=e;l==="top"&&t.top<r+at+8?l="bottom":l==="bottom"&&a-t.bottom<r+at+8?l="top":l==="left"&&t.left<n+at+8?l="right":l==="right"&&i-t.right<n+at+8&&(l="left");let d=0,S=0;return l==="top"?(d=t.top-r-at,S=t.left+t.width/2-n/2):l==="bottom"?(d=t.bottom+at,S=t.left+t.width/2-n/2):l==="left"?(d=t.top+t.height/2-r/2,S=t.left-n-at):(d=t.top+t.height/2-r/2,S=t.right+at),S=Math.max(8,Math.min(S,i-n-8)),d=Math.max(8,Math.min(d,a-r-8)),{top:d,left:S,placement:l}}function Ma(e){let t=document.createElement("div");t.setAttribute("data-fork-highlight-outline","true"),t.style.cssText=["position:fixed","pointer-events:none",`z-index:${Ar}`,"border:1.5px solid rgba(59,130,246,0.85)","box-sizing:border-box","opacity:0","transition:opacity 200ms ease-out"].join(";");let n=document.createElement("div");n.setAttribute("data-fork-highlight-glow","true"),n.style.cssText=["position:fixed","pointer-events:none",`z-index:${Ar-1}`,"box-sizing:border-box","border:1px solid rgba(59,130,246,0.36)","box-shadow:0 0 0 4px rgba(59,130,246,0.16), 0 0 18px 2px rgba(59,130,246,0.31)","opacity:0","transition:opacity 200ms ease-out"].join(";");let r=document.createElement("div");return r.setAttribute("data-fork-highlight-tooltip","true"),r.style.cssText=["position:fixed","pointer-events:none",`z-index:${Ar+1}`,"padding:6px 10px","font:500 12px/1.2 -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif","color:#ffffff","background:linear-gradient(135deg,#64748b,#475569)","border-radius:999px","box-shadow:0 4px 14px rgba(71,85,105,0.31),0 1px 2px rgba(0,0,0,0.1)","white-space:nowrap","opacity:0","transform:translateY(-2px)","transition:opacity 200ms ease-out, transform 200ms ease-out"].join(";"),r.textContent=`New: ${e}`,{outline:t,glow:n,tooltip:r}}function Pa(){if(document.getElementById("__fork-highlight-keyframes"))return;let e=document.createElement("style");e.id="__fork-highlight-keyframes",e.textContent=`
60
64
  @keyframes __fork-highlight-pulse {
61
65
  0%, 100% { box-shadow: 0 0 0 3px rgba(59,130,246,0.11), 0 0 12px 1px rgba(59,130,246,0.22); }
62
66
  50% { box-shadow: 0 0 0 6px rgba(59,130,246,0.25), 0 0 22px 4px rgba(59,130,246,0.49); }
63
67
  }
64
- `,document.head.appendChild(e);}function Eo(e,t,n="top"){Xi();let{outline:r,glow:o,tooltip:s}=Vi(t),i=Wi(e);r.style.borderRadius=`${i}px`,o.style.borderRadius=`${i+1}px`,o.style.animation=`__fork-highlight-pulse ${ji}ms ease-in-out infinite`,document.body.append(o,r,s);let l=()=>{let f=e.getBoundingClientRect();if(f.width===0&&f.height===0)return;r.style.top=`${f.top}px`,r.style.left=`${f.left}px`,r.style.width=`${f.width}px`,r.style.height=`${f.height}px`,o.style.top=`${f.top-1}px`,o.style.left=`${f.left-1}px`,o.style.width=`${f.width+2}px`,o.style.height=`${f.height+2}px`;let g=s.getBoundingClientRect(),S=g.width||s.offsetWidth||80,I=g.height||s.offsetHeight||26,m=Ji(n,f,S,I);s.style.top=`${m.top}px`,s.style.left=`${m.left}px`;};l(),requestAnimationFrame(()=>{r.style.opacity="1",o.style.opacity="1",s.style.opacity="1",s.style.transform="translateY(0)",requestAnimationFrame(l);});let u=false,h=new ResizeObserver(l);h.observe(e);let b=()=>l(),d=()=>l();window.addEventListener("scroll",b,true),window.addEventListener("resize",d);let k=()=>{u||(u=true,clearTimeout(v),h.disconnect(),window.removeEventListener("scroll",b,true),window.removeEventListener("resize",d),window.removeEventListener("click",R,true),r.style.opacity="0",o.style.opacity="0",s.style.opacity="0",s.style.transform="translateY(-2px)",setTimeout(()=>{r.remove(),o.remove(),s.remove();},zi));},R=()=>k();setTimeout(()=>{u||window.addEventListener("click",R,{once:true,capture:true});},250);let v=setTimeout(k,Ki);return k}var qi="fork:highlight:v1:seen";function Ro(e){return `${qi}:${e}`}function Io(e){if(typeof window>"u")return new Set;try{let t=window.localStorage.getItem(e);if(!t)return new Set;let n=JSON.parse(t);return Array.isArray(n)?new Set(n.filter(r=>typeof r=="string")):new Set}catch{return new Set}}function Gi(e,t){if(!(typeof window>"u"))try{window.localStorage.setItem(e,JSON.stringify([...t].slice(-200)));}catch{}}var Co=new Set;function Mo(e,t,n){return `${n}::${e}:${t}`}function tr(e,t,n){let r=Mo(e,t,n);return Co.has(r)?true:Io(Ro(n)).has(`${e}:${t}`)}function To(e,t,n){let r=Mo(e,t,n);Co.add(r);let o=Ro(n),s=`${e}:${t}`,i=Io(o);i.has(s)||(i.add(s),Gi(o,i));}var Ot=new Map,Nt=new Map,nr=new Map;function Zi(e){for(let t of e)Nt.set(t,(Nt.get(t)??0)+1);}function Qi(e){if(!(typeof document>"u"))for(let t of e){let n=(Nt.get(t)??0)-1;if(n>0){Nt.set(t,n);continue}Nt.delete(t),Ot.delete(t);let r=document.querySelector(`link[data-fork-override-href="${CSS.escape(t)}"]`);r&&r.remove();}}function ea(e){return e instanceof Error?e:new Error(typeof e=="string"?e:"Unknown module override error")}function Po(e){let t=e.getBoundingClientRect();if(t.width<=0||t.height<=0)return false;let n=window.innerWidth||document.documentElement.clientWidth,r=window.innerHeight||document.documentElement.clientHeight;return t.bottom>0&&t.right>0&&t.top<r&&t.left<n}function _o(e,t){let n=(t?e[t]:void 0)??e.default;if(typeof n!="function"){let r=t||"default";throw new Error(`Fork boundary module is missing a React component export: ${r}`)}return n}function ta(e){if(!e||typeof document>"u")return Promise.resolve();let t=Ot.get(e);if(t)return t;let n=document.querySelector(`link[data-fork-override-href="${e}"]`);if(n instanceof HTMLLinkElement){let o=n.sheet?Promise.resolve():new Promise((s,i)=>{let l=()=>{n.removeEventListener("load",l),n.removeEventListener("error",u),s();},u=()=>{n.removeEventListener("load",l),n.removeEventListener("error",u),i(new Error(`Failed to load boundary stylesheet: ${e}`));};n.addEventListener("load",l,{once:true}),n.addEventListener("error",u,{once:true});});return Ot.set(e,o),o}let r=new Promise((o,s)=>{let i=document.createElement("link");i.rel="stylesheet",i.href=e,i.setAttribute("data-fork-override-href",e),i.onload=()=>o(),i.onerror=()=>{i.remove(),s(new Error(`Failed to load boundary stylesheet: ${e}`));},document.head.appendChild(i);}).catch(o=>{throw Ot.delete(e),o});return Ot.set(e,r),r}var Ht=null;function na(){if(Ht)return Ht;try{Ht=new Function("u","return import(/*webpackIgnore:true*//*@vite-ignore*/u)");}catch{Ht=e=>import(/*webpackIgnore:true*//*@vite-ignore*/e);}return Ht}function ra(e){let t=nr.get(e);if(t)return t;let n=na()(e).catch(r=>{throw nr.delete(e),r});return nr.set(e,n),n}async function oa(e,t,n){if(e)try{await Promise.all(e.cssUrls.map(s=>ta(s)));let o=await ra(e.moduleUrl);return _o(o,n)}catch(o){console.error(`[Fork] Failed to load override for boundary "${e.boundaryId}", falling back to original module.`,o);}let r=await t();return _o(r,n)}function sa(e){function t(n){let{appId:r,moduleOverridesEnabled:o,moduleManifestReady:s,moduleManifestVersion:i,registerBoundary:l,getBoundaryOverride:u,consumeBoundaryAnimation:h,highlightScope:b}=ve(),[d,k]=Pn.useState(null),[R,v]=Pn.useState(null),f=Pn.useRef(null),g=Pn.useRef(null),S=Pn.useRef(null),I=Pn.useRef(false),m=Pn.useRef(null),P=Pn.useRef(null),L=Pn.useRef(null),j=Pn.useRef(false),O=Pn.useRef(false),N=u(e.id),oe=N?`override:${N.id}`:"original",Y=e.editorMetadata?JSON.stringify(e.editorMetadata):void 0;if(Pn.useEffect(()=>()=>{P.current&&(clearTimeout(P.current),P.current=null),m.current&&(m.current.remove(),m.current=null),L.current&&(L.current(),L.current=null);},[]),Pn.useEffect(()=>{l({id:e.id,exportName:e.exportName,editorMetadata:e.editorMetadata});},[r,l,e.id,e.exportName,Y]),Pn.useEffect(()=>{let _=N?.cssUrls??[];if(_.length!==0)return Zi(_),()=>Qi(_)},[N?.cssUrls.join("|")]),Pn.useEffect(()=>{if(o&&!s&&!d||g.current===oe&&d)return;let _=false;return v(null),oa(N,e.original,e.exportName).then(F=>{if(_)return;let H=N?.id?h(e.id,N.id):false;if(j.current=H,H&&f.current){let D=qn(f.current);if(D){let K=Gn(D);K.length>0&&(S.current=K,I.current=true,P.current&&(clearTimeout(P.current),P.current=null),m.current&&m.current.remove(),m.current=ko(D));}}g.current=oe,Pn.startTransition(()=>{k(()=>F);});}).catch(F=>{_||v(ea(F));}),()=>{_=true;}},[h,oe,o,s,i,N?.id,N?.moduleUrl,N?.integrity,N?.cssUrls.join("|"),e.exportName,e.original,d]),Pn.useEffect(()=>{if(!d||!f.current)return;let _=false,F=null,H=()=>{if(_||!f.current)return false;let D=N?.highlightHint,K=N?.id,V=N?.createdAt?String(N.createdAt):"";if(!D||!K||tr(K,V,b))return false;let W=Array.from(f.current.querySelectorAll("[data-fork-new]"));W.length,W.map(U=>U.getAttribute("data-fork-new")),D.label,D.textHint,D.selector;let X=Ao(f.current,D);return X?.tagName,X?.getAttribute("data-fork-new"),X?.getAttribute("aria-label"),X?.textContent?.trim().slice(0,60),!X||!Po(X)?(X&&Po(X),X?.getBoundingClientRect(),false):(To(K,V,b),m.current&&(m.current.remove(),m.current=null),L.current&&L.current(),L.current=Eo(X,D.label,D.position??"top"),true)};return requestAnimationFrame(()=>{requestAnimationFrame(()=>{if(_||!f.current)return;let D=j.current,K=!O.current;O.current=true;let V=D||K,W=V?H():false;if(V&&!W&&N?.highlightHint&&N?.id&&!tr(N.id,String(N.createdAt??""),b)){let q=[150,400,800],re=0,Ae=()=>{if(_||re>=q.length)return;let Te=q[re];re+=1,F=setTimeout(()=>{if(H()){W=true;return}Ae();},Te);};Ae();}let X=I.current,U=!!N?.highlightHint,C=S.current;if(S.current=null,I.current=false,W||U||!X){m.current&&(m.current.remove(),m.current=null);return}let M=qn(f.current);if(!C||!M){m.current&&(m.current.remove(),m.current=null);return}let w=Gn(M),p=bo(C,w),$=wo(C,w),x=m.current;if($.length>0&&x){let q=So($);P.current=setTimeout(()=>{P.current=null;let re=400;x.animate([{opacity:1},{opacity:0}],{duration:re,fill:"forwards"}),q.animate([{opacity:1},{opacity:0}],{duration:re,fill:"forwards"}),setTimeout(()=>{x.remove(),q.remove(),m.current===x&&(m.current=null),p.length>0&&Yn(p);},re);},3500);}else x&&(x.remove(),m.current===x&&(m.current=null)),p.length>0&&Yn(p);});}),()=>{_=true,F!==null&&(clearTimeout(F),F=null);}},[d,N?.id,N?.createdAt,N?.highlightHint,b]),R)throw R;return d?ls.jsx("div",{ref:f,"data-fork-boundary":e.id,style:{display:"contents"},children:ls.jsx(d,{...n})}):ls.jsx(ls.Fragment,{children:e.loading??null})}return t.displayName=`ForkBoundary(${e.id})`,t}function aa({slotId:e,title:t,slotLabel:n}){return ls.jsx(_t,{slotId:e,title:t,slotLabel:n})}function ua(e){return e.replace(/\/+$/,"")}function da(e){return {namespace:e.namespace||"default",type:e.type,id:e.id}}function Ut(e,t="value"){let n=da(e);return `${n.namespace}:${n.type}:${n.id}:${t}`}function or(e){if(Array.isArray(e))return e.map(or);if(!e||typeof e!="object")return e;let t=e,n={};for(let r of Object.keys(t).sort())n[r]=or(t[r]);return n}function No(e){return JSON.stringify(or(e))}function Lo(e){let t={Authorization:`Bearer ${e.apiKey}`,"Content-Type":"application/json","X-Fork-App-Id":e.appId,...e.extraHeaders??{}};return e.userId&&(t["X-Fork-User-Id"]=e.userId),e.userHash&&(t["X-Fork-User-Hash"]=e.userHash),t}async function Ho(e){let t=await e.json().catch(()=>({}));if(!e.ok){let n=typeof t.error=="string"?t.error:`Fork data API ${e.status}`;throw new Error(n)}return t}function Uo(e){let t=ua(e.baseUrl),n={appId:e.appId,containerId:e.containerId},r=async(s,i)=>{let l=i&&typeof i=="object"&&!Array.isArray(i)?i:{},u=await fetch(`${t}/api/v1/data${s}`,{method:"POST",headers:Lo(e),body:JSON.stringify({...n,...l})});return Ho(u)},o=async(s,i)=>{let l=new URLSearchParams({appId:e.appId,containerId:e.containerId});for(let[h,b]of Object.entries(i))b&&l.set(h,b);let u=await fetch(`${t}/api/v1/data${s}?${l.toString()}`,{headers:Lo(e)});return Ho(u)};return {listFeatures(){return o("/features",{})},ensureFeature(s){return r("/features",s)},queryValues(s){return r("/values/query",s)},setValues(s){return r("/values",s)},listOptions(s){return o("/options",{featureId:s.featureId,featureKey:s.featureKey,includeArchived:s.includeArchived?"true":void 0})},setOptions(s){return r("/options",s)},ensureLlmJobs(s){return r("/llm/ensure",s)},queryLlmJobs(s){return r("/llm/jobs/query",s)}}}function gn(e){let{apiKey:t,appId:n,baseUrl:r,currentContainerId:o,userHash:s,userId:i}=ve(),l=e||o;return Pn.useMemo(()=>{if(!n||!l)return null;let u=pe();return Uo({apiKey:t,appId:n,baseUrl:r,containerId:l,userId:i,userHash:s,extraHeaders:u})},[t,n,r,l,s,i])}function fa(e){let t=gn(e.containerId),[n,r]=Pn.useState(null),[o,s]=Pn.useState([]),[i,l]=Pn.useState(false),[u,h]=Pn.useState(null),b=No({featureId:e.featureId,featureKey:e.featureKey,entities:e.entities,valueKeys:e.valueKeys,enabled:e.enabled!==false}),d=Pn.useCallback(async()=>{if(!(!t||e.enabled===false)&&!(!e.featureId&&!e.featureKey)){l(true);try{let v=await t.queryValues({featureId:e.featureId,featureKey:e.featureKey,entities:e.entities,valueKeys:e.valueKeys});r(v.feature),s(v.values),h(null);}catch(v){h(v instanceof Error?v:new Error(String(v)));}finally{l(false);}}},[t,b]);Pn.useEffect(()=>{d();},[d]),Pn.useEffect(()=>{if(!e.pollMs||e.pollMs<=0)return;let v=setInterval(()=>{d();},e.pollMs);return ()=>clearInterval(v)},[e.pollMs,d]);let k=Pn.useMemo(()=>new Map(o.map(v=>[Ut(v.entity,v.valueKey),v])),[o]),R=Pn.useCallback((v,f="value")=>k.get(Ut(v,f))??null,[k]);return {feature:n,values:o,byKey:k,getValue:R,loading:i,error:u,refresh:d}}function pa(e){let t=gn(e),n=Pn.useCallback(async s=>{if(!t)throw new Error("Fork data is unavailable until appId and containerId are resolved");return t.ensureFeature(s)},[t]),r=Pn.useCallback(async s=>{if(!t)throw new Error("Fork data is unavailable until appId and containerId are resolved");return t.setValues(s)},[t]),o=Pn.useCallback(async s=>{if(!t)throw new Error("Fork data is unavailable until appId and containerId are resolved");return t.setOptions(s)},[t]);return {client:t,ensureFeature:n,setValues:r,setOptions:o}}function Oo(e){return e.some(t=>t.status==="queued"||t.status==="running")}function ma(e){let t=gn(e.containerId),[n,r]=Pn.useState(null),[o,s]=Pn.useState([]),[i,l]=Pn.useState([]),[u,h]=Pn.useState(false),[b,d]=Pn.useState(null),k=Pn.useRef(""),R=No({featureId:e.featureId,featureKey:e.featureKey,kind:e.kind,config:e.config,forkId:e.forkId,targetKind:e.targetKind,targetId:e.targetId,operation:e.operation,model:e.model,prompt:e.prompt,system:e.system,promptHash:e.promptHash,outputFormat:e.outputFormat,maxTokens:e.maxTokens,temperature:e.temperature,force:e.force,jobs:e.jobs,enabled:e.enabled!==false}),v=Pn.useCallback(async()=>{if(!(!t||e.enabled===false)&&!(!e.featureId&&!e.featureKey)&&!(!e.jobs||e.jobs.length===0)){h(true);try{let I=await t.ensureLlmJobs(e);k.current=R,r(I.feature),s(I.jobs),l(I.values),d(null);}catch(I){d(I instanceof Error?I:new Error(String(I)));}finally{h(false);}}},[t,R]),f=Pn.useCallback(async()=>{if(!t)return;let I=o.map(m=>m.id);try{if(I.length>0){let m=await t.queryLlmJobs({jobIds:I});s(m.jobs);}if(e.featureId||e.featureKey){let m=await t.queryValues({featureId:e.featureId,featureKey:e.featureKey,entities:e.jobs.map(P=>P.entity),valueKeys:Array.from(new Set(e.jobs.map(P=>P.valueKey||"value")))});r(m.feature),l(m.values);}d(null);}catch(m){d(m instanceof Error?m:new Error(String(m)));}},[t,o,R]);Pn.useEffect(()=>{k.current!==R&&v();},[v,R]),Pn.useEffect(()=>{let I=e.pollMs??3e3;if(I<=0||!Oo(o))return;let m=setInterval(()=>{f();},I);return ()=>clearInterval(m)},[e.pollMs,o,f]);let g=Pn.useMemo(()=>new Map(i.map(I=>[Ut(I.entity,I.valueKey),I])),[i]),S=Pn.useCallback((I,m="value")=>g.get(Ut(I,m))??null,[g]);return {feature:n,jobs:o,values:i,byKey:g,getValue:S,loading:u,error:b,ensure:v,refresh:f,running:Oo(o)}}exports.ForkBoundaryUI=Ni;exports.ForkButton=Nn;exports.ForkChatInterface=_t;exports.ForkPanel=dn;exports.ForkProvider=Is;exports.ForkSlot=Ds;exports.ForkUI=aa;exports.clearCachedManifest=ps;exports.createForkDataClient=Uo;exports.forkEntityValueKey=Ut;exports.forkable=sa;exports.loadManifest=In;exports.manifestDiffers=ms;exports.readCachedManifest=ds;exports.registerForkShared=An;exports.useBoundaryFork=zn;exports.useFork=Wn;exports.useForkChatPanel=Vn;exports.useForkDataClient=gn;exports.useForkDataMutation=pa;exports.useForkFeatureValues=fa;exports.useForkLlmJobs=ma;exports.writeCachedManifest=fs;
68
+ `,document.head.appendChild(e);}function is(e,t,n="top"){Pa();let{outline:r,glow:o,tooltip:i}=Ma(t),a=Ta(e);r.style.borderRadius=`${a}px`,o.style.borderRadius=`${a+1}px`,o.style.animation=`__fork-highlight-pulse ${Ea}ms ease-in-out infinite`,document.body.append(o,r,i);let l=()=>{let p=e.getBoundingClientRect();if(p.width===0&&p.height===0)return;r.style.top=`${p.top}px`,r.style.left=`${p.left}px`,r.style.width=`${p.width}px`,r.style.height=`${p.height}px`,o.style.top=`${p.top-1}px`,o.style.left=`${p.left-1}px`,o.style.width=`${p.width+2}px`,o.style.height=`${p.height+2}px`;let u=i.getBoundingClientRect(),$=u.width||i.offsetWidth||80,F=u.height||i.offsetHeight||26,m=$a(n,p,$,F);i.style.top=`${m.top}px`,i.style.left=`${m.left}px`;};l(),requestAnimationFrame(()=>{r.style.opacity="1",o.style.opacity="1",i.style.opacity="1",i.style.transform="translateY(0)",requestAnimationFrame(l);});let d=false,S=new ResizeObserver(l);S.observe(e);let A=()=>l(),h=()=>l();window.addEventListener("scroll",A,true),window.addEventListener("resize",h);let C=()=>{d||(d=true,clearTimeout(R),S.disconnect(),window.removeEventListener("scroll",A,true),window.removeEventListener("resize",h),window.removeEventListener("click",N,true),r.style.opacity="0",o.style.opacity="0",i.style.opacity="0",i.style.transform="translateY(-2px)",setTimeout(()=>{r.remove(),o.remove(),i.remove();},Ca));},N=()=>C();setTimeout(()=>{d||window.addEventListener("click",N,{once:true,capture:true});},250);let R=setTimeout(C,Ia);return C}var _a="fork:highlight:v1:seen";function as(e){return `${_a}:${e}`}function ls(e){if(typeof window>"u")return new Set;try{let t=window.localStorage.getItem(e);if(!t)return new Set;let n=JSON.parse(t);return Array.isArray(n)?new Set(n.filter(r=>typeof r=="string")):new Set}catch{return new Set}}function La(e,t){if(!(typeof window>"u"))try{window.localStorage.setItem(e,JSON.stringify([...t].slice(-200)));}catch{}}var cs=new Set;function ds(e,t,n){return `${n}::${e}:${t}`}function Rr(e,t,n){let r=ds(e,t,n);return cs.has(r)?true:ls(as(n)).has(`${e}:${t}`)}function us(e,t,n){let r=ds(e,t,n);cs.add(r);let o=as(n),i=`${e}:${t}`,a=ls(o);a.has(i)||(a.add(i),La(o,a));}var ln=new Map,cn=new Map,Er=new Map;function Oa(e){for(let t of e)cn.set(t,(cn.get(t)??0)+1);}function Na(e){if(!(typeof document>"u"))for(let t of e){let n=(cn.get(t)??0)-1;if(n>0){cn.set(t,n);continue}cn.delete(t),ln.delete(t);let r=document.querySelector(`link[data-fork-override-href="${CSS.escape(t)}"]`);r&&r.remove();}}function Ua(e){return e instanceof Error?e:new Error(typeof e=="string"?e:"Unknown module override error")}function ps(e){let t=e.getBoundingClientRect();if(t.width<=0||t.height<=0)return false;let n=window.innerWidth||document.documentElement.clientWidth,r=window.innerHeight||document.documentElement.clientHeight;return t.bottom>0&&t.right>0&&t.top<r&&t.left<n}function gs(e,t){let n=(t?e[t]:void 0)??e.default;if(typeof n!="function"){let r=t||"default";throw new Error(`Fork boundary module is missing a React component export: ${r}`)}return n}function Ba(e){if(!e||typeof document>"u")return Promise.resolve();let t=ln.get(e);if(t)return t;let n=document.querySelector(`link[data-fork-override-href="${e}"]`);if(n instanceof HTMLLinkElement){let o=n.sheet?Promise.resolve():new Promise((i,a)=>{let l=()=>{n.removeEventListener("load",l),n.removeEventListener("error",d),i();},d=()=>{n.removeEventListener("load",l),n.removeEventListener("error",d),a(new Error(`Failed to load boundary stylesheet: ${e}`));};n.addEventListener("load",l,{once:true}),n.addEventListener("error",d,{once:true});});return ln.set(e,o),o}let r=new Promise((o,i)=>{let a=document.createElement("link");a.rel="stylesheet",a.href=e,a.setAttribute("data-fork-override-href",e),a.onload=()=>o(),a.onerror=()=>{a.remove(),i(new Error(`Failed to load boundary stylesheet: ${e}`));},document.head.appendChild(a);}).catch(o=>{throw ln.delete(e),o});return ln.set(e,r),r}var an=null;function Da(){if(an)return an;try{an=new Function("u","return import(/*webpackIgnore:true*//*@vite-ignore*/u)");}catch{an=e=>import(/*webpackIgnore:true*//*@vite-ignore*/e);}return an}function ja(e){let t=Er.get(e);if(t)return t;let n=Da()(e).catch(r=>{throw Er.delete(e),r});return Er.set(e,n),n}async function za(e,t,n){if(e)try{await Promise.all(e.cssUrls.map(i=>Ba(i)));let o=await ja(e.moduleUrl);return gs(o,n)}catch(o){console.error(`[Fork] Failed to load override for boundary "${e.boundaryId}", falling back to original module.`,o);}let r=await t();return gs(r,n)}function Ka(e){function t(n){let{appId:r,moduleOverridesEnabled:o,moduleManifestReady:i,moduleManifestVersion:a,registerBoundary:l,getBoundaryOverride:d,consumeBoundaryAnimation:S,highlightScope:A}=Ce(),[h,C]=sr.useState(null),[N,R]=sr.useState(null),p=sr.useRef(null),u=sr.useRef(null),$=sr.useRef(null),F=sr.useRef(false),m=sr.useRef(null),L=sr.useRef(null),U=sr.useRef(null),D=sr.useRef(false),P=sr.useRef(false),H=d(e.id),B=H?`override:${H.id}`:"original",z=e.editorMetadata?JSON.stringify(e.editorMetadata):void 0;if(sr.useEffect(()=>()=>{L.current&&(clearTimeout(L.current),L.current=null),m.current&&(m.current.remove(),m.current=null),U.current&&(U.current(),U.current=null);},[]),sr.useEffect(()=>{l({id:e.id,exportName:e.exportName,editorMetadata:e.editorMetadata});},[r,l,e.id,e.exportName,z]),sr.useEffect(()=>{let _=H?.cssUrls??[];if(_.length!==0)return Oa(_),()=>Na(_)},[H?.cssUrls.join("|")]),sr.useEffect(()=>{if(o&&!i&&!h||u.current===B&&h)return;let _=false;return R(null),za(H,e.original,e.exportName).then(x=>{if(_)return;let O=H?.id?S(e.id,H.id):false;if(D.current=O,O&&p.current){let V=vr(p.current);if(V){let X=wr(V);X.length>0&&($.current=X,F.current=true,L.current&&(clearTimeout(L.current),L.current=null),m.current&&m.current.remove(),m.current=Zo(V));}}u.current=B,sr.startTransition(()=>{C(()=>x);});}).catch(x=>{_||R(Ua(x));}),()=>{_=true;}},[S,B,o,i,a,H?.id,H?.moduleUrl,H?.integrity,H?.cssUrls.join("|"),e.exportName,e.original,h]),sr.useEffect(()=>{if(!h||!p.current)return;let _=false,x=null,O=()=>{if(_||!p.current)return false;let V=H?.highlightHint,X=H?.id,Y=H?.createdAt?String(H.createdAt):"";if(!V||!X||Rr(X,Y,A))return false;let G=Array.from(p.current.querySelectorAll("[data-fork-new]"));G.length,G.map(re=>re.getAttribute("data-fork-new")),V.label,V.textHint,V.selector;let Z=ss(p.current,V);return Z?.tagName,Z?.getAttribute("data-fork-new"),Z?.getAttribute("aria-label"),Z?.textContent?.trim().slice(0,60),!Z||!ps(Z)?(Z&&ps(Z),Z?.getBoundingClientRect(),false):(us(X,Y,A),m.current&&(m.current.remove(),m.current=null),U.current&&U.current(),U.current=is(Z,V.label,V.position??"top"),true)};return requestAnimationFrame(()=>{requestAnimationFrame(()=>{if(_||!p.current)return;let V=D.current,X=!P.current;P.current=true;let Y=V||X,G=Y?O():false;if(Y&&!G&&H?.highlightHint&&H?.id&&!Rr(H.id,String(H.createdAt??""),A)){let E=[150,400,800],c=0,y=()=>{if(_||c>=E.length)return;let I=E[c];c+=1,x=setTimeout(()=>{if(O()){G=true;return}y();},I);};y();}let Z=F.current,re=!!H?.highlightHint,pe=$.current;if($.current=null,F.current=false,G||re||!Z){m.current&&(m.current.remove(),m.current=null);return}let oe=vr(p.current);if(!pe||!oe){m.current&&(m.current.remove(),m.current=null);return}let ye=wr(oe),te=Qo(pe,ye),f=es(pe,ye),b=m.current;if(f.length>0&&b){let E=ns(f);L.current=setTimeout(()=>{L.current=null;let c=400;b.animate([{opacity:1},{opacity:0}],{duration:c,fill:"forwards"}),E.animate([{opacity:1},{opacity:0}],{duration:c,fill:"forwards"}),setTimeout(()=>{b.remove(),E.remove(),m.current===b&&(m.current=null),te.length>0&&Sr(te);},c);},3500);}else b&&(b.remove(),m.current===b&&(m.current=null)),te.length>0&&Sr(te);});}),()=>{_=true,x!==null&&(clearTimeout(x),x=null);}},[h,H?.id,H?.createdAt,H?.highlightHint,A]),N)throw N;return h?Js.jsx("div",{ref:p,"data-fork-boundary":e.id,style:{display:"contents"},children:Js.jsx(h,{...n})}):Js.jsx(Js.Fragment,{children:e.loading??null})}return t.displayName=`ForkBoundary(${e.id})`,t}function Ja({slotId:e,title:t,slotLabel:n}){return Js.jsx(on,{slotId:e,title:t,slotLabel:n})}function qa(e){return e.replace(/\/+$/,"")}function Ga(e){return {namespace:e.namespace||"default",type:e.type,id:e.id}}function dn(e,t="value"){let n=Ga(e);return `${n.namespace}:${n.type}:${n.id}:${t}`}function Cr(e){if(Array.isArray(e))return e.map(Cr);if(!e||typeof e!="object")return e;let t=e,n={};for(let r of Object.keys(t).sort())n[r]=Cr(t[r]);return n}function ks(e){return JSON.stringify(Cr(e))}function ms(e){let t={Authorization:`Bearer ${e.apiKey}`,"Content-Type":"application/json","X-Fork-App-Id":e.appId,...e.extraHeaders??{}};return e.userId&&(t["X-Fork-User-Id"]=e.userId),e.userHash&&(t["X-Fork-User-Hash"]=e.userHash),t}async function hs(e){let t=await e.json().catch(()=>({}));if(!e.ok){let n=typeof t.error=="string"?t.error:`Fork data API ${e.status}`;throw new Error(n)}return t}function bs(e){let t=qa(e.baseUrl),n={appId:e.appId,containerId:e.containerId},r=async(i,a)=>{let l=a&&typeof a=="object"&&!Array.isArray(a)?a:{},d=await fetch(`${t}/api/v1/data${i}`,{method:"POST",headers:ms(e),body:JSON.stringify({...n,...l})});return hs(d)},o=async(i,a)=>{let l=new URLSearchParams({appId:e.appId,containerId:e.containerId});for(let[S,A]of Object.entries(a))A&&l.set(S,A);let d=await fetch(`${t}/api/v1/data${i}?${l.toString()}`,{headers:ms(e)});return hs(d)};return {listFeatures(){return o("/features",{})},ensureFeature(i){return r("/features",i)},queryValues(i){return r("/values/query",i)},setValues(i){return r("/values",i)},listOptions(i){return o("/options",{featureId:i.featureId,featureKey:i.featureKey,includeArchived:i.includeArchived?"true":void 0})},setOptions(i){return r("/options",i)},ensureLlmJobs(i){return r("/llm/ensure",i)},queryLlmJobs(i){return r("/llm/jobs/query",i)}}}function jn(e){let{apiKey:t,appId:n,baseUrl:r,currentContainerId:o,userHash:i,userId:a}=Ce(),l=e||o;return sr.useMemo(()=>{if(!n||!l)return null;let d=fe();return bs({apiKey:t,appId:n,baseUrl:r,containerId:l,userId:a,userHash:i,extraHeaders:d})},[t,n,r,l,i,a])}function Ya(e){let t=jn(e.containerId),[n,r]=sr.useState(null),[o,i]=sr.useState([]),[a,l]=sr.useState(false),[d,S]=sr.useState(null),A=ks({featureId:e.featureId,featureKey:e.featureKey,entities:e.entities,valueKeys:e.valueKeys,enabled:e.enabled!==false}),h=sr.useCallback(async()=>{if(!(!t||e.enabled===false)&&!(!e.featureId&&!e.featureKey)){l(true);try{let R=await t.queryValues({featureId:e.featureId,featureKey:e.featureKey,entities:e.entities,valueKeys:e.valueKeys});r(R.feature),i(R.values),S(null);}catch(R){S(R instanceof Error?R:new Error(String(R)));}finally{l(false);}}},[t,A]);sr.useEffect(()=>{h();},[h]),sr.useEffect(()=>{if(!e.pollMs||e.pollMs<=0)return;let R=setInterval(()=>{h();},e.pollMs);return ()=>clearInterval(R)},[e.pollMs,h]);let C=sr.useMemo(()=>new Map(o.map(R=>[dn(R.entity,R.valueKey),R])),[o]),N=sr.useCallback((R,p="value")=>C.get(dn(R,p))??null,[C]);return {feature:n,values:o,byKey:C,getValue:N,loading:a,error:d,refresh:h}}function Za(e){let t=jn(e),n=sr.useCallback(async i=>{if(!t)throw new Error("Fork data is unavailable until appId and containerId are resolved");return t.ensureFeature(i)},[t]),r=sr.useCallback(async i=>{if(!t)throw new Error("Fork data is unavailable until appId and containerId are resolved");return t.setValues(i)},[t]),o=sr.useCallback(async i=>{if(!t)throw new Error("Fork data is unavailable until appId and containerId are resolved");return t.setOptions(i)},[t]);return {client:t,ensureFeature:n,setValues:r,setOptions:o}}function ys(e){return e.some(t=>t.status==="queued"||t.status==="running")}function Qa(e){let t=jn(e.containerId),[n,r]=sr.useState(null),[o,i]=sr.useState([]),[a,l]=sr.useState([]),[d,S]=sr.useState(false),[A,h]=sr.useState(null),C=sr.useRef(""),N=ks({featureId:e.featureId,featureKey:e.featureKey,kind:e.kind,config:e.config,forkId:e.forkId,targetKind:e.targetKind,targetId:e.targetId,operation:e.operation,model:e.model,prompt:e.prompt,system:e.system,promptHash:e.promptHash,outputFormat:e.outputFormat,maxTokens:e.maxTokens,temperature:e.temperature,force:e.force,jobs:e.jobs,enabled:e.enabled!==false}),R=sr.useCallback(async()=>{if(!(!t||e.enabled===false)&&!(!e.featureId&&!e.featureKey)&&!(!e.jobs||e.jobs.length===0)){S(true);try{let F=await t.ensureLlmJobs(e);C.current=N,r(F.feature),i(F.jobs),l(F.values),h(null);}catch(F){h(F instanceof Error?F:new Error(String(F)));}finally{S(false);}}},[t,N]),p=sr.useCallback(async()=>{if(!t)return;let F=o.map(m=>m.id);try{if(F.length>0){let m=await t.queryLlmJobs({jobIds:F});i(m.jobs);}if(e.featureId||e.featureKey){let m=await t.queryValues({featureId:e.featureId,featureKey:e.featureKey,entities:e.jobs.map(L=>L.entity),valueKeys:Array.from(new Set(e.jobs.map(L=>L.valueKey||"value")))});r(m.feature),l(m.values);}h(null);}catch(m){h(m instanceof Error?m:new Error(String(m)));}},[t,o,N]);sr.useEffect(()=>{C.current!==N&&R();},[R,N]),sr.useEffect(()=>{let F=e.pollMs??3e3;if(F<=0||!ys(o))return;let m=setInterval(()=>{p();},F);return ()=>clearInterval(m)},[e.pollMs,o,p]);let u=sr.useMemo(()=>new Map(a.map(F=>[dn(F.entity,F.valueKey),F])),[a]),$=sr.useCallback((F,m="value")=>u.get(dn(F,m))??null,[u]);return {feature:n,jobs:o,values:a,byKey:u,getValue:$,loading:d,error:A,ensure:R,refresh:p,running:ys(o)}}exports.ForkBoundaryUI=xa;exports.ForkButton=dr;exports.ForkChatInterface=on;exports.ForkPanel=Nn;exports.ForkProvider=fi;exports.ForkSlot=Ai;exports.ForkUI=Ja;exports.clearCachedManifest=Ys;exports.createForkDataClient=bs;exports.forkEntityValueKey=dn;exports.forkable=Ka;exports.loadManifest=er;exports.manifestDiffers=Zs;exports.readCachedManifest=qs;exports.registerForkShared=Yn;exports.useBoundaryFork=hr;exports.useFork=yr;exports.useForkChatPanel=kr;exports.useForkDataClient=jn;exports.useForkDataMutation=Za;exports.useForkFeatureValues=Ya;exports.useForkLlmJobs=Qa;exports.writeCachedManifest=Gs;