@popmelt.com/core 0.24.0 → 0.24.2
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/claude-plugin/.claude-plugin/plugin.json +1 -1
- package/codex-plugin/.codex-plugin/plugin.json +1 -1
- package/dist/ParticipantRuntime-6QPULJPO.mjs +139 -0
- package/dist/{PreviewRuntime-2SCFCGWC.mjs → PreviewRuntime-NGTLOEX3.mjs} +1 -1
- package/dist/adapter-react-three-fiber.d.mts +1 -1
- package/dist/bridge-entry.mjs +78 -78
- package/dist/{browser-runtime-3Z4U66AP.mjs → browser-runtime-3UZPA2SA.mjs} +1 -1
- package/dist/browser.d.mts +4 -4
- package/dist/browser.mjs +1 -1
- package/dist/chunk-3XSTOVWX.mjs +2 -0
- package/dist/chunk-D4ZJC7OV.mjs +301 -0
- package/dist/chunk-ENERPQJN.mjs +2 -0
- package/dist/{chunk-DHAOAIKK.mjs → chunk-NV55QGKG.mjs} +1 -1
- package/dist/{chunk-EUDGPGCQ.mjs → chunk-TJVWZRAF.mjs} +1 -1
- package/dist/chunk-ZL4X7KBW.mjs +413 -0
- package/dist/cli.mjs +97 -97
- package/dist/index.d.mts +5 -5
- package/dist/index.mjs +1 -1
- package/dist/media.d.mts +3 -3
- package/dist/{participantBootstrap-Dqu2h47B.d.mts → participantBootstrap-BQHbHI4r.d.mts} +2 -2
- package/dist/plugin-astro.mjs +1 -1
- package/dist/plugin-nuxt.mjs +1 -1
- package/dist/plugin-vite.mjs +1 -1
- package/dist/server-M6OXW7FE.mjs +228 -0
- package/dist/server.mjs +81 -81
- package/dist/{subjects-DzjWdlAk.d.mts → subjects-BM3Smdow.d.mts} +6 -1
- package/dist/{video-adapter-CCLbp86L.d.mts → video-adapter-Gm5gmoiz.d.mts} +1 -1
- package/package.json +25 -23
- package/dist/ParticipantRuntime-PTBGXKSH.mjs +0 -139
- package/dist/chunk-6URDGUIL.mjs +0 -2
- package/dist/chunk-BYLH3WFB.mjs +0 -2
- package/dist/chunk-C4ONFAGF.mjs +0 -399
- package/dist/chunk-M3HCNQ4T.mjs +0 -250
- package/dist/server-T4EMCHVP.mjs +0 -228
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import{a as Zd,b as Jh}from"./chunk-EX63NVDN.mjs";import{d as qh,g as Uh,m as Yh,l as Xh}from"./chunk-N2ZEZCHO.mjs";import{a as Kh}from"./chunk-J3UIBBU2.mjs";import{nb as Ka,ea as os,I as ec,K as Qt,d as Vh,rc as tc,g as Gh,f as nc,za as rc,O as oc,M as ic,N as is,Wc as as,P as Qh,Q as fa,_c as ac,$c as lc,ad as sc,Zc as dc,Ic as Zh,Jc as ef,gc as Ei,Kb as tf,fd as nf,gd as cc,Jb as rf,S as uc,md as of,id as af,jd as lf,kd as sf,xc as df,Lb as cf,ac as uf,Yb as pc,zc as pf,Eb as hf,Fb as ls,Gb as ff,Hb as mf,T as hc,yc as gf,cc as yf,W as vf,Ib as bf,Y as xf,X as wf,V as Sf,Nc as ss,Mc as If,Lc as ds,hd as kf,Mb as Ef,jc as fc,kc as Tf,ic as mc,hc as Cf,dc as cs,Z as Af,ob as Mf,Ja as gc,ba as Ti,ed as Rf,Sa as yc,wa as $f,Xb as Pf,E as Lf,_ as jf,Xc as vc,oc as zf,nc as Df,qc as Hf,mc as Of,pc as Nf,$b as Ff,eb as _f,fb as Wf,Oa as Bf,y as bc,r as Gr,Sb as pn,va as Va,ua as Jf,G as qf,lc as Uf,Tb as Yf,_b as Xf,Wb as Kf,u as xc,ec as Vf,F as Gf,oa as An,la as rr,qa as us,da as wc,Ob as Ci,ka as ps,sa as Qf,ca as Ga,ub as Zf,Nb as em,sb as Sc,Ca as Ic,ja as Qr,Ha as tm,Ia as kc,zb as nm,ha as rm,ga as om,ya as hs,xa as fs,Ec as Vo,od as im,ld as am,Dc as Ec,Fc as Tc,Pc as ms,Rc as lm,cd as sm,dd as dm,Kc as cm,Gc as um,Hc as pm,Ba as Cc,R as hm,Zb as fm,bc as gs,rb as mm,L as gm,A as ys,m as Ac,l as ma,i as Qa,n as Ai,db as Mc,gb as Rc,mb as $c,lb as Pc,Ra as Go,hb as Lc,kb as Mi,qb as ym,ia as jc,Ub as vs,Rb as vm,Qb as bs,Pb as xs,pb as bm,fc as xm,Vb as zc,z as wm,B as Sm,D as Im,b as km,Ta as Em,ma as Tm,na as Cm,xb as Dc,vb as Hc,wb as Oc,yb as Am,fa as Mm,Ab as Nc,Cb as Fc,Db as Rm,Ea as $m,Da as _c,Ga as Pm,tb as Lm,Fa as jm,Aa as Wc,q as Bc,k as ws,Yc as Jc,bd as qc,$ as zm,c as Dm,Pa as Ri,bb as Ss,Ua as Qo,jb as Za,Xa as Uc,aa as Hm,pa as Is,t as Om,v as Yc,x as Nm,w as Fm,ra as Xc,ta as Kc,s as _m,j as el,C as Wm,Bb as Bm,p as ks,J as Jm,Wa as tl,Ka as Vc,$a as qm,Ma as wr,Ya as Es,Va as ga,La as Ts,Na as Um,ab as Ym,_a as Xm,ib as Cs,Za as Gc,h as Qc,o as Km,Qa as Zc,cb as Vm}from"./chunk-ZL4X7KBW.mjs";import{v as Gm,h as tn,E as eu,G as Qm,I as Zm,d as ya,t as tu,g as yo,p as hn,q as $i,u as va,o as nl,D as nu,C as eg,w as rl,A as tg,x as Sr,z as ng,B as it,i as rg,j as og,n as ru,y as ig,a as ag,r as lg,s as sg,c as ou,b as As}from"./chunk-ENERPQJN.mjs";import{lazy as iu,memo as dg,useContext as Ir,useState as $,Fragment as cg,useRef as J,useEffect as _,useCallback as U,useMemo as we,Suspense as au,cloneElement as ug,useSyncExternalStore as pg,useLayoutEffect as Lt,useId as hg}from"react";import{domToCanvas as fg,createContext as mg,destroyContext as gg}from"modern-screenshot";import{jsx as h,jsxs as M,Fragment as at}from"react/jsx-runtime";import{Fingerprint as Zr,Component as ol,Ban as il,Terminal as lu,PenLine as su,Plug as yg,SquareMousePointer as vg,ChevronRight as Ms,FilePenLine as bg,ChevronDown as Pi,Check as vo,ChevronLeft as xg,X as al,Send as du,Clock as cu,Lock as wg,ArrowDown as Sg,OctagonAlert as uu,MessageCircleQuestionMark as Ig,Reply as kg,TriangleAlert as Eg,Command as pu,CornerDownLeft as Rs,EyeOff as Tg,Trash2 as Cg}from"lucide-react";import{createPortal as hu}from"react-dom";function Ag(e){return ec(e)?new Mg(e):new EventSource(e)}var Mg=class{constructor(e){this.readyState=0,this.onerror=null,this.controller=new AbortController,this.listeners=new Map,this.read(e)}addEventListener(e,t){let n=this.listeners.get(e)??new Set;n.add(t),this.listeners.set(e,n)}close(){this.readyState=2,this.controller.abort(),this.listeners.clear()}emit(e,t){let n=new MessageEvent(e,{data:t});for(let r of this.listeners.get(e)??[])r(n)}async read(e){try{let t=await fetch(e,Jm(e,{signal:this.controller.signal}));if(!t.ok||!t.body||!t.headers.get("content-type")?.includes("text/event-stream"))throw new Error("Event stream unavailable");if(this.controller.signal.aborted)return;this.readyState=1;let n=t.body.getReader(),r=new TextDecoder,o="",i="message",a=[],l=0;try{for(;!this.controller.signal.aborted;){let s=await n.read();if(s.done)throw new Error("Event stream ended");if(o+=r.decode(s.value,{stream:!0}),o.length>2*1024*1024)throw new Error("Event frame too large");let d;for(;(d=o.indexOf(`
|
|
3
|
+
`))!==-1;){let c=o.slice(0,d).replace(/\r$/,"");if(o=o.slice(d+1),!c)a.length&&this.emit(i,a.join(`
|
|
4
|
+
`)),i="message",a=[],l=0;else if(c.startsWith("event:"))i=c.slice(6).trimStart();else if(c.startsWith("data:")&&(a.push(c.slice(5).replace(/^ /,"")),l+=c.length,l>2*1024*1024))throw new Error("Event frame too large")}}}finally{await n.cancel().catch(()=>{})}}catch{if(this.controller.signal.aborted)return;this.readyState=2,this.emit("error",""),this.onerror?.call(this,new Event("error"))}}};function Rg(e,t,n){return[...e].reverse().find(o=>o.type==="done"||o.type==="error")||(t?void 0:n)}function fu(e,t,n){let r=new Set(t.map(s=>s.id)),o=new Map(n.map(s=>[s.id,s])),i=e.flatMap(s=>{let d=o.get(s);return d?.status==="done"||d?.status==="error"?[d]:[]}),a=new Set(i.map(s=>s.id)),l=e.filter(s=>!a.has(s));for(let s of r)l.includes(s)||l.push(s);return{serverActiveIds:r,terminalJobs:i,reconciledActiveIds:l}}function mu(e,t){return e.store===void 0&&(e.store=t),e.store}function $g(e,t){let n=e.listeners??(e.listeners=new Set);return n.add(t),()=>n.delete(t)}function Pg(e,t,n){let r=n(mu(e,t));e.store=r;for(let o of e.listeners??[])o();return r}var Ze=globalThis.__POPMELT_BRIDGE_CONNECTION__??(globalThis.__POPMELT_BRIDGE_CONNECTION__={}),ll=Ze.sourceId??(typeof localStorage<"u"?localStorage.getItem("popmelt-source-id"):null)??(typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():Math.random().toString(36).slice(2));Ze.sourceId=ll;try{typeof localStorage<"u"&&localStorage.setItem("popmelt-source-id",ll)}catch{}function $s(){return ll}var sl={isConnected:!1,status:"disconnected",jobResponses:{},jobThinking:{},activeJobIds:[],activeJobThreads:{},currentResponse:"",currentThinking:"",events:[],activeJobId:null,lastCompletedJobId:null,lastResponseText:null,lastThreadId:null,lastErrorByJob:{},pendingQuestions:[],incrementalResolutions:[],capabilitiesVersion:0};Ze.store??(Ze.store={...sl}),Ze.listeners??(Ze.listeners=new Set);var kr=Ze.activeEs??null,dl=Ze.activeBridgeUrl??null,Er=null,Un=Ze.connectionGeneration??0,cl=new Set,Li=new Map,bo={},Ps=new Set;function Yn(e,t){if(!e)return!1;if(Ps.has(e))return!0;if(cl.has(e)){let r=Li.get(e);return r||(r=[],Li.set(e,r)),r.push({type:t.type??"",data:t}),!0}let n=bo[e];return n!==void 0&&typeof t.seq=="number"&&t.seq<=n}async function gu(e,t,n,r=new Map){let o=()=>n!==(Ze.connectionGeneration??0);for(let i of t){if(o())return;cl.add(i),Li.set(i,[])}await Promise.all(t.map(async i=>{try{let a=await uc(e,i);if(o())return;let l=Li.get(i)??[];if(a){mt(c=>{let p={...c.jobResponses,[i]:a.accumulated.response},u={...c.jobThinking,[i]:a.accumulated.thinking},f=[...c.events];for(let m of a.events)m.type==="done"||m.type==="error"||f.push({type:m.type,data:m,timestamp:Date.now()});return{...c,jobResponses:p,jobThinking:u,currentResponse:i===c.activeJobId?a.accumulated.response:c.currentResponse,currentThinking:i===c.activeJobId?a.accumulated.thinking:c.currentThinking,events:f}}),bo[i]=a.currentSeq;let s=[...a.events].reverse().find(c=>c.type==="job_started"||c.type==="job_parked");s?.type==="job_parked"&&ji("job_parked",s,i);let d=Rg(a.events,a.jobActive,r.get(i));d&&ji(d.type,d,i);for(let c of l)typeof c.data.seq=="number"&&c.data.seq<=a.currentSeq||ji(c.type,c.data,i)}else{let s=!1;for(let c of l)ji(c.type,c.data,i),(c.type==="done"||c.type==="error")&&(s=!0);let d=r.get(i);!s&&d&&ji(d.type,d,i)}}finally{cl.delete(i),Li.delete(i)}}))}function ji(e,t,n){if(e==="job_parked")mt(r=>{let o=r.activeJobIds.filter(i=>i!==n);return{...r,activeJobIds:o,activeJobId:o.at(-1)??null,events:[...r.events,{type:e,data:t,timestamp:Date.now()}]}});else if(e==="job_started")mt(r=>({...r,status:"streaming",activeJobId:n,activeJobIds:[...new Set([...r.activeJobIds,n])],activeJobThreads:typeof t.threadId=="string"?{...r.activeJobThreads,[n]:t.threadId}:r.activeJobThreads,events:[...r.events,{type:e,data:t,timestamp:Date.now()}]}));else if(e==="delta"){let r=t.text||"";mt(o=>({...o,jobResponses:{...o.jobResponses,[n]:(o.jobResponses[n]||"")+r},currentResponse:n===o.activeJobId?o.currentResponse+r:o.currentResponse,events:[...o.events,{type:"delta",data:t,timestamp:Date.now()}]}))}else if(e==="thinking"){let r=t.text||"";mt(o=>({...o,jobThinking:{...o.jobThinking,[n]:(o.jobThinking[n]||"")+r},currentThinking:n===o.activeJobId?o.currentThinking+r:o.currentThinking,events:[...o.events,{type:"thinking",data:t,timestamp:Date.now()}]}))}else if(e==="status")mt(r=>({...r,events:[...r.events,{type:"status",data:t,timestamp:Date.now()}]}));else if(e==="done")delete bo[n],mt(r=>{let o=r.activeJobIds.filter(d=>d!==n),i={...r.jobResponses},a={...r.jobThinking},l=i[n];delete i[n],delete a[n];let s=n===r.activeJobId?o.length>0?o[o.length-1]:null:r.activeJobId;return{...r,activeJobIds:o,activeJobId:s,jobResponses:i,jobThinking:a,lastCompletedJobId:n,lastResponseText:t.responseText||l||r.currentResponse||null,lastThreadId:t.threadId??null,...n===r.activeJobId?{currentResponse:s&&i[s]||"",currentThinking:s&&a[s]||""}:{},events:[...r.events,{type:"done",data:t,timestamp:Date.now()}]}});else if(e==="error"){delete bo[n];let r=t.message??"";mt(o=>{let i=o.activeJobIds.filter(l=>l!==n),a=i.length>0?o.status:"error";return{...o,status:a,activeJobIds:i,lastCompletedJobId:n,lastErrorByJob:r?{...o.lastErrorByJob,[n]:r}:o.lastErrorByJob,events:[...o.events,{type:"error",data:t,timestamp:Date.now()}]}})}else mt(e==="question"?r=>{let o=typeof t.threadId=="string"?t.threadId:"",i=typeof t.question=="string"?t.question:"",a=Array.isArray(t.annotationIds)?t.annotationIds.filter(s=>typeof s=="string"):void 0,l=r.pendingQuestions.some(s=>s.jobId===n);return{...r,pendingQuestions:i&&o&&!l?[...r.pendingQuestions,{jobId:n,threadId:o,question:i,annotationIds:a,timestamp:Date.now()}]:r.pendingQuestions,events:[...r.events,{type:e,data:t,timestamp:Date.now()}]}}:r=>({...r,events:[...r.events,{type:e,data:t,timestamp:Date.now()}]}))}var Xn=Ze.discoveredBridgeUrl??null,Hn=Ze.discoveredBridgeProjectId??null,xo=null,zi=null;function yu(e,t=!1){let n=e??null;if(!(!t&&(Ze.expectedProjectId??null)===n)){kr&&(kr.close(),kr=null,Ze.activeEs=null),Er&&(clearTimeout(Er),Er=null),dl=null,Ze.activeBridgeUrl=null,Xn=null,Hn=null,Ze.discoveredBridgeUrl=null,Ze.discoveredBridgeProjectId=null,xo=null,zi=null,cl.clear(),Li.clear(),Ps.clear();for(let r of Object.keys(bo))delete bo[r];Ze.expectedProjectId=n,Un=(Ze.connectionGeneration??Un)+1,Ze.connectionGeneration=Un,mt(()=>({...sl}))}}function Lg(){Ze.listeners?.size||yu(null,!0)}async function vu(e,t){if(Xn&&(t?Hn===t:!Hn))return Xn;if(!t&&Hn&&(Xn=null,Hn=null,Ze.discoveredBridgeUrl=Xn,Ze.discoveredBridgeProjectId=Hn),t&&Hn&&Hn!==t&&(Xn=null,Hn=null,Ze.discoveredBridgeUrl=Xn,Ze.discoveredBridgeProjectId=Hn),xo&&zi===(t??null))return xo;let n=Un;return zi=t??null,xo=hm(e,t).then(r=>n!==Un?null:(Xn=r?.url??null,Hn=r?.projectId??t??null,Ze.discoveredBridgeUrl=Xn,Ze.discoveredBridgeProjectId=Hn,xo=null,zi=null,Xn)).catch(()=>(n!==Un||(xo=null,zi=null),null)),xo}function jg(){return Xn}async function zg(e,t){Xn=null,Hn=null,Ze.discoveredBridgeUrl=null,Ze.discoveredBridgeProjectId=null,xo=null,zi=null;let n=Un,r=await vu(e,t);return r&&n===Un&&Ls(r),r}function ba(){return mu(Ze,{...sl})}function Dg(e){return $g(Ze,e)}function mt(e){Pg(Ze,{...sl},t=>{let n=e(t),r=new Set(n.activeJobIds),o=n.activeJobId&&r.has(n.activeJobId)?n.activeJobId:n.activeJobIds.at(-1)??null;return{...n,activeJobId:o,activeJobThreads:Object.keys(n.activeJobThreads).some(i=>!r.has(i))?Object.fromEntries(Object.entries(n.activeJobThreads).filter(([i])=>r.has(i))):n.activeJobThreads,status:n.status==="streaming"&&r.size===0?"idle":n.status}})}function Hg(){return typeof window<"u"?window.__POPMELT_PROJECT_ID__??null:null}function Ls(e){if(kr&&kr.readyState!==EventSource.CLOSED&&dl===e)return;kr&&(kr.close(),kr=null,Ze.activeEs=null),Er&&(clearTimeout(Er),Er=null),dl=e,Ze.activeBridgeUrl=dl,Un=(Ze.connectionGeneration??Un)+1;let t=Un;Ze.connectionGeneration=Un;let n=new URLSearchParams({sourceId:ll}),r=Hg();r&&n.set("projectId",r);let o=Ag(`${e}/events?${n.toString()}`);kr=o,Ze.activeEs=kr;let i=()=>t!==(Ze.connectionGeneration??0);o.addEventListener("connected",()=>{i()||fa(e).then(a=>{if(i())return;let l=[...a?.activeJobs??(a?.activeJob?[a.activeJob]:[]),...a?.queuedJobs?.filter(g=>g.parked)??[]],s=a?.recentJobs??[],d=fu(ba().activeJobIds,l,s),{serverActiveIds:c,terminalJobs:p}=d,u=p.map(g=>g.id),f=new Map;for(let g of p)f.set(g.id,g.status==="error"?{type:"error",jobId:g.id,message:g.error??"The agent run failed.",threadId:g.threadId,annotationIds:g.annotationIds}:{type:"done",jobId:g.id,success:!0,threadId:g.threadId,annotationIds:g.annotationIds});mt(g=>{let y={...g.lastErrorByJob};for(let D of p)D?.status==="error"&&D.error&&(y[D.id]=D.error);let w=fu(g.activeJobIds,l,s).reconciledActiveIds,k={};for(let D of l)D.threadId&&(k[D.id]=D.threadId);return{...g,isConnected:!0,status:w.length>0?"streaming":u.length>0||g.status==="disconnected"?"idle":g.status,activeJobId:w.length>0?w[w.length-1]:null,activeJobIds:w,activeJobThreads:k,lastErrorByJob:y,workspaceGeneration:a?.workspaceGeneration}});let m=[...new Set([...Array.from(c),...u])];m.length>0&&gu(e,m,t,f).catch(()=>{})})}),o.addEventListener("job_parked",a=>{if(i())return;let l=JSON.parse(a.data);Yn(l.jobId,l)||ji("job_parked",l,l.jobId)}),o.addEventListener("thread_changed",a=>{if(i())return;let l=JSON.parse(a.data);mt(s=>({...s,events:[...s.events,{type:"thread_changed",data:l,timestamp:Date.now()}]}))}),o.addEventListener("job_started",a=>{if(i())return;let l=JSON.parse(a.data),s=l.jobId;if(Yn(s,l))return;let d=l.threadId;mt(c=>({...c,status:"streaming",activeJobId:s,activeJobIds:c.activeJobIds.includes(s)?c.activeJobIds:[...c.activeJobIds,s],activeJobThreads:d?{...c.activeJobThreads,[s]:d}:c.activeJobThreads,jobResponses:{...c.jobResponses,[s]:c.jobResponses[s]??""},jobThinking:{...c.jobThinking,[s]:c.jobThinking[s]??""},currentResponse:c.jobResponses[s]??"",currentThinking:c.jobThinking[s]??"",lastResponseText:null,lastThreadId:null,events:[...c.events,{type:"job_started",data:l,timestamp:Date.now()}]}))}),o.addEventListener("delta",a=>{if(i())return;let l=JSON.parse(a.data),s=l.jobId;if(Yn(s,l))return;let d=l.text||"";mt(c=>({...c,jobResponses:s?{...c.jobResponses,[s]:(c.jobResponses[s]||"")+d}:c.jobResponses,currentResponse:!s||s===c.activeJobId?c.currentResponse+d:c.currentResponse,events:[...c.events,{type:"delta",data:l,timestamp:Date.now()}]}))}),o.addEventListener("thinking",a=>{if(i())return;let l=JSON.parse(a.data),s=l.jobId;if(Yn(s,l))return;let d=l.text||"";mt(c=>({...c,jobThinking:s?{...c.jobThinking,[s]:(c.jobThinking[s]||"")+d}:c.jobThinking,currentThinking:!s||s===c.activeJobId?c.currentThinking+d:c.currentThinking,events:[...c.events,{type:"thinking",data:l,timestamp:Date.now()}]}))}),o.addEventListener("status",a=>{if(i())return;let l=JSON.parse(a.data),s=l.jobId;Yn(s,l)||mt(d=>({...d,events:[...d.events,{type:"status",data:l,timestamp:Date.now()}]}))}),o.addEventListener("orientation",a=>{if(i())return;let l=JSON.parse(a.data),s=l.jobId;Yn(s,l)||mt(d=>({...d,events:[...d.events,{type:"orientation",data:l,timestamp:Date.now()}]}))}),o.addEventListener("approval",a=>{if(i())return;let l=JSON.parse(a.data);Yn(l.jobId,l)||mt(s=>({...s,events:[...s.events,{type:"approval",data:l,timestamp:Date.now()}]}))}),o.addEventListener("imprint_used",a=>{if(i())return;let l=JSON.parse(a.data),s=l.jobId;Yn(s,l)||mt(d=>({...d,events:[...d.events,{type:"imprint_used",data:l,timestamp:Date.now()}]}))}),o.addEventListener("tool_use",a=>{if(i())return;let l=JSON.parse(a.data),s=l.jobId;Yn(s,l)||mt(d=>({...d,events:[...d.events,{type:"tool_use",data:l,timestamp:Date.now()}]}))}),o.addEventListener("done",a=>{if(i())return;let l=JSON.parse(a.data),s=l.jobId;Yn(s,l)||(s&&delete bo[s],mt(d=>{let c=s?d.activeJobIds.filter(y=>y!==s):d.activeJobIds,p={...d.jobResponses},u={...d.jobThinking},f={...d.activeJobThreads},m=s?p[s]:void 0;s&&(delete p[s],delete u[s],delete f[s]);let g=s===d.activeJobId?c.length>0?c[c.length-1]:null:d.activeJobId;return{...d,activeJobIds:c,activeJobId:g,jobResponses:p,jobThinking:u,lastCompletedJobId:s??d.activeJobId,lastResponseText:l.responseText||m||d.currentResponse||null,lastThreadId:l.threadId??null,...s===d.activeJobId?{currentResponse:g&&p[g]||"",currentThinking:g&&u[g]||""}:{},events:[...d.events,{type:"done",data:l,timestamp:Date.now()}]}}))}),o.addEventListener("question",a=>{if(i())return;let l=JSON.parse(a.data),s=l.jobId;Yn(s,l)||mt(d=>({...d,pendingQuestions:[...d.pendingQuestions,{jobId:l.jobId,threadId:l.threadId,question:l.question,annotationIds:l.annotationIds,timestamp:Date.now()}],events:[...d.events,{type:"question",data:l,timestamp:Date.now()}]}))}),o.addEventListener("capabilities_changed",()=>{i()||mt(a=>({...a,capabilitiesVersion:a.capabilitiesVersion+1}))}),o.addEventListener("workspace_cleared",a=>{if(i())return;let l=JSON.parse(a.data);typeof l.workspaceGeneration!="number"||!Number.isInteger(l.workspaceGeneration)||l.workspaceGeneration<0||mt(s=>{for(let d of s.activeJobIds)Ps.add(d);return{...s,workspaceGeneration:l.workspaceGeneration,status:"idle",activeJobId:null,activeJobIds:[],activeJobThreads:{},jobResponses:{},jobThinking:{},currentResponse:"",currentThinking:"",events:[],lastCompletedJobId:null,lastResponseText:null,lastThreadId:null,lastErrorByJob:{},pendingQuestions:[],incrementalResolutions:[]}})}),o.addEventListener("queue_drained",()=>{if(i())return;let a=[...ba().activeJobIds];if(a.length===0){mt(l=>({...l,status:l.status==="error"?"error":"idle",incrementalResolutions:[]}));return}gu(e,a,t).then(()=>{i()||mt(l=>({...l,status:l.activeJobIds.length>0?l.status:l.status==="error"?"error":"idle",incrementalResolutions:l.activeJobIds.length>0?l.incrementalResolutions:[]}))})}),o.addEventListener("error",a=>{if(!i()){if(o.readyState===EventSource.CLOSED){mt(s=>({...s,isConnected:!1,status:"disconnected"})),Er&&(clearTimeout(Er),Er=null);let l=t;Er=setTimeout(()=>{l===(Ze.connectionGeneration??0)&&fa(e).then(s=>{s&&l===(Ze.connectionGeneration??0)&&Ls(e)})},5e3)}else if(a instanceof MessageEvent){let l=JSON.parse(a.data),s=l.jobId??null;if(Yn(s??void 0,l))return;s&&delete bo[s];let d=l.message??"";mt(c=>{let p=s?c.activeJobIds.filter(f=>f!==s):c.activeJobIds,u=p.length>0?c.status:"error";return{...c,status:u,activeJobIds:p,lastCompletedJobId:s??c.activeJobId,lastErrorByJob:s&&d?{...c.lastErrorByJob,[s]:d}:c.lastErrorByJob,events:[...c.events,{type:"error",data:l,timestamp:Date.now()}]}})}}}),o.onerror=()=>{i()||o.readyState===EventSource.CLOSED&&mt(a=>({...a,isConnected:!1,status:"disconnected"}))}}function Og(e="http://localhost:1111",t=!0,n){let r=pg(Dg,ba,ba);_(()=>{if(yu(n),!t)return;let a=!1;return vu(e,n).then(l=>{!l||a||fa(l).then(s=>{!a&&s&&(!n||s.projectId===n)&&Ls(l)})}),()=>{a=!0}},[e,t,n]);let o=U(()=>{mt(()=>({...ba(),events:[],currentResponse:"",currentThinking:"",jobResponses:{},jobThinking:{},lastResponseText:null,lastThreadId:null,lastErrorByJob:{},incrementalResolutions:[]}))},[]),i=U(a=>{mt(l=>({...l,pendingQuestions:l.pendingQuestions.filter(s=>s.threadId!==a)}))},[]);return{...r,clearEvents:o,dismissQuestion:i}}function Ng(e,t,n){let r=e.flatMap(({requestedAt:a,resolvedAt:l})=>Number.isFinite(a)&&Number.isFinite(l)?[[Math.max(t,a),Math.min(n,l)]]:[]).sort((a,l)=>a[0]-l[0]),o=t,i=0;for(let[a,l]of r)i+=Math.max(0,l-Math.max(o,a)),o=Math.max(o,l);return i}function bu(e){let t=new Map,n=new Set;for(let r of e)if(r.type==="approval"){let o=r.data.approval;t.set(o.id,o)}else(r.type==="done"||r.type==="error")&&n.add(String(r.data.jobId));return new Set([...t.values()].filter(r=>r.status==="pending"&&!n.has(r.jobId)).map(r=>r.jobId))}function xu(e){let t=new MutationObserver(n=>{let r=n.filter(o=>document.body.contains(o.target)||o.target===document.documentElement&&[...o.addedNodes,...o.removedNodes].some(i=>i instanceof Element&&i.tagName==="BODY"));r.length&&e(r)});return t.observe(document.documentElement,{childList:!0,subtree:!0}),t}function js(e,t,n){if(e===null||typeof e=="string"||typeof e=="boolean")return;if(typeof e=="number"){if(!Number.isFinite(e))throw new TypeError(`Comment metadata at ${t} must be finite.`);return}if(typeof e!="object")throw new TypeError(`Comment metadata at ${t} must be JSON-serializable.`);if(n.has(e))throw new TypeError(`Comment metadata at ${t} contains a cycle.`);let r=Object.getPrototypeOf(e);if(!Array.isArray(e)&&r!==Object.prototype&&r!==null)throw new TypeError(`Comment metadata at ${t} must use plain objects and arrays.`);if(n.add(e),Array.isArray(e))e.forEach((o,i)=>js(o,`${t}[${i}]`,n));else for(let[o,i]of Object.entries(e))js(i,`${t}.${o}`,n);n.delete(e)}function zs(e){if(e===void 0)return;if(e===null||Array.isArray(e)||typeof e!="object")throw new TypeError("Comment metadata must be a JSON object.");js(e,"meta",new Set);let t=JSON.stringify(e);if(new TextEncoder().encode(t).byteLength>65536)throw new RangeError("Comment metadata exceeds the 65536 byte limit.");return JSON.parse(t)}var Ds="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",Fg=1500,_g=5e3,Wg=24e6,Bg=16e3,Jg=4,qg=["position","inset","top","right","bottom","left","z-index","display","visibility","opacity","overflow","overflow-x","overflow-y","box-sizing","box-decoration-break","float","clear","width","min-width","max-width","height","min-height","max-height","margin","margin-top","margin-right","margin-bottom","margin-left","padding","padding-top","padding-right","padding-bottom","padding-left","border","border-width","border-style","border-color","border-top","border-right","border-bottom","border-left","border-radius","outline","outline-offset","box-shadow","background","background-color","background-image","background-size","background-position","background-repeat","background-clip","background-origin","color","font","font-family","font-size","font-style","font-weight","font-stretch","font-variant","line-height","letter-spacing","text-align","text-decoration","text-indent","text-overflow","text-shadow","text-transform","white-space","word-break","overflow-wrap","vertical-align","direction","writing-mode","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","align-content","align-items","align-self","justify-content","justify-items","justify-self","gap","row-gap","column-gap","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-row","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","order","columns","column-count","column-fill","column-rule","column-span","column-width","list-style","list-style-image","list-style-position","list-style-type","object-fit","object-position","aspect-ratio","transform","transform-box","transform-origin","transform-style","perspective","perspective-origin","backface-visibility","clip","clip-path","filter","backdrop-filter","mix-blend-mode","isolation","mask","mask-image","mask-position","mask-repeat","mask-size","content","quotes","counter-increment","counter-reset","appearance","accent-color","caret-color","cursor","pointer-events","fill","fill-opacity","fill-rule","stroke","stroke-width","stroke-opacity"];async function Ug(e,t){try{let n=await e();if(n)return n}catch{}return t()}var Hs=new Map,wu=new WeakMap,Yg=1;function On(){return typeof performance<"u"?performance.now():Date.now()}function Os(e){if(e?.debug!==void 0)return e.debug;if(typeof window>"u")return!1;try{return window.localStorage.getItem("popmelt:screenshot-debug")==="true"}catch{return!1}}function Xg(e){let t=0,n=0;for(let r of e.querySelectorAll("img[src]"))Su(r.currentSrc||r.src)&&(t++,(!r.complete||r.naturalWidth===0)&&n++);return{remoteImages:t,unresolvedRemoteImages:n}}function Kg(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(String(r.result)),r.onerror=()=>n(r.error??new Error("Asset could not be read")),r.readAsDataURL(e)})}function Vg(e,t){let n=null;return async r=>{if(!Su(r))return!1;n??(n=Date.now()+e);let o=n-Date.now();if(o<=0)return t(),Ds;let i=new AbortController,a=setTimeout(()=>i.abort(),o);try{let l=await fetch(r,{cache:"force-cache",mode:"cors",signal:i.signal});if(!l.ok)throw new Error(`Asset returned ${l.status}`);return await Kg(await l.blob())}catch{return t(),Ds}finally{clearTimeout(a)}}}function Gg(e,t,n){let r=wu.get(e);r||(r=Yg++,wu.set(e,r));let o=t.filter(i=>(i.status??"pending")==="pending").map(i=>{let a=i.points[0],l=i.points[i.points.length-1];return`${i.id}:${i.points.length}:${a?.x??""}:${a?.y??""}:${l?.x??""}:${l?.y??""}`}).join("|");return[r,window.location.href,window.innerWidth,window.innerHeight,n?.dpr??window.devicePixelRatio??1,n?.viewportOnly?window.scrollY:"",o].join("::")}function Qg(e,t,n){let r=Math.min(t,n);return{top:Math.max(0,Math.min(e,n-r)),height:r,annotations:[]}}function Su(e){if(typeof window>"u")return!1;try{let t=new URL(e,window.location.href);return t.protocol!=="http:"&&t.protocol!=="https:"?!1:t.origin!==window.location.origin}catch{return!1}}function Iu(e){let t=document.createElement("canvas").getContext("2d");return t?(t.fillStyle=e,t.fillStyle):"#888888"}function ul(e,t=[],n,r,o=[],i=[],a){let l=new Map,s=[];for(let c of e)if(c.groupId){let p=l.get(c.groupId)||[];p.push(c),l.set(c.groupId,p)}else s.push(c);let d=[];for(let[c,p]of l){let u=p.find(m=>m.type!=="text"),f=p.find(m=>m.type==="text");if(u){let m=u.linkedSelector||f?.linkedSelector,g=f?.imageCount||u.imageCount,y=f?.attachments||u.attachments,w=f?.interactionEpisode||u.interactionEpisode,k=u.pathname||f?.pathname;d.push({id:u.id,type:u.type,instruction:f?.text,...m?{linkedSelector:m}:{},...u.target||f?.target?{target:u.target??f?.target}:{},...k?{pathname:k}:{},elements:u.elements||[],...g?{imageCount:g}:{},...y?.length?{attachments:y}:{},...w?{interactionEpisode:w}:{}})}}for(let c of s)d.push({id:c.id,type:c.type,instruction:c.type==="text"?c.text:void 0,...c.linkedSelector?{linkedSelector:c.linkedSelector}:{},...c.target?{target:c.target}:{},...c.pathname?{pathname:c.pathname}:{},elements:c.elements||[],...c.imageCount?{imageCount:c.imageCount}:{},...c.attachments?.length?{attachments:c.attachments}:{},...c.interactionEpisode?{interactionEpisode:c.interactionEpisode}:{}});return{timestamp:new Date().toISOString(),url:window.location.href,viewport:{width:window.innerWidth,height:window.innerHeight},scrollPosition:{x:window.scrollX,y:window.scrollY},annotations:d,styleModifications:t,...o.length>0?{textModifications:o}:{},...i.length>0?{domModifications:i}:{},...n?{inspectedElement:n}:{},...r&&r.length>0?{spacingTokenChanges:r}:{},...a?{meta:a}:{}}}function Zg(e){if(!e.points||e.points.length===0)return null;let t=e.points.map(r=>r.x),n=e.points.map(r=>r.y);return{minX:Math.min(...t),minY:Math.min(...n),maxX:Math.max(...t),maxY:Math.max(...n)}}function ey(e,t){if(e.length===0)return[];let n=e.map(c=>({annotation:c,bounds:Zg(c)})).filter(c=>c.bounds!==null);if(n.length===0)return[];n.sort((c,p)=>c.bounds.minY-p.bounds.minY);let r=Math.min(...n.map(c=>c.bounds.minY)),o=Math.max(...n.map(c=>c.bounds.maxY));if(o-r<=t){let c=(r+o)/2,p=Math.max(0,c-t/2);return[{top:p,bottom:p+t,annotations:e}]}let i=[],a=50,l=Math.max(0,r-a),s=[],d=l;for(let{annotation:c,bounds:p}of n){let u=p.maxY+a;if(u-l<=t)s.push(c),d=Math.max(d,u);else{if(s.length>0){let f=(l+d)/2,m=Math.max(0,f-t/2);i.push({top:m,bottom:m+t,annotations:s})}l=Math.max(0,p.minY-a),s=[c],d=p.maxY+a}}if(s.length>0){let c=(l+d)/2,p=Math.max(0,c-t/2);i.push({top:p,bottom:p+t,annotations:s})}return i}function ty(e){let t=new Map;for(let n of e)if(n.linkedSelector)try{let r=document.querySelector(n.linkedSelector);if(r){let o=r.getBoundingClientRect();t.set(n.id,{x:o.left+window.scrollX,y:o.top+window.scrollY,width:o.width,height:o.height})}}catch{}return t}function ku(e,t,n,r,o){if(e.save(),e.scale(r,r),o)for(let i of t){let a=o.get(i.id);if(!a)continue;let l=a.y-n;e.fillStyle=i.color,e.globalAlpha=.05,e.fillRect(a.x,l,a.width,a.height),e.globalAlpha=1,e.strokeStyle=i.color,e.lineWidth=1,e.setLineDash([2,4]),e.strokeRect(a.x,l,a.width,a.height),e.setLineDash([])}for(let i of t){let a=i.points.map(l=>({x:l.x,y:l.y-n}));switch(e.strokeStyle=i.color,e.fillStyle=i.color,e.lineWidth=i.strokeWidth,e.lineCap="round",e.lineJoin="round",i.type){case"freehand":if(a.length<2)break;e.beginPath(),e.moveTo(a[0].x,a[0].y);for(let l=1;l<a.length;l++)e.lineTo(a[l].x,a[l].y);e.stroke();break;case"line":if(a.length<2)break;e.beginPath(),e.moveTo(a[0].x,a[0].y),e.lineTo(a[a.length-1].x,a[a.length-1].y),e.stroke();break;case"rectangle":{if(a.length<2)break;let l=a[0],s=a[a.length-1],d=Math.min(l.x,s.x),c=Math.min(l.y,s.y),p=Math.abs(s.x-l.x),u=Math.abs(s.y-l.y);e.strokeRect(d,c,p,u);break}case"circle":{if(a.length<2)break;let l=a[0],s=a[a.length-1],d=(l.x+s.x)/2,c=(l.y+s.y)/2,p=Math.abs(s.x-l.x)/2,u=Math.abs(s.y-l.y)/2;e.beginPath(),e.ellipse(d,c,p,u,0,0,Math.PI*2),e.stroke();break}case"text":{if(!i.text||a.length<1)break;let l=a[0],s=i.fontSize||16;e.font=`${s}px -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif`,e.fillStyle=i.color;let d=(i.imageCount&&i.imageCount>0?`[${i.imageCount} image${i.imageCount>1?"s":""}] ${i.text}`:i.text).split(`
|
|
5
|
+
`),c=s*1.2,p=4,u=0;for(let f of d)u=Math.max(u,e.measureText(f).width);e.fillRect(l.x-p,l.y-p,u+p*2,d.length*c+p*2),e.fillStyle="#ffffff",d.forEach((f,m)=>{e.fillText(f,l.x,l.y+s+m*c)});break}}}e.restore()}async function Zo(e,t,n=[],r){let o=Gg(e,n,r),i=Hs.get(o);if(i)return Os(r)&&console.debug("[Screenshot] Reusing in-flight capture",o),i;let a=py(e,n,r).finally(()=>Hs.delete(o));return Hs.set(o,a),a}function ny(){let e=getComputedStyle(document.documentElement).backgroundColor;return e&&e!=="rgba(0, 0, 0, 0)"&&e!=="transparent"?e:"#ffffff"}function ry(e){return e instanceof HTMLElement?e.id==="devtools-canvas"||e.id==="devtools-toolbar"||e.id==="devtools-scrim"?!1:e.dataset.devtools===void 0:!0}function oy(e,t,n,r){return e.length===0?[{top:Math.max(0,Math.min(r,Math.max(0,n-t))),height:Math.min(t,n||t),annotations:[]}]:e.map(o=>{let i=Math.min(t,n||t);return{top:Math.max(0,Math.min(o.top,Math.max(0,n-i))),height:i,annotations:o.annotations}})}function iy(e,t,n){if(e.length===0)return null;let r=Math.min(...e.map(a=>a.top)),o=Math.max(...e.map(a=>a.top+a.height))-r,i=t*o*n*n;return o>Bg||i>Wg?null:{top:r,height:o}}async function ay(e,t){let n=[];for(let r of e){let o=Object.getOwnPropertyDescriptor(r.element,"toDataURL");try{Object.defineProperty(r.element,"toDataURL",{configurable:!0,value:()=>r.dataUrl}),n.push(()=>{o?Object.defineProperty(r.element,"toDataURL",o):Reflect.deleteProperty(r.element,"toDataURL")})}catch{}}try{return await t()}finally{for(let r of n.reverse())r()}}async function ly(e,t,n,r,o,i,a,l){let s=Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)>window.innerHeight*Jg||e.querySelectorAll("*").length>2500,d=l?await l():[];return ay(d,()=>mg(e,{autoDestruct:!1,filter:ry,scale:r,backgroundColor:ny(),width:n,height:t.height,style:{transform:`translate(${-window.scrollX}px, ${-t.top}px)`,transformOrigin:"top left"},timeout:o,debug:i,includeStyleProperties:s?[...qg]:null,fetchFn:Vg(o,()=>{a.remoteAssetFallbacks++}),fetch:{requestInit:{cache:"force-cache"},placeholderImage:Ds}}))}async function sy(e,t,n){return e.width=n,e.height=t.height,e.style={transform:`translate(${-window.scrollX}px, ${-t.top}px)`,transformOrigin:"top left"},fg(e)}async function dy(e,t,n){let r=document.createElement("canvas");r.width=t,r.height=n;let o=r.getContext("2d");if(!o)throw new Error("Canvas context unavailable");if(typeof createImageBitmap=="function"){let l=await createImageBitmap(e);return o.drawImage(l,0,0,t,n),l.close(),r}let i=new Image,a=URL.createObjectURL(e);try{return await new Promise((l,s)=>{i.onload=()=>l(),i.onerror=()=>s(new Error("Native screenshot could not be decoded")),i.src=a}),o.drawImage(i,0,0,t,n),r}finally{URL.revokeObjectURL(a)}}async function Eu(e,t,n,r,o,i){if(r?.nativeCapture){let d=On();try{let c=await r.nativeCapture({url:window.location.href,clip:{x:window.scrollX,y:e.top,width:t,height:e.height},scale:n});if(i.nativeMs+=On()-d,c)return i.mode=i.renderMs>0||i.contextMs>0?"mixed":"native",dy(c,Math.round(t*n),Math.round(e.height*n))}catch(c){i.nativeMs+=On()-d,Os(r)&&console.debug("[Screenshot] Native capture unavailable; using DOM fallback",c)}}let a=await o(),l=On(),s=await sy(a,e,t);return i.renderMs+=On()-l,i.mode=i.mode==="native"?"mixed":"dom",s}function Tu(e,t,n,r,o,i){let a=document.createElement("canvas");a.width=Math.round(r*o),a.height=Math.round(n.height*o);let l=a.getContext("2d");if(!l)throw new Error("Canvas context unavailable");let s=Math.round((n.top-t)*o);return l.drawImage(e,0,s,a.width,a.height,0,0,a.width,a.height),ku(l,n.annotations,n.top,o,i),a}function cy(e){if(e.length===1)return e[0];let t=document.createElement("canvas");t.width=e[0]?.width??0,t.height=e.reduce((o,i)=>o+i.height,0);let n=t.getContext("2d");if(!n)throw new Error("Canvas context unavailable");let r=0;for(let o of e)n.drawImage(o,0,r),r+=o.height;return t}function uy(e,t="image/webp",n=.8){return new Promise(r=>e.toBlob(r,t,n))}async function py(e,t,n){let r=On(),o=n?.dpr??(window.devicePixelRatio||1),i=window.innerWidth,a=window.innerHeight,l=Math.max(document.body.scrollHeight,document.documentElement.scrollHeight),s=Math.max(250,n?.mediaTimeoutMs??Fg),d=Os(n),c=t.filter(I=>(I.status??"pending")==="pending"),p=ty(c),u=n?.viewportOnly?[Qg(window.scrollY,a,l)]:oy(ey(c,a),a,l,window.scrollY),f=Xg(e),m={startedAt:r,mode:"dom",mediaTimeoutMs:s,ranges:u.length,...f,remoteAssetFallbacks:0,nativeMs:0,contextMs:0,renderMs:0,compositeMs:0,encodeMs:0};console.log("[Screenshot] Starting capture with",c.length,"active annotations (filtered",t.length-c.length,"captured);",`${u.length} range(s), ${f.remoteImages} remote image(s), ${f.unresolvedRemoteImages} unresolved`);let g=null,y=null,w=iy(u,i,o),k=w??u[0],D=async()=>{if(!g){let I=On();g=ly(e,k,i,o,s,d,m,n?.captureSurfaces).then(O=>(y=O,m.contextMs+=On()-I,O))}return g};try{let I=On(),O;if(w){let q=await Eu(w,i,o,n,D,m);O=u.map(S=>Tu(q,w.top,S,i,o,p))}else{O=[];for(let q of u){let S=await Eu(q,i,o,n,D,m);O.push(Tu(S,q.top,q,i,o,p))}}let R=cy(O);m.compositeMs+=On()-I-m.renderMs-m.nativeMs-m.contextMs;let F=On(),Q=await uy(R);m.encodeMs=On()-F;let N=On()-m.startedAt,K={mode:m.mode,totalMs:Math.round(N),mediaTimeoutMs:m.mediaTimeoutMs,ranges:m.ranges,remoteImages:m.remoteImages,unresolvedRemoteImages:m.unresolvedRemoteImages,remoteAssetFallbacks:m.remoteAssetFallbacks,nativeMs:Math.round(m.nativeMs),contextMs:Math.round(m.contextMs),renderMs:Math.round(m.renderMs),compositeMs:Math.max(0,Math.round(m.compositeMs)),encodeMs:Math.round(m.encodeMs),overBudget:N>_g};return console.log("[Screenshot] Capture complete",JSON.stringify(K)),Q?[Q]:[]}catch(I){return console.error("[Screenshot] Capture failed:",I),[]}finally{y&&gg(y)}}async function pl(e){if(e.length===0)return null;if(e.length===1)return e[0];let t=await Promise.all(e.map(l=>new Promise((s,d)=>{let c=new Image;c.onload=()=>s(c),c.onerror=d,c.src=URL.createObjectURL(l)}))),n=t[0].width,r=t.reduce((l,s)=>l+s.height,0),o=document.createElement("canvas");o.width=n,o.height=r;let i=o.getContext("2d");if(!i)return null;let a=0;for(let l of t)i.drawImage(l,0,a),a+=l.height,URL.revokeObjectURL(l.src);return new Promise(l=>{o.toBlob(s=>l(s),"image/webp",.8)})}async function hy(e,t,n,r,o){try{let i=Array.isArray(e)?e:[e];if(i.length===0)return!1;let a=await pl(i);if(!a)return!1;let l=a;if(a.type!=="image/png"){let f=new Image,m=URL.createObjectURL(a);await new Promise(y=>{f.onload=()=>y(),f.src=m}),URL.revokeObjectURL(m);let g=document.createElement("canvas");g.width=f.naturalWidth,g.height=f.naturalHeight,g.getContext("2d").drawImage(f,0,0),l=await new Promise(y=>g.toBlob(w=>y(w),"image/png"))}let s={"image/png":l},d=t&&t.length>0,c=n&&n.length>0,p=r&&r.length>0,u=o&&o.length>0;if(d||c||p||u){let f=t?t.filter(m=>(m.status??"pending")==="pending"):[];if(f.length>0||c||p||u){let m=ul(f,n||[],void 0,void 0,r||[],o||[]),g=new Blob([JSON.stringify(m,null,2)],{type:"text/plain"});s["text/plain"]=g}}return await navigator.clipboard.write([new ClipboardItem(s)]),!0}catch(i){return console.warn("Clipboard write failed:",i),!1}}async function Ns(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(String(r.result).split(",")[1]),r.onerror=n,r.readAsDataURL(e)})}async function fy(e,t,n,r){let o=Date.now(),i=location.href,a=t.subject?await r.registry.captureFeedback(t.subject):null;if(t.subject&&!a)return{status:"target_unavailable"};let l=a?.elementInfo??hn(e),s=y=>{try{let w=document.querySelectorAll(y);return w.length===1&&w[0]===e}catch{return!1}},d=y=>!y.pathname||y.pathname===location.pathname,c=r.state?.annotations.filter(y=>d(y)&&y.interactionEpisode&&(t.subject?y.target?.adapter===t.subject.adapter&&y.target?.key===t.subject.key:!!y.linkedSelector&&s(y.linkedSelector)))??[],p=e.getBoundingClientRect(),u={id:t.key,type:"text",text:"",color:"#0099ff",strokeWidth:2,points:[{x:p.left+window.scrollX,y:p.top+window.scrollY}],timestamp:o,pathname:location.pathname,elements:[l],linkedSelector:l.selector,...t.subject?{target:t.subject}:{},...c.length===1?{interactionEpisode:c[0].interactionEpisode}:{}},f=r.getCommentMeta?zs(await r.getCommentMeta({kind:"annotation",purpose:"inspection",timestamp:o,url:location.href,pathname:location.pathname,annotations:[u]})):void 0,m=ul([u],r.state?.styleModifications.filter(y=>d(y)&&s(y.selector))??[],l,void 0,r.state?.textModifications.filter(y=>d(y)&&s(y.selector))??[],r.state?.domModifications.filter(y=>d(y)&&s(y.selector))??[],f),g=[];if(n){let[y]=await Zo(document.body,null,[],{...r.screenshotOptions,viewportOnly:!0,dpr:1});if(y){let w=await createImageBitmap(y);try{let k=document.createElement("canvas");k.width=w.width,k.height=w.height;let D=k.getContext("2d");D.drawImage(w,0,0);let I={...u,text:`Focus: ${l.textContent||l.subjectLabel||l.tagName}`.slice(0,100),points:[{x:Math.max(4,p.left),y:window.scrollY+Math.max(24,p.top-8)}]};ku(D,[I],window.scrollY,1,new Map([[u.id,{x:p.left,y:p.top+window.scrollY,width:p.width,height:p.height}]]));let O=await new Promise(R=>k.toBlob(R,"image/png"));O&&g.push({kind:"annotated-viewport",mimeType:O.type,data:await Ns(O)})}finally{w.close()}if(!a?.crop){let k=await createImageBitmap(y);try{let D=Math.max(0,p.left),I=Math.max(0,p.top),O=Math.min(window.innerWidth,p.right)-D,R=Math.min(window.innerHeight,p.bottom)-I;if(O>0&&R>0){let F=document.createElement("canvas");F.width=Math.ceil(O),F.height=Math.ceil(R);let Q=k.width/window.innerWidth,N=k.height/window.innerHeight;F.getContext("2d").drawImage(k,D*Q,I*N,O*Q,R*N,0,0,O,R);let K=await new Promise(q=>F.toBlob(q,"image/png"));K&&g.push({kind:"element",mimeType:K.type,data:await Ns(K)})}}finally{k.close()}}}a?.crop&&g.push({kind:"subject",mimeType:a.crop.type,data:await Ns(a.crop)})}return!e.isConnected||location.href!==i?{status:"target_unavailable"}:{status:"ok",targetKey:t.key,focusCapturedAt:t.capturedAt,capturedAt:o,feedback:m,images:g,warning:a?.warning,evidenceTime:"Live inspection of the referenced target, not a historical screenshot of the utterance.",actionHistory:c.length===1?"Existing recorded episode; inspection did not submit or modify it.":c.length>1?"Multiple matching episodes; none selected automatically.":"No unambiguous recorded episode for this target."}}function my(e,t,n,r=8*1024*1024){let o=d=>JSON.stringify({id:e,clientId:t,result:d}),i=d=>new TextEncoder().encode(d).length<=r,a=o(n);if(i(a))return a;let l=Array.isArray(n.images)?n.images:[],s=[l.filter(d=>d.kind==="annotated-viewport"),l.filter(d=>d.kind!=="annotated-viewport"),[]];for(let d of s){let c=o({...n,images:d,visualEvidence:{status:"partial",reason:"response_size_limit",omitted:l.filter(p=>!d.includes(p)).map(p=>p.kind)}});if(i(c))return c}return o({status:"context_too_large",targetKey:n.targetKey,images:[],warning:"Context exceeds the response limit even without images."})}function gy(e,t){let n=e.filter(i=>(!t.kind||i.kind===t.kind)&&(!t.entryId||i.id===t.entryId)&&(!t.pathname||i.pathname===t.pathname)),r=Number.isInteger(t.limit)?Math.min(50,Math.max(1,t.limit)):20,o=Number.isInteger(t.offset)?Math.max(0,t.offset):0;return{entries:n.slice(o,o+r).map(({details:i,...a})=>t.entryId?{...a,details:i}:a),total:n.length,nextOffset:o+r<n.length?o+r:null}}function Cu(e,t,n,r=!1){if(!e||!t)return null;let o=f=>{let m=f.getBoundingClientRect(),g=zm(f),y=w=>w.width>0&&w.height>0&&w.bottom>0&&w.right>0&&w.top<innerHeight&&w.left<innerWidth;return f.isConnected&&m.width>0&&m.height>0&&(r||y(m)||!!g&&y(g))&&!ya(f,'[data-popmelt-private], [aria-hidden="true"]')},i=f=>{try{let m=f?document.querySelectorAll(f):[];return m.length===1?m[0]:null}catch{return null}};if(t.startsWith("thread:")){let f=t.slice(7),m=[...document.querySelectorAll("[data-popmelt-thread-id]")].filter(w=>w.getAttribute("data-popmelt-thread-id")===f&&o(w));if(m.length===1)return m[0].querySelector("[data-popmelt-thread-header]");let g=e.annotations.filter(w=>w.threadId===f&&(!w.pathname||w.pathname===location.pathname)),y=new Set(g.map(w=>w.target?n.resolve(w.target)?.element??null:nl(w.linkedSelector,w.elements?.[0])).filter(w=>!!w&&o(w)));return y.size===1?[...y][0]:null}let a=Au(e,{entryId:t});if(!("entries"in a)||a.entries.length!==1)return null;let l=a.entries[0];if(l.pathname&&l.pathname!==location.pathname)return null;let s=e.annotations.find(f=>`draft:${f.id}`===t);if(s?.target){let f=n.resolve(s.target)?.element;return f&&o(f)?f:null}let d="details"in l?l.details:void 0,c=[...e.styleModifications,...e.textModifications].find(f=>f.selector===l.selector),p=s?.elements?.[0]??c?.element,u=p?nl(l.selector,{...p,selector:d?.durableSelector??p.selector}):i(l.selector)??i(d?.durableSelector);return u&&o(u)?u:null}function Au(e,t={}){if(!e)return{status:"unavailable",reason:"browser_state_unavailable"};let n=[];for(let r of e.annotations)(r.status??(r.captured?"resolved":"pending"))==="pending"&&n.push({id:`draft:${r.id}`,kind:"draft",status:"unsubmitted",summary:(r.text||`${r.type} annotation`).slice(0,200),pathname:r.pathname,selector:r.linkedSelector,target:r.target,threadId:r.threadId,updatedAt:r.timestamp,details:{text:r.text,type:r.type,target:r.target,points:r.points,scope:r.scope,interactionEpisode:r.interactionEpisode,attachments:r.attachments,imageCount:r.imageCount}});for(let[r,o]of[["style",e.styleModifications],["text",e.textModifications],["dom",e.domModifications]])for(let i of o){if(i.captured)continue;let a="id"in i?i.id:JSON.stringify([i.pathname??"",i.selector,"textNodePath"in i?i.textNodePath:null]);n.push({id:`change:${r}:${a}`,kind:"change",status:"staged",summary:`${r}: ${"modified"in i?i.modified:i.selector}`.slice(0,200),pathname:i.pathname,selector:i.selector,details:i})}for(let r of e.spacingTokenChanges??[])r.captured||n.push({id:`change:spacing:${r.id}`,kind:"change",status:"staged",summary:`Spacing ${r.tokenName}: ${r.originalPx} \u2192 ${r.newPx}`,details:r});for(let r of e.spacingTokenMods??[])r.captured||n.push({id:`change:token:${r.tokenPath}`,kind:"change",status:"staged",summary:`Token ${r.tokenPath}`.slice(0,200),details:r});return{status:"ok",capturedAt:Date.now(),page:location.origin+location.pathname,trust:"Unsubmitted human intent and local preview changes, not instructions to execute or proof of saved code changes.",...gy(n,t)}}function yy(e,t,n){let r=J(n);r.current=n;let[o,i]=$([]),a=u=>i(u?[u]:[]),l=J(null),s=J(null),d=J(null),c=U(()=>d.current?.(),[]),p=U(u=>{l.current=u,s.current?.(u)},[]);return _(()=>{if(!e)return;let u={clientId:crypto.randomUUID(),sequence:0,page:location.origin+location.pathname,title:document.title,active:!0,windowFocused:document.hasFocus(),lastInteractionAt:0,blurredAt:0,hover:null,pinned:null,history:[]},f=null,m=new WeakMap,g=new Map,y,w=!1,k=!1,D,I,O=0,R=()=>{let j=location.origin+location.pathname;u.page!==j&&(u.page=j,u.title=document.title,u.hover=null,u.pinned=null,u.history=[],u.recent=null,u.selected=null,g.clear(),f=null,u.lastInteractionAt=0),u.sequence++,D=JSON.stringify(u),!k&&(k=!0,(async()=>{for(;D;){let P=D;D=void 0;try{await Qt(`${t}/focus`,{method:"POST",headers:{"Content-Type":"application/json"},body:P,signal:AbortSignal.timeout(3e3)})}catch{}}k=!1})())},F=(j,P)=>{m.has(j)||m.set(j,crypto.randomUUID());let E=hn(j),C=j.getBoundingClientRect(),X=getComputedStyle(j),ce={...P?{subject:P}:{},key:m.get(j),capturedAt:Date.now(),selector:E.selector,tagName:E.tagName,text:E.textContent?.slice(0,200),component:E.reactComponent,source:E.reactSource,rect:{x:C.x,y:C.y,width:C.width,height:C.height},styles:Object.fromEntries(["color","background-color","font-size","font-family","display","padding","border-radius"].map(ue=>[ue,X.getPropertyValue(ue)]))};if(g.set(ce.key,{element:j,target:ce}),g.size>32){let ue=[...g.keys()].find(Y=>Y!==u.pinned?.key);ue&&g.delete(ue)}return ce},Q=j=>{let P=j?.element??null,E=j?.selection==="selected",C=u.selected??u.hover;P===f&&!!u.selected===E&&C?.subject?.key===j?.subject?.key||(f=P,clearTimeout(y),y=setTimeout(()=>{if(w)return;let X=P?.isConnected&&!ya(P,"input, textarea, select, [contenteditable], [data-popmelt-private], [data-popmelt-canvas-block], [data-devtools]")?F(P,j?.subject):null;u.selected=E?X:null,u.hover=E?null:X,E&&(u.recent=null),u.hover&&(u.history=[...u.history,u.hover].slice(-8)),u.windowFocused&&(u.recent=null),R()},P&&!E?120:0))};s.current=Q,d.current=()=>{w||document.visibilityState!=="visible"||(u.lastInteractionAt=Date.now(),u.windowFocused=document.hasFocus(),!I&&(I=setTimeout(()=>{I=void 0,O=Date.now(),R()},Math.max(0,250-(Date.now()-O)))))},Q(l.current);let N=()=>{u.windowFocused=document.hasFocus(),u.blurredAt=u.windowFocused?0:Date.now(),u.recent=u.windowFocused?null:u.hover,R()},K=()=>{u.active=document.visibilityState==="visible",u.active?Q(l.current):(clearTimeout(y),u.hover=null,u.history=[],u.recent=null,u.selected=null,g.clear(),f=null,u.lastInteractionAt=0),R()};document.addEventListener("visibilitychange",K),window.addEventListener("focus",N),window.addEventListener("blur",N);let q=setInterval(R,1e4),S=!1,ee,G=new Set,H=setInterval(async()=>{if(!(w||S||document.visibilityState!=="visible")){S=!0;try{let j=await Qt(`${t}/focus/requests?clientId=${u.clientId}`,{signal:AbortSignal.timeout(3e3)});if(!j.ok)return;let P=await j.json();for(let E of P){if(G.has(E.id)||w)continue;G.add(E.id),G.size>64&&G.delete(G.values().next().value);let C=g.get(E.targetKey),X={status:"target_unavailable"};if(E.workspace){X=Au(r.current.state,E.workspace);let ce=E.workspace.entryId?[E.workspace.entryId]:"entries"in X?X.entries.map(Y=>Y.id):[],ue=[...new Set(ce.map(Y=>Cu(r.current.state,Y,r.current.registry)).filter(Y=>!!Y))];i(ue);for(let Y of ue)Y instanceof HTMLElement&&Y.hasAttribute("data-popmelt-thread-header")&&jf(Y,Y);if(ue.length&&(clearTimeout(ee),ee=setTimeout(()=>a(null),Math.max(0,E.expiresAt-Date.now())),await new Promise(Y=>requestAnimationFrame(()=>setTimeout(Y,0))),w))break;X.attention=E.workspace.entryId?ue.length?"shown":Cu(r.current.state,E.workspace.entryId,r.current.registry,!0)?"target_offscreen":"target_missing_hidden_or_ambiguous":{shown:ue.length,requested:ce.length}}else if(C?.element.isConnected&&u.page===location.origin+location.pathname&&!ya(C.element,"[data-popmelt-private], input, textarea, select, [contenteditable]"))try{if(a(C.element),clearTimeout(ee),ee=setTimeout(()=>a(null),Math.max(0,E.expiresAt-Date.now())),await new Promise(ce=>requestAnimationFrame(()=>setTimeout(ce,0))),w)break;X=E.attentionOnly?{status:"ok",attention:"shown"}:await fy(C.element,C.target,E.screenshot,r.current)}catch{X={status:"capture_failed"}}if(w||document.visibilityState!=="visible")break;(await Qt(`${t}/focus/response`,{method:"POST",headers:{"Content-Type":"application/json"},body:my(E.id,u.clientId,X),signal:AbortSignal.timeout(3e3)})).ok||await Qt(`${t}/focus/response`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:E.id,clientId:u.clientId,result:{status:"response_rejected"}}),signal:AbortSignal.timeout(3e3)}),clearTimeout(ee),a(null)}}catch{}finally{clearTimeout(ee),w||a(null),S=!1}}},1e3);return K(),()=>{w=!0,clearTimeout(y),clearTimeout(I),clearInterval(q),clearInterval(H),clearTimeout(ee),a(null),document.removeEventListener("visibilitychange",K),window.removeEventListener("focus",N),window.removeEventListener("blur",N),s.current=null,d.current=null,g.clear(),u.hover=null,u.selected=null,u.history=[],u.active=!1,R()}},[e,t]),{onCanvasFocusChange:p,onCanvasActivity:c,inspectingElement:e?o[0]??null:null,inspectingElements:e?o:[]}}function vy(e,t,n,r){let[o,i]=$(null),[a,l]=$(null),s=J(0),d=J(Promise.resolve(!0)),c=U(()=>{s.current=Date.now()},[]),p=U(f=>{s.current=Date.now(),i(f)},[]),u=U(f=>l(m=>JSON.stringify(m)===JSON.stringify(f)?m:f),[]);return _(()=>{if(!e||!r)return;let f=o?.element;if(f&&ya(f,"[data-private], [data-sensitive]"))return;let m=a?.targets??(f?[{selector:o?.subject?tu(o.subject):yo(f),...o?.subject?{subject:o.subject}:{}}]:[]);if(!m.length)return;let g={pathname:window.location.pathname,ownerId:t,color:n,targets:m,activity:"looking",...a?{threadId:a.threadId}:{}},y=!1,w=null,k=!1,D=(N,K,q)=>{let S=d.current.then(()=>N!=="finish"&&(y||w!==K)?!1:e(N,K,q));return d.current=S.catch(()=>!1),S},I=()=>{let N=w;w=null,N&&D("finish",N).catch(()=>{})},O=async()=>{if(y||k)return;if(!(document.visibilityState!=="hidden"&&document.hasFocus()&&g.pathname===window.location.pathname&&(a||f?.isConnected&&(o?.selection==="selected"||Date.now()-s.current<5e3)))){I();return}k=!0;let N=w?"renew":"start",K=w??crypto.randomUUID();w=K;try{!await D(N,K,g)&&w===K&&(w=null),y&&I()}catch{w===K&&(w=null)}finally{k=!1}},R=setTimeout(O,120),F=setInterval(O,1e3),Q=()=>I();return window.addEventListener("blur",Q),window.addEventListener("focus",O),document.addEventListener("visibilitychange",O),()=>{y=!0,clearTimeout(R),clearInterval(F),I(),window.removeEventListener("blur",Q),window.removeEventListener("focus",O),document.removeEventListener("visibilitychange",O)}},[e,r,t,n,o,a]),{onFocus:p,onActivity:c,onThread:u}}var hl="data-popmelt-preview-target",Mu="script,iframe,object,embed,link,meta,base,style,template";function by({root:e,targets:t,revision:n,width:r,height:o,cleanClone:i}){let a=e.cloneNode(!0),l=[e,...e.querySelectorAll("*")],s=[a,...a.querySelectorAll("*")],d=new Set,c=new Map;for(let[u,f]of t){if(!u||!l.includes(f))throw new Error("Target is outside the preview root");if(c.has(f))throw new Error("Target has multiple identities");c.set(f,u)}l.forEach((u,f)=>{let m=s[f];(u.shadowRoot||u.matches("canvas,video"))&&d.add("Shadow DOM, canvas and video state are not mirrored");for(let y of[...m.attributes])(/^on/i.test(y.name)||["src","srcset","href","xlink:href","action","formaction","autofocus","contenteditable",hl].includes(y.name))&&m.removeAttribute(y.name);u instanceof HTMLInputElement&&(u.type==="password"||u.type==="file"?m.removeAttribute("value"):m.setAttribute("value",u.value),m.toggleAttribute("checked",u.checked)),u instanceof HTMLTextAreaElement&&(m.textContent=u.value),u instanceof HTMLOptionElement&&m.toggleAttribute("selected",u.selected);let g=c.get(u);g&&m.setAttribute(hl,g),i?.(u,m)});for(let u of a.querySelectorAll(Mu))u.remove();for(let u of a.querySelectorAll("[data-devtools], [data-popmelt-peer-surface], [data-popmelt-root], popmelt-root"))u.remove();if(a.matches(Mu))throw new Error("Unsupported preview root");let p="";for(let u of e.ownerDocument.styleSheets)if(!(u.ownerNode instanceof Element&&u.ownerNode.closest("[data-devtools], [data-popmelt-top-layer-host]")))try{p+=[...u.cssRules].map(f=>f.cssText).join(`
|
|
6
|
+
`)+`
|
|
7
|
+
`}catch{d.add("An inaccessible stylesheet was omitted")}return d.add("Static snapshot: no scripts, external assets, event handlers or application runtime"),{revision:n,html:e.tagName==="BODY"?a.innerHTML:a.outerHTML,...e.tagName==="BODY"?{bodyAttributes:Object.fromEntries([...a.attributes].map(u=>[u.name,u.value]))}:{},css:p,width:r,height:o,warnings:[...d]}}function Ru(e,t){let n=[...e.querySelectorAll(`[${hl}]`)].filter(r=>r.getAttribute(hl)===t);return n.length===1?n[0]:null}var xy=class{constructor(e){this.generation=0,this.cancelPending=null,this.current=null,this.disposed=!1,this.frame=e.ownerDocument.createElement("iframe"),this.frame.setAttribute("sandbox","allow-same-origin"),this.frame.title="Peer plane preview",this.frame.style.cssText="border:0;display:block;pointer-events:none;",this.frame.tabIndex=-1,e.append(this.frame)}async render(e,t,n){if(this.disposed)throw new Error("Preview surface was disposed");this.cancelPending?.();let r=++this.generation;this.current=null,this.frame.width=String(e.width),this.frame.height=String(e.height);let o=this.frame.ownerDocument.implementation.createHTMLDocument("Peer preview"),i=o.createElement("meta");i.httpEquiv="Content-Security-Policy",i.content="default-src 'none'; style-src 'unsafe-inline'; form-action 'none'; base-uri 'none'; script-src 'none'",o.head.prepend(i);let a=o.createElement("style");a.textContent=e.css.replace(/<\/style/gi,"<\\/style"),o.head.append(a),o.body.innerHTML=e.html;for(let[s,d]of Object.entries(e.bodyAttributes??{}))o.body.setAttribute(s,d);let l=o.createElement("style");return l.textContent="*,*::before,*::after{animation:none!important;transition:none!important;caret-color:transparent!important}",o.head.append(l),o.documentElement.dataset.previewGeneration=String(r),new Promise(s=>{let d=f=>{clearTimeout(u),this.frame.removeEventListener("load",p),this.cancelPending===c&&(this.cancelPending=null),s(f)},c=()=>d(!1),p=()=>{if(r!==this.generation||this.frame.contentDocument?.documentElement.dataset.previewGeneration!==String(r))return;let f=this.frame.contentDocument;n?.(f);for(let m of t.artifacts)m.kind==="style"&&Ru(f,m.targetKey)?.style.setProperty(m.property,m.value,"important");this.current={baseline:e,plane:{...t}},d(!0)},u=setTimeout(c,5e3);this.cancelPending=c,this.frame.addEventListener("load",p),queueMicrotask(()=>{!this.disposed&&r===this.generation&&(this.frame.srcdoc="<!doctype html>"+o.documentElement.outerHTML)})})}inspect(e,t){let n=this.current,r=this.frame.contentDocument;if(!n||!r)return null;let o=Ru(r,e);if(!o)return null;let i=this.frame.contentWindow.getComputedStyle(o),a=o.getBoundingClientRect();return{planeId:n.plane.id,planeRevision:n.plane.revision,sourceRevision:n.baseline.revision,targetKey:e,styles:Object.fromEntries(t.map(l=>[l,i.getPropertyValue(l)])),rect:{x:a.x,y:a.y,width:a.width,height:a.height}}}dispose(){this.disposed=!0,++this.generation,this.cancelPending?.(),this.current=null,this.frame.remove()}};function wy(e,t){return{id:e,ownerId:t,revision:0,artifacts:[],undo:[],redo:[],attention:null}}function Fs(e){return tl(e).flatMap(t=>t==="color"?[...Vc]:[t])}function Sy(e,t){if(e===void 0)return{families:Ri.map(n=>({family:n,label:Ss(n)}))};if(!Ri.includes(e))throw new Error("Unknown omnidial family");if(!t)return{family:e,subproperties:Fs(e)};if(!Fs(e).includes(t))throw new Error("Unknown omnidial subproperty");return{family:e,subproperty:t,...e==="transform"&&t==="translate"?{composedToken:"translate-x-<xStep>-y-<yStep>",axisSteps:Qo(e,t)}:{},tokens:Qo(e,t).map(n=>({token:Za(e,n,t),value:Mi(e,n,t)}))}}function Iy(e,t){if(t!==void 0&&!Ri.includes(t))throw new Error("Unknown omnidial family");let n=/^translate-x-(-?\d+)-y-(-?\d+)$/.exec(e);if(n&&(!t||t==="transform")){let o=Qo("transform","translate"),i=o.find(l=>String(l)===n[1]),a=o.find(l=>String(l)===n[2]);if(i!==void 0&&a!==void 0)return{family:"transform",subproperty:"translate",step:i,axisSteps:{x:i,y:a}}}let r=[];for(let o of t?[t]:Ri)for(let i of Fs(o))for(let a of Qo(o,i))Za(o,a,i)===e&&r.push({family:o,subproperty:i,step:a});if(r.length>1)throw new Error("Ambiguous omnidial token; include its family (for example stack or grid)");if(!r.length)throw new Error("Unknown omnidial token; discover available tokens or use an explicit custom property/value");return r[0]}function $u(e,t,n,r){let o=e.ownerDocument.defaultView.getComputedStyle(e),i=Mc(t,r),a=Mi(t,n,r),l=$c(t),s=Pc(t,r,n),d=t==="border"&&!Go(t,r)&&typeof n=="number"&&n>0?Lc(r):null,c={family:t,subproperty:Uc(t,r),step:n},p=[{property:i,original:o.getPropertyValue(i).trim()||"0px",modified:a,token:Za(t,n,r),sticker:c}];l&&p.unshift({property:"display",original:o.getPropertyValue("display").trim()||"block",modified:l,token:l,sticker:c});for(let u of s)p.push({property:u.property,original:o.getPropertyValue(u.property).trim(),modified:u.value,token:u.token,sticker:c});if(d){let u=o.getPropertyValue(d).trim();(!u||u==="none")&&p.push({property:d,original:u||"none",modified:"solid",token:Za(t,n,r),sticker:c})}return{alreadyApplied:Rc(t,n,r,u=>o.getPropertyValue(u)),changes:p}}function Pu(e,t,n){let r=e.ownerDocument.defaultView.getComputedStyle(e),o="translate",i=`${Number(t)*4}px ${Number(n)*4}px`,a={family:"transform",subproperty:"translate",step:t,axisSteps:{x:t,y:n}};return{alreadyApplied:r.getPropertyValue(o).trim()===i,changes:[{property:o,original:r.getPropertyValue(o).trim()||"none",modified:i,token:`translate-x-${t}-y-${n}`,sticker:a}]}}function ky(e,t){for(let n of t.changes)it(e,n.property,n.modified)}var Ey=new Set(["text","transform","opacity"]),Ty=new Set(["padding","margin","border","radius","color"]);function Cy(e){return e instanceof SVGSVGElement&&!(e.parentElement instanceof SVGElement)}function Ay(e){return e!=="text-align"}function fl(e,t,n){return Sr(e)?e instanceof HTMLElement?!0:t==="text"&&!Ay(n)?!1:Ey.has(t)||Cy(e)&&Ty.has(t):!1}function xa(e){return[...new Set([...e?.annotations.flatMap(t=>t.linkedSelector?[t.linkedSelector]:[])??[],...e?.styleModifications.map(t=>t.selector)??[],...e?.textModifications.map(t=>t.selector)??[]])]}function My(e,t){return Object.keys(t).filter(n=>e[n]!==void 0&&e[n]!==t[n])}function Lu(e,t){return Object.keys(e).length===Object.keys(t).length&&Object.keys(t).every(n=>e[n]===t[n])}function _s(e,t,n,r){let o={...e};for(let i of r){if(n[i]===void 0){delete o[i];continue}o[i]=t[i]??e[i]??n[i]}return o}function Ry(e){let t=e.ownerDocument.defaultView.getComputedStyle(e),n=Array.from(t).filter(i=>!i.startsWith("--")).map(i=>`${i}:${t.getPropertyValue(i)}`).join(";"),r=e.outerHTML+n,o=2166136261;for(let i=0;i<r.length;i++)o=Math.imul(o^r.charCodeAt(i),16777619);return`target-v2:${(o>>>0).toString(16)}`}var or=()=>location.origin+location.pathname;function ml(e){let t=document.querySelectorAll(e),n=t[0];if(t.length!==1||!(n instanceof HTMLElement||n instanceof SVGElement)||n.closest("[data-devtools], [data-popmelt-peer-surface], [data-popmelt-canvas-block]"))throw new Error("Target must resolve to exactly one app element");if(n.matches("input,textarea,select,[contenteditable],script,style")||n.closest("[data-private], [data-sensitive]"))throw new Error("Private/editable controls are outside the peer preview");return n}var ju=class{constructor(){this.sources={},this.changed=[],this.container=document.createElement("div"),this.container.dataset.popmeltPeerSurface="",this.container.setAttribute("aria-hidden","true"),this.container.style.cssText="position:fixed;left:-100000px;top:0;pointer-events:none;",document.body.append(this.container),this.surface=new xy(this.container)}async render(e,t,n,r=!1){if(t.domModifications.length||t.spacingTokenChanges.length)throw new Error("Independent previews do not yet support staged structure or spacing-token edits; your draft is preserved");let o=e.state??rl,i=new Set([...n?[n]:[],...xa(o)]),a=new Map;for(let c of i)a.set(c,ml(c));let l=new Map;for(let c of t.textModifications){let p=document.querySelector(c.selector);p&&l.set(p,[...l.get(p)??[],c])}let s=by({root:document.body,targets:a,revision:or(),width:innerWidth,height:innerHeight,cleanClone:(c,p)=>{if(!r){ig(c,p);for(let u of l.get(c)??[]){let f=p;for(let m of u.textNodePath)f=f?.childNodes[m];f?.nodeType===Node.TEXT_NODE&&(f.nodeValue=u.original)}}}}),d=wy(e.identity.id,e.identity.id);if(d.revision=e.revision,r||(d.artifacts=o.styleModifications.flatMap(c=>c.changes.map(p=>({kind:"style",id:c.selector+p.property,targetKey:c.selector,property:p.property,value:p.modified})))),!await this.surface.render(s,d,c=>{this.sources=Object.fromEntries([...i].map(p=>[p,Ry(c.querySelector(`[data-popmelt-preview-target="${CSS.escape(p)}"]`))])),this.changed=My(e.basis??{},this.sources)}))throw new Error("Preview superseded or unavailable");return this.surface.frame.contentWindow?.scrollTo(scrollX,scrollY),s.warnings}async execute(e,t){let{action:n}=e,r=structuredClone(e.peer);if(n.type==="prepare-send"){if(!xa(r.state).length)throw new Error("There are no peer changes to send");if(await this.render(r,t),!e.observedSources||Object.keys(this.sources).some(s=>e.observedSources[s]!==this.sources[s]))throw new Error("Source changed since the last preview. Take another look, then send again.");return this.changed.length&&r.revision++,r.basis={...this.sources},delete r.pendingRevision,{peer:r,sources:this.sources}}if(n.type==="check-source"){let s={...r,state:{...structuredClone(rl),annotations:Object.keys(n.sources).map((d,c)=>({id:`source-${c}`,type:"text",text:"",points:[],strokeWidth:1,color:r.color,timestamp:0,linkedSelector:d}))}};if(await this.render(s,t),!Lu(n.sources,this.sources))throw new Error("Source changed since Send. Preview the current source and send again.");return{peer:r,evidence:{status:"source-current"}}}if(n.type==="tokens")return{peer:r,evidence:Sy(n.family,n.subproperty)};let o=r.state??{...structuredClone(rl),isAnnotating:!0,activeColor:r.color},i=o,a,l=s=>{i=Dm(i,s)};if(n.type==="send")throw new Error("Send requires the implementation bridge");if(n.type==="rebase")await this.render(r,t),r.basis={...this.sources},r.revision++,delete r.pendingRevision,a={status:"rebased",note:"Draft preserved against current source; Send requires a new approval if in Suggest."};else if(n.type==="undo"||n.type==="redo"){l({type:n.type==="undo"?"UNDO":"REDO"}),await this.render({...r,state:i},t);let s=[...new Set([...xa(o),...xa(i)])].filter(d=>{let c=p=>JSON.stringify([p.annotations.filter(u=>u.linkedSelector===d),p.styleModifications.filter(u=>u.selector===d)]);return c(o)!==c(i)});r.basis=_s(r.basis??{},e.observedSources??{},this.sources,s)}else if(n.type==="attention"&&!n.selector)r.attention=null;else if(n.type==="clear"){let s=n.kind!=="style"&&o.annotations.some(c=>c.linkedSelector===n.selector),d=n.kind!=="comment"&&o.styleModifications.some(c=>c.selector===n.selector);if(!s&&!d)return{peer:r,evidence:{status:"nothing-to-clear"}};i={...o,annotations:n.kind==="style"?o.annotations:o.annotations.filter(c=>c.linkedSelector!==n.selector),styleModifications:n.kind==="comment"?o.styleModifications:o.styleModifications.filter(c=>c.selector!==n.selector),undoStack:[...o.undoStack,{annotations:o.annotations,styleModifications:o.styleModifications,textModifications:o.textModifications,domModifications:o.domModifications,spacingTokenChanges:o.spacingTokenChanges,spacingTokenMods:o.spacingTokenMods}],redoStack:[]},await this.render({...r,state:i},t),r.basis=_s(r.basis??{},e.observedSources??{},this.sources,[n.selector])}else if("selector"in n&&n.selector){let s=ml(n.selector),d=hn(s),c=n.selector;if(n.type==="inspect"){let p=await this.render(r,t,c,n.plane==="host");a={...this.surface.inspect(c,n.properties??[]),element:d,warnings:p,view:n.plane??"own",url:or(),changedSourceTargets:n.plane==="host"?void 0:this.changed}}else if(n.type==="style")if("token"in n){let p=Iy(n.token,n.family);if(!fl(s,p.family,p.subproperty))throw new Error("This omnidial token does not support the target");await this.render(r,t,c);let u=this.surface.frame.contentDocument?.querySelector(c);if(!u)throw new Error("Could not inspect original style");let f=p.axisSteps?Pu(u,p.axisSteps.x,p.axisSteps.y):$u(u,p.family,p.step,p.subproperty);f.alreadyApplied||l({type:"MODIFY_STYLES_BATCH",payload:{selector:c,element:{...d,selector:c},changes:f.changes}}),a={token:n.token,selection:p,alreadyApplied:f.alreadyApplied}}else{if(!CSS.supports(n.property,n.value))throw new Error("Unsupported CSS property/value");await this.render(r,t,c);let p=this.surface.inspect(c,[n.property])?.styles[n.property];if(p===void 0)throw new Error("Could not inspect original style");l({type:"MODIFY_STYLES_BATCH",payload:{selector:c,element:{...d,selector:c},changes:[{property:n.property,original:p,modified:n.value}]}})}else if(n.type==="comment"){await this.render(r,t,c);let p=s.getBoundingClientRect();l({type:"ADD_TEXT",payload:{id:`peer-note-${e.id}`,point:{x:p.x+scrollX,y:p.y+scrollY-26},text:n.text,linkedSelector:c,elements:[{...d,selector:c}]}})}r.attention=null,(n.type==="comment"||n.type==="style")&&(r.basis=_s(r.basis??{},e.observedSources??{},this.sources,[c]))}if(i!==o){if(i.annotations.length+i.styleModifications.length>100)throw new Error("Peer draft is full; submit or undo before adding more");i={...i,undoStack:i.undoStack.slice(-50),redoStack:i.redoStack.slice(-50)},r.state=i,r.revision++,r.url=or(),delete r.pendingRevision}return{peer:r,evidence:a,...["inspect","style","comment","clear","undo","redo","rebase"].includes(n.type)&&!(n.type==="inspect"&&n.plane==="host")?{sources:this.sources}:{}}}dispose(){this.surface.dispose(),this.container.remove()}};async function $y(e,t,n){let r=!0,o,i=new Set,a=async c=>{let p=new AbortController;i.add(p);let u=setTimeout(()=>p.abort(),1500);try{return await e(c,p.signal)}catch{return!1}finally{clearTimeout(u),i.delete(p)}},l=()=>{r=!1,clearTimeout(o);for(let c of i)c.abort()},s=()=>{l(),a("finish")},d=async()=>{if(!r)return;let c=await a("renew");r&&c&&(o=setTimeout(()=>{d()},1e3))};n.addEventListener("abort",s,{once:!0});try{if(n.aborted)throw new Error("Canvas disconnected before action");let c=await a("start");if(n.aborted)throw new Error("Canvas disconnected before action");return r&&c&&(o=setTimeout(()=>{d()},1e3)),await t()}finally{l(),n.removeEventListener("abort",s),await a("finish")}}function Py(e){let t=`popmelt-peer-seen:${e}`,[n,r]=$({key:"",revisions:{}});return _(()=>{let o={};try{let i=JSON.parse(localStorage.getItem(t)??"{}");i&&typeof i=="object"&&!Array.isArray(i)&&(o=Object.fromEntries(Object.entries(i).filter(([,a])=>Number.isSafeInteger(a)&&a>=0)))}catch{}r({key:t,revisions:o})},[t]),{markSeen:U((o,i)=>{r(a=>{if(a.key!==t||(a.revisions[o]??0)>=i)return a;let l={key:t,revisions:{...a.revisions,[o]:i}};try{localStorage.setItem(t,JSON.stringify(l.revisions))}catch{}return l})},[t]),isUnseen:(o,i)=>n.key===t&&i>(n.revisions[o]??0)}}function Ly(e,t){let n,r=l=>(l instanceof Element?l:l.parentElement)?.closest("[data-devtools], [data-popmelt-peer-surface], [data-popmelt-root], popmelt-root"),o=()=>{n===void 0&&(n=setTimeout(()=>{n=void 0,t()},400))},i=new MutationObserver(l=>{document.hidden||!e.length||l.some(s=>{if(r(s.target)||s.type==="childList"&&[...s.addedNodes,...s.removedNodes].every(c=>r(c)))return!1;let d=s.target instanceof Element?s.target:s.target.parentElement;return d?.closest("style,head")?!0:e.some(c=>{let p=document.querySelector(c);return!p||p.contains(s.target)||d?.contains(p)})})&&o()});i.observe(document.documentElement,{subtree:!0,attributes:!0,childList:!0,characterData:!0}),window.addEventListener("resize",o);let a=()=>{document.hidden||o()};return document.addEventListener("visibilitychange",a),()=>{i.disconnect(),clearTimeout(n),window.removeEventListener("resize",o),document.removeEventListener("visibilitychange",a)}}function zu(e){if(!e)return 0;let t=fm(e.annotations);return pc({annotations:e.annotations.filter(n=>!n.captured&&!t.has(n)),styleModifications:e.styleModifications.filter(n=>!n.captured),textModifications:e.textModifications.filter(n=>!n.captured)}).count}function jy(e,t,n,r,o){let[i,a]=$([]),[l,s]=$([]),d=zf(l,e&&r.isAnnotating),c=Df(e&&r.isAnnotating),{viewedId:p,isPeeking:u}=c,[f,m]=$(),[g,y]=$(),[w,k]=$([]),D=J(null),{markSeen:I,isUnseen:O}=Py(n),R=we(()=>new Map(i.map(W=>[W.identity.id,zu(W.state)])),[i]),{annotations:F,styleModifications:Q,textModifications:N}=r,K=we(()=>zu({annotations:F,styleModifications:Q,textModifications:N}),[F,Q,N]),[q,S]=$(null),ee=J(null),G=J({human:r,settings:o});G.current={human:r,settings:o};let H=J({clientId:crypto.randomUUID()}),j=J(async()=>{throw new Error("Canvas is disconnected")}),P=e?i.find(W=>W.identity.id===p):void 0,E=i.find(W=>W.identity.id===c.selectedId)?.state,C=we(()=>Hf(E),[E]);_(()=>{if(!e||!n)return;H.current.token||(H.current={clientId:crypto.randomUUID()});let W=!1,fe,re=-1,pe=-1,ye=new AbortController,Be="",Ee=!1,z=new ju,Ne=new Map,$e=Ae=>{W||typeof Ae.presenceVersion!="number"||Ae.presenceVersion<=pe||!Array.isArray(Ae.presence)||(pe=Ae.presenceVersion,s(Ae.presence))},Xe=async(Ae,se={},Fe=AbortSignal.any([ye.signal,AbortSignal.timeout(5e4)]))=>{let Ke=H.current.token,xt=await Qt(`${t}/peers/${Ae}`,{method:"POST",headers:{"Content-Type":"application/json","X-Popmelt-Project-Id":n},body:JSON.stringify({...H.current,...se}),signal:Fe}),et=await xt.json();if(Ae!=="host"&&Ke!==H.current.token)throw new Error("Canvas session changed during request");if(!xt.ok||et.error)throw new Error(et.error??`Peer request failed (${xt.status})`);return et};j.current=Xe;async function Ye(Ae){if(Ae.url&&Ae.url!==or())throw new Error("Canvas navigated before the operation could run");if(Ae.action.type!=="send"){let lt=Hm(Ae.action);return lt?(ml(lt.selector),$y(async(Ht,nn)=>{let cn=await Xe("activity",{id:Ae.id,phase:Ht},nn);return $e(cn),cn.accepted===!0},()=>z.execute(Ae,G.current.human),ye.signal)):z.execute(Ae,G.current.human)}if(!Ae.grant)throw new Error("No host-approved Send grant");let se=structuredClone(Ae.peer);if(se.url!==or())throw new Error("Return to the proposal\u2019s page before sending");let Fe=se.state;if(!Fe||!Fe.annotations.length&&!Fe.styleModifications.length)throw new Error("There are no peer changes to send");await z.render(se,G.current.human);let Ke={...z.sources};if(!Ae.observedSources||Object.keys(Ke).some(lt=>Ae.observedSources[lt]!==Ke[lt]))throw new Error("Source changed since the last preview. Take another look, then send again.");let xt=z.surface.frame.contentDocument;if(!xt)throw new Error("Peer preview is unavailable");let[et]=await Zo(xt.body,null,[],{viewportOnly:!0});if(!et)throw new Error("Could not capture the peer preview");if(await z.render(se,G.current.human),!Lu(Ke,z.sources))throw new Error("Source changed while preparing Send. Take another look, then send again.");await Xe("source",{grant:Ae.grant,sources:Ke});let Se=ul(Fe.annotations,Fe.styleModifications,void 0,void 0,Fe.textModifications),{provider:Ue,model:ht,agentSettings:gt}=G.current.settings,nt=await hc(et,JSON.stringify(Se),t,se.color,Ue,ht,void 0,void 0,gt,void 0,void 0,void 0,Ae.grant);return se.state={...structuredClone(rl),isAnnotating:!0,activeColor:se.color},se.revision++,se.basis={},delete se.pendingRevision,se.lastJob={jobId:nt.jobId,threadId:nt.threadId},{peer:se,evidence:{status:"submitted",...nt}}}async function We(){try{if(!H.current.token||Be!==or()){let se=await Xe("host",{url:or()});if(W)return;H.current.token=String(se.token),Be=or()}let Ae=await Xe("poll",{version:re,presenceVersion:pe});if(W)return;$e(Ae),Ae.peers&&(a(Ae.peers),Ee=Ae.peers.length>0,re=Number(Ae.version));for(let se of Ae.requests){let Fe=Ne.get(se.id);if(!Fe){try{Fe=await Ye(se)}catch(Ke){Fe={error:Ke instanceof Error?Ke.message:String(Ke)}}Ne.set(se.id,Fe),Ne.size>100&&Ne.delete(Ne.keys().next().value)}await Xe("response",{id:se.id,result:Fe})}}catch(Ae){!W&&Ae instanceof Error&&Ae.message.includes("Host capability")&&(H.current.token=void 0,re=-1,pe=-1,W||s([]))}finally{W||(fe=setTimeout(()=>{We()},document.hidden||!Ee?2e3:600))}}return We(),()=>{W=!0,ye.abort(),clearTimeout(fe),z.dispose(),a([]),s([]),j.current=async()=>{throw new Error("Canvas is disconnected")}}},[e,t,n]),_(()=>{if(y(void 0),k([]),D.current=null,!P||!r.isAnnotating||!ee.current){S(null);return}let W=new ju;ee.current.append(W.container),S(null),W.container.removeAttribute("aria-hidden"),W.container.style.cssText="position:absolute;inset:0;pointer-events:none;";let fe=!1;P.url&&P.url!==or()&&y("This draft belongs to another page. Return to it to preview.");let re=!1,pe=!1,ye=()=>{if(!fe){if(re){pe=!0;return}re=!0,W.render(P,G.current.human).then(()=>{fe||(y(void 0),k(W.changed),D.current={id:P.identity.id,revision:P.revision,values:{...W.sources}},S(W.surface.frame),I(P.identity.id,P.revision))}).catch(Ne=>{fe||(D.current=null,S(null),y(Ne.message))}).finally(()=>{re=!1,pe&&(pe=!1,ye())})}},Be=!P.url||P.url===or();Be&&ye();let Ee=Be?Ly(xa(P.state),ye):()=>{},z=()=>W.surface.frame.contentWindow?.scrollTo(scrollX,scrollY);return window.addEventListener("scroll",z,{passive:!0}),()=>{fe=!0,Ee(),window.removeEventListener("scroll",z),W.dispose()}},[P,r.isAnnotating,I]);let X=async W=>{try{return await W(),m(void 0),!0}catch(fe){return m(fe instanceof Error?fe.message:String(fe)),!1}},ce=e&&i.length?{peers:[{identity:{id:"host",name:"You",kind:"human",relationship:"host"},permission:"direct",color:r.activeColor,stagedCount:K},...i.map(W=>({...W,stagedCount:R.get(W.identity.id)??0,unseenActivity:O(W.identity.id,W.revision)}))],viewedPeerId:p,selectedPeerId:c.selectedId,onPeek:c.peek,onPeekEnd:c.leave,onPreview:W=>{c.select(W),m(void 0)},onPermissionChange:(W,fe)=>X(()=>j.current("permission",{peerId:W,permission:fe}))}:null,ue=P?.pendingRevision!==void 0?()=>X(()=>{let W=D.current;if(!W||W.id!==p||W.revision!==P.revision)throw new Error("Wait for this draft\u2019s preview before sending.");return j.current("approve",{peerId:p,revision:P.pendingRevision,sources:W.values})}):void 0,Y=!!(P&&r.isAnnotating),he=e&&(f??(Y?g:void 0));return _(()=>{if(!Y)return;let W=fe=>{fe.composedPath().some(re=>re instanceof Element&&re.hasAttribute("data-devtools"))||(fe.metaKey||fe.ctrlKey)&&fe.key==="Enter"||(fe.key.length===1||["Backspace","Delete","Enter"].includes(fe.key))&&(fe.preventDefault(),fe.stopPropagation())};return window.addEventListener("keydown",W,!0),()=>window.removeEventListener("keydown",W,!0)},[Y]),{toolbar:ce,selectedId:c.selectedId,threadAnnotationNumbers:C,activePreview:Y,isPeeking:u,viewed:P,approve:ue,overlay:M(at,{children:[Y&&h("div",{ref:ee,"data-devtools":"peer-preview","data-peer-revision":P?.revision,"data-pending-revision":P?.pendingRevision,"data-popmelt-peer-surface":!0,style:{position:"fixed",inset:0,zIndex:1e4,background:"#111",pointerEvents:"auto"}}),d.map(({presence:W,engaged:fe})=>{if(u)return null;let re=i.find(ye=>ye.identity.id===W.peerId);if(!re||W.clientId!==H.current.clientId||W.url!==or()||Y&&re.identity.id!==p)return null;let pe=null;try{pe=Y?q?.contentDocument?.querySelector(W.selector)??null:ml(W.selector)}catch{}return h(gc,{element:pe,engaged:fe,label:`${re.identity.name} is looking at this element`},`${re.identity.id}:${W.operationId}`)}),!u&&Y&&P&&q?.contentDocument&&h(Of,{peer:P,targetDocument:q.contentDocument,onApprove:ue?()=>{ue()}:void 0}),Y&&P&&p===c.selectedId&&h("div",{"data-devtools":"peer-plane-border","data-plane-owner":P.identity.id,"aria-hidden":"true",style:{position:"fixed",inset:0,border:`2px solid ${P.color}`,boxSizing:"border-box",pointerEvents:"none",zIndex:10002}}),Y&&P&&p===c.selectedId&&h(Nf,{name:P.identity.name,isOwnPlane:P.identity.id==="host",color:P.color,changed:w.length>0}),he&&h("div",{"data-devtools":"peer-error",role:"status",style:{position:"fixed",bottom:100,right:24,maxWidth:360,padding:12,background:"#222",color:"#ddd",borderRadius:12,fontFamily:os,fontSize:12,lineHeight:1.4,zIndex:10002},children:he})]})}}function zy(e,t,n,r,o,i,a){let[l,s]=$(),d=J({navigation:e,selectedId:t});_(()=>{if(!e||!n||l?.navigation===e)return;let c=e.read(),p=o.current,u=!1;if(!c.threadId||c.selectedId!==t){s({navigation:e});return}return i(c.threadId).then(f=>{if(!u){if(p===o.current&&e.read()===c)if(f>=200&&f<300)a(c.threadId);else if(f===403||f===404||f===410)e.rememberThread(t,null);else{s({navigation:e,unresolvedRevision:p});return}s({navigation:e})}}).catch(()=>{u||s({navigation:e,unresolvedRevision:p})}),()=>{u=!0}},[e,t,n,l,o,i,a]),_(()=>{let c=d.current.navigation!==e||d.current.selectedId!==t;d.current={navigation:e,selectedId:t},!(!e||l?.navigation!==e||c)&&(l.unresolvedRevision===o.current&&!r||e.rememberThread(t,r))},[e,t,r,l,o])}var Dy=iu(()=>import("./ParticipantRuntime-6QPULJPO.mjs")),Hy=iu(()=>import("./PreviewRuntime-NGTLOEX3.mjs"));function Oy({children:e,projectId:t,adapters:n,multiplayer:r=!1}){let[o,i]=$(!1);if(_(()=>{i(!0)},[]),!o)return null;let a=window.__POPMELT_PARTICIPANTS__;if(!r)return Zd()?null:a?h("p",{role:"status","data-devtools":"participant-disabled",children:"Multiplayer is disabled. Enable the multiplayer option in your Popmelt integration to use this participant page."}):e;if(a)try{Jh(a,t)}catch(l){return h("p",{role:"alert","data-devtools":"participant-error",children:l.message})}return Zd()?a?h(au,{fallback:null,children:h(Hy,{config:a,adapters:n})}):null:a?h(au,{fallback:null,children:h(Dy,{config:a,children:ug(e,{bridgeUrl:a.url,projectId:a.projectId})},a.projectId)}):e}function Ny(e,t,n,r){let o=J(e);o.current=e;let[i,a]=$([]),l=J(null),[s,d]=$(null),[c,p]=$(null),u=i.filter(y=>y.scope===e),f=y=>a(w=>w.filter(k=>k.id!==y)),m=(y,w)=>{let k=Symbol(y);p(null);let D=t(y).then(()=>!0,()=>(o.current===e&&(w(),p({scope:e,message:"Could not dismiss thread. Please try again."})),f(k),!1));a(I=>[...I.filter(O=>O.scope===e),{id:k,threadId:y,rollback:w,saved:D,scope:e,undoHead:r}])},g=async()=>{let y=u.at(-1);if(!(!y||l.current===e)){l.current=e,d(e),p(null);try{if(!await y.saved||o.current!==e||(await n(y.threadId),o.current!==e))return;y.rollback(),f(y.id)}catch{o.current===e&&p({scope:e,message:"Could not restore thread. Try Undo again."})}finally{l.current===e&&(l.current=null,d(null))}}};return{dismiss:m,undo:g,tryUndo:()=>{let y=u.at(-1);return!y||y.undoHead!==r?!1:(g(),!0)},busy:s===e,count:u.length,error:c?.scope===e?c.message:null}}function Fy({enabled:e,active:t,configuration:n=!0,adapters:r}){let[o,i]=$(!1),[a,l]=$(null),s=we(()=>qh(),[]),{recognition:d,selector:c,root:p,observe:u,store:f,imageHasher:m,onError:g}=typeof n=="object"?n:{},y=r.some(I=>I.surfaceKind==="image"||I.id==="see:image"),w=e&&n!==!1&&!y,k=t||o,D=k?d:void 0;return _(()=>{e?t&&i(!0):i(!1)},[e,t]),_(()=>{if(!w)return;let I=Uh({recognition:D?{cacheKey:D.cacheKey,configurationKey:D.configurationKey,detect:O=>D.detect(O),reconcile:(...O)=>D.reconcile(...O)}:void 0,hydrateOnly:!k,selector:c,root:p,observe:u,store:f??s,imageHasher:m,onError:g});return l(I),()=>{l(null),I.destroy()}},[w,D,k,c,p,u,f,s,m,g]),we(()=>w&&a?[a,...r]:r,[w,a,r])}function _y({enabled:e,configuration:t=!0,adapters:n}){let[r,o]=$(null),i=we(()=>Yh(),[]),{segmentation:a,tracking:l,selector:s,root:d,observe:c,store:p,onError:u}=typeof t=="object"?t:{},f=n.some(g=>g.surfaceKind==="video"||g.id==="see:video"),m=e&&t!==!1&&!f;return _(()=>{if(!m)return;let g=Xh({tracking:l,segmentation:a,selector:s,root:d,observe:c,store:p??i,onError:u});return o(g),()=>{o(null),g.destroy()}},[m,l,a,s,d,c,p,i,u]),we(()=>m&&r?[r,...n]:n,[m,r,n])}function Du(e,t){return JSON.stringify([e,t.adapter,t.key])}async function Hu(e,t,n,r){for(let o of t){if(!o.target)continue;let i=Du(n,o.target);if(!r.has(i))try{r.set(i,await e.captureFeedback(o.target))}catch{r.set(i,null)}}}function Wy(e,t,n){let r=new Map;for(let o of e.annotations){let i=t.find(l=>l.id===o.id),a=(i?.groupId?t.filter(l=>l.groupId===i.groupId):t.filter(l=>l.id===o.id)).flatMap(l=>n.get(l.id)??[]);a.length&&r.set(o.id,a)}return r}function By(e,t,n,r){for(let o of e.annotations){if(!o.target)continue;let i=n.get(Du(o.pathname||r,o.target));if(!i){o.subjectFeedback={warning:"Live object unavailable; the following object context is the draft-time snapshot, not a refreshed detection. No object crop is attached."};continue}if(o.elements=[i.elementInfo],o.subjectFeedback=i.warning?{warning:i.warning}:void 0,i.crop){let a=t.get(o.id)??[];o.subjectFeedback={...o.subjectFeedback,cropImageIndex:a.length},t.set(o.id,[...a,i.crop])}}}function Jy(e){let t=e?.requestItems?.flatMap(r=>r.kind==="annotation"&&r.text.trim()?[r.text.trim()]:[]);if(t?.length)return t.join("; ");let n=e?.requestItems?.flatMap(r=>r.kind==="changes"?[`${r.elementLabel} [${r.changes.join(", ")}]`]:[]);return n?.length?n.join("; "):e?.requestText?.trim()||void 0}function qy(e,t){if(!e?.frames?.length)return[];let n=new Map;for(let r of e.steps){let o=r.visuals?.afterFrameId;o&&!n.has(o)&&n.set(o,r.action?.label?`After ${r.action.label}`:"Resulting state")}return e.frames.flatMap((r,o)=>{let i=t[r.imageIndex];return i?[{id:r.id,imageIndex:r.imageIndex,label:o===0?"Initial state":n.get(r.id)??"State",url:i}]:[]})}function Ou(e){let t=e.instruction?.trim();return t?e.attachments?.some(n=>n.name?.trim()===t)?null:t:null}function Uy(e,t){let n=e?.tagName?.toLowerCase(),r=e?.id?`#${e.id}`:"",o=e?.className?`.${e.className.trim().split(/\s+/).slice(0,2).join(".")}`:"",i=n?`${n}${r}${o}`:t;return e?.reactComponent?`<${e.reactComponent}> ${i}`:i}function Yy(e){let t=e.elements?.[0]?.reactComponent||e.elements?.[0]?.tagName||e.linkedSelector,n=e.type&&e.type!=="annotation"?`${e.type} annotation`:"Annotation";return t?`${n} on ${t}`:n}function Xy(e){let t=e.annotations.map(o=>{let i=o.interactionEpisode?.steps.length??0;return{kind:"annotation",annotationId:o.id,pathname:o.pathname,text:Ou(o)??Yy(o),...i>0?{interactionEpisodeStepCount:i}:{}}}),n=new Map,r=o=>{let i=`${o.pathname??""}:${o.durableSelector??o.selector}`,a=n.get(i);if(a){a.changes.push(o.text),o.annotationNumber!==void 0&&(a.annotationNumber===void 0||o.annotationNumber<a.annotationNumber)&&(a.annotationNumber=o.annotationNumber);return}let l={kind:"changes",elementKey:i,elementLabel:Uy(o.element,o.selector),...o.annotationNumber!==void 0?{annotationNumber:o.annotationNumber}:{},pathname:o.pathname,changes:[o.text]};n.set(i,l),t.push(l)};for(let o of e.styleModifications??[])for(let i of o.changes)r({...o,text:`${i.property}: ${i.original||"unset"} \u2192 ${i.modified||"unset"}${i.token?` (${i.token})`:""}`});for(let o of e.textModifications??[])r({...o,text:`Text: ${o.original||"empty"} \u2192 ${o.modified||"empty"}`});for(let o of e.domModifications??[])r({...o,text:o.operation==="copy"?"Copied element":"Moved element"});return e.spacingTokenChanges?.length&&t.push({kind:"changes",elementKey:"spacing-tokens",elementLabel:"Spacing tokens",changes:e.spacingTokenChanges.map(o=>`${o.tokenName}: ${o.originalPx}px \u2192 ${o.newPx}px`)}),t}function Ky(e){let t=e.annotations.flatMap(r=>{let o=Ou(r);return o?[{instruction:o,pathname:r.pathname}]:[]});if(t.length===0)return;if(new Set(t.map(r=>r.pathname).filter(Boolean)).size<=1)return t.map(r=>r.instruction).join(`
|
|
8
|
+
|
|
9
|
+
`);let n=new Map;for(let r of t){let o=r.pathname||"(unknown)",i=n.get(o)??[];i.push(r.instruction),n.set(o,i)}return[...n.entries()].map(([r,o])=>`\`${r}\`
|
|
10
|
+
${o.map(i=>`- ${i}`).join(`
|
|
11
|
+
`)}`).join(`
|
|
12
|
+
`)}function Vy(e,t=96){let n=e.replace(/\s+/g," ").trim();return n.length>t?`${n.slice(0,Math.max(0,t-3))}...`:n}function Gy(e,t,n){let r=[],o=(i,a)=>{let l=i.filter(d=>!d.includes("data-pm=")),s=ru(l,a);s.status!=="matched"||r.some(d=>d.element===s.element)||r.push({element:s.element,elementInfo:hn(s.element),subject:!1})};for(let i of(e.targets??[]).slice(0,20))if(i.type==="dom"){if(i.pathname!==t)continue;o([i.structuralSelector,i.runtimeSelector,...i.legacySelectors??[]].filter(a=>!!a),i.targetFingerprint)}else{let a=n?.resolve({adapter:i.adapter,key:i.key});a&&r.push({element:a.element,elementInfo:a.elementInfo,subject:!0,sourceElement:a.subject.sourceElement})}if(!e.targets?.length)for(let i of(e.elementIdentifiers??[]).slice(0,20))i.startsWith(`${t}:`)&&o([i.slice(t.length+1)]);return r}function Qy(e){let t=e.sourceElement??e.element;if(!t.isConnected)return!1;if(!e.subject||e.sourceElement){let r=getComputedStyle(t);if(r.display==="none"||r.visibility==="hidden"||r.visibility==="collapse"||r.opacity==="0"||t.checkVisibility&&!t.checkVisibility({checkOpacity:!0,checkVisibilityCSS:!0}))return!1}let n=e.element.getBoundingClientRect();return n.width>0&&n.height>0&&n.bottom>0&&n.right>0&&n.top<window.innerHeight&&n.left<window.innerWidth}function Zy({entry:e,color:t,subjectRegistry:n,hasExistingOverlay:r}){let o=Ir(Ti),i=as(),[a,l]=$(null);return _(()=>{if(!o)return;let s=Gy(e,i,n),d=()=>{let u=s.filter(Qy);l(f=>f?.entry===e&&f.pathname===i&&f.targets.length===u.length&&f.targets.every((m,g)=>m===u[g])?f:{entry:e,pathname:i,targets:u})};d();let c=jc(d),p=xu(d);return()=>{c(),p.disconnect()}},[e,i,n,o]),a?.entry!==e||a.pathname!==i?null:h("div",{"data-devtools":"history-target-preview",style:{pointerEvents:"none"},children:a.targets.filter(s=>!r?.(s.element)).map((s,d)=>h(Qr,{element:s.element,elementInfo:s.elementInfo,subjectRegistry:n,isSelected:!1,hideFill:!s.subject,color:t},d))})}function ev(){if(typeof window>"u")return null;try{let e=window.localStorage.getItem(gs);return e?JSON.parse(e):null}catch{return null}}function tv({bridgeUrl:e,annotations:t}){let[n,r]=$(ev);_(()=>{if(!n||n.domEdit)return;let l=t.find(s=>s.id===n.id&&(s.status??(s.captured?"in_flight":"pending"))!=="pending");!l||l.text!==n.text||n.images?.length||JSON.stringify(l.attachments??[])!==JSON.stringify(n.attachments??[])||JSON.stringify(l.interactionEpisode??null)!==JSON.stringify(n.interactionEpisode??null)||r(s=>s===n?null:s)},[n,t]),_(()=>{n&&!n.domEdit?window.localStorage.setItem(gs,JSON.stringify(n)):window.localStorage.removeItem(gs)},[n]),_(()=>{let l=n?.attachments?.map(s=>s.id)??[];!e||l.length===0||ic(e,l).catch(()=>{})},[n?.attachments,e]);let o=U(l=>{!e||!l?.length||Promise.all(l.map(s=>is(e,s.id).catch(()=>{})))},[e]),i=U(async l=>{if(!n||n.domEdit)return;let s=mm(l.clipboardData.getData("text/plain"));if(s){if(l.preventDefault(),!e)return;if(s.blob.size>2097152){console.warn("[Popmelt] Pasted attachment exceeds the 2 MB draft limit.");return}try{let p=n.groupId?t.find(f=>f.groupId===n.groupId&&f.type!=="text")?.id??n.id:n.id,u=await gm(e,p,s);r(f=>f?.id===n.id?{...f,attachments:[...f.attachments??[],u]}:f)}catch(p){console.error("[Popmelt] Failed to stage pasted attachment:",p)}return}let d=l.clipboardData.items,c=[];for(let p=0;p<d.length;p+=1){let u=d[p];if(!u.type.startsWith("image/"))continue;let f=u.getAsFile();f&&c.push(f)}c.length!==0&&(l.preventDefault(),r(p=>p?{...p,images:[...p.images??[],...c]}:null))},[n,t,e]),a=U(l=>{r(s=>s&&{...s,attachments:s.attachments?.filter(d=>d.id!==l)}),e&&is(e,l).catch(()=>{})},[e]);return{activeText:n,setActiveText:r,handleTextPaste:i,removeActiveTextAttachment:a,releaseActiveTextAttachments:o}}function nv({annotations:e,isCreatingAnnotation:t,hoveredTextId:n,badgeHoveredAnnotationId:r,highlightedAnnotationIds:o,cycleFocusedAnnotationIds:i,hoveredElement:a}){let l=we(()=>{let p=e.filter(g=>(g.status??"pending")==="pending");if(p.length===0&&!t)return null;let u=new Set(p.map(g=>g.id)),f=new Set(p.flatMap(g=>g.groupId?[g.groupId]:[])),m=new Set(p.flatMap(g=>g.threadId?[g.threadId]:[]));for(let g of e)(g.groupId&&f.has(g.groupId)||g.threadId&&m.has(g.threadId))&&u.add(g.id);return u},[e,t]),s=we(()=>{let p=new Set;if(n&&p.add(n),r&&p.add(r),o?.forEach(u=>p.add(u)),a){for(let u of e)if(u.linkedSelector)try{a.matches(u.linkedSelector)&&p.add(u.id)}catch{}}return vs(e,p)},[e,n,r,o,a]),d=we(()=>o?vs(e,o):null,[e,o]),c=we(()=>i?vs(e,i):null,[e,i]);return{cycleSpotlightAnnotationIds:c,emphasizedAnnotationIds:d??c??l,hoverRestoredAnnotationIds:s,inactiveEmphasisOpacity:d||c?.2:.5,statusSpotlightAnnotationIds:d}}function rv({activeText:e,activeTextSendHintId:t,annotationNumberById:n,badgeHoveredAnnotationId:r,canvasRef:o,focusedThreadAnnotationId:i,hoveredElement:a,hoveredElementInfo:l,hoveredTextId:s,showHoverElementIdentifier:d,layoutReady:c,layoutRevision:p,pageAnnotations:u,parentPinnedAnnotationIds:f,pendingLinkedText:m,scroll:g,supersededAnnotations:y,textSafeBounds:w}){let k=J(new Map);return we(()=>{let D=new Set,I=new Map,O=new Map,R=new Map,F=()=>({hiddenCollidingAnnotationIds:D,nestedCollidingAnnotationCountById:I,nestedCollidingAnnotationIdsById:O,visibleCollisionRepresentativeByAnnotationId:R});if(!c)return F();let Q=o.current?.getContext("2d");if(!Q)return F();let N=(C,X,ce,ue,Y)=>{Q.font=`${ue}px ${An}`;let he=(ce||"Type here...").replace(/\n/g," "),W=Y!==void 0?`${Y}. ${he}`:he,fe={x:X.x-g.x,y:X.y-g.y},re=f.has(C)?Is:0,pe=Math.max(60,us(fe.x)-re),ye=Xc(Q,W,pe),Be=Q.measureText(ye).width,Ee=Kc(fe,ue,w,re+Be+16);return{left:Ee.x-8,top:Ee.y-4,right:Ee.x+re+Be+8,bottom:Ee.y+ue*rr+4}},K=new Set,q=u.flatMap(C=>{if(C.type!=="text"||!C.text||!C.points[0]||!C.linkedSelector||y.has(C))return[];let X=C.elements?.[0]?.selector,ce=k.current.get(C.id),ue=ce?.selector===C.linkedSelector&&ce.fallbackSelector===X&&ce.element.isConnected,Y=ue?ce.element:pn(C.linkedSelector,C.elements);if(!Y)return[];let he=ue?ce.depth:vm(Y);return k.current.set(C.id,{selector:C.linkedSelector,fallbackSelector:X,element:Y,depth:he}),K.add(C.id),[{id:C.id,annotation:C,element:Y,bounds:N(C.id,C.points[0],C.text,C.fontSize||12,n.get(C.id)),depth:he}]});for(let C of k.current.keys())K.has(C)||k.current.delete(C);if(q.length===0)return F();let S=q.map((C,X)=>X),ee=C=>{let X=C;for(;S[X]!==X;)X=S[X];for(;S[C]!==C;){let ce=S[C];S[C]=X,C=ce}return X},G=(C,X)=>{let ce=ee(C),ue=ee(X);ce!==ue&&(S[ue]=ce)};for(let C=0;C<q.length;C+=1)for(let X=C+1;X<q.length;X+=1){let ce=q[C],ue=q[X];bs(ce.element,ue.element)&&xs(ce.bounds,ue.bounds)&&G(C,X)}let H=new Map;q.forEach((C,X)=>{let ce=ee(X),ue=H.get(ce)??[];ue.push(C),H.set(ce,ue)});for(let C of H.values())for(let X of C){let ce=new Set,ue=C.flatMap(Y=>Y.id===X.id||Y.element===X.element||!X.element.contains(Y.element)||ce.has(Y.element)?[]:(ce.add(Y.element),[Y.id]));ue.length>0&&(I.set(X.id,ue.length),O.set(X.id,ue))}let j=e?.linkedSelector?{id:e.id,element:pn(e.linkedSelector,e.elements),bounds:N(e.id,e.point,e.text,e.fontSize,n.get(e.id))}:m?.linkedSelector?{id:t,element:pn(m.linkedSelector,m.elements),bounds:N(t,m.point,"",12)}:null,P=null;if(a&&d){let C=a.getBoundingClientRect(),X=22,ce=C.height>=window.innerHeight,ue=ce?C.top+8:C.top>=X+Ci?C.top-X-Ci:C.bottom+Ci,Y=ce?C.left+8:C.left,he=l?bm(l):a.tagName.toLowerCase();Q.font=`12px ${An}`;let W=Math.min(400,Q.measureText(he).width+16);P={left:Y,top:ue,right:Y+W,bottom:ue+X}}let E=(C,X)=>{C.forEach(ce=>{ce.id!==X&&D.add(ce.id),X&&R.set(ce.id,X)})};for(let C of H.values()){if(j?.element&&C.some(Y=>bs(j.element,Y.element)&&xs(j.bounds,Y.bounds))){let Y=new Set,he=C.flatMap(W=>W.element===j.element||!j.element.contains(W.element)||Y.has(W.element)?[]:(Y.add(W.element),[W.id]));he.length>0&&(I.set(j.id,he.length),O.set(j.id,he)),E(C,C.find(W=>W.id===j.id)?.id);continue}let X=[s,r].find(Y=>Y&&C.some(he=>he.id===Y)),ce=C.find(Y=>Y.id===X);if(ce){E(C,ce.id);continue}if(a){let Y=C.find(he=>he.element===a);if(Y){E(C,Y.id);continue}if(P&&C.some(he=>bs(a,he.element)&&xs(P,he.bounds))){E(C);continue}}let ue=[i].find(Y=>Y&&C.some(he=>he.id===Y));if(ue){E(C,ue);continue}if(C.length>1){let Y=C.reduce((he,W)=>W.depth<he.depth||W.depth===he.depth&&(W.bounds.top<he.bounds.top||W.bounds.top===he.bounds.top&&W.annotation.timestamp<he.annotation.timestamp)?W:he);E(C,Y.id)}}return F()},[e,t,n,r,o,i,a,l,s,d,c,u,f,m,g.x,g.y,y,w,p])}function Nu(e){if(!e.isConnected)return!1;let t=e.getBoundingClientRect();if(t.width<=0||t.height<=0||e.getClientRects().length===0)return!1;let n=e;for(;n;){let r=window.getComputedStyle(n);if(r.display==="none"||r.visibility==="hidden"||r.visibility==="collapse"||Number.parseFloat(r.opacity||"1")<=0)return!1;n=ou(n)}return!0}function ov(e){if(!e)return null;try{return As(e)}catch{return null}}function Fu(e,t){if(e?.isConnected){let r=e;for(;r&&r!==document.body&&r!==document.documentElement;){if(Nu(r))return{element:r,parentPinned:r!==e};r=ou(r)}}let n=ov(t);return n&&Nu(n)?{element:n,parentPinned:!0}:null}function Ws(e,t,n){return Fu(e,n)?.element===t}function _u(e,t){let n=typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(t):t.replace(/["\\]/g,"\\$&");return`[${e}="${n}"]`}function iv(e){let t=e.elements?.[0],n=t?.sourceElement?.dataAttributes,r=n?.["data-popmelt-media-id"]??n?.["data-popmelt-see-id"]??t?.dataAttributes?.["data-popmelt-media-id"]??t?.dataAttributes?.["data-popmelt-see-id"];if(r){let o=As(_u("data-popmelt-media-id",r));if(o)return o;let i=As(_u("data-popmelt-see-id",r));if(i)return i}return nl(e.linkedSelector,t)}var av='#devtools-toolbar, #devtools-canvas, #devtools-scrim, [data-popmelt-panel], [data-devtools="panel"], [data-devtools="panel-wrapper"], [data-devtools="annotation-badge-layer"], [data-popmelt-subject-projection]';function lv(e,t){return e.size===t.size&&[...e].every(n=>t.has(n))}function sv({annotations:e,currentPathname:t,dispatch:n,stateRef:r,styleModifications:o,subjectRegistry:i,toolbarRef:a,onTargetResolutionChange:l}){let s=Ir(Ti),[d,c]=$(()=>new Set),p=we(()=>e.filter(f=>f.linkedSelector&&(!f.pathname||f.pathname===t)).map(f=>[f.id,f.linkedSelector,f.text,f.fontSize,f.timestamp,JSON.stringify([f.elements?.[0]?.selector,f.elements?.[0]?.context,f.elements?.[0]?.targetFingerprint,f.elements?.[0]?.dataAttributes,f.elements?.[0]?.sourceElement?.dataAttributes])].join(":")).join("|"),[e,t]),u=we(()=>o.filter(f=>!f.pathname||f.pathname===t).map(f=>f.selector).sort().join("|"),[t,o]);return _(()=>{if(!s)return;if(!p){c(j=>j.size===0?j:new Set);return}let f=null,m=!1,g=document.createElement("canvas").getContext("2d"),y=null,w=new Map,k=new Map,D=new Map,I=ym(r.current.annotations.flatMap(j=>[j.linkedSelector,j.elements?.[0]?.selector].filter(P=>!!P))),O=()=>{if(y)return y;let j=r.current.annotations.filter(E=>E.linkedSelector&&(!E.pathname||E.pathname===t)),P=new Map;return y=j.flatMap(E=>{k.has(E.id)||k.set(E.id,iv(E));let C=k.get(E.id);P.set(E.id,C);let X=Fu(C,E.elements?.[0]?.context);return X?[{annotation:E,spatialAnchor:X}]:[]}),(P.size!==D.size||[...P].some(([E,C])=>D.get(E)!==C))&&(D=P,l?.()),y},R=()=>{y=null,w.clear()},F=()=>{let j=r.current.styleModifications.filter(W=>!W.pathname||W.pathname===t),P=[],E=O(),C=new Map(r.current.annotations.map(W=>[W.id,W])),X=new Set(E.filter(({spatialAnchor:W})=>W.parentPinned).map(({annotation:W})=>W.id));c(W=>lv(W,X)?W:X);let ce=new Map,ue=new Map,Y=new Map;for(let{annotation:W,spatialAnchor:fe}of E){let re=Y.get(fe.element)??[];re.push(W),Y.set(fe.element,re)}let he=new Map;for(let W of Y.values()){W.sort((ye,Be)=>ye.timestamp-Be.timestamp);let fe=0,re,pe=0;for(let ye of W)ye.timestamp!==re&&(re=ye.timestamp,pe=fe),he.set(ye.id,pe),fe+=1}for(let{annotation:W,spatialAnchor:fe}of E){let re=fe.element,pe=ce.get(re);pe||(pe=re.getBoundingClientRect(),ce.set(re,pe));let ye=ue.get(re);ye===void 0&&(ye=j.some(Ae=>{if(Ae.captured)return!1;try{return re.matches(Ae.selector)}catch{return!1}}),ue.set(re,ye));let Be=he.get(W.id)??0,Ee=(ye?1:0)+Be,z=w.get(W.id);if(z===void 0&&W.text&&g){let Ae=W.fontSize||12;g.font=`${Ae}px ${An}`,z=Math.max(...W.text.split(`
|
|
13
|
+
`).map(se=>g.measureText(se).width))+(fe.parentPinned?Is:0),w.set(W.id,z)}let Ne=pe.top>=22*(1+Ee)+Ci?"top-left":"bottom-left",$e=zc(pe,Ne,Ee,a?.current,z),Xe=C.get(W.id),Ye=Xe?.points[0],We=Ne!==Xe?.linkedAnchor;Ye&&(We||Math.abs($e.x-Ye.x)>1||Math.abs($e.y-Ye.y)>1)&&P.push({id:W.id,point:$e,linkedAnchor:We?Ne:void 0})}P.length>0&&n({type:"UPDATE_LINKED_POSITIONS",payload:{updates:P}})},Q=()=>{m||f!==null||(f=requestAnimationFrame(()=>{f=null,F()}))};F();let N=()=>{R(),Q()},K=jc(F);window.addEventListener("resize",N,!0),window.addEventListener("load",N),document.addEventListener("transitionend",N,!0),document.addEventListener("animationend",N,!0),document.fonts.ready.then(N);let q=i?.subscribeFrame(F),S=new Set,ee=()=>{for(let j of ag())!(j instanceof ShadowRoot)||S.has(j)||(S.add(j),G.observe(j,H))},G=new MutationObserver(j=>{let P=j.filter(E=>{let C=E.target,X=C instanceof Element?C:C.parentElement;return!X||!ya(X,av)});P.some(E=>E.addedNodes.length)&&ee(),P.some(I.changesIdentity)&&k.clear(),P.length&&N()}),H={attributes:!0,childList:!0,characterData:!0,subtree:!0,attributeFilter:I.attributes};return G.observe(document.body,H),ee(),()=>{m=!0,K(),window.removeEventListener("resize",N,!0),window.removeEventListener("load",N),document.removeEventListener("transitionend",N,!0),document.removeEventListener("animationend",N,!0),G.disconnect(),q?.(),f&&cancelAnimationFrame(f)}},[s,t,n,p,u,r,i,a,l]),d}function dv(){let e=J({shift:!1,cmd:!1});return _(()=>{let t=o=>{o.key==="Shift"&&(e.current.shift=!0),(o.key==="Meta"||o.key==="Control")&&(e.current.cmd=!0)},n=o=>{o.key==="Shift"&&(e.current.shift=!1),(o.key==="Meta"||o.key==="Control")&&(e.current.cmd=!1)},r=()=>{e.current={shift:!1,cmd:!1}};return window.addEventListener("keydown",t,!0),window.addEventListener("keyup",n,!0),window.addEventListener("blur",r),()=>{window.removeEventListener("keydown",t,!0),window.removeEventListener("keyup",n,!0),window.removeEventListener("blur",r)}},[]),e}function cv({annotations:e,annotationIds:t,badgeHoveredAnnotationId:n,hoveredTextId:r}){let o=we(()=>{let d=new Map;for(let c of e){if(!t.has(c.id))continue;let p=rg(c.elements);p&&d.set(c.id,p)}return d},[e,t]),i=[n,r].find(d=>d&&o.has(d))??null,[a,l]=$(null);_(()=>{if(l(null),!i)return;let d=window.setTimeout(()=>{l(i)},500);return()=>window.clearTimeout(d)},[i]);let s=U(async d=>{let c=await og(d.linkedSelector,d.elements);if(!c)return;let p=c.getBoundingClientRect();(p.bottom<0||p.top>window.innerHeight)&&c.scrollIntoView({behavior:"smooth",block:"center"})},[]);return{locationLabels:o,tooltipAnnotationId:a,revealAnnotation:s}}function uv({activeText:e,activeTextAnchorId:t,hoveredElement:n,hoveredTextId:r,pendingTextAnnotations:o}){let[i,a]=$(null);return _(()=>{if(e&&!e.domEdit&&e.text.trim()){a(t);return}a(l=>l&&o.some(s=>s.id===l)?l:o[0]?.id??null)},[e,t,o]),_(()=>{if(!r)return;let l=o.find(s=>s.id===r);l&&a(l.id)},[r,o]),_(()=>{if(!n)return;let l=o.find(s=>{if(!s.linkedSelector)return!1;try{return n.matches(s.linkedSelector)}catch{return!1}});l&&a(l.id)},[n,o]),{sendHintAnchorId:i,setSendHintAnchorId:a}}function pv(e,t,n,r,o){_(()=>{let i=a=>{if(e){if(e.domEdit||e.linkedSelector)return;a.preventDefault(),a.stopPropagation();let s=a.deltaY>0?-2:2;t(d=>d?{...d,fontSize:Math.max(12,Math.min(72,d.fontSize+s))}:null);return}if(!n)return;a.preventDefault();let l=r.find(s=>s.id===n);if(l&&l.type==="text"&&!l.linkedSelector){let s=l.fontSize||12,d=a.deltaY>0?-2:2;o({type:"UPDATE_TEXT_SIZE",payload:{id:n,fontSize:s+d}})}};return window.addEventListener("wheel",i,{passive:!1}),()=>{window.removeEventListener("wheel",i)}},[n,e,r,o,t])}var hv=86,fv=36,mv=2;function gv({nestedAnnotationCount:e,interactionEpisodeStepCount:t,reserveSendHint:n,imageCount:r=0}){let o=+(r>0)+ +(t>0)+ +(e>0)+Number(n);return o===0?0:Sc(r)+(r>0?4:0)+(e>0?fv:0)+Ic(t)+(n?hv:0)+Math.max(0,o-1)*mv}function yv({rawLeft:e,width:t,top:n,scroll:r,collisionId:o,nestedAnnotationCount:i,nestedAnnotationIds:a,nestedBadgeColor:l,interactionEpisodeStepCount:s,imageCount:d=0,color:c="#f50",showSendHint:p,bundleCount:u,onHoverNestedAnnotations:f,onHoverSendHint:m,onClearInteractionEpisode:g,onSend:y}){return i===0&&s===0&&d===0&&!p?null:h($m,{"data-popmelt-active-annotation-surface":"true",left:e+t+r.x+2-Wc,top:n+r.y-Wc,scrollX:r.x,scrollY:r.y,onContextMenu:w=>{w.preventDefault(),w.stopPropagation()},style:{pointerEvents:"auto",zIndex:10002},children:M("div",{style:{display:"flex",alignItems:"center",gap:2},children:[h(_c,{stepCount:s,onClear:g}),i>0&&o&&h(Pm,{count:i,color:l,onHoverChange:w=>f(o,w?a:null)}),M("div",{style:{display:"flex",alignItems:"center",isolation:"isolate",marginLeft:d>0?4:0},children:[h(Lm,{imageCount:d,color:c}),p&&h(jm,{layered:d>0,bundleCount:Math.max(1,u),onHoverChange:m,onSend:y})]})]})})}function vv({value:e,fontSize:t,prefix:n,inputRef:r,inputStyle:o,selectionBackground:i,selectionColor:a,annotationBorderRadius:l,activeColor:s,boundaryRects:d,wrapsDomText:c,showEditor:p,rawLeft:u,top:f,baselineOffset:m,onChange:g,onKeyDown:y,onPaste:w,onBlur:k}){let D=d!==void 0;return M(at,{children:[h("style",{children:`
|
|
14
|
+
#devtools-text-input::placeholder { color: rgba(255, 255, 255, 0.5); }
|
|
15
|
+
#devtools-text-input::selection {
|
|
16
|
+
background: ${i};
|
|
17
|
+
color: ${a};
|
|
18
|
+
}
|
|
19
|
+
@keyframes popmeltAnnotationFieldEnter {
|
|
20
|
+
from { border-radius: 8px; }
|
|
21
|
+
to { border-radius: ${l}; }
|
|
22
|
+
}
|
|
23
|
+
@media (prefers-reduced-motion: reduce) {
|
|
24
|
+
#devtools-text-input { animation: none !important; }
|
|
25
|
+
}
|
|
26
|
+
`}),d?.map((I,O)=>h("div",{"data-devtools":"text-edit-active-boundary",style:{position:"fixed",left:I.left,top:I.top,width:I.width,height:I.height,pointerEvents:"none",zIndex:10002,border:`1px solid ${s}`,backgroundColor:Ga(s,.08),boxSizing:"border-box"}},`${I.left}:${I.top}:${O}`)),p&&h("textarea",{id:"devtools-text-input","data-popmelt-active-annotation-surface":D?void 0:"true",ref:r,value:e,onChange:g,onKeyDown:y,onPaste:w,onBlur:k,placeholder:"Type here...",wrap:D?c?"soft":"off":void 0,spellCheck:!1,style:o}),p&&!D&&n&&h("span",{"aria-hidden":!0,"data-devtools":"annotation-number",style:{position:"fixed",left:u+8,top:f+4+m,zIndex:10002,pointerEvents:"none",color:"#ffffff",fontFamily:An,fontSize:t,lineHeight:`${t*rr}px`,whiteSpace:"pre"},children:n})]})}function bv({anchor:e,width:t,height:n,value:r,fontSize:o,prefix:i,inputRef:a,inputStyle:l,onChange:s,onKeyDown:d,onPaste:c,onBlur:p,onContextMenu:u}){return M("div",{"data-popmelt-active-annotation-surface":"true",onContextMenu:u,style:{position:"relative",width:t,height:n,flex:`0 0 ${t}px`},children:[h("textarea",{id:"devtools-text-input","data-popmelt-active-annotation-surface":"true",ref:a,value:r,onChange:s,onKeyDown:d,onPaste:c,onBlur:p,onClick:f=>f.stopPropagation(),placeholder:"Type here...",spellCheck:!1,style:{...l,position:"relative",left:0,top:0,zIndex:0,paddingTop:4,paddingBottom:4,borderRadius:ps(e),animation:void 0}}),i&&h("span",{"aria-hidden":!0,"data-devtools":"annotation-number",style:{position:"absolute",left:8,top:4,zIndex:1,pointerEvents:"none",color:"#ffffff",fontFamily:An,fontSize:o,fontWeight:600,lineHeight:`${o*rr}px`,whiteSpace:"pre"},children:i})]})}function xv(e,t,n){let r={x:n.left+n.width*t.x,y:n.top+n.height*t.y},o=e.left+e.width,i=e.top+e.height,a=r.x>=e.left&&r.x<=o&&r.y>=e.top&&r.y<=i,l={x:Math.max(e.left,Math.min(o,r.x)),y:Math.max(e.top,Math.min(i,r.y))};return{annotation:l,subject:r,visible:!a&&Math.hypot(r.x-l.x,r.y-l.y)>=2}}function wv({element:e,annotationRect:t,subjectAnchor:n,color:r,subjectRegistry:o}){let i=J(null);return _(()=>{let a=i.current;if(!a)return;let l=a.querySelector("line"),s=a.querySelector("circle");if(!l||!s)return;let d=()=>{let u=xv(t,n,e.getBoundingClientRect());a.style.display=u.visible?"":"none",l.setAttribute("x1",String(u.annotation.x)),l.setAttribute("y1",String(u.annotation.y)),l.setAttribute("x2",String(u.subject.x)),l.setAttribute("y2",String(u.subject.y)),s.setAttribute("cx",String(u.subject.x)),s.setAttribute("cy",String(u.subject.y))};d();let c=o?.subscribeFrame(d),p=o?null:new MutationObserver(d);return p?.observe(e,{attributes:!0,attributeFilter:["style"]}),window.addEventListener("resize",d),()=>{c?.(),p?.disconnect(),window.removeEventListener("resize",d)}},[t,e,n,o]),h("svg",{"data-popmelt-subject-draft-connector":"","aria-hidden":!0,style:{position:"fixed",inset:0,width:"100dvw",height:"100dvh",zIndex:10001,pointerEvents:"none",overflow:"visible"},children:M("g",{ref:i,children:[h("line",{stroke:r,strokeWidth:"1",strokeDasharray:"2 3",strokeLinecap:"round",opacity:"0.72"}),h("circle",{"data-popmelt-subject-draft-point":"",r:"3",fill:r,stroke:"#ffffff",strokeWidth:"1",opacity:"0.85"})]})})}var Wu=160;function Sv({color:e,cursorRef:t,tool:n,onHandoff:r,onDone:o}){let i=J(null),a=J(r);a.current=r,Lt(()=>{let s=i.current;if(!s)return;let d=(u,f)=>{s.style.left=`${u-4}px`,s.style.top=`${f-4}px`},c=t.current;c&&d(c.x,c.y);let p=u=>d(u.clientX,u.clientY);return window.addEventListener("pointermove",p,{capture:!0}),()=>window.removeEventListener("pointermove",p,{capture:!0})},[t]),_(()=>{let s=window.setTimeout(()=>a.current(),Wu*.75);return()=>window.clearTimeout(s)},[]);let l=n==="inspector";return M("div",{ref:i,"data-devtools":"cursor-switch-pulse",onAnimationEnd:o,style:{position:"fixed",left:-100,top:-100,zIndex:2147483647,width:24,height:24,pointerEvents:"none",transformOrigin:"0 0",animation:`popmeltCursorSwitchPulse ${Wu}ms ease-in-out both`,filter:`drop-shadow(0 .5px .35px rgba(0,0,0,.22)) drop-shadow(0 .75px .65px ${Ga(e,.42)}) drop-shadow(0 1.25px 1.1px ${Ga(e,.24)})`},children:[h("svg",{width:"24",height:"24",viewBox:"-3 -3 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{overflow:"visible"},children:l?h("path",{transform:"scale(1.125)",d:"M1 8V2C1 1.44772 1.44772 1 2 1H8C11.866 1 15 4.13401 15 8C15 11.866 11.866 15 8 15C4.13401 15 1 11.866 1 8Z",fill:e,stroke:"white",strokeWidth:"1.111"}):h("path",{d:"M5.19194 14.2778L0.732307 2.01384C0.442115 1.21582 1.21582 0.442116 2.01384 0.732307L14.2778 5.19194C15.7506 5.72748 15.5191 7.87826 13.9661 8.08812L10.298 8.58381C9.40594 8.70436 8.70436 9.40594 8.58381 10.298L8.08812 13.9661C7.87826 15.5191 5.72748 15.7506 5.19194 14.2778Z",fill:e,stroke:"white",strokeWidth:"1.25"})}),h("style",{children:`
|
|
27
|
+
@keyframes popmeltCursorSwitchPulse {
|
|
28
|
+
0%, 100% { transform: scale(1); }
|
|
29
|
+
50% { transform: scale(1.5); }
|
|
30
|
+
0%, 75% { opacity: 1; }
|
|
31
|
+
100% { opacity: 0; }
|
|
32
|
+
}
|
|
33
|
+
`})]})}var gl=28,Bu=12,Iv=8,Ju=["transition","transform","translate","rotate","scale"];function ei(e){let[t]=e.getBoxQuads?.({box:"border"})??[];if(t)return{topLeft:{x:t.p1.x,y:t.p1.y},topRight:{x:t.p2.x,y:t.p2.y},bottomRight:{x:t.p3.x,y:t.p3.y},bottomLeft:{x:t.p4.x,y:t.p4.y}};let n=e.getBoundingClientRect();return{topLeft:{x:n.left,y:n.top},topRight:{x:n.right,y:n.top},bottomRight:{x:n.right,y:n.bottom},bottomLeft:{x:n.left,y:n.bottom}}}var yl={a:1,b:0,c:0,d:1,e:0,f:0};function wo(e,t){return{a:e.a*t.a+e.c*t.b,b:e.b*t.a+e.d*t.b,c:e.a*t.c+e.c*t.d,d:e.b*t.c+e.d*t.d,e:e.a*t.e+e.c*t.f+e.e,f:e.b*t.e+e.d*t.f+e.f}}function Bs(e,t){return{...yl,e,f:t}}function qu(e){let t=e*Math.PI/180,n=Math.cos(t),r=Math.sin(t);return{a:n,b:r,c:-r,d:n,e:0,f:0}}function Uu(e,t){return{a:e,b:0,c:0,d:t,e:0,f:0}}function vl(e,t){if(!e)return 0;let n=Number.parseFloat(e);return Number.isFinite(n)?e.endsWith("%")?n/100*t:n:0}function bl(e){if(!e)return 1;let t=Number.parseFloat(e);return Number.isFinite(t)?e.endsWith("%")?t/100:t:1}function Yu(e){if(!e||e==="none")return yl;let t=e.match(/^matrix\(([^)]+)\)$/);if(t){let r=t[1].split(",").map(Number);if(r.length===6&&r.every(Number.isFinite)){let[o,i,a,l,s,d]=r;return{a:o,b:i,c:a,d:l,e:s,f:d}}}let n=e.match(/^matrix3d\(([^)]+)\)$/);if(n){let r=n[1].split(",").map(Number);if(r.length===16&&r.every(Number.isFinite))return{a:r[0],b:r[1],c:r[4],d:r[5],e:r[12],f:r[13]}}return yl}function Js(e,t){return{x:e.a*t.x+e.c*t.y+e.e,y:e.b*t.x+e.d*t.y+e.f}}function kv(e){let t=getComputedStyle(e),n=t.rotate.trim().split(/\s+/).at(-1)??"0",r=qu(Number.parseFloat(n)||0),[o="1",i=o]=t.scale.trim().split(/\s+/),a=Uu(bl(o),bl(i)),l=Yu(t.transform);return{...wo(r,wo(a,l)),e:0,f:0}}function Ev(e){let t=yl,n=e.parentElement;for(;n;)Sr(n)&&(t=wo(kv(n),t)),n=n.parentElement;return t}function Tv(e,t,n){let r=(o,i)=>({x:e.x+(t.x*o+n.x*i)/2,y:e.y+(t.y*o+n.y*i)/2});return{topLeft:r(-1,-1),topRight:r(1,-1),bottomRight:r(1,1),bottomLeft:r(-1,1)}}function Cv(e,t){let{width:n,height:r}=Ku(e,t);if(n<=0||r<=0)return t;let o=Ev(e),i=Js(o,{x:n,y:0}),a=Js(o,{x:0,y:r}),l=Sa(t);return Tv(l,i,a)}function Di(e,t){let[n]=e.getBoxQuads?.({box:"border"})??[];if(n)return ei(e);let r=getComputedStyle(e),{width:o,height:i}=Ku(e,t);if(o<=0||i<=0)return ei(e);let[a="0",l="0"]=r.translate.trim().split(/\s+/),s=Bs(vl(a,o),vl(l,i)),d=r.rotate.trim().split(/\s+/).at(-1)??"0",c=qu(Number.parseFloat(d)||0),[p="1",u=p]=r.scale.trim().split(/\s+/),f=Uu(bl(p),bl(u)),m=Yu(r.transform),[g="50%",y="50%"]=r.transformOrigin.trim().split(/\s+/),w={x:vl(g,o),y:vl(y,i)},k=wo(Bs(w.x,w.y),wo(c,wo(f,wo(m,Bs(-w.x,-w.y))))),D=wo(s,k),I={x:(t.topRight.x-t.topLeft.x)/o,y:(t.topRight.y-t.topLeft.y)/o},O={x:(t.bottomLeft.x-t.topLeft.x)/i,y:(t.bottomLeft.y-t.topLeft.y)/i},R=F=>{let Q=Js(D,F);return{x:t.topLeft.x+I.x*Q.x+O.x*Q.y,y:t.topLeft.y+I.y*Q.x+O.y*Q.y}};return{topLeft:R({x:0,y:0}),topRight:R({x:o,y:0}),bottomRight:R({x:o,y:i}),bottomLeft:R({x:0,y:i})}}function wa(e){let t=Ju.map(n=>({property:n,value:e.style.getPropertyValue(n),priority:e.style.getPropertyPriority(n)}));try{e.style.setProperty("transition","none","important");for(let o of Ju)o!=="transition"&&e.style.setProperty(o,"none","important");let[n]=e.getBoxQuads?.({box:"border"})??[],r=ei(e);return n?r:Cv(e,r)}finally{for(let{property:r,value:o,priority:i}of t.filter(({property:a})=>a!=="transition"))o?e.style.setProperty(r,o,i):e.style.removeProperty(r);let n=t.find(({property:r})=>r==="transition");n&&(n.value?e.style.setProperty(n.property,n.value,n.priority):e.style.removeProperty(n.property))}}function Av(e,t,n=1){return["topLeft","topRight","bottomRight","bottomLeft"].some(r=>Math.hypot(e[r].x-t[r].x,e[r].y-t[r].y)>n)}function xl(e,t,n){let[r="0",o=r]=e.trim().split(/\s+/),i=(a,l)=>{let s=Number.parseFloat(a);return Number.isFinite(s)?a.endsWith("%")?s/100*l:s:0};return{x:i(r,t),y:i(o,n)}}function Xu(e,t){let n=getComputedStyle(e),r=(Math.hypot(t.topRight.x-t.topLeft.x,t.topRight.y-t.topLeft.y)+Math.hypot(t.bottomRight.x-t.bottomLeft.x,t.bottomRight.y-t.bottomLeft.y))/2,o=(Math.hypot(t.bottomLeft.x-t.topLeft.x,t.bottomLeft.y-t.topLeft.y)+Math.hypot(t.bottomRight.x-t.topRight.x,t.bottomRight.y-t.topRight.y))/2;return{topLeft:xl(n.borderTopLeftRadius,r,o),topRight:xl(n.borderTopRightRadius,r,o),bottomRight:xl(n.borderBottomRightRadius,r,o),bottomLeft:xl(n.borderBottomLeftRadius,r,o)}}function qs(e){return{width:(Math.hypot(e.topRight.x-e.topLeft.x,e.topRight.y-e.topLeft.y)+Math.hypot(e.bottomRight.x-e.bottomLeft.x,e.bottomRight.y-e.bottomLeft.y))/2,height:(Math.hypot(e.bottomLeft.x-e.topLeft.x,e.bottomLeft.y-e.topLeft.y)+Math.hypot(e.bottomRight.x-e.topRight.x,e.bottomRight.y-e.topRight.y))/2}}function Ku(e,t){let n=qs(t);if(e instanceof HTMLElement)return{width:e.offsetWidth||n.width,height:e.offsetHeight||n.height};let r=getComputedStyle(e),o=Number.parseFloat(r.width),i=Number.parseFloat(r.height);return{width:Number.isFinite(o)&&o>0?o:n.width,height:Number.isFinite(i)&&i>0?i:n.height}}function Vu(e,t,n){let r=qs(t),o=qs(n),i=r.width>0?o.width/r.width:1,a=r.height>0?o.height/r.height:1;return Object.fromEntries(Object.entries(e).map(([l,s])=>[l,{x:s.x*i,y:s.y*a}]))}function Mv(e){let t=e.trim().toLowerCase();if(!t||t==="transparent")return 0;if(t.match(/^#(?:[\da-f]{3}|[\da-f]{4}|[\da-f]{6}|[\da-f]{8})$/))return t.length===5?Number.parseInt(t.at(-1).repeat(2),16)/255:t.length===9?Number.parseInt(t.slice(-2),16)/255:1;let n=t.match(/\/\s*([\d.]+%?)\s*\)$/);if(n){let o=Number.parseFloat(n[1]);return n[1].endsWith("%")?o/100:o}let r=t.match(/^rgba\([^,]+,[^,]+,[^,]+,\s*([\d.]+%?)\s*\)$/);if(r){let o=Number.parseFloat(r[1]);return r[1].endsWith("%")?o/100:o}return 1}function Gu(e){let t=getComputedStyle(e);return t.backgroundImage&&t.backgroundImage!=="none"?!1:Mv(t.backgroundColor)>=.999}function Hi(e,t,n){let r=t.x-e.x,o=t.y-e.y,i=Math.max(1,Math.hypot(r,o));return{x:e.x+r/i*n,y:e.y+o/i*n}}function Qu(e,t){let n=(o,i)=>Math.hypot(i.x-o.x,i.y-o.y),r=[[n(e.topLeft,e.topRight),t.topLeft.x+t.topRight.x],[n(e.topRight,e.bottomRight),t.topRight.y+t.bottomRight.y],[n(e.bottomRight,e.bottomLeft),t.bottomRight.x+t.bottomLeft.x],[n(e.bottomLeft,e.topLeft),t.bottomLeft.y+t.topLeft.y]];return Math.min(1,...r.map(([o,i])=>i>0?o/i:1))}function Zu(e){return{topLeft:[e.topLeft.y,e.topLeft.x],topRight:[e.topRight.x,e.topRight.y],bottomRight:[e.bottomRight.y,e.bottomRight.x],bottomLeft:[e.bottomLeft.x,e.bottomLeft.y]}}function ep(e,t){let n=["topLeft","topRight","bottomRight","bottomLeft"],r=Zu(t),o=Qu(e,t),i=1-Math.SQRT1_2;return Object.fromEntries(n.map((a,l)=>{let s=e[a],d=e[n[(l+n.length-1)%n.length]],c=e[n[(l+1)%n.length]],[p,u]=r[a],f=Hi(s,d,p*o*i),m=Hi(s,c,u*o*i);return[a,{x:f.x+m.x-s.x,y:f.y+m.y-s.y}]}))}function Us(e,t){let n=.5522847498,r=["topLeft","topRight","bottomRight","bottomLeft"],o=Zu(t),i=Qu(e,t),a=r.map((d,c)=>{let p=e[d],u=r[(c+r.length-1)%r.length],f=r[(c+1)%r.length],m=e[u],g=e[f],[y,w]=o[d],k=y*i,D=w*i,I=Hi(p,m,k),O=Hi(p,g,D);return{entry:I,exit:O,entryControl:Hi(I,p,k*n),exitControl:Hi(O,p,D*n)}}),l=a[0],s=[`M ${l.exit.x} ${l.exit.y}`];for(let d=1;d<=a.length;d+=1){let c=a[d%a.length];s.push(`L ${c.entry.x} ${c.entry.y}`),s.push(`C ${c.entryControl.x} ${c.entryControl.y} ${c.exitControl.x} ${c.exitControl.y} ${c.exit.x} ${c.exit.y}`)}return s.push("Z"),s.join(" ")}function Sa(e){return{x:(e.topLeft.x+e.topRight.x+e.bottomRight.x+e.bottomLeft.x)/4,y:(e.topLeft.y+e.topRight.y+e.bottomRight.y+e.bottomLeft.y)/4}}function Oi(e,t=gl,n="top"){let[r,o]=n==="top"?[e.topLeft,e.topRight]:n==="right"?[e.topRight,e.bottomRight]:n==="bottom"?[e.bottomRight,e.bottomLeft]:[e.bottomLeft,e.topLeft],i={x:(r.x+o.x)/2,y:(r.y+o.y)/2},a=o.x-r.x,l=o.y-r.y,s=Math.max(1,Math.hypot(a,l));return{edge:i,handle:{x:i.x+l/s*t,y:i.y-a/s*t}}}function tp(e,t){let n=Oi(e);return n.handle.y>=t/2?{...n,side:"top"}:{...Oi(e,gl,"bottom"),side:"bottom"}}function wl(e,t,n){let r=n.x-t.x,o=n.y-t.y,i=r*r+o*o;if(i===0)return Math.hypot(e.x-t.x,e.y-t.y);let a=Math.max(0,Math.min(1,((e.x-t.x)*r+(e.y-t.y)*o)/i));return Math.hypot(e.x-(t.x+a*r),e.y-(t.y+a*o))}var Rv=["top","right","bottom","left"];function $v(e,t,n){let r=t/2;return e.x>=r&&e.x<=n.width-r&&e.y>=r&&e.y<=n.height-r}function Ys(e,t,n,r={}){let o=Rv.map(c=>({...Oi(e,gl,c),side:c,distance:wl(t,c==="top"?e.topLeft:c==="right"?e.topRight:c==="bottom"?e.bottomRight:e.bottomLeft,c==="top"?e.topRight:c==="right"?e.bottomRight:c==="bottom"?e.bottomLeft:e.topLeft)})),i=r.viewport?o.filter(({handle:c})=>$v(c,n,r.viewport)):o,a=i.length>0?i:o,l=a.reduce((c,p)=>p.distance<c.distance?p:c),s=r.currentSide?a.find(({side:c})=>c===r.currentSide):void 0,d=s&&s.distance<=l.distance+(r.hysteresis??8)?s:l;return{edge:d.edge,handle:d.handle,side:d.side}}function Pv(e,t,n){let r={x:t,y:n},o=[e.topLeft,e.topRight,e.bottomRight,e.bottomLeft],i=!1,a=!1,l=.001;for(let s=0;s<o.length;s+=1){let d=o[s],c=o[(s+1)%o.length],p=(c.x-d.x)*(r.y-d.y)-(c.y-d.y)*(r.x-d.x);if(p>l&&(i=!0),p<-l&&(a=!0),i&&a)return!1}return!0}function Lv(e,t,n,r){let o={x:t,y:n},i=[e.topLeft,e.topRight,e.bottomRight,e.bottomLeft],a=r/2;if(i.some(s=>Math.hypot(t-s.x,n-s.y)<=a)||[[e.topLeft,e.topRight],[e.topRight,e.bottomRight],[e.bottomRight,e.bottomLeft],[e.bottomLeft,e.topLeft]].some(([s,d])=>wl(o,s,d)<=Bu/2))return!0;let l=Ys(e,o,r);return wl(o,l.edge,l.handle)<=r/2}function jv(e,t,n,r){let o={x:t,y:n},i=Ys(e,o,r);return wl(o,i.edge,i.handle)<=r*1.5}function np(e){let t=Math.max(1,Math.hypot(e.x,e.y));return{x:e.x/t,y:e.y/t}}function zv(e,t){let n=Sa(e);return np({x:e[t].x-n.x,y:e[t].y-n.y})}function Dv(e,t){let n=Sa(e),{handle:r}=Oi(e,gl,t),o=np({x:r.x-n.x,y:r.y-n.y});return{x:-o.y,y:o.x}}function Hv(e,t){if(!t||e.x===0&&e.y===0)return e;let n=Math.PI/4,r=Math.atan2(e.y,e.x),o=Math.round(r/n)*n,i=Math.hypot(e.x,e.y);return{x:Math.cos(o)*i,y:Math.sin(o)*i}}function Ov(e,t,n=Iv){return Math.hypot(t.x-e.x,t.y-e.y)<=n}function rp(e){if(!e||e==="none")return{x:0,y:0};let[t="0",n="0"]=e.trim().split(/\s+/);return{x:Number.parseFloat(t)||0,y:Number.parseFloat(n)||0}}var op=Math.SQRT1_2;function ip(e,t){return Qo(e,t).filter(n=>typeof n=="number")}function Sl(e,t,n){return ip(e,t).reduce((r,o)=>Math.abs(Number.parseFloat(Mi(e,o,t))-n)<Math.abs(Number.parseFloat(Mi(e,r,t))-n)?o:r)}function eo(e,t){let n=ip("transform",e),r=o=>e==="translate"?Number.parseFloat(Mi("transform",o,e)):o;return n.reduce((o,i)=>Math.abs(r(i)-t)<Math.abs(r(o)-t)?i:o)}function Nv(e,t){if(t==="translate")return eo(t,rp(e).x);if(t==="scale"){let r=Number.parseFloat(e);return eo(t,Number.isFinite(r)?r*100:100)}let n=Number.parseFloat(e);return eo(t,Number.isFinite(n)?n:0)}function Fv(e,t){let n=window.getComputedStyle(e).getPropertyValue(t).trim();return Nv(n,t)}function Xs(e,t){return t?e:e==="left"||e==="right"?"x":"y"}function Ks(e,t){return t?e:"all"}function Vs(e){let t=e==="top-left"||e==="bottom-left"?1:-1,n=e==="top-left"||e==="top-right"?1:-1;return{x:t*op,y:n*op}}function _v(e,t,n){return e*n.x+t*n.y}function ap(e,t){let n=Math.max(1,t);return(e%n+n)%n}function Wv(e,t,n){return{cursor:{x:ap(e.cursor.x+t.x,n.width),y:ap(e.cursor.y+t.y,n.height)},deltaX:e.deltaX+t.x,deltaY:e.deltaY+t.y}}function Bv(e,t,n,r,o){if(e<o*2||t<o*2)return!1;let i=["top-left","top-right","bottom-right","bottom-left"].map(a=>{let l=Vs(a),s=r+n[a],d=a.endsWith("left")?0:e,c=a.startsWith("top")?0:t;return{x:d+l.x*s,y:c+l.y*s}});return i.every((a,l)=>i.slice(l+1).every(s=>Math.hypot(a.x-s.x,a.y-s.y)>=o))}function Jv(e,t){let n=e.match(/^oklch\(([^)]+)\)$/i);return n?`oklch(${n[1]} / ${t})`:`color-mix(in srgb, ${e} ${Math.round(t*100)}%, transparent)`}var Gs=["top-left","top-right","bottom-right","bottom-left"],lp=14;function sp({element:e,radius:t,accentColor:n,hoveredCorner:r,draggingCorner:o,cursorViewport:i,onHandlePointerDown:a}){let[l,s]=$(null),d=t["top-left"],c=t["top-right"],p=t["bottom-right"],u=t["bottom-left"];if(_(()=>{if(!e){s(null);return}let I=()=>{s(e.getBoundingClientRect())};return I(),window.addEventListener("scroll",I,{passive:!0}),window.addEventListener("resize",I,{passive:!0}),()=>{window.removeEventListener("scroll",I),window.removeEventListener("resize",I)}},[e]),Lt(()=>{e&&s(e.getBoundingClientRect())},[e,d,c,p,u]),!l)return null;let f=l.width,m=l.height;if(!Bv(f,m,t,lp,20))return null;let g=Jv(n,.2),y={"top-left":{x:0,y:0},"top-right":{x:f,y:0},"bottom-right":{x:f,y:m},"bottom-left":{x:0,y:m}},w=Object.fromEntries(Gs.map(I=>{let O=Vs(I),R=lp+t[I],F=y[I];return[I,{x:F.x+O.x*R,y:F.y+O.y*R}]})),k=o??r,D={position:"fixed",top:l.top,left:l.left,width:f,height:m,pointerEvents:"none",zIndex:a?9999:9996,overflow:"visible"};return M("div",{"data-devtools":"border-radius-handles","data-popmelt-steer-overlay":!0,style:D,children:[M("svg",{style:{position:"absolute",inset:0,width:"100%",height:"100%",overflow:"visible",pointerEvents:"none"},viewBox:`0 0 ${f} ${m}`,children:[h("rect",{x:"0.5",y:"0.5",width:Math.max(0,f-1),height:Math.max(0,m-1),fill:"none",stroke:g,strokeWidth:"1"}),Gs.map(I=>{let O=w[I];return h("circle",{cx:O.x,cy:O.y,r:I===k?4:3,fill:n,stroke:"#ffffff",strokeWidth:2},I)}),a&&Gs.map(I=>{let O=w[I],R=y[I],F=I==="top-left"||I==="bottom-right"?"nwse-resize":"nesw-resize";return M("g",{children:[h("line",{"data-radius-handle-access":I,x1:R.x,y1:R.y,x2:O.x,y2:O.y,stroke:"transparent",strokeWidth:20,strokeLinecap:"round",style:{pointerEvents:"stroke",cursor:F},onPointerDown:Q=>a(I,Q)}),h("circle",{cx:O.x,cy:O.y,r:20/2,fill:"transparent",style:{pointerEvents:"all",cursor:F},onPointerDown:Q=>a(I,Q)})]},`hit-${I}`)})]}),i&&k&&(()=>{let I=Math.round(t[k]);return h("div",{style:{position:"fixed",left:i.x+8,top:i.y-28,background:n,color:"#fff",fontSize:11,fontWeight:600,fontFamily:'ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace',lineHeight:1,padding:"4px 4px",borderRadius:0,whiteSpace:"nowrap",pointerEvents:"none",zIndex:9997},children:I})})()]})}function dp({centerX:e,centerY:t,orientation:n,accentColor:r,...o}){let i=n==="horizontal"?10:6,a=n==="horizontal"?6:10;return h("rect",{...o,"data-direct-manipulation-handle":"",x:e-i/2,y:t-a/2,width:i,height:a,fill:r,stroke:"#ffffff",strokeWidth:2})}function Qs(e,t){let n=e.match(/^oklch\(([^)]+)\)$/i);return n?`oklch(${n[1]} / ${t})`:`color-mix(in srgb, ${e} ${Math.round(t*100)}%, transparent)`}function cp({element:e,gap:t,accentColor:n,hoveredAxis:r,draggingAxis:o,cursorViewport:i,isAutoGap:a=!1,refreshKey:l=0,onHandlePointerDown:s}){let[d,c]=$(null),[p,u]=$([]),[f,m]=$(!1);if(_(()=>{let F=K=>{(K.key==="Meta"||K.key==="Control")&&m(!0)},Q=K=>{(K.key==="Meta"||K.key==="Control")&&m(!1)},N=()=>m(!1);return window.addEventListener("keydown",F,!0),window.addEventListener("keyup",Q,!0),window.addEventListener("blur",N),()=>{window.removeEventListener("keydown",F,!0),window.removeEventListener("keyup",Q,!0),window.removeEventListener("blur",N)}},[]),_(()=>{if(!e){c(null),u([]);return}let F=()=>{c(e.getBoundingClientRect()),u(el(e))};return F(),window.addEventListener("scroll",F,{passive:!0}),window.addEventListener("resize",F,{passive:!0}),()=>{window.removeEventListener("scroll",F),window.removeEventListener("resize",F)}},[e]),Lt(()=>{e&&(c(e.getBoundingClientRect()),u(el(e)))},[e,t.row,t.column,l]),!d||p.length===0)return null;let g=d.width,y=d.height,w="pm-gap-stripe-pattern",k=Qs(n,.25),D=Qs(n,.1),I=Qs(n,.2),O={position:"fixed",top:d.top,left:d.left,width:g,height:y,pointerEvents:"none",zIndex:s?9999:9996,overflow:"visible"},R=o??r;return M("div",{"data-devtools":"gap-handles","data-popmelt-steer-overlay":!0,style:O,children:[M("svg",{style:{position:"absolute",inset:0,width:"100%",height:"100%",overflow:"visible",pointerEvents:"none"},viewBox:`0 0 ${g} ${y}`,children:[h("defs",{children:h("pattern",{id:w,patternUnits:"userSpaceOnUse",width:"4",height:"4",patternTransform:"rotate(45)",children:h("line",{x1:"0",y1:"0",x2:"0",y2:"4",stroke:k,strokeWidth:"1.5"})})}),h("rect",{x:"0.5",y:"0.5",width:Math.max(0,g-1),height:Math.max(0,y-1),fill:"none",stroke:I,strokeWidth:"1"}),p.map((F,Q)=>{let N=F.x-d.left,K=F.y-d.top,q=F.w,S=F.h,ee=f?F.axis===R:!0;return(F.axis==="row"?t.row:t.column)===0?null:M("g",{opacity:ee?1:.6,children:[h("rect",{x:N,y:K,width:q,height:S,fill:D}),h("rect",{x:N,y:K,width:q,height:S,fill:`url(#${w})`})]},Q)}),p.map((F,Q)=>{let N=F.x-d.left+F.w/2,K=F.y-d.top+F.h/2;return a?h("circle",{"data-gap-handle":F.axis,cx:N,cy:K,r:3,fill:n,stroke:"#ffffff",strokeWidth:2},`gap-handle-${Q}`):h(dp,{"data-gap-handle":F.axis,centerX:N,centerY:K,orientation:F.axis==="column"?"vertical":"horizontal",accentColor:n},`gap-handle-${Q}`)}),s&&p.map((F,Q)=>{let N=F.x-d.left+F.w/2,K=F.y-d.top+F.h/2,q=Math.max(F.w,20),S=Math.max(F.h,20);return h("rect",{x:N-q/2,y:K-S/2,width:q,height:S,fill:"transparent",style:{pointerEvents:"all",cursor:F.axis==="row"?"ns-resize":"ew-resize"},onPointerDown:ee=>s(F.axis,ee)},`gap-hit-${Q}`)})]}),i&&R&&(()=>{let F=a?"auto":String(Math.round(R==="row"?t.row:t.column));return h("div",{style:{position:"fixed",left:i.x+8,top:i.y-28,background:n,color:"#fff",fontSize:11,fontWeight:600,fontFamily:'ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace',lineHeight:1,padding:"4px 4px",borderRadius:0,whiteSpace:"nowrap",pointerEvents:"none",zIndex:9997},children:F})})()]})}var qv=new Set(["CANVAS","EMBED","IFRAME","IMG","INPUT","OBJECT","VIDEO"]),Uv=["top","bottom"],Yv=["left","right"];function Xv({isHtmlElement:e,tagName:t,display:n,writingMode:r}){return!e||n!=="inline"||qv.has(t)?[]:r.startsWith("horizontal")?Uv:Yv}function Kv(e,t=window.getComputedStyle(e)){return Xv({isHtmlElement:e instanceof HTMLElement,tagName:e.tagName,display:t.display,writingMode:t.writingMode})}function Ni(e,t){let n=e.match(/^oklch\(([^)]+)\)$/i);return n?`oklch(${n[1]} / ${t})`:`color-mix(in srgb, ${e} ${Math.round(t*100)}%, transparent)`}var Vv={top:"bottom",bottom:"top",left:"right",right:"left"},Ia="#808080";function up({element:e,padding:t,mode:n="padding",accentColor:r,hoveredSide:o,draggingSide:i,activeSides:a,cursorViewport:l,refreshKey:s,onHandlePointerDown:d}){let[c,p]=$(null),[u,f]=$(!1);if(_(()=>{let pe=Ee=>{(Ee.key==="Alt"||Ee.key==="Control")&&f(!0)},ye=Ee=>{(Ee.key==="Alt"||Ee.key==="Control")&&f(!1)},Be=()=>f(!1);return window.addEventListener("keydown",pe,!0),window.addEventListener("keyup",ye,!0),window.addEventListener("blur",Be),()=>{window.removeEventListener("keydown",pe,!0),window.removeEventListener("keyup",ye,!0),window.removeEventListener("blur",Be)}},[]),_(()=>{if(!e){p(null);return}let pe=()=>{p(e.getBoundingClientRect())};return pe(),window.addEventListener("scroll",pe,{passive:!0}),window.addEventListener("resize",pe,{passive:!0}),()=>{window.removeEventListener("scroll",pe),window.removeEventListener("resize",pe)}},[e]),Lt(()=>{e&&p(e.getBoundingClientRect())},[e,t.top,t.right,t.bottom,t.left,s]),!c)return null;let m=c.width,g=c.height,{top:y,right:w,bottom:k,left:D}=t,I=Math.max(0,y),O=Math.max(0,w),R=Math.max(0,k),F=Math.max(0,D),Q=n==="margin",N=Q?m+F+O:m,K=Q?g+I+R:g,q=Q?F:0,S=Q?I:0,ee=Q?"pm-dot-pattern":"pm-stripe-pattern",G=Ni(r,.25),H=Ni(r,.1),j=Ni(r,.2),P=Ni(Ia,.55),E=Ni(Ia,.18),C=Ni(Ia,.9),X=new Set(Q?[]:Kv(e)),ce=X.size>0,ue="pm-neutral-stripe-pattern",Y={position:"fixed",top:c.top-(Q?I:0),left:c.left-(Q?F:0),width:N,height:K,pointerEvents:"none",zIndex:d?9999:9996,overflow:"visible"},he=["top","right","bottom","left"],W={top:`0,0 ${N},0 ${N-O},${I} ${F},${I}`,right:`${N},0 ${N},${K} ${N-O},${K-R} ${N-O},${I}`,bottom:`0,${K} ${F},${K-R} ${N-O},${K-R} ${N},${K}`,left:`0,0 ${F},${I} ${F},${K-R} 0,${K}`},fe={top:{x:N/2,y:I/2,orientation:"horizontal"},bottom:{x:N/2,y:K-R/2,orientation:"horizontal"},left:{x:F/2,y:K/2,orientation:"vertical"},right:{x:N-O/2,y:K/2,orientation:"vertical"}},re=new Set(a);return i?re.add(i):o&&(re.add(o),u||re.add(Vv[o])),M("div",{"data-devtools":"padding-handles","data-popmelt-steer-overlay":!0,style:Y,children:[M("svg",{style:{position:"absolute",inset:0,width:"100%",height:"100%",overflow:"visible",pointerEvents:"none"},viewBox:`0 0 ${N} ${K}`,children:[M("defs",{children:[Q?h("pattern",{id:ee,patternUnits:"userSpaceOnUse",width:"4",height:"4",children:h("circle",{cx:"1",cy:"1",r:"0.65",fill:G})}):h("pattern",{id:ee,patternUnits:"userSpaceOnUse",width:"4",height:"4",patternTransform:"rotate(45)",children:h("line",{x1:"0",y1:"0",x2:"0",y2:"4",stroke:G,strokeWidth:"1.5"})}),ce&&h("pattern",{id:ue,patternUnits:"userSpaceOnUse",width:"4",height:"4",patternTransform:"rotate(45)",children:h("line",{x1:"0",y1:"0",x2:"0",y2:"4",stroke:P,strokeWidth:"1.5"})})]}),h("rect",{x:q+.5,y:S+.5,width:Math.max(0,m-1),height:Math.max(0,g-1),fill:"none",stroke:j,strokeWidth:"1"}),he.map(pe=>{if(t[pe]<=0)return null;let ye=re.has(pe),Be=X.has(pe);return M("g",{"data-padding-flow":Be?"paint-only":"layout",opacity:ye?1:.6,children:[h("polygon",{points:W[pe],fill:Be?E:H}),h("polygon",{points:W[pe],fill:`url(#${Be?ue:ee})`})]},pe)}),X.has("top")&&I>0&&h("line",{x1:F,y1:I,x2:N-O,y2:I,stroke:C,strokeWidth:"1"}),X.has("bottom")&&R>0&&h("line",{x1:F,y1:K-R,x2:N-O,y2:K-R,stroke:C,strokeWidth:"1"}),X.has("left")&&F>0&&h("line",{x1:F,y1:I,x2:F,y2:K-R,stroke:C,strokeWidth:"1"}),X.has("right")&&O>0&&h("line",{x1:N-O,y1:I,x2:N-O,y2:K-R,stroke:C,strokeWidth:"1"}),he.map(pe=>{let ye=fe[pe];return h(dp,{centerX:ye.x,centerY:ye.y,orientation:ye.orientation,accentColor:X.has(pe)?Ia:r,"data-padding-flow":X.has(pe)?"paint-only":"layout"},`handle-${pe}`)}),d&&he.map(pe=>{let ye=fe[pe],Be=20;return h("rect",{x:ye.x-Be/2,y:ye.y-Be/2,width:Be,height:Be,fill:"transparent",style:{pointerEvents:"all",cursor:"grab"},onPointerDown:Ee=>d(pe,Ee)},`hit-${pe}`)})]}),l&&(o||i)&&(()=>{let pe=i??o,ye=Math.round(t[pe]),Be=X.has(pe);return M("div",{style:{position:"fixed",left:l.x+8,top:l.y-28,background:Be?Ia:r,color:"#fff",fontSize:11,fontWeight:600,fontFamily:'ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace',lineHeight:1,padding:"4px 4px",borderRadius:0,whiteSpace:"nowrap",pointerEvents:"none",zIndex:9997},children:[ye,Be?" \xB7 paint only":""]})})()]})}var Zs=["flex-start","center","flex-end"],ed=["flex-start","center","flex-end"];function Gv(e){return e==="normal"||e==="flex-start"||e==="start"?"flex-start":e==="flex-end"||e==="end"?"flex-end":e==="center"?"center":null}function Qv(e){return e==="normal"||e==="stretch"||e==="flex-start"||e==="start"?"flex-start":e==="flex-end"||e==="end"?"flex-end":e==="center"?"center":null}function pp(e){let t=Array.from(e.children);if(t.length===0)return null;let n=1/0,r=1/0,o=-1/0,i=-1/0;for(let a of t){let l=a.getBoundingClientRect();l.width===0&&l.height===0||(l.top<n&&(n=l.top),l.left<r&&(r=l.left),l.bottom>o&&(o=l.bottom),l.right>i&&(i=l.right))}return n===1/0?null:new DOMRect(r,n,i-r,o-n)}function Zv({element:e,modifier:t,accentColor:n,refreshKey:r=0}){let[o,i]=$(null);if(_(()=>{if(!e){i(null);return}let g=()=>i(pp(e));return g(),window.addEventListener("scroll",g,{passive:!0}),window.addEventListener("resize",g,{passive:!0}),()=>{window.removeEventListener("scroll",g),window.removeEventListener("resize",g)}},[e]),Lt(()=>{e&&i(pp(e))},[e,r]),!o)return null;let a=o,l=window.getComputedStyle(e),s=l.display;if(s!=="flex"&&s!=="inline-flex")return null;let d=l.flexDirection,c=d==="column"||d==="column-reverse"?"vertical":"horizontal",p=c==="horizontal"?"vertical":"horizontal",u=[];if(t==="shift"){let g=Gv(l.justifyContent);if(g){let y=Zs.indexOf(g);c==="horizontal"?(y>0&&u.push("left"),y<Zs.length-1&&u.push("right")):(y>0&&u.push("up"),y<Zs.length-1&&u.push("down"))}}else{let g=Qv(l.alignItems);if(g){let y=ed.indexOf(g);p==="horizontal"?(y>0&&u.push("left"),y<ed.length-1&&u.push("right")):(y>0&&u.push("up"),y<ed.length-1&&u.push("down"))}}if(u.length===0)return null;let f=14,m=7;return h(at,{children:u.map(g=>{let y,w;switch(g){case"right":y=a.right+f,w=a.top+a.height/2;break;case"left":y=a.left-f,w=a.top+a.height/2;break;case"down":y=a.left+a.width/2,w=a.bottom+f;break;case"up":y=a.left+a.width/2,w=a.top-f;break}let k=g==="right"?0:g==="left"?180:g==="down"?90:-90,D={position:"fixed",left:y-m,top:w-m,width:m*2,height:m*2,pointerEvents:"none",zIndex:9997};return h("div",{"data-devtools":"swipe-hint",style:D,children:h("svg",{width:m*2,height:m*2,viewBox:"-7 -7 14 14",style:{overflow:"visible"},children:M("g",{transform:`rotate(${k})`,children:[h("line",{x1:"-5",y1:"0",x2:"3",y2:"0",stroke:"#fff",strokeWidth:"4",strokeLinecap:"round"}),h("polyline",{points:"0,-4 5,0 0,4",fill:"none",stroke:"#fff",strokeWidth:"4",strokeLinecap:"round",strokeLinejoin:"round"}),h("line",{x1:"-5",y1:"0",x2:"3",y2:"0",stroke:n,strokeWidth:"1.5",strokeLinecap:"round"}),h("polyline",{points:"0,-4 5,0 0,4",fill:"none",stroke:n,strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]})})},g)})})}function eb(e,t){let n=e.match(/^oklch\(([^)]+)\)$/i);return n?`oklch(${n[1]} / ${t})`:`color-mix(in srgb, ${e} ${Math.round(t*100)}%, transparent)`}function tb({element:e,fontSize:t,lineHeight:n,accentColor:r,hoveredProperty:o,draggingProperty:i,cursorViewport:a}){let[l,s]=$(null);if(_(()=>{if(!e){s(null);return}let w=()=>{s(ks(e))};return w(),window.addEventListener("scroll",w,{passive:!0}),window.addEventListener("resize",w,{passive:!0}),()=>{window.removeEventListener("scroll",w),window.removeEventListener("resize",w)}},[e]),Lt(()=>{e&&s(ks(e))},[e,t,n]),!l)return null;let d=l.width,c=l.height,p=eb(r,.2),u=i??o,f=8,m=2,g={position:"fixed",top:l.top,left:l.left,width:d,height:c,pointerEvents:"none",zIndex:9996,overflow:"visible"},y=w=>w==="font-size"?`${Math.round(t)}`:(t>0?n/t:1.2).toFixed(2).replace(/\.?0+$/,"");return M("div",{"data-devtools":"text-handles",style:g,children:[M("svg",{style:{position:"absolute",inset:0,width:"100%",height:"100%",overflow:"visible",pointerEvents:"none"},viewBox:`0 0 ${d} ${c}`,children:[h("rect",{x:"0.5",y:"0.5",width:Math.max(0,d-1),height:Math.max(0,c-1),fill:"none",stroke:p,strokeWidth:"1"}),(u==="font-size"||!u)&&h("rect",{x:d-m/2,y:c/2-f/2,width:m,height:f,fill:r,stroke:"#ffffff",strokeWidth:u==="font-size"?4:2,paintOrder:"stroke"}),(u==="line-height"||!u)&&h("rect",{x:d/2-f/2,y:c-m/2,width:f,height:m,fill:r,stroke:"#ffffff",strokeWidth:u==="line-height"?4:2,paintOrder:"stroke"})]}),a&&u&&(()=>{let w=u==="font-size"?"Aa":"Lh",k=y(u);return M("div",{style:{position:"fixed",left:a.x+8,top:a.y-28,background:r,color:"#fff",fontSize:11,fontWeight:600,fontFamily:'ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace',lineHeight:1,padding:"4px 4px",borderRadius:0,whiteSpace:"nowrap",pointerEvents:"none",zIndex:9997},children:[w," ",k]})})()]})}function nb({active:e,accentColor:t,domDropPreview:n,cursorViewport:r,gapElement:o,gapDragging:i,gapHoveredAxis:a,gapIsAuto:l,gapRefreshKey:s,swipeHint:d,radiusElement:c,radiusDragging:p,radiusHoveredCorner:u,textElement:f,textDragging:m,textHoveredProperty:g,paddingElement:y,paddingDragging:w,paddingHoveredSide:k}){if(!e)return null;let D=f&&!m?Bc(f):null;return M(at,{children:[n&&h("div",{"data-devtools":"dom-drop-preview",style:{position:"fixed",zIndex:9997,pointerEvents:"none",backgroundColor:t,boxShadow:`0 0 0 1px ${t}`,opacity:n.mode==="copy"?.72:1,...n.rect.height>=n.rect.width?{left:n.rect.left-2,top:n.placement==="before"?n.rect.top-2:n.rect.bottom,width:n.rect.width+4,height:2}:{left:n.placement==="before"?n.rect.left-2:n.rect.right,top:n.rect.top-2,width:2,height:n.rect.height+4}}}),o&&h(cp,{element:o,gap:i?{row:i.row,column:i.column}:Qa(o),accentColor:t,hoveredAxis:a,draggingAxis:i?.axis??null,cursorViewport:r,isAutoGap:l,refreshKey:s}),d&&h(Zv,{element:d.target,modifier:d.modifier,accentColor:t,refreshKey:s}),!d&&c&&h(sp,{element:c,radius:p?.radius??Ai(c),accentColor:t,hoveredCorner:u,draggingCorner:p?.corner??null,cursorViewport:r}),!d&&f&&h(tb,{element:f,fontSize:m?.fontSize??D.fontSize,lineHeight:m?.lineHeight??D.lineHeight,accentColor:t,hoveredProperty:g,draggingProperty:m?.property??null,cursorViewport:r}),!d&&y&&h(up,{element:y,padding:w?.padding??ma(y),accentColor:t,hoveredSide:k,draggingSide:w?.side??null,cursorViewport:r,refreshKey:m?m.fontSize+m.lineHeight*1e3:0})]})}var rb=4,ob=8,ib=7.2,ab=45,lb=96,sb=89;function hp(e,t){let n=e===0?"Ready":`${e} action${e===1?"":"s"}`,r=ob*2+n.length*ib,o=t?e===0?22:ab:e===0?lb:sb;return{label:n,accessibleShortcut:e===0?"Command Escape to exit":"Command Enter to complete",width:Math.ceil(r+rb+o)}}var db=4,cb=8;function ub({cursor:e,stepCount:t,accentColor:n,toolbarElement:r,threadElement:o}){let[i]=hs(),a=fs[i],[l,s]=$(!1);_(()=>{s(!1);let O=window.setTimeout(()=>s(!0),1e3);return()=>window.clearTimeout(O)},[t]);let d={width:window.innerWidth,height:window.innerHeight},c=hp(t,!1),p=Dc(e,d,22,c.width),u=r?Hc(p,r.getBoundingClientRect(),22,void 0,c.width):1,f=o?Oc(e,p,o.getBoundingClientRect(),22,void 0,void 0,c.width):1,m=Math.min(u,f)<1||l,g=hp(t,m),y=Dc(e,d,22,g.width),w=r?Hc(y,r.getBoundingClientRect(),22,void 0,g.width):1,k=o?Oc(e,y,o.getBoundingClientRect(),22,void 0,void 0,g.width):1,D=Am(w,k,!1),I={position:"fixed",left:y.left,top:y.top,width:g.width,height:22,display:"flex",alignItems:"center",gap:db,boxSizing:"border-box",padding:0,color:"#000000",fontSize:12,fontWeight:400,lineHeight:1,pointerEvents:"none",whiteSpace:"nowrap",transition:"width 180ms cubic-bezier(0.2, 0, 0, 1)",opacity:D,transform:`scale(${D})`,transformOrigin:`${e.x-y.left}px ${e.y-y.top}px`,visibility:D===0?"hidden":"visible",zIndex:2147483647,colorScheme:i};return M("div",{role:"status","aria-label":`${g.label}. ${g.accessibleShortcut}`,"data-devtools":"interaction-episode-hud","data-popmelt-interaction-episode-hud":!0,style:I,children:[h("span",{style:{height:22,display:"inline-flex",alignItems:"center",justifyContent:"center",boxSizing:"border-box",padding:`4px ${cb}px`,borderRadius:"2px 8px 8px 8px",background:n,color:"#dddddd",fontFamily:Mm,lineHeight:1.2},children:g.label}),h("span",{"aria-hidden":"true",style:{height:22,display:"inline-flex",alignItems:"center",justifyContent:"center",boxSizing:"border-box",gap:m?0:6,padding:m?"4px 5px":t===0?"4px 6px 4px 8px":"4px 8px 4px 10px",borderRadius:8,background:a.surface,border:`1px solid ${a.border}`,color:a.primary,fontFamily:os,lineHeight:1.2,letterSpacing:"0.24px",overflow:"hidden",transition:"width 180ms cubic-bezier(0.2, 0, 0, 1), padding 180ms cubic-bezier(0.2, 0, 0, 1)"},children:m?t===0?h(al,{size:12,strokeWidth:2}):M("span",{"data-popmelt-interaction-episode-complete-shortcut":!0,style:{display:"inline-flex",alignItems:"center",gap:2},children:[h(pu,{size:12,strokeWidth:2}),h("span",{children:"+"}),h(Rs,{size:12,strokeWidth:2})]}):M(at,{children:[M("span",{style:{display:"inline-flex",alignItems:"center",gap:2},children:[h(pu,{size:12,strokeWidth:2}),h("span",{children:"+"}),t===0?h("span",{children:"esc"}):h(Rs,{size:12,strokeWidth:2})]}),h("span",{style:{color:a.secondary},children:"to"}),t===0?h(al,{size:12,strokeWidth:2,color:"red"}):h(vo,{size:12,strokeWidth:2,color:"#02bd02"})]})})]})}function pb(e,t){let n=e.match(/^oklch\(([^)]+)\)$/i);return n?`oklch(${n[1]} / ${t})`:`color-mix(in srgb, ${e} ${Math.round(t*100)}%, transparent)`}function hb({styleModifications:e,textModifications:t=[],accentColor:n}){let[r,o]=$([]);if(_(()=>{let a=null,l=()=>{let c=[],p=[...e,...t],u=new Set;for(let f of p){if(u.has(f.selector))continue;let m=tn(f.selector);if(!m)continue;u.add(f.selector);let g=m.getBoundingClientRect();if(g.width===0&&g.height===0)continue;let y=Ai(m);c.push({selector:f.selector,top:g.top,left:g.left,width:g.width,height:g.height,borderRadius:`${y["top-left"]}px ${y["top-right"]}px ${y["bottom-right"]}px ${y["bottom-left"]}px`})}o(c)},s=()=>{a&&cancelAnimationFrame(a),a=requestAnimationFrame(l)};l(),window.addEventListener("scroll",s,{passive:!0}),window.addEventListener("resize",s,{passive:!0});let d=new MutationObserver(s);return d.observe(document.body,{attributes:!0,childList:!0,subtree:!0,attributeFilter:["style","class"]}),()=>{window.removeEventListener("scroll",s),window.removeEventListener("resize",s),d.disconnect(),a&&cancelAnimationFrame(a)}},[e,t]),r.length===0)return null;let i=pb(n,.2);return h(at,{children:r.map(a=>{let l={position:"fixed",top:a.top,left:a.left,width:a.width,height:a.height,pointerEvents:"none",zIndex:9995,border:`1px solid ${i}`,borderRadius:a.borderRadius,boxSizing:"border-box"};return h("div",{"data-devtools":"mod-border",style:l},a.selector)})})}var fp=["topLeft","topRight","bottomRight","bottomLeft"],fb=[["topLeft","topRight"],["topRight","bottomRight"],["bottomRight","bottomLeft"],["bottomLeft","topLeft"]],mb=8,td="#000000",gb="#ffffff";function yb(e){let t=e.match(/^rgba?\(\s*([\d.]+)[,\s]+([\d.]+)[,\s]+([\d.]+)(?:\s*[,/]\s*([\d.]+%?))?\s*\)$/i);if(!t)return null;let n=t[4],r=n?n.endsWith("%")?Number.parseFloat(n)/100:Number.parseFloat(n):1,o={red:Number.parseFloat(t[1]),green:Number.parseFloat(t[2]),blue:Number.parseFloat(t[3]),alpha:r};return Object.values(o).every(Number.isFinite)?o:null}function mp(e){let t=e.parentElement;for(;t;){let n=yb(getComputedStyle(t).backgroundColor);if(n&&n.alpha>=.95)return(n.red*.299+n.green*.587+n.blue*.114)/255>=.55?td:gb;t=t.parentElement}return td}function vb(e){return fp.map(t=>`${e[t].x},${e[t].y}`).join(" ")}function bb(e,t,n,r){let o=Math.atan2(n.y-t.y,n.x-t.x),i=Math.atan2(r.y-e.y,r.x-e.x),a=Math.atan2(Math.sin(i-o),Math.cos(i-o));if(Math.abs(a)<.001)return null;let l=Math.hypot(r.x-e.x,r.y-e.y),s={x:e.x+Math.cos(o)*l,y:e.y+Math.sin(o)*l},d=mb/2,c={x:Math.cos(o),y:Math.sin(o)},p=a>0?1:0;return{path:`M ${s.x} ${s.y} A ${l} ${l} 0 0 ${p} ${r.x} ${r.y}`,startTick:{start:{x:s.x-c.x*d,y:s.y-c.y*d},end:{x:s.x+c.x*d,y:s.y+c.y*d}}}}function Il({element:e,activeFacet:t,accentColor:n,showHandles:r=!0,showRotateHandle:o=!0,scrimOpacity:i=.05,cursorViewport:a,draggingKind:l,draggingCorner:s,ghostQuad:d,refreshKey:c,onHandlePointerDown:p}){let[u,f]=$(null),[m,g]=$(null),[y,w]=$(null),[k,D]=$(null),[I,O]=$(!1),[R,F]=$(td),Q=J("top"),N=J(null),K=`transform-occlusion-${hg().replace(/:/g,"")}`;if(_(()=>{let fe=()=>{let pe=Sr(e)?wa(e):ei(e);N.current=pe,g(pe),D(Xu(e,pe)),O(Gu(e)),F(mp(e));let ye=Sr(e)?Di(e,pe):ei(e);w(ye),f(ye)};fe(),window.addEventListener("scroll",fe,{passive:!0}),window.addEventListener("resize",fe,{passive:!0});let re=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>fe());return re?.observe(e),()=>{window.removeEventListener("scroll",fe),window.removeEventListener("resize",fe),re?.disconnect()}},[e]),Lt(()=>{let fe=l&&N.current?N.current:Sr(e)?wa(e):ei(e);N.current=fe,g(fe),D(Xu(e,fe)),O(Gu(e)),F(mp(e));let re=Sr(e)?Di(e,fe):ei(e);w(re),f(re)},[l,e,c]),!u)return null;let q=a?Ys(u,a,20,{currentSide:Q.current,hysteresis:8,viewport:{width:window.innerWidth,height:window.innerHeight}}):tp(u,20);l!=="rotate"&&(Q.current=q.side);let S=l==="rotate"?{...Oi(u,void 0,Q.current),side:Q.current}:q,ee={position:"fixed",inset:0,pointerEvents:"none",zIndex:p?9999:9996},G=l?.95:.72,H=!!(m&&Av(m,u)),j=m&&y&&k?Vu(k,m,y):k,P=j?ep(u,j):u,E=d&&m&&k?Vu(k,m,d):k,C=d&&E?ep(d,E):d,X=Sa(u),ce=d?Sa(d):null,ue=d?Oi(d,void 0,S.side):null,Y=ue&&ce?bb(X,ce,ue.handle,S.handle):null,he=I&&y&&j?Us(y,j):null,W=he?`url(#${K})`:void 0;return h("div",{"data-devtools":r?"transform-handles":"element-boundary","data-popmelt-steer-overlay":!0,"data-transform-facet":t,style:ee,children:M("svg",{width:"100%",height:"100%",style:{position:"absolute",inset:0,pointerEvents:"none"},children:[he&&h("defs",{children:M("mask",{id:K,maskUnits:"userSpaceOnUse",x:"0",y:"0",width:"100%",height:"100%",children:[h("rect",{width:"100%",height:"100%",fill:"#ffffff"}),h("path",{"data-transform-occlusion-mask":"",d:he,fill:"#000000"})]})}),H&&m&&k&&h("path",{"data-transform-layout-plate":"",d:Us(m,k),fill:R,fillOpacity:"0.07",stroke:"none",mask:W}),h("path",{"data-transform-effective-outline":"","data-transform-effective-scrim":"",d:j?Us(u,j):`M ${vb(u)} Z`,fill:n,fillOpacity:i,stroke:n,strokeWidth:"1",strokeOpacity:G}),l==="translate"&&ce&&M("g",{"data-transform-origin-trace":"translate",children:[h("line",{x1:ce.x,y1:ce.y,x2:X.x,y2:X.y,stroke:"#808080",strokeWidth:"1",strokeDasharray:"2 3",strokeLinecap:"round",opacity:"0.72"}),h("circle",{"data-transform-origin-point":"",cx:ce.x,cy:ce.y,r:"3",fill:"#808080",stroke:"#ffffff",strokeWidth:"1",opacity:"0.85"})]}),l==="scale"&&s&&C&&M("g",{"data-transform-origin-trace":"scale",children:[h("line",{x1:C[s].x,y1:C[s].y,x2:P[s].x,y2:P[s].y,stroke:"#808080",strokeWidth:"1",strokeDasharray:"2 3",strokeLinecap:"round",opacity:"0.72"}),h("circle",{"data-transform-origin-point":"",cx:C[s].x,cy:C[s].y,r:"3",fill:"#808080",stroke:"#ffffff",strokeWidth:"1",opacity:"0.85"})]}),l==="rotate"&&Y&&M("g",{"data-transform-origin-trace":"rotate",children:[h("path",{"data-transform-rotation-arc":"",d:Y.path,fill:"none",stroke:"#808080",strokeWidth:"1",strokeDasharray:"2 3",strokeLinecap:"round",opacity:"0.72"}),h("line",{"data-transform-rotation-arc-start":"",x1:Y.startTick.start.x,y1:Y.startTick.start.y,x2:Y.startTick.end.x,y2:Y.startTick.end.y,stroke:"#808080",strokeWidth:"1",strokeLinecap:"round",opacity:"0.85"})]}),p&&fb.map(([fe,re])=>h("line",{"data-transform-handle":"translate",x1:u[fe].x,y1:u[fe].y,x2:u[re].x,y2:u[re].y,stroke:"transparent",strokeWidth:Bu,style:{pointerEvents:"stroke",cursor:"move"},onPointerDown:pe=>p("translate",null,pe)},`${fe}-${re}`)),r&&M("g",{"data-transform-affordances":"",children:[fp.map(fe=>M("g",{children:[h("rect",{x:P[fe].x-6/2,y:P[fe].y-6/2,width:6,height:6,fill:n,stroke:"#ffffff",strokeWidth:2}),p&&h("circle",{"data-transform-handle":"scale","data-transform-corner":fe,cx:P[fe].x,cy:P[fe].y,r:20/2,fill:"transparent",style:{pointerEvents:"all",cursor:fe==="topLeft"||fe==="bottomRight"?"nwse-resize":"nesw-resize"},onPointerDown:re=>p("scale",fe,re)})]},fe)),o&&M(at,{children:[h("line",{x1:S.edge.x,y1:S.edge.y,x2:S.handle.x,y2:S.handle.y,stroke:n,strokeWidth:"1",opacity:G}),h("circle",{cx:S.handle.x,cy:S.handle.y,r:6/2,fill:n,stroke:"#ffffff",strokeWidth:2}),p&&h("line",{"data-transform-handle":"rotate",x1:S.edge.x,y1:S.edge.y,x2:S.handle.x,y2:S.handle.y,stroke:"transparent",strokeWidth:20,strokeLinecap:"round",style:{pointerEvents:"stroke",cursor:"grab"},onPointerDown:fe=>{Q.current=S.side,p("rotate",null,fe,S.side)}})]})]})]})})}var xb=["top","right","bottom","left"];function wb(e){return e==="all"?xb:e==="x"?["left","right"]:e==="y"?["top","bottom"]:e==="top"||e==="right"||e==="bottom"||e==="left"?[e]:[]}function Sb(e){return e==="top-left"||e==="top-right"||e==="bottom-right"||e==="bottom-left"?e:null}function gp(e,t,n,r){return e&&n==="value"&&t==="transform"&&(r==="translate"||r==="scale"||r==="rotate")}function Ib({active:e,accentColor:t,family:n,stage:r,subproperty:o,hoveredElement:i,previewElement:a,transformPreviewElement:l,previewRevision:s,cursorViewport:d,drag:c,onGapPointerDown:p,onRadiusPointerDown:u,onSpacingPointerDown:f,onTransformPointerDown:m}){let g=e&&r==="value",y=i instanceof HTMLElement&&a===i,w=i instanceof HTMLElement&&(ws(i,"row")||ws(i,"column")),k=c?.family==="transform"?c.element:i,D=gp(e,n,r,o)?o:null,I=D!==null&&Sr(k)&&(a===k||l===k||c?.family==="transform");return M(at,{children:[g&&(n==="padding"||n==="margin")&&y&&h(up,{element:i,padding:n==="margin"?Ac(i):ma(i),mode:n,accentColor:t,hoveredSide:c?.family===n?c.side??null:null,draggingSide:c?.family===n?c.side??null:null,activeSides:wb(o),refreshKey:s,cursorViewport:c?.cursor,onHandlePointerDown:(O,R)=>f(n,O,R)}),g&&(n==="stack"||n==="grid")&&o==="gap"&&y&&h(cp,{element:i,gap:Qa(i),accentColor:t,hoveredAxis:c?.gapAxis??null,draggingAxis:c?.gapAxis??null,refreshKey:s,cursorViewport:c?.cursor,isAutoGap:w,onHandlePointerDown:w?void 0:p}),g&&n==="radius"&&y&&h(sp,{element:i,radius:Ai(i),accentColor:t,hoveredCorner:Sb(o),draggingCorner:c?.corner??null,cursorViewport:c?.cursor,onHandlePointerDown:u}),I&&h(Il,{element:k,activeFacet:D,accentColor:t,draggingKind:c?.family==="transform"?c.transformKind??null:null,draggingCorner:c?.family==="transform"?c.transformCorner??null:null,ghostQuad:c?.family==="transform"?c.ghostQuad??null:null,cursorViewport:c?.cursor??d,refreshKey:s,onHandlePointerDown:m})]})}var So=8,yp=2,kb=66,Eb=3;function Tb(){let e=Math.random()*Math.PI*2,t=5+Math.random()*8;return{x:Math.cos(e)*t,y:Math.sin(e)*t}}function Cb({onSave:e}){let[t,n]=$(!1),[r]=hs(),o=fs[r];return M("button",{type:"button","data-popmelt-subject-label-save":!0,"data-hovered":t?"true":"false","aria-label":"Save object label",onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),onPointerDown:i=>{i.preventDefault(),i.stopPropagation()},onClick:i=>{i.preventDefault(),i.stopPropagation(),e()},style:{appearance:"none",boxSizing:"border-box",height:22,display:"inline-flex",alignItems:"center",justifyContent:"center",gap:4,margin:0,padding:"0 8px",border:`1px solid ${o.border}`,borderRadius:8,backgroundColor:o.surface,color:o.primary,fontFamily:An,fontSize:12,fontWeight:600,letterSpacing:"0.24px",lineHeight:1,whiteSpace:"nowrap",cursor:"pointer",pointerEvents:"auto",userSelect:"none",touchAction:"manipulation"},children:[M("span",{className:"popmelt-subject-save-default",children:[h(Rs,{size:12,strokeWidth:2,"aria-hidden":!0}),h("span",{style:{color:o.secondary},children:"to"}),h(vo,{size:12,strokeWidth:2,"aria-hidden":!0})]}),M("span",{className:"popmelt-subject-save-hovered",children:[h("span",{children:"Save"}),h(vo,{size:12,strokeWidth:2,"aria-hidden":!0})]})]})}function Ab(e,t){let n=t.x-e.start.x,r=t.y-e.start.y;if(e.kind==="translate")return{...e.bounds,left:e.bounds.left+n,top:e.bounds.top+r};let o=e.bounds.left+e.bounds.width,i=e.bounds.top+e.bounds.height;switch(e.corner){case"topLeft":{let a=Math.min(o-So,e.bounds.left+n),l=Math.min(i-So,e.bounds.top+r);return{left:a,top:l,width:o-a,height:i-l}}case"topRight":{let a=Math.max(e.bounds.left+So,o+n),l=Math.min(i-So,e.bounds.top+r);return{left:e.bounds.left,top:l,width:a-e.bounds.left,height:i-l}}case"bottomLeft":{let a=Math.min(o-So,e.bounds.left+n),l=Math.max(e.bounds.top+So,i+r);return{left:a,top:e.bounds.top,width:o-a,height:l-e.bounds.top}}default:{let a=Math.max(e.bounds.left+So,o+n),l=Math.max(e.bounds.top+So,i+r);return{left:e.bounds.left,top:e.bounds.top,width:a-e.bounds.left,height:l-e.bounds.top}}}}function Mb({accentColor:e,created:t,registry:n,target:r,onCommit:o,onClose:i,onCancelCreated:a}){let l=n.resolve(r),s=J(l?.subject.label??"object"),[d,c]=$(s.current),p=l?.subject.trackingAnchors?.map(P=>({...P}))??[],u=J(p),[f,m]=$(p),[g,y]=$(0),[w,k]=$(0),D=J(null),I=J(null),O=J(null),R=J(!1),F=n.resolve(r),Q=we(()=>{let P=typeof document>"u"?null:document.createElement("canvas").getContext("2d");P&&(P.font=`${Nc}px ${An}`);let E=C=>(P?.measureText(C).width??C.length*7.2)+Math.max(0,C.length-1)*Bm;return{label:Math.max(8,E(d||" ")),full:E(`<${d||" "}>`)+Fc*2}},[d]);if(Lt(()=>{O.current?.focus(),O.current?.select()},[]),Lt(()=>{if(g)for(let P of I.current?.querySelectorAll("[data-popmelt-tracking-anchor]")??[]){let E=Tb();P.animate?.([{transform:"translate(-50%, -50%)"},{transform:`translate(calc(-50% + ${E.x}px), calc(-50% + ${E.y}px))`},{transform:`translate(calc(-50% - ${E.x*.55}px), calc(-50% - ${E.y*.55}px))`},{transform:"translate(-50%, -50%)"}],{duration:220,easing:"ease-out"})}},[g]),_(()=>n.subscribeFrame(()=>k(P=>P+1)),[n]),_(()=>{let P=C=>{let X=D.current;X&&(n.updateBounds(r,Ab(X,{x:C.clientX,y:C.clientY})),k(ce=>ce+1))},E=()=>{D.current=null,k(C=>C+1)};return window.addEventListener("pointermove",P,!0),window.addEventListener("pointerup",E,!0),window.addEventListener("pointercancel",E,!0),()=>{window.removeEventListener("pointermove",P,!0),window.removeEventListener("pointerup",E,!0),window.removeEventListener("pointercancel",E,!0)}},[n,r]),!F)return null;let N=()=>{if(R.current)return;let P=d.trim();if(!P){t&&a();return}let E=u.current,C=E.length===1?[]:E,X=F.adapter.updateSubjectTrackingAnchors?n.updateTrackingAnchors(r,C):null,ce=n.rename(r,P)??X;ce&&o(ce),i()},K=()=>{R.current=!0,t?a():i()},{bounds:q}=F.subject,S=!!F.adapter.updateSubjectTrackingAnchors,ee=Math.min(400,Q.full),G=ee+yp+kb,H=wc({left:q.left,right:q.left+q.width,top:q.top,bottom:q.top+q.height,height:q.height},22,2,window.innerHeight,G,window.innerWidth),j=H.horizontalAlignment==="right"?H.left-G:H.left;return M(at,{children:[h(Il,{element:F.element,activeFacet:"translate",accentColor:e,showRotateHandle:!1,refreshKey:w,draggingKind:D.current?.kind??null,draggingCorner:D.current?.corner??null,onHandlePointerDown:(P,E,C)=>{P!=="rotate"&&(C.preventDefault(),C.stopPropagation(),D.current={kind:P,corner:E,start:{x:C.clientX,y:C.clientY},bounds:{...F.subject.bounds}},k(X=>X+1))}}),S&&h("div",{ref:I,"data-popmelt-tracking-anchor-surface":!0,"aria-label":"Add tracking anchor",onPointerDown:P=>{if(P.button!==0)return;P.preventDefault(),P.stopPropagation();let E=u.current;if(E.length>=Eb){y(X=>X+1);return}let C=[...E,{x:Math.max(0,Math.min(1,(P.clientX-q.left)/q.width)),y:Math.max(0,Math.min(1,(P.clientY-q.top)/q.height))}];u.current=C,m(C)},style:{position:"fixed",left:q.left,top:q.top,width:q.width,height:q.height,pointerEvents:"auto",cursor:"crosshair",zIndex:9998},children:f.map((P,E)=>h("span",{"data-popmelt-tracking-anchor":!0,"data-popmelt-tracking-anchor-reject":g?"true":void 0,style:{position:"absolute",left:`${P.x*100}%`,top:`${P.y*100}%`,width:10,height:10,boxSizing:"border-box",border:"2px solid #ffffff",borderRadius:"50%",background:e,boxShadow:"0 1px 3px rgba(0, 0, 0, 0.35)",pointerEvents:"none",transform:"translate(-50%, -50%)"}},E))}),h("style",{children:`
|
|
34
|
+
[data-popmelt-subject-label-editor]::selection {
|
|
35
|
+
background: #000000;
|
|
36
|
+
color: #ffffff;
|
|
37
|
+
}
|
|
38
|
+
.popmelt-subject-save-default {
|
|
39
|
+
display: inline-flex;
|
|
40
|
+
align-items: center;
|
|
41
|
+
gap: 4px;
|
|
42
|
+
}
|
|
43
|
+
.popmelt-subject-save-hovered {
|
|
44
|
+
display: none;
|
|
45
|
+
align-items: center;
|
|
46
|
+
gap: 4px;
|
|
47
|
+
}
|
|
48
|
+
[data-popmelt-subject-label-save][data-hovered="true"] .popmelt-subject-save-default {
|
|
49
|
+
display: none;
|
|
50
|
+
}
|
|
51
|
+
[data-popmelt-subject-label-save][data-hovered="true"] .popmelt-subject-save-hovered {
|
|
52
|
+
display: inline-flex;
|
|
53
|
+
}
|
|
54
|
+
@media (max-width: 767px) {
|
|
55
|
+
.popmelt-subject-save-default { display: none; }
|
|
56
|
+
.popmelt-subject-save-hovered { display: inline-flex; }
|
|
57
|
+
}
|
|
58
|
+
`}),M("div",{style:{position:"fixed",left:j,top:H.top,display:"flex",alignItems:"center",gap:yp,pointerEvents:"auto",zIndex:1e4},children:[M("div",{"data-popmelt-subject-label-editor":!0,style:{...Rm(e),width:ee,gap:0,borderRadius:ps(H.anchor)},children:[h("span",{"aria-hidden":!0,children:"<"}),h("input",{ref:O,"data-popmelt-subject-label-input":!0,value:d,"aria-label":"Object label",spellCheck:!1,onChange:P=>c(P.target.value),onBlur:N,onKeyDown:P=>{P.key==="Escape"?(P.preventDefault(),K()):P.key==="Enter"&&!P.metaKey&&!P.ctrlKey&&(P.preventDefault(),N())},style:{appearance:"none",boxSizing:"content-box",width:Math.min(Q.label,400-Fc*2-16),minWidth:0,height:`${Nc*1.2}px`,margin:0,padding:0,border:0,outline:0,background:"transparent",color:"inherit",font:"inherit",letterSpacing:"inherit",lineHeight:"inherit"}}),h("span",{"aria-hidden":!0,children:">"})]}),h(Cb,{onSave:N})]})]})}var vp=2;function Rb(e,t){if((e.annotation.status??"pending")!=="pending")return null;let n={x:t.x-e.startPoint.x,y:t.y-e.startPoint.y};return e.hasMoved?{session:{...e,startPoint:t},move:{delta:n,saveUndo:!1}}:Math.abs(n.x)>vp||Math.abs(n.y)>vp?{session:{...e,hasMoved:!0,startPoint:t},move:{delta:n,saveUndo:!0}}:null}function $b({session:e,clickPoint:t,groupLabelWidth:n=0}){let{annotation:r}=e;return e.hasMoved||r.type!=="text"||(r.status??"pending")!=="pending"?null:{activeText:{id:r.id,point:r.points[0],text:r.text||"",fontSize:r.fontSize||12,isNew:!1,clickPoint:{x:t.x-n,y:t.y},groupId:r.groupId,linkedSelector:r.linkedSelector,linkedAnchor:r.linkedAnchor,elements:r.elements,attachments:r.attachments,interactionEpisode:r.interactionEpisode},color:r.color}}function bp(e,t,n,r,o){let i={...e},a=i.right-i.left||1,l=i.bottom-i.top||1,s=a/l,d={...e};switch(t){case"topLeft":d.left=n.x,d.top=n.y;break;case"topRight":d.right=n.x,d.top=n.y;break;case"bottomLeft":d.left=n.x,d.bottom=n.y;break;case"bottomRight":d.right=n.x,d.bottom=n.y;break}if(r)switch(t){case"topLeft":d.right=i.right+(i.left-d.left),d.bottom=i.bottom+(i.top-d.top);break;case"topRight":d.left=i.left-(d.right-i.right),d.bottom=i.bottom+(i.top-d.top);break;case"bottomLeft":d.right=i.right+(i.left-d.left),d.top=i.top-(d.bottom-i.bottom);break;case"bottomRight":d.left=i.left-(d.right-i.right),d.top=i.top-(d.bottom-i.bottom);break}if(o){let c=d.right-d.left,p=d.bottom-d.top;if(Math.abs(c/p)>s){let u=Math.abs(p)*s*Math.sign(c);t==="topLeft"||t==="bottomLeft"?d.left=d.right-u:d.right=d.left+u}else{let u=Math.abs(c)/s*Math.sign(p);t==="topLeft"||t==="topRight"?d.top=d.bottom-u:d.bottom=d.top+u}}return d}function Pb({annotation:e,session:t,point:n,centerOrigin:r,lockAspect:o}){let{handle:i,originalPoints:a}=t;if(e.type==="line"){let p=a[0],u=a[a.length-1];return i==="start"?[n,u]:[p,n]}if(e.type==="freehand"){let p={left:Math.min(...a.map(w=>w.x)),right:Math.max(...a.map(w=>w.x)),top:Math.min(...a.map(w=>w.y)),bottom:Math.max(...a.map(w=>w.y))},u=p.right-p.left||1,f=p.bottom-p.top||1,m=bp(p,i,n,r,o),g=m.right-m.left||1,y=m.bottom-m.top||1;return a.map(w=>({x:m.left+(w.x-p.left)/u*g,y:m.top+(w.y-p.top)/f*y}))}let l=a[0],s=a[a.length-1],d={left:Math.min(l.x,s.x),right:Math.max(l.x,s.x),top:Math.min(l.y,s.y),bottom:Math.max(l.y,s.y)};if(e.type==="circle"){let p=(d.left+d.right)/2,u=(d.top+d.bottom)/2,f=d.right-d.left,m=d.bottom-d.top,g={...d};switch(i){case"top":{if(g.top=n.y,r&&(g.bottom=u+(u-n.y)),o){let y=(g.bottom-g.top)*(f/m)/2;g.left=p-y,g.right=p+y}break}case"bottom":{if(g.bottom=n.y,r&&(g.top=u-(n.y-u)),o){let y=(g.bottom-g.top)*(f/m)/2;g.left=p-y,g.right=p+y}break}case"left":{if(g.left=n.x,r&&(g.right=p+(p-n.x)),o){let y=(g.right-g.left)*(m/f)/2;g.top=u-y,g.bottom=u+y}break}case"right":{if(g.right=n.x,r&&(g.left=p-(n.x-p)),o){let y=(g.right-g.left)*(m/f)/2;g.top=u-y,g.bottom=u+y}break}}return[{x:g.left,y:g.top},{x:g.right,y:g.bottom}]}let c=bp(d,i,n,r,o);return[{x:c.left,y:c.top},{x:c.right,y:c.bottom}]}function Lb(){let[e,t]=$(null),[n,r]=$(null);return{dragState:e,resizeState:n,setDragState:t,setResizeState:r}}function nd(e,t,n=!0){let r=new Map(xc(e.segments,e.originalText,t).map(({segment:o,modifiedText:i})=>[o,i]));return{type:"MODIFY_TEXT_CONTENTS",...n?{}:{saveUndo:!1},payload:e.segments.map(o=>({selector:e.selector,durableSelector:e.durableSelector,element:e.element,textNodePath:o.textNodePath,original:o.originalText,modified:r.get(o)??o.originalText}))}}function jb(e,t,n){return e||(t>0?`[${t} image${t>1?"s":""}]`:n[0]?.name??"")}function zb(e){if(e.domEdit){let i=e.domEdit;return e.text===i.originalText?{action:null,sendHintAnchorId:null,attachedImages:null}:{action:nd(i,e.text),sendHintAnchorId:null,attachedImages:null}}let t=e.images??[],n=t.length,r=e.attachments??[];if(!(e.text.trim()||n>0||r.length>0||e.interactionEpisode?.steps.length))return{action:e.isNew?null:{type:"DELETE_ANNOTATION",payload:{id:e.id}},sendHintAnchorId:null,attachedImages:null};let o=jb(e.text,n,r)||`[Interaction episode: ${e.interactionEpisode?.steps.length??0} steps]`;return{action:e.isNew?{type:"ADD_TEXT",payload:{point:e.point,text:o,fontSize:e.fontSize,id:e.id,groupId:e.groupId,linkedSelector:e.linkedSelector,target:e.target,linkedAnchor:e.linkedAnchor,elements:e.elements,...n>0?{imageCount:n}:{},...r.length>0?{attachments:r}:{},...e.interactionEpisode?{interactionEpisode:e.interactionEpisode}:{}}}:{type:"UPDATE_TEXT",payload:{id:e.id,text:o,...n>0?{imageCount:n}:{},attachments:r,interactionEpisode:e.interactionEpisode}},sendHintAnchorId:e.id,attachedImages:n>0?{annotationId:e.id,images:t}:null}}var Fi=0,Db=2,Hb=60;function xp({anchorLeftX:e,anchorRightX:t,editorWidth:n,trailingWidth:r,viewportWidth:o}){let i=Math.max(Fi,o-Fi),a=Math.max(Fi,Math.min(t,i)),l=r>0?r+Db:0,s=n+l,d=Math.max(0,e-8),c=a-s,p=Math.max(0,Fi-d)+Math.max(0,d+s-i),u=Math.max(0,Fi-c)<p?"right":"left",f=Math.max(Hb,u==="right"?a-Fi-l:i-d-l),m=Math.min(n,f);return{horizontalAlignment:u,editorLeft:u==="right"?a-l-m:d,maxEditorWidth:f}}function Ob({prefix:e,fontSize:t,railGap:n,context:r}){if(!e)return 0;let o=t*.6,i=r?.measureText(e).width??e.length*o,a=n??(r?.measureText(" ").width??o)/2;return i+a}function Nb({text:e,fontSize:t,point:n,clickPoint:r,context:o}){let i=e.split(`
|
|
59
|
+
`),a=t*rr,l=Math.max(0,Math.min(i.length-1,Math.floor((r.y-n.y)/a))),s=i[l]??"",d=r.x-n.x,c=s.length;for(let u=0;u<=s.length;u+=1){let f=o.measureText(s.slice(0,u)).width;if(f<=d)continue;let m=u>0?o.measureText(s.slice(0,u-1)).width:0;c=Math.max(0,d-m<f-d?u-1:u);break}let p=c;for(let u=0;u<l;u+=1)p+=(i[u]?.length??0)+1;return p}function rd({text:e,fontSize:t,effectiveMaxWidth:n,annotationPrefixWidth:r,isModifiedRail:o,fitToContent:i=o,context:a}){let l=a.measureText("Type here...").width,s=i&&e.length>0?a.measureText(" ").width:l,d=Tm(e).split(`
|
|
60
|
+
`),c=Math.max(s,...d.map(u=>a.measureText(u||" ").width)),p=Math.max(s,n-r-(o?16:0));if(c>p){let u=Cm(a,d,p);return{width:Math.min(p,Math.max(s,...u.map(f=>a.measureText(f).width))),height:Math.max(1,u.length)*t*rr,isWrapped:!0}}return{width:c,height:Math.max(1,d.length)*t*rr,isWrapped:!1}}function Fb(e,t){return e&&t!=="model"}function _b(e,t,n,r=6){return e.moved?e:{...e,moved:Math.hypot(t-e.startX,n-e.startY)>r}}function Wb(e){return!!(e&&!e.moved)}function Bb(e){return e==="hand"}var wp={"active-edit":100,"direct-manipulation":90,"in-flight":80,"bundle-preview":70,"nested-preview":65,"annotation-hover":60,"badge-hover":60,"thread-focus":50,selected:45,"pending-change":40,"inspector-hover":30};function Jb(e){let t=new Map;for(let n of e){let r=t.get(n.target);(!r||wp[n.owner]>wp[r])&&t.set(n.target,n.owner)}return t}function qb({activeText:e,pendingLinkedText:t,activeTextSendHintId:n,activeTool:r,isAnnotating:o,annotations:i,pageAnnotations:a,pageStyleModifications:l,pageTextModifications:s,supersededAnnotations:d,nestedBadgeHover:c,isSendBundleHovered:p,badgeHoveredAnnotationId:u,hoveredTextId:f,badgeHoveredSelector:m,focusedThreadAnnotationId:g,inFlightSelectorColors:y,focusedSelectorColors:w,hoveredElement:k}){let D=E=>E?i.find(C=>C.id===E)?.linkedSelector??null:null,I=c?c.ownerId===n?e?.linkedSelector??null:D(c.ownerId):null,O=(E,C)=>{if(!C)return!1;try{return E.matches(C)}catch{return!1}},R=E=>{let C=null;for(let X of a)!X.linkedSelector||d.has(X)||pn(X.linkedSelector,X.elements)!==E||(!C||X.timestamp>C.timestamp)&&(C=X);return C},F=[e?.linkedSelector,t?.linkedSelector,D(g),D(c||p?null:u),D(c||p?null:f),m].filter(Boolean),Q=c||p?null:u||f,N=E=>F.some(C=>O(E,C)),K=[],q=(E,C)=>{E&&K.push({target:E,owner:C})},S=(E,C,X)=>{E&&q(pn(E,X),C)};if(o){if(r==="hand")for(let E of l)E.captured||S(E.selector,"pending-change");for(let E of s)E.captured||S(E.selector,"pending-change");for(let E of y?.keys()??[])S(E,"in-flight");for(let E of w?.keys()??[])S(E,"selected");if(S(e?.domEdit?e.linkedSelector:null,"active-edit",e?.elements),!c&&!p&&S(e?.linkedSelector||t?.linkedSelector,"direct-manipulation",e?.elements||t?.elements),!p&&g){let E=i.find(C=>C.id===g);E?.linkedSelector&&I!==E.linkedSelector&&S(E.linkedSelector,"thread-focus",E.elements)}if(Q){let E=i.find(C=>C.id===Q);S(E?.linkedSelector,"annotation-hover",E?.elements)}if(c&&!p)for(let E of c.annotationIds){let C=i.find(X=>X.id===E);S(C?.linkedSelector,"nested-preview",C?.elements)}if(p){for(let E of a)(E.status??"pending")==="pending"&&S(E.linkedSelector,"bundle-preview",E.elements);e&&!e.domEdit&&e.text?.trim()&&S(e.linkedSelector,"bundle-preview",e.elements);for(let E of[...l,...s])E.captured||S(E.selector,"bundle-preview",[E.element])}S(m,"badge-hover"),(r==="inspector"||r==="sticker")&&k&&!Q&&!m&&q(k,"inspector-hover")}let ee=Jb(K),G=(E,C)=>ee.get(E)===C,H=(E,C)=>{if(!E)return null;let X=new Map,ce=new Set;for(let[ue,Y]of E){let he=pn(ue);he&&G(he,C)&&!ce.has(he)&&(ce.add(he),X.set(ue,Y))}return X.size>0?X:null},j=new Set,P=(E,C)=>!G(E,C)||j.has(E)?!1:(j.add(E),!0);return{hasExistingOverlay:E=>ee.has(E),nestedBadgeOwnerSelector:I,hoveredLinkedAnnotationId:Q,hasSelectedHighlightForElement:N,getExistingAnnotationForElement:R,ownedInFlightSelectorColors:H(y,"in-flight"),ownedFocusedSelectorColors:H(w,"selected"),claimElementOverlay:P}}function Ub(e){let[t,n]=$();return Lt(()=>{if(!e)return;let r,o=()=>{if(!e.isConnected)return;let i=e.getBoundingClientRect();n(a=>a?.element===e&&a.rect.x===i.x&&a.rect.y===i.y&&a.rect.width===i.width&&a.rect.height===i.height?a:{element:e,rect:i}),r=requestAnimationFrame(o)};return o(),()=>cancelAnimationFrame(r)},[e]),t?.element===e?t.rect:void 0}var Yb=180,Sp=16,Xb=50,Ip=180;async function Kb(e){let t=new Uint8Array(await e.arrayBuffer()),n=2166136261;for(let r of t)n^=r,n=Math.imul(n,16777619);return`${e.size.toString(36)}-${(n>>>0).toString(36)}`}function kp(e,t){return!e.frames||t===0?e:{...e,frames:e.frames.map(n=>({...n,imageIndex:n.imageIndex+t}))}}function od(e){let t=e?.replace(/\s+/g," ").trim();if(t)return t.slice(0,Ip)}function Vb(e){try{return yo(e)}catch{return}}function Ep(e){if(e instanceof HTMLVideoElement){let t=Number.isFinite(e.duration)?e.duration:void 0;return{kind:"video",currentTime:e.currentTime,...t===void 0?{}:{duration:t},paused:e.paused}}}function _i(e){if(!e||Gr(e))return;let t=e instanceof HTMLElement?e:null,n=e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement?e:null,r=e.getBoundingClientRect(),o=e.getAttribute("role")??void 0,i=od(e.getAttribute("class")),a=od(e.getAttribute("aria-label")),l=od(n instanceof HTMLInputElement||n instanceof HTMLTextAreaElement?void 0:e.textContent),s=Ep(e);return{selector:Vb(e),tagName:e.tagName.toLowerCase(),...i?{className:i}:{},...o?{role:o}:{},...a?{ariaLabel:a}:{},...l?{text:l}:{},...n&&!(n instanceof HTMLInputElement&&n.type==="password")?{value:n.value.slice(0,Ip)}:{},...e instanceof HTMLInputElement&&(e.type==="checkbox"||e.type==="radio")?{checked:e.checked}:{},...t&&"disabled"in t&&typeof t.disabled=="boolean"?{disabled:t.disabled}:{},...e.hasAttribute("aria-expanded")?{expanded:e.getAttribute("aria-expanded")==="true"}:{},...e.hasAttribute("aria-pressed")?{pressed:e.getAttribute("aria-pressed")==="true"}:{},...e.hasAttribute("aria-selected")?{selected:e.getAttribute("aria-selected")==="true"}:{},rect:{x:Math.round(r.x),y:Math.round(r.y),width:Math.round(r.width),height:Math.round(r.height)},...s?{media:s}:{}}}function id(e){let{subject:t,target:n,adapter:r}=e,{left:o,top:i,width:a,height:l}=t.bounds,s=Ep(t.sourceElement??null);return{tagName:r.id,rect:{x:Math.round(o),y:Math.round(i),width:Math.round(a),height:Math.round(l)},subject:{adapter:n.adapter,key:n.key,label:t.label,...t.context?{context:t.context}:{},...t.data?{data:{...t.data}}:{}},...s?{media:s}:{}}}function Gb(e){return e.type==="click"?"click":e.type==="input"?"input":e.type==="change"?"change":e.type==="submit"?"submit":e.type==="keydown"?"keydown":e.type==="play"?"play":e.type==="pause"?"pause":e.type==="seeked"?"seek":null}function Qb(e,t,n){if(e==="scroll")return"Scrolled the page";let r=n??_i(t),o=r?.subject?.label??r?.ariaLabel??r?.text??r?.tagName??"element";return e==="click"?`Clicked ${o}`:e==="drag"?`Dragged ${o}`:e==="input"?`Entered text in ${o}`:e==="change"?`Changed ${o}`:e==="submit"?`Submitted ${o}`:e==="play"?`Played ${o}`:e==="pause"?`Paused ${o}`:e==="seek"?`Sought in ${o}`:`Pressed a key on ${o}`}function Zb(e,t){return JSON.stringify(e)!==JSON.stringify(t)}function ex(e){return e.metaKey||e.ctrlKey||e.altKey?!1:["Enter"," ","Escape","Tab","ArrowUp","ArrowDown","ArrowLeft","ArrowRight"].includes(e.key)}function tx(e){return e instanceof Element?e:e.parentElement}function nx(e){let t=e.now??(()=>Date.now()),n=t(),r=[],o=null,i=0,a=!1,l=e.captureFrame?.().catch(()=>null)??Promise.resolve(null),s=[],d=null,c=()=>{if(window.clearTimeout(i),i=0,!o)return;let m=t(),g=o.captureResult?.()??_i(o.targetElement),y=o.kind==="input"||o.kind==="change"||o.kind==="submit"||o.kind==="scroll"||o.kind==="play"||o.kind==="pause"||o.kind==="seek",w={id:o.id,action:{kind:o.kind,label:o.label,...o.key?{key:o.key}:{},...o.target?{target:o.target}:{}},startedAt:o.startedAt,completedAt:m,outcome:y||o.changes.length>0||Zb(o.target,g)?"changed":"no-observable-change",changes:o.changes,...g?{result:g}:{}};if(o=null,r.length<Xb&&(r.push(w),e.onStep?.(w),e.captureFrame)){let k=l,D=e.captureFrame().catch(()=>null);l=D,s.push(Promise.all([k,D]).then(([I,O])=>({step:w,before:I,after:O})))}},p=()=>{window.clearTimeout(i),i=window.setTimeout(c,Yb)},u=(m,g,y)=>{let{element:w,state:k}=g,D=o?.kind==="input"&&m==="input"&&o.targetElement===w,I=o?.kind==="click"&&(m==="input"||m==="change"||m==="play"||m==="pause"||m==="seek")&&o.targetElement===w;if(D||I){p();return}c(),o={id:`episode-step-${n}-${r.length+1}`,kind:m,label:Qb(m,w,k),...y?{key:y}:{},targetElement:w,target:k,captureResult:g.captureResult,startedAt:t(),changes:[]},e.onActionCountChange?.(r.length+1),p()},f=new MutationObserver(m=>{if(!(!o||a)){for(let g of m){if(o.changes.length>=Sp)break;let y=(w,k)=>{if(!o||o.changes.length>=Sp)return;let D=tx(k),I=_i(D);!I||o.changes.some(O=>O.kind===w&&O.element.selector===I.selector&&O.element.tagName===I.tagName&&O.element.text===I.text)||o.changes.push({kind:w,element:I})};g.addedNodes.forEach(w=>y("added",w)),g.removedNodes.forEach(w=>y("removed",w)),(g.type==="attributes"||g.type==="characterData")&&y("updated",g.target)}p()}});return f.observe(document.documentElement,{subtree:!0,childList:!0,characterData:!0,attributes:!0,attributeFilter:["aria-expanded","aria-pressed","aria-selected","checked","class","disabled","hidden","open","poster","src","value"]}),{recordEvent(m){if(a)return;if(m.type==="pointerdown"||m.type==="pointerup"){let D=m;if(m.type==="pointerdown"&&D.button===0){let I=e.resolveEventTarget?.(m),O=I?.element??(m.target instanceof Element&&!Gr(m.target)?m.target:null),R=I?.state??_i(O);if(!R)return;d={x:D.clientX,y:D.clientY,targetElement:O,target:R,captureResult:I?.captureResult};return}if(m.type==="pointerup"){let I=d;d=null,I?.targetElement&&Math.hypot(D.clientX-I.x,D.clientY-I.y)>4&&u("drag",{element:I.targetElement,state:I.target,captureResult:I.captureResult});return}}let g=Gb(m);if(!g||m instanceof KeyboardEvent&&!ex(m))return;let y=e.resolveEventTarget?.(m),w=y?.element??(m.target instanceof Element&&!Gr(m.target)?m.target:null);if(!w)return;let k=y?.state??_i(w);k&&u(g,{element:w,state:k,captureResult:y?.captureResult},m instanceof KeyboardEvent?m.key:void 0)},recordScroll(){if(!a){if(o?.kind==="scroll"){p();return}u("scroll",{element:null,state:{tagName:"document",text:"page"}})}},hasActions(){return o!==null||r.length>0},async finish(){a||c(),a=!0,f.disconnect(),window.clearTimeout(i);let m={version:1,startedAt:n,completedAt:t(),subject:e.subjectState??_i(e.subjectElement),steps:[...r]};if(r.length===0||s.length===0)return{episode:m,frames:[]};let g=await Promise.all(s),y=[],w=new Map,k=[],D=async I=>{if(!I)return;let O=await Kb(I),R=w.get(O);if(R)return R;let F=`episode-frame-${n}-${y.length+1}`;return w.set(O,F),k.push({id:F,imageIndex:y.length,fingerprint:O}),y.push(I),F};for(let I of g){let O=await D(I.before),R=await D(I.after);(O||R)&&(I.step.visuals={...O?{beforeFrameId:O}:{},...R?{afterFrameId:R}:{}})}return k.length>0&&(m.frames=k),{episode:m,frames:y}},cancel(){a=!0,o=null,d=null,f.disconnect(),window.clearTimeout(i)}}}function Tp(e){return!!(e&&!e.domEdit&&(e.linkedSelector||e.target))}function Cp(e){return!!(e&&e.type==="text"&&(e.status??"pending")==="pending"&&(e.linkedSelector||e.target))}function rx(e,t){return!!(t&&e?.id===t.id)}function ox(e,t,n){let r=[...n?[n]:[],...[...t].reverse()],o=new Set,i=[];for(let a of r){if(o.has(a))continue;o.add(a);let l=e.find(s=>s.id===a);l&&(i.push(l),l.groupId&&i.push(...e.filter(s=>s.id!==l.id&&s.groupId===l.groupId)))}return i}function ix(e){let t=e.activationDraft??e.activeDraft;if(Tp(t))return{kind:"draft",value:t};let n=ox(e.annotations,e.selectedAnnotationIds,e.lastSelectedId).find(Cp);return n?{kind:"annotation",value:n}:Cp(e.annotationAtCursor)?{kind:"annotation",value:e.annotationAtCursor}:null}var ad={kind:"root"},ax=2;function lx(e){return e==="color"?"slate":tl(e)[0]}function sx(e){let t=Ss(e),n=lx(e),r=e==="color";return{id:`family:${e}`,label:t,searchPath:t,destination:{family:e,subproperty:n,stage:r?"family":"value"},nextScope:r?{kind:"colors",family:e}:{kind:"values",family:e,subproperty:n}}}function Ap(e,t){let n=Ss(e),r=Vm(e,t),o=e==="border"&&t==="all"?`${n} Width`:r===n?n:`${n} ${r}`,i=(e==="text"||e==="border")&&t==="color";return{id:`subproperty:${e}:${t}`,label:o,searchPath:o,destination:{family:e,subproperty:t,stage:i?"family":"value"},nextScope:i?{kind:"colors",family:e}:{kind:"values",family:e,subproperty:t}}}function dx(e,t){let n=t[0].toUpperCase()+t.slice(1);return{id:`color:${e}:${t}`,label:n,searchPath:n,destination:{family:e,subproperty:t,stage:"variant"},nextScope:{kind:"values",family:e,subproperty:t}}}function cx(e,t,n){return{id:`value:${e}:${t}:${n}`,label:String(n),searchPath:String(n),destination:{family:e,subproperty:t,step:n,stage:"value"}}}function ux(e){return e.kind==="root"?Ri.flatMap(t=>{let n=sx(t);return t==="color"?[n]:[n,...tl(t).filter(r=>!Zc(r)).map(r=>Ap(t,r))]}):e.kind==="family"?tl(e.family).filter(t=>!Zc(t)).map(t=>Ap(e.family,t)):e.kind==="colors"?Vc.map(t=>dx(e.family,t)):Qo(e.family,e.subproperty).map(t=>cx(e.family,e.subproperty,t))}function ka(e){return e.toLowerCase().trim().replace(/[^a-z0-9]+/g," ")}function Mp(e){return ka(e).replace(/\s+/g,"")}function px(e){return ka(e).split(/\s+/).filter(Boolean).map(t=>t[0]).join("")}function hx(e,t){let n=ka(e);if(!n)return 0;let r=ka(t.searchPath),o=ka(t.label),i=Mp(e),a=Mp(t.searchPath),l=px(t.searchPath);if(o===n)return 1e3;if(r===n)return 980;if(o.startsWith(n))return 940;if(r.startsWith(n))return 920;if(r.split(" ").some(c=>c.startsWith(n)))return 880;if(l.startsWith(i))return 850;if(a.startsWith(i))return 820;let s=0;for(let c of i){if(s=a.indexOf(c,s),s===-1)return-1;s+=1}let d=t.id.startsWith("family:")?20:0;return 500-Math.max(0,a.length-i.length)+d}function Ea(e,t){if(!t.trim())return null;let n=o=>ux(o).map((i,a)=>({candidate:i,index:a,score:hx(t,i)})).filter(i=>i.score>=0).sort((i,a)=>a.score-i.score||i.index-a.index)[0]?.candidate??null,r=n(e);if(r||e.kind==="root")return r;if(e.kind==="values"||e.kind==="colors"){let o=n({kind:"family",family:e.family});if(o)return o}return n(ad)}function ld(e,t){return t.trim().length<ax?null:Ea(e,t)}function fx(e){return e.id.startsWith("family:")?{kind:"icon",label:e.label,family:e.destination.family,subproperty:"all"}:e.id.startsWith("subproperty:")?{kind:"icon",label:e.label,family:e.destination.family,subproperty:e.destination.subproperty??"all"}:{kind:"label",label:e.label}}function mx(e,t){return e?t?t.label.toLowerCase().startsWith(e.toLowerCase())?{typed:t.label.slice(0,e.length),completion:t.label.slice(e.length),fallback:""}:{typed:e,completion:"",fallback:t.label}:{typed:e,completion:"",fallback:""}:{typed:"",completion:"",fallback:"Steer a property"}}function ti(e,t){Sr(e)&&(t.forEach(n=>e.style.removeProperty(n)),e.style.removeProperty("transition"))}function ir(e,t,n){return{property:e,original:`${t}px`,modified:`${n}px`}}function gx(e,t,n){ti(e,["font-size","line-height"]);let r=[];if(t.fontSize!==n.fontSize&&(it(e,"font-size",`${n.fontSize}px`),r.push(ir("font-size",t.fontSize,n.fontSize))),t.lineHeight!==n.lineHeight){let o=t.fontSize>0?Math.round(t.lineHeight/t.fontSize*1e3)/1e3:1.2,i=n.fontSize>0?Math.round(n.lineHeight/n.fontSize*1e3)/1e3:1.2;it(e,"line-height",`${i}`),r.push({property:"line-height",original:`${o}`,modified:`${i}`})}return r}var sd=["space-between","space-around","stretch","normal"];function yx(e,t,n,r){if(!t.hasMoved){if(r)return[];ti(e,[]);let i=t.justifyContent||"normal",a=sd.indexOf(i),l=sd[(a+1)%sd.length],s=[];return l==="normal"?(it(e,"justify-content","normal"),s.push({property:"justify-content",original:t.justifyContent,modified:"normal"})):l==="stretch"?(it(e,"justify-content",l),it(e,"row-gap","8px"),it(e,"column-gap","8px"),s.push({property:"justify-content",original:t.justifyContent||"normal",modified:l}),t.row!==8&&s.push(ir("row-gap",t.row,8)),t.column!==8&&s.push(ir("column-gap",t.column,8))):(ti(e,["row-gap","column-gap"]),it(e,"justify-content",l),s.push({property:"justify-content",original:t.justifyContent||"normal",modified:l}),t.row>0&&s.push(ir("row-gap",t.row,0)),t.column>0&&s.push(ir("column-gap",t.column,0))),s}if(!n)return[];ti(e,["row-gap","column-gap"]);let o=[];return t.isAuto?(ti(e,["justify-content"]),it(e,"justify-content","normal"),it(e,"row-gap",`${n.row}px`),it(e,"column-gap",`${n.column}px`),o.push({property:"justify-content",original:t.justifyContent,modified:"normal"}),o.push(ir("row-gap",0,n.row)),o.push(ir("column-gap",0,n.column)),o):(t.row!==n.row&&(it(e,"row-gap",`${n.row}px`),o.push(ir("row-gap",t.row,n.row))),t.column!==n.column&&(it(e,"column-gap",`${n.column}px`),o.push(ir("column-gap",t.column,n.column))),o)}var dd={"top-left":"border-top-left-radius","top-right":"border-top-right-radius","bottom-right":"border-bottom-right-radius","bottom-left":"border-bottom-left-radius"};function vx(e,t,n){let r=Object.values(dd);ti(e,r);let o=[];return Object.keys(dd).forEach(i=>{if(t[i]===n[i])return;let a=dd[i];it(e,a,`${n[i]}px`),o.push(ir(a,t[i],n[i]))}),o}function bx(e,t,n){ti(e,["padding"]);let r=[];return Object.keys(t).forEach(o=>{if(t[o]===n[o])return;let i=`padding-${o}`;it(e,i,`${n[o]}px`),r.push(ir(i,t[o],n[o]))}),r}function Rp(){return{isDragging:!1,side:null,startX:0,startY:0,original:{top:0,right:0,bottom:0,left:0},element:null,elementInfo:null,selector:null,durableSelector:null}}function $p(){return{isDragging:!1,hasMoved:!1,axis:null,startX:0,startY:0,originalRow:0,originalColumn:0,element:null,elementInfo:null,selector:null,durableSelector:null,isAuto:!1,originalJustifyContent:"",visualGap:0}}function Pp(){return{isDragging:!1,corner:null,startY:0,original:{"top-left":0,"top-right":0,"bottom-right":0,"bottom-left":0},maxRadius:0,element:null,elementInfo:null,selector:null,durableSelector:null}}function Lp(){return{isDragging:!1,property:null,startX:0,startY:0,originalFontSize:0,originalLineHeight:0,originalRatio:1.2,element:null,elementInfo:null,selector:null,durableSelector:null}}function kl(e,t){return!e.selector||!e.elementInfo||t.length===0?null:{selector:e.selector,durableSelector:e.durableSelector??void 0,element:e.elementInfo,changes:t}}function xx(e,t){return!e.element||!t?null:kl(e,gx(e.element,{fontSize:e.originalFontSize,lineHeight:e.originalLineHeight},t))}function wx(e,t,n){return e.element?kl(e,yx(e.element,{hasMoved:e.hasMoved,isAuto:e.isAuto,row:e.originalRow,column:e.originalColumn,justifyContent:e.originalJustifyContent},t,n)):null}function Sx(e,t){return!e.element||!t?null:kl(e,vx(e.element,e.original,t.radius))}function Ix(e,t){return!e.element||!t?null:kl(e,bx(e.element,e.original,t.padding))}var kx="popmelt-steering-context",jp=1;function Ex(e){return Ei(kx,e)}function Wi(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function cd(e){return typeof e=="string"&&Ri.includes(e)}function Tx(e){return e==="family"||e==="variant"||e==="value"}function zp(e,t){return typeof t=="string"&&Uc(e,t)===t}function Cx(e,t,n){return Qo(e,t).includes(n)}function El(e){if(!Wi(e)||!cd(e.family))return null;let t=e.family;if(!zp(t,e.subproperty))return null;let n=e.subproperty;return!Tx(e.stage)||!Cx(t,n,e.step)?null:{family:t,subproperty:n,stage:e.stage,step:e.step}}function Dp(e){if(!Wi(e)||typeof e.kind!="string")return null;if(e.kind==="root")return{kind:"root"};if(e.kind==="family"&&cd(e.family))return{kind:"family",family:e.family};if(e.kind==="colors"&&(e.family==="border"||e.family==="color"||e.family==="text"))return{kind:"colors",family:e.family};if(e.kind==="values"&&cd(e.family)){let t=e.family;return zp(t,e.subproperty)?{kind:"values",family:t,subproperty:e.subproperty}:null}return null}function Ax(e){if(!Wi(e)||typeof e.query!="string"||!Array.isArray(e.segments)||!e.segments.every(i=>typeof i=="string"))return null;let t=Dp(e.scope),n=El(e.origin);if(!t||!n||!Array.isArray(e.history))return null;let r=[];for(let i of e.history){if(!Wi(i))return null;let a=Dp(i.scope),l=El(i.snapshot);if(!a||!l)return null;r.push({scope:a,snapshot:l})}let o;if(e.segmentOrigin!==void 0){let i=El(e.segmentOrigin);if(!i)return null;o=i}return{query:e.query,segments:e.segments,scope:t,origin:n,...o?{segmentOrigin:o}:{},history:r}}function Mx(e){let t=El(e);if(!t||!Wi(e))return null;if(e.query===null)return{...t,query:null};let n=Ax(e.query);return n?{...t,query:n}:null}function Rx(e,t){try{let n=e.getItem(t);if(!n)return null;let r=JSON.parse(n);return!Wi(r)||r.version!==jp?null:Mx(r.context)}catch{return null}}function $x(e,t,n){try{e.setItem(t,JSON.stringify({version:jp,context:n}))}catch{}}function Px(e,t,n,r){return e===t?{preservedAway:r,shouldReset:!1}:n&&(e==="sticker"&&t==="inspector"||e==="inspector"&&t==="sticker")?{preservedAway:t==="inspector",shouldReset:!1}:{preservedAway:!1,shouldReset:r||e==="sticker"||t==="sticker"}}var Hp=100;function Op(e,t){return e!=="sticker"||!t}var Lx=new Set(["display","border-top-style","border-right-style","border-bottom-style","border-left-style"]);function jx(e,t){return e?.element===t.element&&e.family===t.family&&e.step===t.step&&e.subproperty===t.subproperty&&e.valueOverride===t.valueOverride}function Np(e,t,n){return t>=e.left&&t<=e.right&&n>=e.top&&n<=e.bottom}function zx(e,t,n,r,o,i,a){return i&&a&&Lv(i,r,o,a)||t===e?!0:t&&t!==e&&e.contains(t)?Np(n,r,o):t&&t.contains(e)&&i&&a&&jv(i,r,o,a)?!0:Np(n,r,o)||!!(i&&Pv(i,r,o))}function ud(e,t){t.value?e.style.setProperty(t.property,t.value,t.priority):e.style.removeProperty(t.property)}function Fp(e,t){return{property:t,value:e.style.getPropertyValue(t),priority:e.style.getPropertyPriority(t)}}function Dx(e){let t=new Set(e);for(let n of e){if(n==="padding"||n.startsWith("padding-")){t.add("padding");for(let r of["top","right","bottom","left"])t.add(`padding-${r}`)}if(n==="margin"||n.startsWith("margin-")){t.add("margin");for(let r of["top","right","bottom","left"])t.add(`margin-${r}`)}if(n==="border-radius"||/border-.+-radius/.test(n)){t.add("border-radius");for(let r of["top-left","top-right","bottom-right","bottom-left"])t.add(`border-${r}-radius`)}if(n==="border-width"||/border-.+-width/.test(n)){t.add("border-width");for(let r of["top","right","bottom","left"])t.add(`border-${r}-width`)}if(n==="border-color"||/border-.+-color/.test(n)){t.add("border-color");for(let r of["top","right","bottom","left"])t.add(`border-${r}-color`)}(n==="gap"||n==="row-gap"||n==="column-gap")&&(t.add("gap"),t.add("row-gap"),t.add("column-gap"))}return t}function Ta(e){if(e){tg(e.element);for(let t of e.declarations)ud(e.element,t)}}function Hx(e,t,n){e&&(Ta(e),eu(t),nu(n))}function Ox(e){if(e)for(let t of e.activeDeclarations)ud(e.element,t)}function Nx(e,t,n,r,o=null,i){o&&o.element!==e&&(Ta(o),o=null);let a=window.getComputedStyle(e),l=Mc(t,r),s=i?a.getPropertyValue(l).trim()===i:Rc(t,n,r,k=>a.getPropertyValue(k)),d=$c(t),c=Pc(t,r,n),p=t==="border"&&!Go(t,r)&&typeof n=="number"&&n>0?Lc(r):null,u=[l,...d?["display"]:[],...c.map(k=>k.property),...p?[p]:[]],f=[...new Set(u)],m=new Set([...f,"transition"]),g=new Map(o?.declarations.map(k=>[k.property,k])??[]);for(let k of g.values())m.has(k.property)||ud(e,k);let y=[...m].map(k=>g.get(k)??Fp(e,k)),w=f.filter(k=>!Lx.has(k));ng(e,Dx(f)),w.length>0&&it(e,"transition",w.map(k=>`${k} ${Hp}ms ease-out`).join(", ")),d&&it(e,"display",d);for(let k of c)it(e,k.property,k.value);if(it(e,l,i??Mi(t,n,r)),p){let k=window.getComputedStyle(e).getPropertyValue(p).trim();(!k||k==="none")&&it(e,p,"solid")}return{preview:{element:e,declarations:y,activeDeclarations:[...m].map(k=>Fp(e,k))},stepUnavailable:s}}var _p="[data-popmelt-subject-label-action]";function Fx(e){let t=Number(e.dataset.popmeltSubjectSurfaceLeft),n=Number(e.dataset.popmeltSubjectSurfaceTop),r=Number(e.dataset.popmeltSubjectSurfaceWidth),o=Number(e.dataset.popmeltSubjectSurfaceHeight);return[t,n,r,o].every(Number.isFinite)?{left:t,top:n,right:t+Math.max(0,r),bottom:n+Math.max(0,o)}:null}function Wp(e,t,n){let r=Fx(e);return r?t>=r.left&&t<=r.right&&n>=r.top&&n<=r.bottom:!0}function _x(e,t){let{popmeltSubjectAdapter:n,popmeltSubjectKey:r}=t.dataset;return!n||!r?null:Array.from(e.querySelectorAll("[data-popmelt-subject-adapter][data-popmelt-subject-key]")).find(o=>!o.hasAttribute("data-popmelt-subject-label-action")&&o.dataset.popmeltSubjectAdapter===n&&o.dataset.popmeltSubjectKey===r)??null}function Wx(e,t,n,r){let o=e.getBoundingClientRect(),i=t.getBoundingClientRect();return n>=Math.min(o.left,i.left)&&n<=Math.max(o.right,i.right)&&r>=Math.min(o.top,i.top)&&r<=Math.max(o.bottom,i.bottom)}function Bp(e,t,n){for(let r of e.querySelectorAll(_p)){let o=r.getBoundingClientRect();if(t>=o.left&&t<=o.right&&n>=o.top&&n<=o.bottom){let i=_x(e,r);if(i&&!Wp(i,t,n))continue;return r}}return null}function Bx(e,t,n,r){if(!(t instanceof HTMLElement))return!1;let{popmeltSubjectAdapter:o,popmeltSubjectKey:i}=t.dataset;if(!o||!i)return!1;let a=Array.from(e.querySelectorAll(`${_p}[data-popmelt-subject-adapter][data-popmelt-subject-key]`)).find(l=>l.dataset.popmeltSubjectAdapter===o&&l.dataset.popmeltSubjectKey===i);return!a||!Wp(t,n,r)?!1:Wx(t,a,n,r)}function Jx(e){return!("button"in e)||e.button===0}function Tl(e){let t=ys(e);return{element:e,elementInfo:{...hn(e),selector:t},selector:t,durableSelector:yo(e)}}function Cl(e){return{x:e.x-window.scrollX,y:e.y-window.scrollY}}function Al(e){it(e,"transition","none")}function qx(e,t,n){let r=Tl(e),o=Cl(n),i=ma(e);return Al(e),{session:{...r,isDragging:!0,side:t,startX:o.x,startY:o.y,original:i},dragging:{side:t,padding:{...i}}}}function Ux(e,t,n,r){let o=Tl(e),i=Cl(n),a=Qa(e),l=window.getComputedStyle(e).justifyContent,s=0;if(r){let c=el(e).find(p=>p.axis===t);s=c?t==="column"?c.w:c.h:0}let d=r?{row:s,column:s}:a;return Al(e),{session:{...o,isDragging:!0,hasMoved:!1,axis:t,startX:i.x,startY:i.y,originalRow:d.row,originalColumn:d.column,isAuto:r,originalJustifyContent:l,visualGap:s},dragging:{axis:t,...d}}}function Yx(e,t,n){let r=Tl(e),o=Ai(e);return Al(e),{session:{...r,isDragging:!0,corner:t,startY:Cl(n).y,original:o,maxRadius:Math.floor(e.getBoundingClientRect().height/2)},dragging:{corner:t,radius:{...o}}}}function Xx(e,t,n){let r=Tl(e),o=Cl(n),i=Bc(e);return Al(e),{session:{...r,isDragging:!0,property:t,startX:o.x,startY:o.y,originalFontSize:i.fontSize,originalLineHeight:i.lineHeight,originalRatio:i.fontSize>0?i.lineHeight/i.fontSize:1.2},dragging:{property:t,...i}}}function Kx({activeText:e,applySticker:t,canvasRef:n,clearSelection:r,commentTextEditCandidateRef:o,commitActiveText:i,createInlineTextEdit:a,dispatch:l,domDragRef:s,editPendingLinkedComment:d,findAnnotationAtPoint:c,findHandleAtPoint:p,findTextAtPoint:u,gapDragRef:f,gapHoveredAxis:m,gapHoveredElement:g,gapIsAuto:y,getPoint:w,handleAnnotationActivation:k,handDragRef:D,handHoveredElement:I,handHoveredSide:O,hoveredElement:R,hoveredElementInfo:F,isElementInFlight:Q,onCanvasInteraction:N,openThreadAndFocusReply:K,pageAnnotations:q,modifiedElementThreadStates:S,pageStyleModifications:ee,parentPinnedAnnotationIds:G,pointerTargetOverrideRef:H,radiusDragRef:j,radiusHoveredCorner:P,radiusHoveredElement:E,selectAnnotation:C,setDragState:X,setGapDragging:ce,setHandDragging:ue,setPendingLinkedText:Y,setRadiusDragging:he,setResizeState:W,setStickerRejectPulse:fe,setTextDragging:re,state:pe,stickerStage:ye,textDragRef:Be,textHoveredElement:Ee,textHoveredProperty:z,toolbarRef:Ne}){return U($e=>{if(!pe.isAnnotating||!Jx($e))return;N?.();let Xe=H?.current??null;H&&(H.current=null);let Ye=Xe?.element??R,We=Xe?.elementInfo??F,Ae=w($e),se="shiftKey"in $e&&$e.shiftKey,Fe="clientX"in $e?{x:$e.clientX,y:$e.clientY}:"touches"in $e&&$e.touches[0]?{x:$e.touches[0].clientX,y:$e.touches[0].clientY}:null;if(pe.activeTool==="sticker"){if("button"in $e&&$e.button!==0||ye!=="value")return;if(!Fe){fe(Ue=>Ue+1);return}let Se=Xe?.element??$i(Fe.x,Fe.y);if(!(Se instanceof HTMLElement)&&!(Se instanceof SVGElement)){fe(Ue=>Ue+1);return}$e.preventDefault(),$e.stopPropagation(),t(Se);return}if(pe.activeTool==="inspector"&&Fe&&(!("button"in $e)||$e.button===0)){let Se=a(Fe.x,Fe.y,Ae);o.current=Se?{edit:Se,clientX:Fe.x,clientY:Fe.y,expiresAt:Date.now()+1e3}:null}else o.current=null;let Ke=u(Ae);if(Ke?.points[0]){e&&i(),se||r();let Se=Ke.threadId||(Ke.groupId?pe.annotations.find(Ue=>Ue.groupId===Ke.groupId&&Ue.threadId)?.threadId:void 0);if(G.has(Ke.id)){o.current=null,k(Ke.id,Se);return}Se&&K(Se),X({annotation:Ke,startPoint:Ae,hasMoved:!1});return}if(pe.activeTool==="inspector"){if("button"in $e&&$e.button===2)return;if(Ye&&!Q(Ye)){let Se=q.filter(b=>b.type==="text"&&b.linkedSelector).filter(b=>nl(b.linkedSelector,b.elements?.[0])===Ye).sort((b,ie)=>ie.timestamp-b.timestamp)[0];if(Se?.points[0]){if((Se.status??"pending")==="pending"&&!Se.threadId)d(Se.id);else{let b=Se.threadId||(Se.groupId?pe.annotations.find(ie=>ie.groupId===Se.groupId&&ie.threadId)?.threadId:void 0);b&&K(b)}return}let Ue=va(Ye),ht=new Set;for(let[b,ie]of S??[]){let ve=ru(ie.selectors??[b],ie.targetFingerprint);ve.status==="matched"&&ve.element===Ye&&ht.add(ie.threadId)}if(ht.size===1){K([...ht][0]);return}let gt=We??hn(Ye),nt=Ue?tu(Ue):yo(Ye),lt=Ye.getBoundingClientRect(),Ht=nt;if(!Ue){let b=Ye.getAttribute("data-pm");b||(b=Math.random().toString(36).substring(2,8),Ye.setAttribute("data-pm",b)),Ht=`[data-pm="${b}"]`}let nn=ee.some(b=>{if(b.captured)return!1;try{return Ye.matches(b.selector)}catch{return!1}}),cn=pe.annotations.filter(b=>{if(!b.linkedSelector)return!1;try{return Ye.matches(b.linkedSelector)}catch{return!1}}).length,Mn=(nn?1:0)+cn,At=lt.top>=22*(1+Mn)+Ci?"top-left":"bottom-left",Pe=n.current?.getContext("2d")??document.createElement("canvas").getContext("2d"),Wt;Pe&&(Pe.font=`12px ${An}`,Wt=Pe.measureText("Type here...").width);let dt=zc(lt,At,Mn,Ne?.current,Wt,0);Y({point:dt,subjectAnchor:Ue?{x:.5,y:.5}:void 0,linkedSelector:Ht,target:Ue,linkedAnchor:At,elements:[{...gt,selector:nt}]})}return}if(pe.activeTool==="hand"&&I&&wm(I)&&!g&&!E&&!Ee&&!O){let Se=I,Ue=ys(Se),ht=yo(Se),gt=hn(Se),nt="altKey"in $e&&$e.altKey;s.current={isDragging:!0,hasMoved:!1,mode:nt?"copy":"move",startX:Ae.x-window.scrollX,startY:Ae.y-window.scrollY,element:Se,originalParent:Se.parentElement,originalIndex:Sm(Se),selector:Ue,durableSelector:ht,elementInfo:{...gt,selector:Ue}},$e.preventDefault();return}if(pe.activeTool==="hand"&&g&&m){let Se=Ux(g,m,Ae,y);f.current=Se.session,ce(Se.dragging);return}if(pe.activeTool==="hand"&&Ee&&z){let Se=Xx(Ee,z,Ae);Be.current=Se.session,re(Se.dragging);return}if(pe.activeTool==="hand"&&E&&P){let Se=Yx(E,P,Ae);j.current=Se.session,he(Se.dragging);return}if(pe.activeTool==="hand"&&I&&O){let Se=qx(I,O,Ae);D.current=Se.session,ue(Se.dragging);return}let xt=p(Ae);if(xt){let Se=pe.annotations.find(Ue=>Ue.id===xt.annotationId);if(Se&&Se.type!=="text"&&(Se.status??"pending")==="pending"){W({annotationId:xt.annotationId,handle:xt.handle,startPoint:Ae,originalPoints:[...Se.points],hasMoved:!1});return}}let et=c(Ae);if(et?.points[0]){e&&i(),et.type!=="text"?(C(et.id,se),et.color&&(et.status??"pending")==="pending"&&l({type:"SET_COLOR",payload:et.color})):se||r();let Se=et.threadId||(et.groupId?pe.annotations.find(Ue=>Ue.groupId===et.groupId&&Ue.threadId)?.threadId:void 0);Se&&(et.status??"pending")!=="pending"&&K(Se),X({annotation:et,startPoint:Ae,hasMoved:!1});return}se||r()},[e,t,n,r,o,i,a,l,s,d,c,p,u,f,m,g,y,w,k,D,I,O,R,F,Q,N,K,q,S,ee,G,H,j,P,E,C,X,ce,ue,Y,he,W,fe,re,pe.activeTool,pe.annotations,pe.isAnnotating,ye,Be,Ee,z,Ne])}function Bi(e,t,n,r){let o=n.x-t.x,i=n.y-t.y,a=o*o+i*i;if(a===0)return Math.hypot(e.x-t.x,e.y-t.y)<=r;let l=Math.max(0,Math.min(1,((e.x-t.x)*o+(e.y-t.y)*i)/a)),s=t.x+l*o,d=t.y+l*i;return Math.hypot(e.x-s,e.y-d)<=r}function Vx({point:e,annotations:t,isHidden:n=()=>!1,textContainsPoint:r=()=>!1}){for(let o=t.length-1;o>=0;o-=1){let i=t[o];if(!i||n(i))continue;if(i.type==="text"){if(r(i,e))return i;continue}if(i.points.length<2)continue;let a=i.points[0],l=i.points[i.points.length-1],s=(i.strokeWidth||3)+4;if(i.type==="line"){if(Bi(e,a,l,s))return i;continue}if(i.type==="freehand"){for(let f=0;f<i.points.length-1;f+=1)if(Bi(e,i.points[f],i.points[f+1],s))return i;continue}let d=Math.min(a.x,l.x),c=Math.max(a.x,l.x),p=Math.min(a.y,l.y),u=Math.max(a.y,l.y);if(i.type==="rectangle"){if(Bi(e,{x:d,y:p},{x:c,y:p},s)||Bi(e,{x:d,y:u},{x:c,y:u},s)||Bi(e,{x:d,y:p},{x:d,y:u},s)||Bi(e,{x:c,y:p},{x:c,y:u},s))return i;continue}if(i.type==="circle"){let f=(c-d)/2,m=(u-p)/2;if(f===0||m===0)continue;let g=Math.hypot((e.x-(d+c)/2)/f,(e.y-(p+u)/2)/m);if(Math.abs(g-1)*Math.max(f,m)<=s)return i}}return null}function Gx(e,t,n,r){if(t.length===0)return null;let o=r/2+4;for(let i of t){let a=n.find(m=>m.id===i);if(!a||a.points.length<2)continue;let l=a.points[0],s=a.points[a.points.length-1];if(a.type==="line"){if(Math.hypot(e.x-l.x,e.y-l.y)<=o)return{handle:"start",annotationId:i};if(Math.hypot(e.x-s.x,e.y-s.y)<=o)return{handle:"end",annotationId:i};continue}let d,c,p,u;a.type==="freehand"?(d=Math.min(...a.points.map(m=>m.x)),c=Math.max(...a.points.map(m=>m.x)),p=Math.min(...a.points.map(m=>m.y)),u=Math.max(...a.points.map(m=>m.y))):(d=Math.min(l.x,s.x),c=Math.max(l.x,s.x),p=Math.min(l.y,s.y),u=Math.max(l.y,s.y));let f=a.type==="circle"?[{handle:"top",x:(d+c)/2,y:p},{handle:"bottom",x:(d+c)/2,y:u},{handle:"left",x:d,y:(p+u)/2},{handle:"right",x:c,y:(p+u)/2}]:a.type==="rectangle"||a.type==="freehand"?[{handle:"topLeft",x:d,y:p},{handle:"topRight",x:c,y:p},{handle:"bottomLeft",x:d,y:u},{handle:"bottomRight",x:c,y:u}]:[];for(let m of f)if(Math.hypot(e.x-m.x,e.y-m.y)<=o)return{handle:m.handle,annotationId:i}}return null}function Qx(e,t,n){if(!e)return{x:0,y:0};let r=t.touches?.[0],o=r?.clientX??t.clientX,i=r?.clientY??t.clientY;if(o===void 0||i===void 0)return{x:0,y:0};let a=e.getBoundingClientRect();return{x:o-a.left+n.x,y:i-a.top+n.y}}function Zx({annotation:e,point:t,context:n,groupNumber:r,scroll:o,textSafeBounds:i,parentPinned:a}){let l=e.points[0];if(!l||!e.text||!n)return!1;let s=4,d=e.fontSize||12;n.font=`${d}px ${An}`;let c=e.text.replace(/\n/g," "),p=r!==void 0?`${r}. ${c}`:c,u=l.x-o.x,f=a?Is:0,m=Math.max(60,us(u)-f),g=Xc(n,p,m),y=n.measureText(g).width,w=d*rr,k=Kc({x:l.x-o.x,y:l.y-o.y},d,i,f+y+16),D={x:k.x+o.x,y:k.y+o.y};return t.x>=D.x-8-s&&t.x<=D.x+f+y+8+s&&t.y>=D.y-4-s&&t.y<=D.y+w+4+s}function e0({annotationGroupMap:e,annotations:t,canvasRef:n,handleSize:r,hiddenCollidingAnnotationIds:o,pageAnnotations:i,parentPinnedAnnotationIds:a,scroll:l,selectedAnnotationIds:s,supersededAnnotations:d,textSafeBounds:c}){let p=U(g=>Qx(n.current,g,{x:window.scrollX,y:window.scrollY}),[n]),u=U(g=>Vx({point:g,annotations:i,isHidden:y=>d.has(y)||o.has(y.id),textContainsPoint:(y,w)=>Zx({annotation:y,point:w,context:n.current?.getContext("2d")??null,groupNumber:e.get(y.id),scroll:l,textSafeBounds:c,parentPinned:a.has(y.id)})}),[e,n,o,i,a,l,d,c]),f=U(g=>{let y=u(g);return y?.type==="text"?y:null},[u]),m=U(g=>Gx(g,s,t,r),[t,r,s]);return{findAnnotationAtPoint:u,findHandleAtPoint:m,findTextAtPoint:f,getPoint:p}}function t0({annotations:e,dragState:t,resizeState:n,dispatch:r,setDragState:o,setResizeState:i}){return U(({point:a,centerOrigin:l,lockAspect:s})=>{if(n){let d=e.find(p=>p.id===n.annotationId);if(!d)return!0;let c=Pb({annotation:d,session:n,point:a,centerOrigin:l,lockAspect:s});return r({type:"RESIZE_ANNOTATION",payload:{id:n.annotationId,points:c,saveUndo:!n.hasMoved}}),n.hasMoved||i({...n,hasMoved:!0}),!0}if(t&&(t.annotation.status??"pending")==="pending"){let d=Rb(t,a);return d&&(o(d.session),r({type:"MOVE_ANNOTATION",payload:{id:t.annotation.id,delta:d.move.delta,...d.move.saveUndo?{saveUndo:!0}:{}}})),!0}return!1},[e,r,t,n,o,i])}function n0({element:e,stickyElement:t,point:n,hitRadius:r=16}){let o=[];e&&o.push(e),t&&t!==e&&o.push(t);let i=null,a=r,l=null;for(let s of o){let d=s.getBoundingClientRect(),c=Ai(s),p=[["top-left",d.left,d.top+c["top-left"]],["top-right",d.right,d.top+c["top-right"]],["bottom-right",d.right,d.bottom-c["bottom-right"]],["bottom-left",d.left,d.bottom-c["bottom-left"]]];for(let[u,f,m]of p){let g=Math.hypot(n.x-f,n.y-m);g<a&&(a=g,i=u,l=s)}}return i&&l?{element:l,corner:i}:null}function r0({element:e,point:t,maxCandidates:n=3}){let r=[];e&&Qc(e)&&r.push(e);let o=e?.parentElement??null;for(;o&&o!==document.body&&r.length<n;)Qc(o)&&r.push(o),o=o.parentElement;for(let i of r){let a=el(i).find(l=>t.x>=l.x&&t.x<=l.x+l.w&&t.y>=l.y&&t.y<=l.y+l.h);if(a)return{element:i,axis:a.axis,isAuto:ws(i,a.axis)}}return null}function o0({element:e,stickyElement:t,point:n,hitRadius:r=12}){let o=[];e&&o.push(e),t&&t!==e&&o.push(t);let i=null,a=1/0,l=null;for(let s of o){if(!Km(s))continue;let d=ks(s);if(!d)continue;let c=n.x>=d.left&&n.x<=d.right&&n.y>=d.top&&n.y<=d.bottom,p=[["font-size",d.right,d.top+d.height/2],["line-height",d.left+d.width/2,d.bottom]];for(let[u,f,m]of p){let g=Math.hypot(n.x-f,n.y-m);(c||g<r)&&g<a&&(a=g,i=u,l=s)}}return i&&l?{element:l,property:i}:null}function i0(e,t,n){let r=t.top+Math.max(n.top,4),o=t.bottom-Math.max(n.bottom,4),i=t.left+Math.max(n.left,4),a=t.right-Math.max(n.right,4);if(e.x<t.left||e.x>t.right||e.y<t.top||e.y>t.bottom)return null;let l=e.y<r,s=e.y>o,d=e.x<i,c=e.x>a;return l&&d?n.top>=n.left?"top":"left":l&&c?n.top>=n.right?"top":"right":s&&d?n.bottom>=n.left?"bottom":"left":s&&c?n.bottom>=n.right?"bottom":"right":l?"top":s?"bottom":d?"left":c?"right":null}var pd=[0,1,2,4,8,12,16,20,24,28,32],a0=[8,10,11,12,13,14,16,18,20,22,24,28,32,36,40,48,56,64,72,80,96];function Ml(e){for(let t=0;t<pd.length-1;t++){let n=pd[t],r=pd[t+1];if(e<=(n+r)/2)return n;if(e<r)return r}return Math.round(e/8)*8}function l0(e){return a0.reduce((t,n)=>Math.abs(e-n)<Math.abs(e-t)?n:t)}function s0(e,t,n){let r=e.axis;if(!r)return null;let o=!e.hasMoved;if(o){let l=Math.abs(t.x-e.startX),s=Math.abs(t.y-e.startY);if(l<=2&&s<=2)return null}let i=e.originalRow,a=e.originalColumn;if(r==="column"){let l=t.x-e.startX;a+=l,n.isolate||(i+=l)}else{let l=t.y-e.startY;i+=l,n.isolate||(a+=l)}return i=Math.max(0,i),a=Math.max(0,a),n.snap&&(i=Ml(i),a=Ml(a)),{axis:r,gap:{row:Math.round(i),column:Math.round(a)},started:o,convertedAuto:o&&e.isAuto}}function d0(e,t,n){let r=e.corner;if(!r)return null;let o=e.original[r]+t.y-e.startY;o=Math.max(0,Math.min(e.maxRadius,o)),n.snap&&(o=Ml(o)),o=Math.round(o);let i=n.isolate?{...e.original,[r]:o}:{"top-left":o,"top-right":o,"bottom-right":o,"bottom-left":o};return{corner:r,radius:i}}function c0(e,t,n){let r=e.property;if(!r)return null;let o=e.originalFontSize,i=e.originalLineHeight;if(r==="font-size")o=Math.max(1,e.originalFontSize+t.x-e.startX),n&&(o=l0(o));else if(i=Math.max(o,e.originalLineHeight+t.y-e.startY),n){let a=o>0?i/o:1.2;i=o*Math.max(1,Math.round(a*2)/2)}return{property:r,text:{fontSize:Math.round(o),lineHeight:Math.round(i*10)/10}}}function u0(e,t,n){let r=e.side;if(!r)return null;let o={...e.original};if(r==="top"){let i=e.startY-t.y;o.top+=i,n.isolate||(o.bottom+=i)}else if(r==="bottom"){let i=t.y-e.startY;o.bottom+=i,n.isolate||(o.top+=i)}else if(r==="left"){let i=e.startX-t.x;o.left+=i,n.isolate||(o.right+=i)}else{let i=t.x-e.startX;o.right+=i,n.isolate||(o.left+=i)}return Object.keys(o).forEach(i=>{let a=Math.max(0,o[i]);n.snap&&(a=Ml(a)),o[i]=Math.round(a)}),{side:r,padding:o}}function p0({canvasRef:e,domDragRef:t,gapDragRef:n,gapHoveredAxis:r,gapHoveredElement:o,handCursorRef:i,handDragRef:a,handHoveredElement:l,handHoveredSide:s,modifiersRef:d,radiusDragRef:c,radiusHoveredCorner:p,radiusHoveredElement:u,setDomDropPreview:f,setGapDragging:m,setGapHoveredAxis:g,setGapHoveredElement:y,setGapIsAuto:w,setHandCursorPos:k,setHandDragging:D,setHandHoveredElement:I,setHandHoveredSide:O,setRadiusDragging:R,setRadiusHoveredCorner:F,setRadiusHoveredElement:Q,setTextDragging:N,setTextHoveredElement:K,setTextHoveredProperty:q,textDragRef:S,textHoveredElement:ee,textHoveredProperty:G}){return U(({x:H,y:j})=>{i.current={x:H,y:j},k({x:H,y:j});let P=d.current.cmd,E=d.current.shift;if(t.current.isDragging){let Y=t.current,he=Y.element;if(!he)return;if(!Y.hasMoved){let fe=Math.abs(H-Y.startX),re=Math.abs(j-Y.startY);if(fe<=3&&re<=3)return;Y.hasMoved=!0}let W=Wm(H,j,he,e.current);if(!W){f(null);return}f({rect:W.reference.getBoundingClientRect(),placement:W.placement,mode:Y.mode});return}if(n.current.isDragging){let Y=n.current,he=Y.element;if(!he)return;let W=s0(Y,{x:H,y:j},{isolate:P,snap:E});if(!W)return;W.started&&(Y.hasMoved=!0),W.convertedAuto&&(it(he,"justify-content","normal"),it(he,"row-gap",`${Y.visualGap}px`),it(he,"column-gap",`${Y.visualGap}px`),w(!1)),it(he,"row-gap",`${W.gap.row}px`),it(he,"column-gap",`${W.gap.column}px`),m({axis:W.axis,...W.gap});return}if(c.current.isDragging){let Y=c.current,he=Y.element;if(!he)return;let W=d0(Y,{y:j},{isolate:P,snap:E});if(!W)return;it(he,"border-top-left-radius",`${W.radius["top-left"]}px`),it(he,"border-top-right-radius",`${W.radius["top-right"]}px`),it(he,"border-bottom-right-radius",`${W.radius["bottom-right"]}px`),it(he,"border-bottom-left-radius",`${W.radius["bottom-left"]}px`),R(W);return}if(S.current.isDragging){let Y=S.current,he=Y.element;if(!he)return;let W=c0(Y,{x:H,y:j},E);if(!W)return;it(he,"font-size",`${W.text.fontSize}px`);let fe=W.text.fontSize>0?Math.round(W.text.lineHeight/W.text.fontSize*1e3)/1e3:1.2;it(he,"line-height",`${fe}`),N({property:W.property,...W.text});return}if(a.current.isDragging){let Y=a.current,he=Y.element;if(!he)return;let W=u0(Y,{x:H,y:j},{isolate:P,snap:E});if(!W)return;it(he,"padding",`${W.padding.top}px ${W.padding.right}px ${W.padding.bottom}px ${W.padding.left}px`),D(W);return}let C=$i(H,j);for(;C&&C.tagName==="A";)C=C.parentElement;let X=n0({element:C,stickyElement:u,point:{x:H,y:j}});if(X){Q(X.element),F(X.corner),l&&I(null),s&&O(null),o&&y(null),r&&g(null),w(!1),ee&&K(null),G&&q(null);return}u&&Q(null),p&&F(null);let ce=r0({element:C,point:{x:H,y:j}});if(ce){y(ce.element),g(ce.axis),w(ce.isAuto),l&&I(null),s&&O(null),ee&&K(null),G&&q(null);return}o&&y(null),r&&g(null),w(!1);let ue=o0({element:C,stickyElement:ee,point:{x:H,y:j}});if(ue?(K(ue.element),q(ue.property)):(ee&&K(null),G&&q(null)),C!==l&&I(C),C){let Y=ma(C);O(i0({x:H,y:j},C.getBoundingClientRect(),Y))}else O(null)},[e,t,n,r,o,i,a,l,s,d,c,p,u,f,m,g,y,w,k,D,I,O,R,F,Q,N,K,q,S,ee,G])}function h0({activeTool:e,isAnnotating:t,lastCanvasCursorRef:n,getPoint:r,isManipulating:o,findTextAtPoint:i,clearPageElementHover:a,handleShakePointerMove:l,handleTargetPointerMove:s,handleHandPointerMove:d,handleAnnotationPointerMove:c}){return U(p=>{let u=r(p),f={x:u.x-window.scrollX,y:u.y-window.scrollY},m="metaKey"in p&&(!("pointerType"in p)||p.pointerType==="mouse");n.current=f;let g=o();if(!l({isManipulating:g,isTouchEvent:"touches"in p||"pointerType"in p&&p.pointerType!=="mouse",viewportPoint:f})){if(!g&&i(u)){a();return}if(!s({viewportPoint:f,passThrough:m&&(p.metaKey||p.ctrlKey),stopPropagation:()=>p.stopPropagation()})){if(e==="hand"&&t){d(f);return}c({point:u,centerOrigin:m&&(p.metaKey||p.ctrlKey),lockAspect:m&&p.shiftKey})}}},[e,a,i,r,c,d,l,s,t,o,n])}function f0({rawElement:e,point:t,dragHandoff:n,previewTarget:r,handleHitSize:o}){let i=!!(n?.element.isConnected&&(e===n.element||Ov(n.releasePoint,t))),a=!!(n&&!i),l=!!(!a&&r?.element.isConnected&&zx(r.element,e,r.bounds,t.x,t.y,r.renderedQuad,o));return{candidate:i?n.element:l?r.element:e,clearDragHandoff:a,clearPreviewTarget:!!(r&&!l)}}function m0(e,t,n){return t?e!=="sticker"&&n(t)?null:t:null}function Jp({activeTool:e,isAnnotating:t,suspendTargetDiscovery:n}){return t&&!n&&(e==="inspector"||e==="sticker")}function g0(e,t){return e?.subjectLabel!==t.subjectLabel||e?.textContent!==t.textContent||e?.context!==t.context}function y0(e,t){return!!(e&&t&&(e.adapter!==t.adapter||e.key!==t.key))}function v0(e,t,n,r=16){if(!(e instanceof HTMLImageElement||e instanceof HTMLVideoElement)||t)return!1;let o=e.getBoundingClientRect();return n.x<o.left||n.x>o.right||n.y<o.top||n.y>o.bottom?!1:Math.min(n.x-o.left,o.right-n.x,n.y-o.top,o.bottom-n.y)<=r}function b0({activeTool:e,isAnnotating:t,suspendTargetDiscovery:n,hoveredElement:r,hoveredElementInfo:o,subjectRegistry:i,stickerFamily:a,stickerStage:l,stickerSubproperty:s,steerDragRef:d,transformDragHandoffRef:c,transformPreviewSuppressionRef:p,transformPreviewTargetRef:u,clearStickerPreview:f,isElementInFlight:m,setHoveredElement:g,setHoveredElementInfo:y,setStickerCursor:w,setStickerStep:k}){return U(({viewportPoint:D,passThrough:I,stopPropagation:O})=>{if(!Jp({activeTool:e,isAnnotating:t,suspendTargetDiscovery:n}))return!!n;if(e==="sticker"&&(O(),w(D)),d.current)return!0;if(lg(D.x,D.y))return e==="sticker"&&f(),r&&g(null),o&&y(null),w(null),!0;let R=I?sg(D.x,D.y):$i(D.x,D.y),F=e==="inspector"?i?.hitTest(D):null,Q=v0(R,!!F,D),N=y0(va(r),F?.target);if(!Q&&!N&&e==="inspector"&&Bx(document,r,D.x,D.y))return!0;let K=F?.element??R,q=e==="sticker"&&l==="value"&&a==="transform"?u.current:null,S=I?{candidate:K,clearDragHandoff:!!c.current,clearPreviewTarget:!!q}:f0({rawElement:K,point:D,dragHandoff:c.current,previewTarget:q,handleHitSize:20});S.clearDragHandoff&&(c.current=null),S.clearPreviewTarget&&(u.current=null);let ee=S.candidate,G=m0(e,ee,m);if(G===r)return F?.element===G&&g0(o,F.elementInfo)&&y(F.elementInfo),!0;if(e==="sticker"&&f(),e==="sticker"&&Sr(G)&&a==="transform"&&(s==="translate"||s==="scale"||s==="rotate")){let H=Fv(G,s);p.current={element:G,subproperty:s,step:H},k(H)}else a==="transform"&&(p.current=null);return g(G),y(F?.element===G?F.elementInfo:G?hn(G):null),!0},[e,f,r,o,t,m,g,y,w,k,d,a,l,s,i,n,c,p,u])}function x0({onSuspend:e,onRestore:t,suspendedRef:n}){let r,o=()=>{n.current||(n.current=!0,e()),clearTimeout(r),r=setTimeout(()=>{n.current=!1,t()},96)};return window.addEventListener("scroll",o,{capture:!0,passive:!0}),()=>{window.removeEventListener("scroll",o,!0),clearTimeout(r),n.current=!1}}function w0(e){let t=p0(e),n=t0(e),r=b0(e),o=J(r),i=J(e.clearPageElementHover),a=J(!1),l=Jp({activeTool:e.activeTool,isAnnotating:e.isAnnotating,suspendTargetDiscovery:e.suspendTargetDiscovery});Lt(()=>{o.current=r,i.current=e.clearPageElementHover},[r,e.clearPageElementHover]),_(()=>{if(l)return x0({onSuspend:()=>i.current(),onRestore:()=>{let c=e.lastCanvasCursorRef.current;c&&o.current({viewportPoint:c,passThrough:!1,stopPropagation:()=>{}})},suspendedRef:a})},[e.lastCanvasCursorRef,l]);let s=U(c=>a.current?!0:o.current(c),[]);_(()=>{let c=p=>{p.repeat||p.key!=="Meta"&&p.key!=="Control"||!e.lastCanvasCursorRef.current||s({viewportPoint:e.lastCanvasCursorRef.current,passThrough:!0,stopPropagation:()=>{}})};return window.addEventListener("keydown",c,!0),()=>window.removeEventListener("keydown",c,!0)},[s,e.lastCanvasCursorRef]),_(()=>{let c=p=>{let u=e.canvasRef.current;if(u&&p.composedPath().includes(u))return;let f={x:p.clientX,y:p.clientY};e.lastCanvasCursorRef.current=f,s({viewportPoint:f,passThrough:p.metaKey||p.ctrlKey,stopPropagation:()=>{}})};return window.addEventListener("mousemove",c,!0),()=>window.removeEventListener("mousemove",c,!0)},[s,e.canvasRef,e.lastCanvasCursorRef]),_(()=>{if(e.subjectRegistry)return e.subjectRegistry.subscribeFrame(()=>{let c=e.lastCanvasCursorRef.current;c&&s({viewportPoint:c,passThrough:!1,stopPropagation:()=>{}})})},[s,e.lastCanvasCursorRef,e.subjectRegistry]);let d=U(()=>!!e.dragState||!!e.resizeState||e.domDragRef.current.isDragging||e.handDragRef.current.isDragging||e.gapDragRef.current.isDragging||e.radiusDragRef.current.isDragging||e.textDragRef.current.isDragging,[e.domDragRef,e.dragState,e.gapDragRef,e.handDragRef,e.radiusDragRef,e.resizeState,e.textDragRef]);return h0({...e,isManipulating:d,handleAnnotationPointerMove:n,handleHandPointerMove:t,handleTargetPointerMove:s})}function S0({annotationGroupMap:e,canvasRef:t,currentPathname:n,cursorPosRef:r,dispatch:o,domDragRef:i,dragState:a,gapDragRef:l,gapDragging:s,getPoint:d,handDragRef:c,handDragging:p,lastPositionedTextId:u,radiusDragRef:f,radiusDragging:m,resizeState:g,setActiveText:y,setDomDropPreview:w,setDragState:k,setGapDragging:D,setHandDragging:I,setRadiusDragging:O,setResizeState:R,setSendHintAnchorId:F,setTextDragging:Q,textDragRef:N,textDragging:K}){return U(q=>{if(i.current.isDragging){let j=i.current,P=d(q),E=Im({drag:j,clientX:P.x-window.scrollX,clientY:P.y-window.scrollY,pathname:n,createId:km,rootElement:t.current});E&&o({type:"MODIFY_DOM_STRUCTURE",payload:E}),i.current=bc(),w(null);return}if(N.current.isDragging){let j=xx(N.current,K);j&&o({type:"MODIFY_STYLES_BATCH",payload:j}),N.current=Lp(),Q(null);return}if(l.current.isDragging){let j="button"in q&&q.button===2,P=wx(l.current,s,j);P&&o({type:"MODIFY_STYLES_BATCH",payload:P}),l.current=$p(),D(null);return}if(f.current.isDragging){let j=Sx(f.current,m);j&&o({type:"MODIFY_STYLES_BATCH",payload:j}),f.current=Pp(),O(null);return}if(c.current.isDragging){let j=Ix(c.current,p);j&&o({type:"MODIFY_STYLES_BATCH",payload:j}),c.current=Rp(),I(null);return}if(g){R(null);return}if(!a)return;let S=e.get(a.annotation.id),ee=t.current?.getContext("2d"),G=0;S!==void 0&&ee&&(ee.font=`${a.annotation.fontSize||12}px ${An}`,G=ee.measureText(`${S}. `).width);let H=$b({session:a,clickPoint:d(q),groupLabelWidth:G});H&&(u.current=null,r.current=null,F(a.annotation.id),H.color&&o({type:"SET_COLOR",payload:H.color}),y(H.activeText)),k(null)},[e,t,n,r,o,i,a,l,s,d,c,p,u,f,m,g,y,w,k,D,I,O,R,F,Q,N,K])}var I0=class{constructor(){this.anchor=null,this.axis=null,this.direction=0,this.reversals=0,this.sequenceStartedAt=0,this.lastTriggerAt=Number.NEGATIVE_INFINITY}push(e){if(e.time-this.lastTriggerAt<700)return this.anchor=e,!1;if(!this.anchor||this.sequenceStartedAt&&e.time-this.sequenceStartedAt>520)return this.reset(e),!1;let t=e.x-this.anchor.x,n=e.y-this.anchor.y,r=Math.hypot(t,n);if(!this.axis)return r<16||(this.axis={x:t/r,y:n/r},this.direction=1,this.sequenceStartedAt=e.time,this.anchor=e),!1;let o=t*this.axis.x+n*this.axis.y,i=t*-this.axis.y+n*this.axis.x;if(Math.abs(o)<16)return!1;if(Math.abs(i)>Math.abs(o)*.7)return this.reset(e),!1;let a=Math.sign(o);return a===this.direction?(this.anchor=e,!1):(this.direction=a,this.reversals+=1,this.anchor=e,this.reversals<3?!1:(this.lastTriggerAt=e.time,this.reset(e,!0),!0))}reset(e=null,t=!1){this.anchor=e,this.axis=null,this.direction=0,this.reversals=0,this.sequenceStartedAt=0,t||(this.lastTriggerAt=Number.NEGATIVE_INFINITY)}};function k0({activeTool:e,isAnnotating:t,clearStickerPreview:n,dispatch:r,setStickerCursor:o,startCursorSwitchPulse:i}){let a=J(new I0),l=J(null);return{handleShakePointerMove:U(({isManipulating:s,isTouchEvent:d,viewportPoint:c})=>{if(d||s||!t||e!=="inspector"&&e!=="sticker"||!a.current.push({...c,time:performance.now()}))return!1;let p=e==="sticker"?"inspector":"sticker";return l.current={from:e,to:p},i(p),p==="sticker"?o(c):n(),r({type:"SET_TOOL",payload:p}),!0},[e,n,r,t,o,i]),pendingShakeToolTransitionRef:l}}function qp(e){return Math.random().toString(36).substring(2,e+2)}function E0(e,t,n,r={}){let{textNode:o,targetElement:i,textNodePath:a,segments:l,originalText:s,rect:d,boundaryRect:c,boundaryRects:p,flowRect:u,firstLineIndent:f,styles:m,fontSize:g,wrapsText:y}=e,w=i.getAttribute("data-pm");w||(w=r.createPmId?.()??qp(6),i.setAttribute("data-pm",w));let k=`[data-pm="${w}"]`;return{id:r.createEditId?.()??qp(7),point:{x:d.left+n.x,y:d.top+n.y},text:s,fontSize:g,isNew:!0,clickPoint:t,domEdit:{selector:k,durableSelector:yo(i),element:{...hn(i),selector:k},textNodePath:a,originalText:s,textNode:o,targetElement:i,segments:l,rect:d,boundaryRect:c,boundaryRects:p,flowRect:u,firstLineIndent:f,fontFamily:m.fontFamily,fontWeight:m.fontWeight,fontStyle:m.fontStyle,lineHeight:m.lineHeight==="normal"?`${Math.round(g*1.2*10)/10}px`:m.lineHeight,letterSpacing:m.letterSpacing,color:m.color,textTransform:m.textTransform,textAlign:m.textAlign,wordSpacing:m.wordSpacing,textDecoration:m.textDecoration,textShadow:m.textShadow,whiteSpace:m.whiteSpace,wordBreak:m.wordBreak,overflowWrap:m.overflowWrap,wrapsText:y}}}function T0(e){let t=_m(e.clientX,e.clientY,e.canvas);return t?E0(t,e.clickPoint,e.scroll):null}function C0({activeText:e,activeTextRef:t,canvasRef:n,clearPageElementHover:r,clearSelection:o,clearSignal:i,commentTextEditCandidateRef:a,cursorPosRef:l,dispatch:s,findTextAtPoint:d,lastPositionedTextId:c,onAttachImages:p,onCloseThread:u,onSend:f,pendingLinkedText:m,releaseActiveTextAttachments:g,setActiveText:y,setDragState:w,setHoveredTextId:k,setPendingLinkedText:D,setSendHintAnchorId:I,state:O,stateRef:R}){_(()=>{m&&(y({id:Math.random().toString(36).substring(2,9),point:m.point,subjectAnchor:m.subjectAnchor,text:"",fontSize:12,isNew:!0,linkedSelector:m.linkedSelector,target:m.target,linkedAnchor:m.linkedAnchor,elements:m.elements}),D(null))},[m,y,D]),_(()=>{let G=H=>{if(e)return;let j=d({x:H.clientX+window.scrollX,y:H.clientY+window.scrollY});k(j?.id??null)};return window.addEventListener("mousemove",G),()=>window.removeEventListener("mousemove",G)},[e,d,k]);let F=U(()=>{if(!e)return;if(e.domEdit){y(null);return}let G=zb(e);G.sendHintAnchorId&&I(G.sendHintAnchorId),G.action&&s(G.action),G.attachedImages&&p&&p(G.attachedImages.annotationId,G.attachedImages.images),y(null)},[e,s,p,y,I]),Q=U(G=>{let H=R.current.annotations.find(P=>P.id===G);if(!H||H.type!=="text"||!H.points[0]||(H.status??"pending")!=="pending")return;let j=t.current;j&&j.id!==H.id&&F(),o(),r(),c.current=null,l.current=H.text?.length??0,I(H.id),H.color&&s({type:"SET_COLOR",payload:H.color}),y({id:H.id,point:H.points[0],text:H.text||"",fontSize:H.fontSize||12,isNew:!1,groupId:H.groupId,linkedSelector:H.linkedSelector,target:H.target,linkedAnchor:H.linkedAnchor,elements:H.elements,attachments:H.attachments,interactionEpisode:H.interactionEpisode})},[t,r,o,F,l,s,c,y,I,R]),N=J(!1),K=U(()=>{if(!f)return;let G=t.current;if(xm(G?{text:G.text,originalText:G.domEdit?.originalText,hasInteractionEpisode:!!G.interactionEpisode?.steps.length}:null)){N.current=!0,F();return}f()},[t,F,f]);_(()=>{e||!N.current||(N.current=!1,f?.())},[e,f,O.annotations,O.textModifications]);let q=J(i);_(()=>{if(i===q.current)return;q.current=i;let G=t.current;G?.domEdit&&G.domEdit.segments.forEach(j=>{j.textNode.nodeValue=j.originalText});let H=G?.isNew?G.attachments??[]:[];g(H),N.current=!1,y(null),D(null),I(null),w(null),l.current=null,c.current=null,cs(localStorage)},[t,i,l,c,g,y,w,D,I]);let S=U((G,H,j)=>T0({clientX:G,clientY:H,clickPoint:j,canvas:n.current,scroll:{x:window.scrollX,y:window.scrollY}}),[n]),ee=U(G=>{u?.(),D(null),w(null),I(null),o(),r(),c.current=null,y(G)},[r,o,c,u,y,w,D,I]);return _(()=>{let G=P=>{if(P.button!==0)return;let E=R.current,C=a.current;if(!E.isAnnotating||E.activeTool!=="inspector"||!C)return;let X=Date.now()>C.expiresAt,ce=Math.hypot(P.clientX-C.clientX,P.clientY-C.clientY)>12,ue=C.edit.domEdit;if(X||ce||!ue?.textNode.isConnected||!ue.targetElement.isConnected){a.current=null;return}P.preventDefault(),P.stopPropagation(),a.current=null,ee(C.edit)},H=P=>{P.detail===2&&G(P)},j=P=>{G(P)};return window.addEventListener("mousedown",H,!0),window.addEventListener("dblclick",j,!0),()=>{window.removeEventListener("mousedown",H,!0),window.removeEventListener("dblclick",j,!0)}},[a,ee,R]),{commitActiveText:F,createInlineTextEdit:S,editPendingLinkedComment:Q,handleSendPendingBundle:K}}function A0(e,t){let n=Ir(Ti),r=e?.domEdit?.textNode;_(()=>{if(!n||!r)return;let o=null,i=()=>{t(a=>{if(!a?.domEdit)return a;let{textNode:l,targetElement:s,segments:d,rect:c,boundaryRect:p,boundaryRects:u,flowRect:f,firstLineIndent:m}=a.domEdit;if(!l.isConnected||!s.isConnected)return a;let g=Om(d,s,window.getComputedStyle(s)),{textRect:y,boundaryRect:w,boundaryRects:k,flowRect:D,firstLineIndent:I}=g;return Yc(c,y)&&Yc(p,w)&&Nm(u,k)&&Fm(f,D)&&Math.abs(m-I)<.5?a:{...a,point:{x:y.left+window.scrollX,y:y.top+window.scrollY},domEdit:{...a.domEdit,rect:y,boundaryRect:w,boundaryRects:k,flowRect:D,firstLineIndent:I}}}),o=window.requestAnimationFrame(i)};return o=window.requestAnimationFrame(i),()=>{o!==null&&window.cancelAnimationFrame(o)}},[n,r,t])}function M0({activeText:e,activeTextRef:t,canvasRef:n,visible:r}){let o=Ir(Ti),i=J(null),[a,l]=$(null),s=J(null),d=J(null),c=e?.id??null;return Lt(()=>{if(!o)return;let p=i.current,u=e?.domEdit;if(!p||!e||!u){l(null);return}let f=u.flowRect??u.rect,m=Math.max(1,window.innerWidth-f.left),g=Math.min(m,Math.max(1,f.width));p.style.width=`${u.wrapsText?g:1}px`,p.style.height="1px";let y=u.wrapsText?g:Math.min(m,Math.max(g,Math.ceil(p.scrollWidth)));p.style.width=`${y}px`;let w=Math.max(f.height,Math.ceil(p.scrollHeight));p.style.height=`${w}px`,l(k=>k?.id===e.id&&Math.abs(k.width-y)<.5&&Math.abs(k.height-w)<.5?k:{id:e.id,width:y,height:w})},[e,o]),_(()=>{if(!o)return;if(!c){s.current=null,d.current=null;return}if(!r||!i.current){s.current=null;return}let p=requestAnimationFrame(()=>{let u=i.current;if(!u||(u.focus(),s.current===c))return;s.current=c;let f=t.current;if(f){if(f.domEdit){u.setSelectionRange(0,u.value.length);return}if(d.current!==null){let m=Math.min(d.current,u.value.length);u.setSelectionRange(m,m);return}if(!f.isNew&&f.clickPoint){let m=n.current?.getContext("2d");if(!m)return;m.font=`${f.fontSize}px ${An}`;let g=Nb({text:f.text,fontSize:f.fontSize,point:f.point,clickPoint:f.clickPoint,context:m});u.setSelectionRange(g,g)}}});return()=>cancelAnimationFrame(p)},[c,t,n,r,o]),{cursorPosRef:d,domEditInputSize:a,inputRef:i,lastPositionedTextId:s}}var hd=["flex-start","center","flex-end"],fd=["flex-start","center","flex-end"],R0=300,Up=20;function $0({enabled:e,dispatch:t,handCursorRef:n,setGapRefreshKey:r}){let[o,i]=$(null),a=U(()=>i(null),[]);return _(()=>{let l=null,s=!1,d=null,c=null,p=null,u=null,f=0,m=(N,K)=>{let q=$i(N,K);for(;q&&q!==document.documentElement;){let S=window.getComputedStyle(q).display;if(S==="flex"||S==="inline-flex")return q;q=q.parentElement}return null},g=N=>{let K=window.getComputedStyle(N).flexDirection;return K==="column"||K==="column-reverse"?"vertical":"horizontal"},y=N=>{let K=N.getAttribute("data-pm");return K||(K=Math.random().toString(36).substring(2,8),N.setAttribute("data-pm",K)),{selector:`[data-pm="${K}"]`,durableSelector:yo(N)}},w=()=>{s=!0,l&&clearTimeout(l),l=setTimeout(()=>{s=!1,l=null},R0)},k=(N,K,q)=>{let S=g(N);if(K===S){let ee=window.getComputedStyle(N).justifyContent,G=ee==="normal"||ee==="flex-start"||ee==="start"?"flex-start":ee==="flex-end"||ee==="end"?"flex-end":ee==="center"?"center":null;if(!G)return;let H=hd.indexOf(G)+q;if(H<0||H>=hd.length)return;let j=hd[H],{selector:P,durableSelector:E}=y(N);it(N,"justify-content",j),t({type:"MODIFY_STYLES_BATCH",payload:{selector:P,durableSelector:E,element:hn(N),changes:[{property:"justify-content",original:ee,modified:j}]}})}else{let ee=window.getComputedStyle(N).flexDirection,G=S==="horizontal"?"column":"row",{selector:H,durableSelector:j}=y(N);it(N,"flex-direction",G),t({type:"MODIFY_STYLES_BATCH",payload:{selector:H,durableSelector:j,element:hn(N),changes:[{property:"flex-direction",original:ee,modified:G}]}})}r(ee=>ee+1)},D=(N,K,q)=>{let S=g(N)==="horizontal"?"vertical":"horizontal";if(K!==S)return;let ee=window.getComputedStyle(N).alignItems,G=ee==="normal"||ee==="stretch"||ee==="flex-start"||ee==="start"?"flex-start":ee==="flex-end"||ee==="end"?"flex-end":ee==="center"?"center":null;if(!G)return;let H=fd.indexOf(G)+q;if(H<0||H>=fd.length)return;let j=fd[H],{selector:P,durableSelector:E}=y(N);it(N,"align-items",j),t({type:"MODIFY_STYLES_BATCH",payload:{selector:P,durableSelector:E,element:hn(N),changes:[{property:"align-items",original:ee,modified:j}]}}),r(C=>C+1)},I=(N,K,q)=>{let S=m(K,q);i(S?{modifier:N,target:S}:null)},O=()=>{p=null,u=null,f=0,d=null,c=null,i(null)},R=N=>{if(!e)return;let K=n.current;N.key==="Shift"&&!N.altKey?I("shift",K.x,K.y):N.key==="Alt"&&!N.shiftKey&&I("alt",K.x,K.y)},F=N=>{if(!e)return;let K=N.shiftKey&&!N.altKey,q=N.altKey&&!N.shiftKey;if(!K&&!q||N.buttons!==0){O();return}if(d===null&&(d=N.clientX,c=N.clientY,I(K?"shift":"alt",N.clientX,N.clientY)),s)return;p===null&&(p=N.clientX,u=N.clientY,f=0);let S=N.clientX-p,ee=N.clientY-u,G=Math.abs(S)>=Math.abs(ee)?S:ee;if(Math.abs(G)>3){let E=G>0?1:-1;if(f!==0&&E!==f){p=N.clientX,u=N.clientY,f=0;return}f=E}if(Math.abs(S)<Up&&Math.abs(ee)<Up)return;let H=m(d,c);if(!H)return;let j=Math.abs(S)>=Math.abs(ee)?"horizontal":"vertical",P=(j==="horizontal"?S:ee)>0?1:-1;p=null,u=null,f=0,K?k(H,j,P):D(H,j,P),w()},Q=N=>{(N.key==="Shift"||N.key==="Alt")&&O()};return window.addEventListener("keydown",R),window.addEventListener("mousemove",F),window.addEventListener("mousedown",O),window.addEventListener("keyup",Q),()=>{window.removeEventListener("keydown",R),window.removeEventListener("mousemove",F),window.removeEventListener("mousedown",O),window.removeEventListener("keyup",Q),l&&clearTimeout(l)}},[t,e,n,r]),{swipeHint:o,clearSwipeHint:a}}function P0(e,t,n){let{destination:r,mode:o,scope:i}=t;if(o==="preview"&&i.kind!=="values"){let u=r.family,f=r.subproperty??Es(u,e.subproperty);return{next:{family:u,subproperty:f,step:ga(u,e.step,f),stage:i.kind==="colors"?"variant":"family"},pulseContextLabel:!1}}let a=r.family,l=r.step!==void 0,s=Cs(a),d=!l&&Go(a,r.subproperty??"all")?n.readColor(s):null,c=r.subproperty??Es(a,e.subproperty);a==="color"&&r.stage==="family"&&(c=d?.name??wr.name),(a==="border"||a==="text")&&r.subproperty==="color"&&(c=d?.name??wr.name);let p=l?null:d?d.name===c?d.step:Ts:n.readStep(a,c);return{next:{family:a,subproperty:c,step:r.step??p??ga(a,e.step,c),stage:r.stage},pulseContextLabel:r.stage!=="family"}}function md(e){if(e.kind==="colors")return"variant";if(e.kind==="values")return"value"}function L0(e){return e.stage==="variant"&&Go(e.family,e.subproperty)&&(e.family==="border"||e.family==="color"||e.family==="text")?{kind:"colors",family:e.family}:e.stage==="value"?{kind:"values",family:e.family,subproperty:e.subproperty}:ad}function j0(e,t,n,r=!1){if(!e)return n!==" "?{handled:!1,session:e}:r?{handled:!0,session:e}:{handled:!0,session:{query:"",segments:[],scope:L0(t),origin:t,history:[]}};if(n==="Escape")return{handled:!0,session:null};if(n==="Backspace"){if(e.query){let a=e.query.slice(0,-1),l=ld(e.scope,a);return{handled:!0,session:{...e,query:a},restore:l?void 0:e.segmentOrigin,destination:l?{mode:"preview",scope:e.scope,value:l.destination}:void 0}}let i=e.history.at(-1);return i?{handled:!0,restore:i.snapshot,session:{...e,query:"",segmentOrigin:void 0,segments:e.segments.slice(0,-1),scope:i.scope,history:e.history.slice(0,-1)}}:{handled:!0,session:null,restore:e.origin}}if(n===" "){if(!e.query.trim())return{handled:!0,session:e};let i=Ea(e.scope,e.query);return i?.nextScope?{handled:!0,destination:{mode:"navigate",scope:e.scope,value:i.destination},stage:md(i.nextScope),session:{...e,query:"",segmentOrigin:void 0,segments:[...e.segments,e.query.trim()],scope:i.nextScope,history:[...e.history,{scope:e.scope,snapshot:t}]}}:{handled:!0,session:e,command:"reject"}}if(n==="Enter"){if(e.scope.kind==="values"){let a=e.query.trim()?Ea(e.scope,e.query):null;return e.query.trim()&&!a?{handled:!0,session:e,command:"reject"}:a?.nextScope?{handled:!0,destination:{mode:"navigate",scope:e.scope,value:a.destination},stage:md(a.nextScope),session:{...e,query:"",segmentOrigin:void 0,segments:[...e.segments,e.query.trim()],scope:a.nextScope,history:[...e.history,{scope:e.scope,snapshot:t}]}}:{handled:!0,session:e,destination:a?{mode:"navigate",scope:e.scope,value:a.destination}:void 0,command:"apply"}}let i=Ea(e.scope,e.query);return i?i.nextScope?{handled:!0,destination:{mode:"navigate",scope:e.scope,value:i.destination},stage:md(i.nextScope),session:{...e,query:"",segmentOrigin:void 0,segments:[...e.segments,e.query.trim()],scope:i.nextScope,history:[...e.history,{scope:e.scope,snapshot:t}]}}:{handled:!0,session:null,destination:{mode:"navigate",scope:e.scope,value:i.destination}}:{handled:!0,session:e,command:"reject"}}let o=n.toLowerCase();if(!r&&(o==="w"||o==="a"||o==="s"||o==="d")&&e.query.at(-1)===o)return{handled:!1,session:null,replayAsSteering:!0,restore:e.segmentOrigin??e.origin};if(n.length===1){let i=`${e.query}${n.toLowerCase()}`,a=ld(e.scope,i);return{handled:!0,session:{...e,query:i,segmentOrigin:e.query?e.segmentOrigin:t},destination:a?{mode:"preview",scope:e.scope,value:a.destination}:void 0}}return{handled:!1,session:e}}function z0(e,t,n){let r=t.toLowerCase(),o=()=>({handled:!0,next:e});if(r==="a"||r==="d"||t==="ArrowLeft"||t==="ArrowRight"){let i=r==="a"||t==="ArrowLeft"?-1:1;if(e.stage==="family"){let a=qm(e.family,i),l=a==="color"?wr.name:Es(a,e.subproperty);return{handled:!0,next:{family:a,subproperty:l,step:a==="color"?wr.step:ga(a,e.step,l),stage:e.stage}}}return e.stage==="variant"&&Go(e.family,e.subproperty)?{handled:!0,next:{...e,subproperty:Um(e.subproperty,i),step:Ts}}:{handled:!0,next:{...e,step:Ym(e.family,e.step,i,e.subproperty)}}}if(r==="q"||r==="e"){if(e.family==="color")return o();let i=r==="q"?-1:1,a=Xm(e.family,e.subproperty,i);if((e.family==="text"||e.family==="border")&&a==="color"){if(e.stage==="family")return{handled:!0,next:{...e,subproperty:"color",step:Ts}};let l=n.readColor(Cs(e.family));return{handled:!0,next:{...e,subproperty:l?.name??wr.name,step:l?.step??wr.step,stage:Gc(e.stage,e.family,a)}}}return{handled:!0,next:{...e,subproperty:a,step:n.readStep(e.family,a)??ga(e.family,e.step,a),stage:Gc(e.stage,e.family,a)}}}if(r==="w"||t==="Enter"){if(e.stage==="family"){if(e.family==="color"){let i=n.readColor("background-color");return{handled:!0,next:{...e,subproperty:i?.name??wr.name,step:i?.step??wr.step,stage:"variant"}}}if((e.family==="text"||e.family==="border")&&e.subproperty==="color"){let i=n.readColor(Cs(e.family));return{handled:!0,next:{...e,subproperty:i?.name??wr.name,step:i?.step??wr.step,stage:"variant"}}}return{handled:!0,next:{...e,step:n.readStep(e.family,e.subproperty)??e.step,stage:"value"}}}return e.stage==="variant"?{handled:!0,next:{...e,step:ga(e.family,e.step,e.subproperty),stage:"value"}}:{handled:!0,next:e,command:"apply"}}return r==="s"?e.stage==="value"?{handled:!0,next:{...e,stage:Go(e.family,e.subproperty)?"variant":"family"}}:e.stage==="variant"?{handled:!0,next:{...e,subproperty:e.family==="text"?"color":e.subproperty,stage:"family"}}:o():t==="Escape"&&e.stage!=="family"?{handled:!0,stopPropagation:!0,next:{...e,subproperty:e.stage==="variant"&&e.family==="text"?"color":e.subproperty,stage:e.stage==="value"&&Go(e.family,e.subproperty)?"variant":"family"}}:{handled:!1,next:e}}function D0({active:e,family:t,step:n,subproperty:r,stage:o,query:i,setFamily:a,setStep:l,setSubproperty:s,setStage:d,setQuery:c,setCursor:p,setContextLabelPulse:u,setDepthSnapPulse:f,setRejectPulse:m,lastCursorRef:g,toolbarRef:y,previewRef:w,applyStickerRef:k,readColor:D,readStep:I}){_(()=>{if(!e)return;g.current&&p(g.current);let O=R=>{let F=R.composedPath?.()[0]??R.target;if(F?.tagName==="INPUT"||F?.tagName==="TEXTAREA"||F?.isContentEditable||F&&y?.current?.contains(F)||R.metaKey||R.ctrlKey||R.altKey)return;let Q={family:t,step:n,subproperty:r,stage:o},N=ee=>{a(ee.family),l(ee.step),s(ee.subproperty),d(ee.stage)},K=ee=>{let G=P0(Q,ee,{readColor:D,readStep:I});return N(G.next),G.pulseContextLabel&&u(H=>H+1),G.next},q=j0(i,Q,R.key,R.repeat);if(q.replayAsSteering&&(c(null),f(ee=>ee+1)),q.handled){R.preventDefault(),R.stopPropagation(),q.restore&&N(q.restore);let ee=q.destination?K({mode:q.destination.mode,scope:q.destination.scope,destination:q.destination.value}):void 0;if(q.stage&&d(q.stage),q.command==="reject"&&m(G=>G+1),q.command==="apply"){let G=w.current?.element,H=ee?{family:ee.family,step:ee.step,subproperty:ee.subproperty}:void 0;G&&k.current(G,H)?c(null):(c(q.session),G||m(j=>j+1));return}c(q.session);return}let S=z0(q.replayAsSteering&&q.restore?q.restore:Q,R.key,{readColor:D,readStep:I});if(S.handled&&(R.preventDefault(),S.stopPropagation&&R.stopPropagation(),a(S.next.family),l(S.next.step),s(S.next.subproperty),d(S.next.stage),S.command==="apply")){let ee=w.current?.element;ee?k.current(ee):m(G=>G+1)}};return window.addEventListener("keydown",O,!0),()=>window.removeEventListener("keydown",O,!0)},[e,k,t,g,w,i,D,I,u,p,f,a,c,m,d,l,s,o,n,r,y])}function H0(e,t,n,r){let{deltaX:o,deltaY:i}=t;if(e.transformKind==="translate"&&e.startTranslate){let p=Hv({x:o,y:i},r),u=eo("translate",e.startTranslate.x+p.x),f=eo("translate",e.startTranslate.y+p.y),m=Math.abs(p.x)>=Math.abs(p.y)?u:f;return{subproperty:"translate",step:m,drag:{...e,subproperty:"translate",step:m,translateSteps:{x:u,y:f},translateValue:`${Number(u)*4}px ${Number(f)*4}px`,hasMoved:e.hasMoved||Math.abs(o)>2||Math.abs(i)>2,cursor:t.cursor,deltaX:o,deltaY:i}}}let a=e.vector?_v(o,i,e.vector):e.axis==="x"?o:i,l=e.startPixels+a*(e.direction??1),s=e.transformKind==="rotate"?l:Math.max(0,l),d=e.side?Xs(e.side,n):e.corner?Ks(e.corner,n):e.subproperty,c=e.transformKind?eo(e.transformKind,s):Sl(e.family,d,s);return{subproperty:d,step:c,drag:{...e,subproperty:d,step:c,hasMoved:e.hasMoved||Math.abs(o)>2||Math.abs(i)>2,cursor:t.cursor,deltaX:o,deltaY:i}}}function O0(){let[e,t]=$(null),n=J(e);n.current=e;let r=J(null),o=U(d=>{let c=d.requestPointerLock;if(typeof c=="function"){r.current=d;try{let p=c.call(d);p&&p.catch(()=>{r.current===d&&(r.current=null)})}catch{r.current=null}}},[]),i=U((d,c)=>{n.current=d,t(d),o(c)},[o]),a=U(d=>{n.current=d,t(d)},[]),l=U(()=>{n.current=null,t(null)},[]),s=U(()=>{let d=r.current;r.current=null,d&&document.pointerLockElement===d&&document.exitPointerLock()},[]);return{drag:e,dragRef:n,pointerLockElementRef:r,startDrag:i,replaceDrag:a,clearDrag:l,releasePointerLock:s}}function N0(e,t){let n=J(t);n.current=t;let{dragRef:r,pointerLockElementRef:o,replaceDrag:i,clearDrag:a,releasePointerLock:l}=e;_(()=>{let s=(g,y)=>{let w=r.current;if(!w)return;let k=o.current,D=k!==null&&document.pointerLockElement===k?Wv(w,{x:g.movementX,y:g.movementY},{width:window.innerWidth,height:window.innerHeight}):{cursor:{x:g.clientX,y:g.clientY},deltaX:g.clientX-w.startX,deltaY:g.clientY-w.startY},I=H0(w,D,y,g.shiftKey);n.current.onSelectionChange(I.subproperty,I.step),i(I.drag),n.current.onCursorChange(D.cursor)},d=()=>{n.current.onCancel(),a(),l()},c=(g,y)=>{let w=r.current;if(!w)return;let k=w.side?Xs(w.side,g):w.corner?Ks(w.corner,g):w.subproperty;w.hasMoved&&n.current.onCommit(w,k,y),a(),l()},p=g=>{r.current&&(g.preventDefault(),s(g,g.altKey||g.ctrlKey))},u=g=>{r.current&&(g.preventDefault(),c(g.altKey||g.ctrlKey,{x:g.clientX,y:g.clientY}))},f=g=>{g.key!=="Escape"||!r.current||(g.preventDefault(),g.stopPropagation(),d())},m=()=>{let g=o.current;g&&document.pointerLockElement!==g&&r.current&&d()};return window.addEventListener("pointermove",p,{passive:!1}),window.addEventListener("pointerup",u),window.addEventListener("pointercancel",d),window.addEventListener("keydown",f,!0),document.addEventListener("pointerlockchange",m),()=>{window.removeEventListener("pointermove",p),window.removeEventListener("pointerup",u),window.removeEventListener("pointercancel",d),window.removeEventListener("keydown",f,!0),document.removeEventListener("pointerlockchange",m),l()}},[a,r,o,l,i])}function F0({applyStickerRef:e,clearStickerPreview:t,dispatch:n,hoveredElement:r,lastCanvasCursorRef:o,setHoveredElement:i,setHoveredElementInfo:a,setStickerApplyPulse:l,setStickerCursor:s,setStickerRejectPulse:d,setStickerStep:c,setStickerSubproperty:p,stickerFamily:u,stickerStep:f,stickerSubproperty:m,transformDragHandoffRef:g,transformPreviewSuppressionRef:y,transformPreviewTargetRef:w}){let k=O0(),{drag:D,dragRef:I,startDrag:O}=k,R=U((H,j)=>{if(Gr(H))return d(Y=>Y+1),!1;t();let P=j?.family??u,E=j?.step??f,C=j?.subproperty??m;if(!fl(H,P,C))return d(Y=>Y+1),!1;let X=P==="transform"&&C==="translate"&&j?.axisSteps?Pu(H,j.axisSteps.x,j.axisSteps.y):$u(H,P,E,C);if(X.alreadyApplied)return d(Y=>Y+1),!1;let ce=ys(H),ue=yo(H);return ky(H,X),n({type:"MODIFY_STYLES_BATCH",payload:{selector:ce,durableSelector:ue,element:{...hn(H),selector:ue},changes:X.changes}}),l(Y=>Y+1),!0},[t,n,l,d,u,f,m]);e.current=R;let F=U((H,j,P)=>{if(!(r instanceof HTMLElement))return;P.preventDefault(),P.stopPropagation(),P.currentTarget.setPointerCapture(P.pointerId),t();let E=H==="margin"?Ac(r):ma(r),C=j==="left"||j==="right"?"x":"y",X=Xs(j,P.altKey||P.ctrlKey),ce=H==="margin",ue=j==="top"||j==="left"?ce?-1:1:ce?1:-1,Y=Sl(H,X,E[j]);p(X),c(Y),O({element:r,family:H,subproperty:X,startX:P.clientX,startY:P.clientY,startPixels:E[j],deltaX:0,deltaY:0,direction:ue,axis:C,step:Y,hasMoved:!1,side:j,cursor:{x:P.clientX,y:P.clientY}},P.currentTarget)},[t,r,c,p,O]),Q=U((H,j)=>{if(!(r instanceof HTMLElement)||u!=="stack"&&u!=="grid")return;j.preventDefault(),j.stopPropagation(),j.currentTarget.setPointerCapture(j.pointerId),t();let P=Qa(r),E=H==="row"?P.row:P.column,C=Sl(u,"gap",E);p("gap"),c(C),O({element:r,family:u,subproperty:"gap",startX:j.clientX,startY:j.clientY,startPixels:E,deltaX:0,deltaY:0,direction:1,axis:H==="row"?"y":"x",step:C,hasMoved:!1,gapAxis:H,cursor:{x:j.clientX,y:j.clientY}},j.currentTarget)},[t,r,c,p,O,u]),N=U((H,j)=>{if(!(r instanceof HTMLElement))return;j.preventDefault(),j.stopPropagation(),j.currentTarget.setPointerCapture(j.pointerId),t();let P=Ks(H,j.altKey||j.ctrlKey),E=Ai(r)[H],C=Sl("radius",P,E);p(P),c(C),O({element:r,family:"radius",subproperty:P,startX:j.clientX,startY:j.clientY,startPixels:E,deltaX:0,deltaY:0,vector:Vs(H),step:C,hasMoved:!1,corner:H,cursor:{x:j.clientX,y:j.clientY}},j.currentTarget)},[t,r,c,p,O]),K=U((H,j,P,E)=>{if(!Sr(r))return;P.preventDefault(),P.stopPropagation(),P.currentTarget.setPointerCapture(P.pointerId);let C=window.getComputedStyle(r).getPropertyValue(H).trim(),X=H==="translate"?rp(C):void 0,ce=H==="scale"?(Number.parseFloat(C)||1)*100:H==="translate"?X.x:Number.parseFloat(C)||0,ue=eo(H,ce),Y=wa(r),he=Di(r,Y),W=H==="scale"&&j?zv(he,j):H==="rotate"?Dv(he,E??tp(he,20).side):void 0,fe=X?{x:eo("translate",X.x),y:eo("translate",X.y)}:void 0;y.current=null,g.current=null,t(),p(H),c(ue),O({element:r,family:"transform",subproperty:H,startX:P.clientX,startY:P.clientY,startPixels:ce,deltaX:0,deltaY:0,direction:1,vector:W,step:ue,hasMoved:!1,transformKind:H,transformCorner:j??void 0,startTranslate:X,translateSteps:fe,translateValue:X?`${X.x}px ${X.y}px`:void 0,ghostQuad:he,cursor:{x:P.clientX,y:P.clientY}},P.currentTarget)},[t,r,c,p,O,g,y]),q=U((H,j)=>{p(H),c(j)},[c,p]),S=U(H=>{o.current=H,s(H)},[o,s]),ee=U((H,j,P)=>{e.current(H.element,{family:H.family,step:H.step,subproperty:j,axisSteps:H.translateSteps}),H.family==="transform"&&(y.current={element:H.element,subproperty:H.subproperty,step:H.step},g.current={element:H.element,releasePoint:P},w.current=null,i(H.element),a(hn(H.element)))},[e,i,a,g,y,w]),G=U(()=>{t(),y.current=null,g.current=null},[t,g,y]);return N0(k,{onSelectionChange:q,onCursorChange:S,onCommit:ee,onCancel:G}),{applySticker:R,beginSteerGapDrag:Q,beginSteerRadiusDrag:N,beginSteerSpacingDrag:F,beginSteerTransformDrag:K,steerDrag:D,steerDragRef:I}}function _0(e,t){_(()=>{let n=r=>{if(r.pointerType==="touch")return;let o={x:r.clientX,y:r.clientY};e.current=o,t?.(o)};return window.addEventListener("pointermove",n,{capture:!0,passive:!0}),()=>window.removeEventListener("pointermove",n,{capture:!0})},[e,t])}function W0(e){return e instanceof Element&&e.closest("[data-popmelt-steer-overlay]")!==null}function Yp(e){return e instanceof Element&&e.closest("[data-popmelt-subject-label-action]")!==null}var Xp=8,gd=-.5,Io="__active_text_send_hint__",B0=4;function J0({historyPreview:e,bridgeUrl:t,steeringContextStorageKey:n,state:r,dispatch:o,onScreenshot:i,inFlightAnnotationIds:a,inFlightOrientationLabels:l,waitingApprovalJobIds:s,activeAnnotationIds:d,queuePositionMap:c,inFlightStyleSelectors:p,inFlightStyleSelectorJobIds:u,inFlightSelectorColors:f,modifiedElementThreadStates:m,dismissedThreadIds:g,onAttachImages:y,onRemoveImages:w,onCaptureInteractionFrame:k,onSend:D,onViewThread:I,onCloseThread:O,onArchiveThread:R,onDeleteSubmittedAnnotation:F,highlightedAnnotationIds:Q,cycleFocusedAnnotationIds:N,onCanvasInteraction:K,focusedThreadAnnotationId:q,openThreadId:S,hasOpenThread:ee=!1,externalCanvasRef:G,toolbarRef:H,threadPanelElement:j,clearSignal:P=0,subjectRegistry:E,subjectRegistryReady:C=!0,onFocusTargetChange:X,onFocusActivity:ce}){let ue=Ir(Ti),{canvasRef:Y,redrawAll:he,resizeCanvas:W}=Ff(),[fe,re]=$(null),[pe,ye]=$(0),[Be,Ee]=$(0),z=U(()=>Ee(v=>v+1),[]),Ne=as(),$e=U(v=>{Y.current=v,G&&(G.current=v),re(A=>A===v?A:v)},[G,Y]);Lt(()=>{if(!E||!C)return;let v=!1;for(let A of r.annotations)A.target&&(v=!0,!E.resolve(A.target)&&A.elements?.[0]&&E.restore(A.target,A.elements[0]));v&&ye(A=>A+1)},[r.annotations,E,C]);let Xe=J(null),Ye=J(0),[We,Ae]=$(null),se=U(()=>{let v=Xe.current;Xe.current=null,Ae(null),v&&(v.session.cancel(),v.captureTarget.hasPointerCapture(v.pointerId)&&v.captureTarget.releasePointerCapture(v.pointerId))},[]),Fe=J(!1),[Ke,xt]=$(!1),et=J(null),Se=J(null),[Ue,ht]=$(!1),gt=J(Promise.resolve()),[nt,lt]=$(0),[Ht,nn]=$(null),cn=U(()=>{if(!k)return Promise.resolve(null);let v=gt.current.then(async()=>(await new Promise(A=>window.requestAnimationFrame(()=>A())),k()));return gt.current=v.catch(()=>null),v},[k]),Mn=J(r.activeTool),At=J(null),Pe=J(null),Wt=U(()=>{et.current?.cancel(),et.current=null,Se.current=null,Fe.current=!1,At.current=null,Pe.current=null,xt(!1),ht(!1),lt(0),nn(null)},[]),dt=U(()=>{se(),Fe.current=!0,Mn.current=r.activeTool,xt(!0)},[se,r.activeTool]);_(()=>{Fe.current&&r.activeTool!==Mn.current&&Wt()},[Wt,r.activeTool]),_(()=>{(!r.isAnnotating||r.activeTool!=="inspector")&&se()},[se,r.activeTool,r.isAnnotating]),_(()=>()=>{let v=Xe.current;Xe.current=null,v?.session.cancel()},[]);let{activeText:b,setActiveText:ie,handleTextPaste:ve,removeActiveTextAttachment:Je,releaseActiveTextAttachments:Mt}=tv({bridgeUrl:t,annotations:r.annotations}),[Le,ct]=$(null),[Ve,Bt]=$(null),[ge,Oe]=$(null),[tt,wt]=$(0),rt=J(null),ot=J(null),rn=J(null),[qe,Nn]=$(null),[Rn,Ot]=$(null),Kn=J(void 0);Kn.current===void 0&&(Kn.current=n&&typeof window<"u"?Rx(window.localStorage,n):null);let bn=Kn.current,[St,ar]=$(()=>bn?.family??"padding"),[on,xn]=$(()=>bn?.step??4),[Jt,to]=$(()=>bn?.subproperty??"all"),[an,Ar]=$(()=>bn?.stage??"family"),[Mr,Zt]=$(null);_0(ot,Ue?nn:r.isAnnotating&&r.activeTool==="sticker"?Zt:void 0);let[Nt,yt]=$(null),en=U(v=>{yt({id:performance.now(),nativeReady:!1,tool:v})},[]),[$n,wn]=$(0),[Rr,lr]=$(0),[oi,$r]=$(0),[Ui,Ft]=$(0),[Sn,Pr]=$(!1),[Lr,Fn]=$(0),[fn,sr]=$(()=>bn?.query??null);_(()=>{!n||typeof window>"u"||$x(window.localStorage,n,{family:St,step:on,subproperty:Jt,stage:an,query:fn})},[n,St,fn,an,on,Jt]);let _t=J(r.activeTool),He=J(!1),no=J(()=>!1),jt=J(null),Pn=J(null),Vn=J(r.styleModifications),Kt=J(null),_n=J(null),qt=J(null),Gn=J(null),ln=U(()=>{Gn.current!==null&&(cancelAnimationFrame(Gn.current),Gn.current=null)},[]),dr=U(()=>{if(ln(),!ue)return;let v=performance.now()+Hp,A=()=>{Ox(jt.current);let Z=Kt.current;Z&&jt.current?.element===Z.element&&(Z.renderedQuad=Di(Z.element,Z.layoutQuad)),Fn(ae=>ae+1),performance.now()<v?Gn.current=requestAnimationFrame(A):Gn.current=null};Gn.current=requestAnimationFrame(A)},[ln,ue]);_(()=>(ue?jt.current&&dr():ln(),ln),[ue,dr,ln]);let st=U(()=>{ln();let v=jt.current;v&&(Ta(v),jt.current=null,Pn.current=null,Fn(A=>A+1))},[ln]),{handleShakePointerMove:cr,pendingShakeToolTransitionRef:Rt}=k0({activeTool:r.activeTool,isAnnotating:r.isAnnotating,clearStickerPreview:st,dispatch:o,setStickerCursor:Zt,startCursorSwitchPulse:en});Lt(()=>{let v=Vn.current,A=r.styleModifications;Vn.current=A,!(v===A||!jt.current)&&(ln(),Hx(jt.current,v,A),jt.current=null,Pn.current=null,Kt.current=null,Fn(Z=>Z+1))},[r.styleModifications,ln]),Lt(()=>{Op(r.activeTool,r.isAnnotating)&&(st(),_n.current=null,qt.current=null)},[st,r.activeTool,r.isAnnotating]);let In=U(()=>{Ar("family"),Zt(null),sr(null)},[]);Lt(()=>{let v=_t.current,A=r.activeTool,Z=Rt.current,ae=Z?.from===v&&Z.to===A;Rt.current=null,_t.current=A;let Ie=Px(v,A,ae,He.current);He.current=Ie.preservedAway,Ie.shouldReset&&In()},[Rt,In,r.activeTool]),Lt(()=>{r.isAnnotating||(He.current=!1,In())},[In,r.isAnnotating]);let Yi=U((v,A)=>{if(st(),!qe)return null;let Z=window.getComputedStyle(qe),ae=_f(v,A).map(Ie=>Z.getPropertyValue(Ie));return Wf(v,ae,A)},[st,qe]),Mo=U(v=>(st(),qe?Bf(window.getComputedStyle(qe).getPropertyValue(v)):null),[st,qe]);D0({active:r.activeTool==="sticker"&&r.isAnnotating,family:St,step:on,subproperty:Jt,stage:an,query:fn,setFamily:ar,setStep:xn,setSubproperty:to,setStage:Ar,setQuery:sr,setCursor:Zt,setContextLabelPulse:lr,setDepthSnapPulse:$r,setRejectPulse:Ft,lastCursorRef:ot,toolbarRef:H,previewRef:jt,applyStickerRef:no,readColor:Mo,readStep:Yi});let[Ln,ur]=$(null),[pr,hr]=$(null),[fr,jr]=$(null),[jn,sn]=$(!1),Qn=J(Rp()),Ro=J(bc()),[mr,It]=$(null),[Me,L]=$(null),[te,be]=$(null),[Re,Te]=$(null),De=J({x:0,y:0}),[Ge,ut]=$({x:0,y:0}),je=J($p()),[Vt,$o]=$(null),[gr,kn]=$(null),[Zn,Xi]=$(null),[La,ja]=$(!1),[Ki,Vi]=$(0),{swipeHint:ii,clearSwipeHint:ai}=$0({enabled:r.activeTool==="hand"&&r.isAnnotating,dispatch:o,handCursorRef:De,setGapRefreshKey:Vi}),En=J(Pp()),[Po,zr]=$(null),[Dr,li]=$(null),[er,si]=$(null),di=J(Lp()),[ci,Lo]=$(null),[jo,za]=$(null),[ui,pi]=$(null),Da=dv(),Gi=J(f);Gi.current=f;let vt=U(v=>{let A=Gi.current;if(!A||A.size===0)return!1;for(let Z of A.keys())try{if(v.matches(Z))return!0}catch{}return!1},[]),{applySticker:Ha,beginSteerGapDrag:Oa,beginSteerRadiusDrag:Wl,beginSteerSpacingDrag:Bl,beginSteerTransformDrag:Jl,steerDrag:zn,steerDragRef:ql}=F0({applyStickerRef:no,clearStickerPreview:st,dispatch:o,hoveredElement:qe,lastCanvasCursorRef:ot,setHoveredElement:Nn,setHoveredElementInfo:Ot,setStickerApplyPulse:wn,setStickerCursor:Zt,setStickerRejectPulse:Ft,setStickerStep:xn,setStickerSubproperty:to,stickerFamily:St,stickerStep:on,stickerSubproperty:Jt,transformDragHandoffRef:qt,transformPreviewSuppressionRef:_n,transformPreviewTargetRef:Kt});_(()=>{Pr(!1);let v=zn?.family==="transform"?zn.element:qe;if(Op(r.activeTool,r.isAnnotating)||an!=="value"||!fl(v,St,Jt)||Gr(v)){Kt.current=null,st();return}let A={element:v,family:St,step:on,subproperty:Jt,valueOverride:zn?.transformKind==="translate"?zn.translateValue:void 0},Z=_n.current,ae=St==="transform"&&Z?.element===v&&Z.subproperty===Jt&&Z.step===on;if(Z&&!ae&&(_n.current=null),ae){if(st(),Kt.current?.element!==v){let{top:Qe,right:Et,bottom:Pt,left:Kr}=v.getBoundingClientRect(),Vr=wa(v);Kt.current={element:v,bounds:{top:Qe,right:Et,bottom:Pt,left:Kr},layoutQuad:Vr,renderedQuad:Di(v,Vr)},Fn(rs=>rs+1)}return}if(jt.current&&jx(Pn.current,A))return;if(St==="transform"){if(Kt.current?.element!==v){Ta(jt.current),jt.current=null,Pn.current=null;let{top:Qe,right:Et,bottom:Pt,left:Kr}=v.getBoundingClientRect(),Vr=wa(v);Kt.current={element:v,bounds:{top:Qe,right:Et,bottom:Pt,left:Kr},layoutQuad:Vr,renderedQuad:Di(v,Vr)}}}else Kt.current=null;let Ie=Nx(v,St,on,Jt,jt.current,A.valueOverride);jt.current=Ie.preview,Pn.current=A,Pr(Ie.stepUnavailable),Fn(Qe=>Qe+1),dr()},[st,qe,r.activeTool,r.isAnnotating,zn?.element,zn?.family,zn?.transformKind,zn?.translateValue,St,an,on,Jt,dr]),_(()=>()=>{ln(),Ta(jt.current),jt.current=null,Pn.current=null,Kt.current=null,_n.current=null,qt.current=null},[ln]);let kt=U(()=>{_n.current=null,qt.current=null,Nn(null),Ot(null),It(null),L(null),be(null),$o(null),kn(null),ja(!1),zr(null),li(null),Lo(null),za(null),ai()},[ai]),hi=b&&!b.domEdit?b?.id:null,mn=ge?`${ge.target.adapter}:${ge.target.key}`:null,Hr=hi??mn;_(()=>{Hr&&kt()},[Hr,kt]);let fi=U(v=>{ur(v),v&&kt()},[kt]),Ul=U(v=>{hr(v),v&&kt()},[kt]),Na=U((v,A)=>{jr(A?.length?{ownerId:v,annotationIds:A}:null),A?.length&&kt()},[kt]),Qi=U(v=>{sn(v),v&&kt()},[kt]),Yl=U((v,A)=>{st();let Z=tn(v);fl(Z,A.family,A.subproperty)&&(o({type:"SELECT_ANNOTATION",payload:{id:null}}),o({type:"SET_TOOL",payload:"sticker"}),ar(A.family),to(A.subproperty),xn(A.step),Ar("value"),Nn(Z),Ot(hn(Z)),ot.current&&Zt(ot.current))},[st,o]),Zi=U((v,A)=>{st(),kt(),hr(null),o({type:"CLEAR_STICKER",payload:{selector:v,sticker:A}})},[kt,st,o]),ro=U(v=>{if(!I)return;I(v);let A=0,Z=()=>{let ae=document.querySelector("[data-popmelt-shadow-host]")?.shadowRoot?.querySelector("[data-popmelt-reply]");if(ae){ae.focus(),ae.setSelectionRange(ae.value.length,ae.value.length);return}A+=1,A<6&&requestAnimationFrame(Z)};requestAnimationFrame(Z)},[I]),zt=J(r);zt.current=r;let tr=sv({annotations:r.annotations,currentPathname:Ne,dispatch:o,stateRef:zt,styleModifications:r.styleModifications,subjectRegistry:E,toolbarRef:H,onTargetResolutionChange:z}),Ut=J(b);Ut.current=b;let Or=J(b);_(()=>{let v=A=>{if(Or.current=null,A.button!==2)return;let Z=Ut.current;Or.current=Tp(Z)?Z:null};return window.addEventListener("pointerdown",v,!0),()=>window.removeEventListener("pointerdown",v,!0)},[]),A0(b,ie);let{cursorPosRef:Nr,domEditInputSize:zo,inputRef:Fr,lastPositionedTextId:oo}=M0({activeText:b,activeTextRef:Ut,canvasRef:Y,visible:r.isAnnotating}),_r=U(()=>{window.requestAnimationFrame(()=>{Fr.current?.focus();let v=Fr.current?.value.length??0;Fr.current?.setSelectionRange(v,v)})},[Fr]),io=U((v,A=Or.current)=>{let Z=Ut.current,ae=E?.hitTest(v)??null,Ie=ae?.element??$i(v.x,v.y),Qe=ae?.target,Et=[...zt.current.annotations].reverse().find(qn=>qn.type!=="text"||(qn.status??"pending")!=="pending"?!1:Qe&&qn.target?qn.target.adapter===Qe.adapter&&qn.target.key===Qe.key:!qn.linkedSelector||!Ie?!1:!!pn(qn.linkedSelector,qn.elements)?.contains(Ie)),Pt=ix({activationDraft:A,activeDraft:Z,annotations:zt.current.annotations,selectedAnnotationIds:zt.current.selectedAnnotationIds,lastSelectedId:zt.current.lastSelectedId,annotationAtCursor:Et});if(Or.current=null,!Pt||zt.current.activeTool!=="inspector")return!1;let Kr=Pt.value;et.current?.cancel();let Vr=Kr.target&&E?E.resolve(Kr.target):null,rs=Vr?.subject.sourceElement??(Kr.linkedSelector?tn(Kr.linkedSelector):null),Wh=qn=>{if(!(qn instanceof MouseEvent)||!E)return;let Xa=E.hitTest({x:qn.clientX,y:qn.clientY});if(!Xa)return;let Bh=Xa.target;return{element:Xa.subject.sourceElement??null,state:id(Xa),captureResult:()=>{let Qd=E.resolve(Bh);return Qd?id(Qd):void 0}}};return Se.current={id:Kr.id,draft:Pt.kind==="draft"},et.current=nx({subjectElement:rs,...Vr?{subjectState:id(Vr)}:{},resolveEventTarget:Wh,onActionCountChange:lt,captureFrame:k?cn:void 0}),kt(),ct(null),ur(null),hr(null),lt(0),nn(v),ht(!0),dt(),!0},[kt,cn,dt,k,E]),Fa=U(async()=>{let v=et.current,A=Se.current;if(!v||!A||!v.hasActions())return;let{episode:Z,frames:ae}=await v.finish();if(et.current=null,A.draft)ie(Ie=>{if(Ie?.id!==A.id)return Ie;let Qe=Ie.images?.length??0;return{...Ie,images:[...Ie.images??[],...ae],interactionEpisode:kp(Z,Qe)}});else{let Ie=zt.current.annotations.find(Qe=>Qe.id===A.id);if(Ie){let Qe=Ie.imageCount??0,Et=kp(Z,Qe);ae.length>0&&y?.(Ie.id,ae),o({type:"UPDATE_TEXT",payload:{id:Ie.id,text:Ie.text??"",imageCount:Qe+ae.length,interactionEpisode:Et}})}}Wt(),A.draft&&_r()},[o,Wt,_r,y,ie]),yr=U(v=>{let A=Ut.current;if(A?.id===v&&(ie(ae=>{if(ae?.id!==v)return ae;let Ie=new Set(ae.interactionEpisode?.frames?.map(Et=>Et.imageIndex)??[]),Qe={...ae};return delete Qe.interactionEpisode,Ie.size>0&&ae.images&&(Qe.images=ae.images.filter((Et,Pt)=>!Ie.has(Pt))),Qe}),A.isNew))return;let Z=zt.current.annotations.find(ae=>ae.id===v)?.interactionEpisode?.frames?.map(ae=>ae.imageIndex)??[];Z.length>0&&w?.(v,Z),o({type:"CLEAR_INTERACTION_EPISODE",payload:{id:v}})},[o,w,ie]),Do=U(()=>{let v=Se.current?.draft;Wt(),v&&_r()},[Wt,_r]);_(()=>{let v=A=>{if(!Fe.current)return;let Z=A.metaKey||A.ctrlKey;if(A.key==="Escape"&&Z){A.preventDefault(),A.stopPropagation(),A.stopImmediatePropagation(),et.current?Do():Wt();return}A.key==="Enter"&&Z&&et.current&&(A.preventDefault(),A.stopPropagation(),A.stopImmediatePropagation(),Fa())};return window.addEventListener("keydown",v,!0),()=>window.removeEventListener("keydown",v,!0)},[Do,Wt,Fa]),_(()=>{if(!Ue)return;let v=Z=>et.current?.recordEvent(Z),A=()=>et.current?.recordScroll();return window.addEventListener("click",v,!0),window.addEventListener("pointerdown",v,!0),window.addEventListener("pointerup",v,!0),window.addEventListener("input",v,!0),window.addEventListener("change",v,!0),window.addEventListener("submit",v,!0),window.addEventListener("keydown",v,!0),window.addEventListener("play",v,!0),window.addEventListener("pause",v,!0),window.addEventListener("seeked",v,!0),window.addEventListener("scroll",A,{capture:!0,passive:!0}),()=>{window.removeEventListener("click",v,!0),window.removeEventListener("pointerdown",v,!0),window.removeEventListener("pointerup",v,!0),window.removeEventListener("input",v,!0),window.removeEventListener("change",v,!0),window.removeEventListener("submit",v,!0),window.removeEventListener("keydown",v,!0),window.removeEventListener("play",v,!0),window.removeEventListener("pause",v,!0),window.removeEventListener("seeked",v,!0),window.removeEventListener("scroll",A,!0)}},[Ue]);let ea=J([]),Ho=J(i);Ho.current=i;let{dragState:_a,resizeState:mi,setDragState:gi,setResizeState:Oo}=Lb(),Wn=r.selectedAnnotationIds;ea.current=Wn;let Yt=U((v,A=!1)=>{o({type:"SELECT_ANNOTATION",payload:{id:v,addToSelection:A}})},[o]),Bn=U(()=>{o({type:"SELECT_ANNOTATION",payload:{id:null}})},[o]),Wr=U(v=>{let A=zt.current.annotations.find(Z=>Z.id===v);!A||!Va(A,zt.current.annotations)||(o({type:"DELETE_ANNOTATION",payload:{id:v}}),Ut.current?.id===v&&(Mt(Ut.current.attachments),ie(null)),kt(),ur(null),hr(null),jr(null),sn(!1),Bn())},[kt,Bn,o,Mt,ie]),Wa=U(v=>{let A=Jf(zt.current.textModifications,v,Ne);A&&(o(A),kt(),hr(null),jr(null),sn(!1))},[Ne,o,kt]),No=J({x:window.scrollX,y:window.scrollY}),ao=J(null),[gn,yi]=$(No.current);_(()=>{if(ue)return W(),window.addEventListener("resize",W),window.visualViewport?.addEventListener("resize",W),()=>{window.removeEventListener("resize",W),window.visualViewport?.removeEventListener("resize",W)}},[W,ue]),pv(b,ie,Le,r.annotations,o),qf({state:r,stateRef:zt,activeTextRef:Ut,selectedIdsRef:ea,dispatch:o,clearSelection:Bn,selectAnnotation:Yt,handHoveredElement:mr,onArchiveThread:R,openThreadId:S,currentPathname:Ne,hasOpenThread:ee});let{pageAnnotations:Gt,pageStyleModifications:Jn,pageTextModifications:nr,pendingBundleCount:ta,pendingTextAnnotations:Xl}=Uf({state:r,activeText:b,currentPathname:Ne,dismissedThreadIds:g,modifiedElementThreadStates:m}),{sendHintAnchorId:vi,setSendHintAnchorId:na}=uv({activeText:b,activeTextAnchorId:Io,hoveredElement:qe,hoveredTextId:Le,pendingTextAnnotations:Xl}),{locationLabels:Kl,tooltipAnnotationId:Ba,revealAnnotation:lo}=cv({annotations:Gt,annotationIds:tr,badgeHoveredAnnotationId:Ln,hoveredTextId:Le}),vr=U((v,A)=>{let Z=zt.current.annotations.find(ae=>ae.id===v);Z&&(Yt(v),A&&ro(A),tr.has(v)&&lo(Z))},[ro,tr,lo,Yt]),{cycleSpotlightAnnotationIds:ra,emphasizedAnnotationIds:oa,hoverRestoredAnnotationIds:ia,inactiveEmphasisOpacity:aa,statusSpotlightAnnotationIds:la}=nv({annotations:Gt,isCreatingAnnotation:!!(b?.isNew&&!b.domEdit),hoveredTextId:Le,badgeHoveredAnnotationId:Ln,highlightedAnnotationIds:Q,cycleFocusedAnnotationIds:N,hoveredElement:qe}),bi=Yf(ue?H?.current:null),x=bi.avoidTop,T=bi.avoidBottom,B=bi.avoidLeft,V=bi.avoidRight,oe=we(()=>({avoidTop:x,avoidBottom:T,avoidLeft:B,avoidRight:V}),[x,T,B,V]),{supersededAnnotations:ne,stagedArtifactOrder:me,annotationGroupMap:le,pageModificationNumberBySelector:Ce}=Xf({state:r,pageAnnotations:Gt,pageStyleModifications:Jn,pageTextModifications:nr}),ze=va(qe),de=!!(ge&&ze?.adapter===ge.target.adapter&&ze.key===ge.target.key),ke=!!(qe&&Rn&&!de&&!Le&&!Ln&&!b?.linkedSelector&&!Ve?.linkedSelector),{hiddenCollidingAnnotationIds:pt,nestedCollidingAnnotationCountById:Dt,nestedCollidingAnnotationIdsById:Br,visibleCollisionRepresentativeByAnnotationId:br}=rv({activeText:b,activeTextSendHintId:Io,annotationNumberById:le,badgeHoveredAnnotationId:Ln,canvasRef:Y,focusedThreadAnnotationId:q,hoveredElement:qe,hoveredElementInfo:Rn,hoveredTextId:Le,layoutReady:ue&&fe!==null,showHoverElementIdentifier:ke,layoutRevision:pe+Be,pageAnnotations:Gt,parentPinnedAnnotationIds:tr,pendingLinkedText:Ve,scroll:gn,supersededAnnotations:ne,textSafeBounds:oe}),{activeTextAnnotation:sa,activeTextCollisionId:xi,activeTextModifiedRail:Xt,activeTextNestedAnnotationCount:so,activeTextNestedAnnotationIds:Fo,activeTextNestedBadgeColor:xe,elementRailColorBySelector:Tt,elementRailComments:Tn,hiddenAnnotationBadgeIds:_o,modifiedElementSendHintSelector:Wo,stagedElementComments:$t,visibleCanvasAnnotations:co,visibleSendHintAnchorId:uo}=Kf({activeText:b,activeColor:r.activeColor,annotations:r.annotations,annotationNumberById:le,focusedThreadAnnotationId:q,hiddenCollidingAnnotationIds:pt,modifiedElementThreadStates:m,nestedCollidingAnnotationCountById:Dt,nestedCollidingAnnotationIdsById:Br,pageAnnotations:Gt,pageStyleModifications:Jn,pageTextModifications:nr,sendHintAnchorId:vi,supersededAnnotations:ne,visibleCollisionRepresentativeByAnnotationId:br,activeTextSendHintId:Io,targetResolutionRevision:pe+Be}),Jr=we(()=>{if(Wn.length===0)return null;let v=new Map;for(let A of Wn){let Z=r.annotations.find(Ie=>Ie.id===A);if(!Z)continue;let ae=Z.groupId?r.annotations.filter(Ie=>Ie.groupId===Z.groupId):[Z];for(let Ie of ae)if(Ie.linkedSelector&&!f?.has(Ie.linkedSelector)){let Qe=Ie.color||r.activeColor;v.set(Ie.linkedSelector,Qe)}}return v.size>0?v:null},[Wn,r.annotations,r.activeColor,f]),Dn=U((v=No.current)=>{he(co,Wn,Xp,v.x,v.y,le,la,oe,oa,ia,aa,tr)},[co,Wn,he,le,la,oe,oa,ia,aa,tr]);_(()=>{ue&&Dn(No.current)},[Dn,ue]),_(()=>{if(!ue)return;let v=()=>{let A={x:window.scrollX,y:window.scrollY};No.current=A,Dn(A),ao.current===null&&(ao.current=window.requestAnimationFrame(()=>{ao.current=null;let Z=No.current;yi(ae=>ae.x===Z.x&&ae.y===Z.y?ae:Z)}))};return v(),window.addEventListener("scroll",v,{passive:!0,capture:!0}),()=>{window.removeEventListener("scroll",v,!0),ao.current!==null&&(window.cancelAnimationFrame(ao.current),ao.current=null)}},[Dn,ue]);let{findAnnotationAtPoint:po,findHandleAtPoint:da,findTextAtPoint:Bo,getPoint:ho}=e0({annotationGroupMap:le,annotations:r.annotations,canvasRef:Y,handleSize:Xp,hiddenCollidingAnnotationIds:pt,pageAnnotations:Gt,parentPinnedAnnotationIds:tr,scroll:gn,selectedAnnotationIds:Wn,supersededAnnotations:ne,textSafeBounds:oe}),{commitActiveText:Cn,createInlineTextEdit:ca,editPendingLinkedComment:_e,handleSendPendingBundle:bt}=C0({activeText:b,activeTextRef:Ut,canvasRef:Y,clearPageElementHover:kt,clearSelection:Bn,clearSignal:P,commentTextEditCandidateRef:rn,cursorPosRef:Nr,dispatch:o,findTextAtPoint:Bo,lastPositionedTextId:oo,onAttachImages:y,onCloseThread:O,onSend:D,pendingLinkedText:Ve,releaseActiveTextAttachments:Mt,setActiveText:ie,setDragState:gi,setHoveredTextId:ct,setPendingLinkedText:Bt,setSendHintAnchorId:na,state:r,stateRef:zt}),Ct=U(()=>{let v=Or.current;rx(Ut.current,v)||Cn()},[Cn]),yn=Kx({activeText:b,applySticker:Ha,canvasRef:Y,clearSelection:Bn,commentTextEditCandidateRef:rn,commitActiveText:Cn,createInlineTextEdit:ca,dispatch:o,domDragRef:Ro,editPendingLinkedComment:_e,findAnnotationAtPoint:po,findHandleAtPoint:da,findTextAtPoint:Bo,gapDragRef:je,gapHoveredAxis:gr,gapHoveredElement:Vt,gapIsAuto:La,getPoint:ho,handleAnnotationActivation:vr,handDragRef:Qn,handHoveredElement:mr,handHoveredSide:Me,hoveredElement:qe,hoveredElementInfo:Rn,isElementInFlight:vt,onCanvasInteraction:K,openThreadAndFocusReply:ro,pageAnnotations:Gt,modifiedElementThreadStates:m,pageStyleModifications:Jn,parentPinnedAnnotationIds:tr,pointerTargetOverrideRef:Pe,radiusDragRef:En,radiusHoveredCorner:Dr,radiusHoveredElement:Po,selectAnnotation:Yt,setDragState:gi,setGapDragging:Xi,setHandDragging:Te,setPendingLinkedText:Bt,setRadiusDragging:si,setResizeState:Oo,setStickerRejectPulse:Ft,setTextDragging:pi,state:r,stickerStage:an,textDragRef:di,textHoveredElement:ci,textHoveredProperty:jo,toolbarRef:H});_(()=>{if(!Ke)return;let v=Ie=>{if(Ie.button===0){if(Ie.target instanceof Element&&Gr(Ie.target)){At.current=null;return}ce?.(),At.current={startX:Ie.clientX,startY:Ie.clientY,moved:!1}}},A=Ie=>{(!(Ie.target instanceof Element)||!Gr(Ie.target))&&ce?.();let Qe=At.current;Qe&&(At.current=_b(Qe,Ie.clientX,Ie.clientY))},Z=()=>{At.current=null},ae=Ie=>{let Qe=At.current;if(At.current=null,!Wb(Qe)||Ie.button!==0||Ie.target instanceof Element&&Gr(Ie.target)||et.current||r.activeTool!=="inspector"&&r.activeTool!=="sticker")return;let Et=r.activeTool==="inspector"?E?.hitTest({x:Ie.clientX,y:Ie.clientY}):null;Et&&E?.promote(Et.target);let Pt=Et?.element??$i(Ie.clientX,Ie.clientY);!Pt||Gr(Pt)||Pt===document.body||Pt===document.documentElement||r.activeTool==="inspector"&&vt(Pt)||r.activeTool==="sticker"&&!(Pt instanceof HTMLElement)&&!(Pt instanceof SVGElement)||(Pe.current={element:Pt,elementInfo:Et?.elementInfo??hn(Pt)},Ie.preventDefault(),Ie.stopPropagation(),Ie.stopImmediatePropagation(),yn(Ie))};return window.addEventListener("pointerdown",v,!0),window.addEventListener("pointermove",A,!0),window.addEventListener("pointercancel",Z,!0),window.addEventListener("click",ae,!0),()=>{window.removeEventListener("pointerdown",v,!0),window.removeEventListener("pointermove",A,!0),window.removeEventListener("pointercancel",Z,!0),window.removeEventListener("click",ae,!0)}},[yn,Ke,vt,r.activeTool,E,ce]),_(()=>{!r.isAnnotating&&Fe.current&&Wt()},[Wt,r.isAnnotating]);let qr=w0({activeTool:r.activeTool,annotations:r.annotations,canvasRef:Y,clearPageElementHover:kt,clearStickerPreview:st,dispatch:o,domDragRef:Ro,dragState:_a,findTextAtPoint:Bo,gapDragRef:je,gapHoveredAxis:gr,gapHoveredElement:Vt,getPoint:ho,handCursorRef:De,handDragRef:Qn,handHoveredElement:mr,handHoveredSide:Me,handleShakePointerMove:cr,hoveredElement:qe,hoveredElementInfo:Rn,isAnnotating:r.isAnnotating,isElementInFlight:vt,lastCanvasCursorRef:ot,modifiersRef:Da,radiusDragRef:En,radiusHoveredCorner:Dr,radiusHoveredElement:Po,resizeState:mi,setDomDropPreview:be,setDragState:gi,setGapDragging:Xi,setGapHoveredAxis:kn,setGapHoveredElement:$o,setGapIsAuto:ja,setHandCursorPos:ut,setHandDragging:Te,setHandHoveredElement:It,setHandHoveredSide:L,setHoveredElement:Nn,setHoveredElementInfo:Ot,setRadiusDragging:si,setRadiusHoveredCorner:li,setRadiusHoveredElement:zr,setResizeState:Oo,setStickerCursor:Zt,setStickerStep:xn,setTextDragging:pi,setTextHoveredElement:Lo,setTextHoveredProperty:za,steerDragRef:ql,stickerFamily:St,stickerStage:an,stickerSubproperty:Jt,subjectRegistry:E,suspendTargetDiscovery:!!Hr||Ue,textDragRef:di,textHoveredElement:ci,textHoveredProperty:jo,transformDragHandoffRef:qt,transformPreviewSuppressionRef:_n,transformPreviewTargetRef:Kt}),Ur=S0({annotationGroupMap:le,canvasRef:Y,currentPathname:Ne,cursorPosRef:Nr,dispatch:o,domDragRef:Ro,dragState:_a,gapDragRef:je,gapDragging:Zn,getPoint:ho,handDragRef:Qn,handDragging:Re,lastPositionedTextId:oo,radiusDragRef:En,radiusDragging:er,resizeState:mi,setActiveText:ie,setDomDropPreview:be,setDragState:gi,setGapDragging:Xi,setHandDragging:Te,setRadiusDragging:si,setResizeState:Oo,setSendHintAnchorId:na,setTextDragging:pi,textDragRef:di,textDragging:ui}),fo=U(v=>{if(r.isAnnotating&&r.activeTool==="inspector"&&v.button===0&&v.pointerType==="mouse"&&E&&!ge){let A=E.beginCreate({x:v.clientX,y:v.clientY});if(A){Xe.current={...A,start:{x:v.clientX,y:v.clientY},moved:!1,pointerId:v.pointerId,captureTarget:v.currentTarget},v.currentTarget.setPointerCapture(v.pointerId),v.preventDefault();return}}yn(v)},[yn,r.activeTool,r.isAnnotating,ge,E]),ua=U(v=>{let A=Xe.current;if(!A||A.pointerId!==v.pointerId){qr(v);return}let Z=Math.hypot(v.clientX-A.start.x,v.clientY-A.start.y);if(!A.moved&&Z>=B0&&(A.moved=!0),!A.moved){qr(v);return}A.session.update({x:v.clientX,y:v.clientY}),Ae({adapter:A.adapter.id,key:A.session.key}),wt(ae=>ae+1),v.preventDefault()},[qr]),mo=U(v=>{let A=Xe.current;if(A&&A.pointerId!==v.pointerId)return;if(Xe.current=null,Ae(null),!A){Ur(v);return}if(A.captureTarget.hasPointerCapture(A.pointerId)&&A.captureTarget.releasePointerCapture(A.pointerId),!A.moved){A.session.cancel();let ae=E?.hitTest({x:v.clientX,y:v.clientY});ae&&E?.promote(ae.target),yn(v),Ur(v);return}A.session.update({x:v.clientX,y:v.clientY});let Z=A.session.commit();Z&&(Ye.current=window.performance.now()+500,Oe({target:{adapter:A.adapter.id,key:Z.key},created:!0})),v.preventDefault()},[yn,Ur,E]),wi=U(v=>{if(!r.isAnnotating||r.activeTool!=="inspector"||!E)return!1;let A=E.resolve(v);if(!A?.adapter.renameSubject)return!1;let Z=Ut.current;return Z?.isNew&&Z.target?.adapter===A.target.adapter&&Z.target.key===A.target.key&&(Mt(Z.attachments),ie(null),Bt(null)),Oe({target:A.target,created:!1}),!0},[Ut,Mt,ie,r.activeTool,r.isAnnotating,E]),ft=U(v=>{if(window.performance.now()<=Ye.current){Ye.current=0,v.preventDefault(),v.stopPropagation();return}if(Ye.current=0,!E)return;let A=E.hitTest({x:v.clientX,y:v.clientY});!A||!wi(A.target)||(v.preventDefault(),v.stopPropagation())},[wi,E]),un=U(v=>{let A=v.target.value;Nr.current=v.target.selectionStart;let Z=Ut.current;Z?.domEdit&&o(nd(Z.domEdit,A,Z.text===Z.domEdit.originalText)),ie(ae=>{if(ae?.domEdit){let Ie=xc(ae.domEdit.segments,ae.domEdit.originalText,A);ae.domEdit.segments.forEach(Qe=>{Qe.textNode.nodeValue=Qe.originalText}),Ie.forEach(({segment:Qe,modifiedText:Et})=>{Qe.textNode.nodeValue=Et})}return ae&&{...ae,text:A}})},[Ut,Nr,o,ie]),Yr=U(v=>{v.key==="Escape"?(Ut.current?.domEdit&&(o(nd(Ut.current.domEdit,Ut.current.domEdit.originalText,!1)),Ut.current.domEdit.segments.forEach(A=>{A.textNode.nodeValue=A.originalText})),Mt(Ut.current?.attachments),ie(null)):Vf(v)?bt():v.key==="Enter"&&!v.shiftKey&&(v.preventDefault(),Cn())},[Cn,o,bt,Mt,ie]),vn=U(v=>{if(!r.isAnnotating)return;let A=Or.current;Or.current=null;let Z=Bo(ho(v));if(Z&&F&&!Va(Z,zt.current.annotations)){v.preventDefault(),v.stopPropagation(),F(Z.id);return}if(Z&&Va(Z,zt.current.annotations)){v.preventDefault(),v.stopPropagation(),Wr(Z.id);return}if(Z?.status==="resolved"){let Qe=Gf(zt.current.annotations,[Z.id]);if(Qe.length>0){v.preventDefault(),v.stopPropagation(),Qe.forEach(Et=>R?.(Et));return}}v.preventDefault();let ae=!!Ut.current,Ie=io({x:v.clientX,y:v.clientY},A);!ae&&!Ie&&dt()},[dt,Bo,ho,Wr,R,F,io,r.isAnnotating]),Xr=we(()=>{if(!qe)return r.activeColor;let v=null;for(let ae of Gt)!ae.linkedSelector||ne.has(ae)||pn(ae.linkedSelector,ae.elements)!==qe||(!v||ae.timestamp>v.timestamp)&&(v=ae);let A=v?.color??r.activeColor,Z=Rn?.selector??v?.linkedSelector;return Z?ls([Z],m??new Map,A,tn):A},[qe,Rn?.selector,m,Gt,r.activeColor,ne]),Jo=()=>{if(!r.isAnnotating)return"default";if(mi){let{handle:v}=mi;return v==="start"||v==="end"?"move":v==="top"||v==="bottom"?"ns-resize":v==="left"||v==="right"?"ew-resize":v==="topLeft"||v==="bottomRight"?"nwse-resize":"nesw-resize"}if(Bb(r.activeTool)){let v=Zn?.axis??gr;if(v==="row")return"ns-resize";if(v==="column")return"ew-resize";if(er||Dr)return"ns-resize";let A=ui?.property??jo;if(A==="font-size")return"ew-resize";if(A==="line-height")return"ns-resize";let Z=Re?.side??Me;return Z==="top"||Z==="bottom"?"ns-resize":Z==="left"||Z==="right"?"ew-resize":"default"}return r.activeTool==="inspector"?Em(Xr):r.activeTool==="sticker"?yc(Xr):"crosshair"},Ja=Fb(r.isAnnotating,r.activeTool),qo={position:"fixed",top:0,left:0,width:"100dvw",height:"100dvh",zIndex:9998,pointerEvents:Ke||!Ja?"none":"auto",visibility:Ja?"visible":"hidden",cursor:Nt&&!Nt.nativeReady?"none":Jo(),touchAction:r.activeTool==="inspector"?"pan-x pan-y":"none"},Fd=we(()=>{if(!b||b.domEdit)return;if(b.linkedSelector){let A=$t.find(Z=>Z.selector===b.linkedSelector)?.annotationNumber??Ce.get(Xt?.selector??b.linkedSelector);if(A!==void 0)return A}let v=le.get(b.id);if(v!==void 0)return v;if(b.groupId){let A=r.annotations.find(ae=>ae.groupId===b.groupId),Z=A?le.get(A.id):void 0;if(Z!==void 0)return Z}return me.count+1},[b,Xt,le,Ce,$t,me.count,r.annotations]),pa=Fd!==void 0?`${Fd}.`:"",Uo=we(()=>{if(!b||!pa||b.domEdit)return 0;let v=Y.current?.getContext("2d");return v&&(v.font=`${b.fontSize}px ${An}`),Ob({prefix:pa,fontSize:b.fontSize,railGap:Xt?2:void 0,context:v})},[b,pa,Xt,Y]),qa=b?.images?.length??r.annotations.find(v=>v.id===b?.id)?.imageCount??0,Vl=b&&!b.domEdit&&!Xt?gv({nestedAnnotationCount:so,imageCount:qa,interactionEpisodeStepCount:b.interactionEpisode?.steps.length??0,reserveSendHint:!!D&&vi===Io&&!!b.text.trim()}):0,Ph=r.isAnnotating&&b?.linkedSelector&&!b.target&&!b.domEdit&&!Xt?pn(b.linkedSelector,b.elements):null,ha=Ub(Ph),Gl=b?ha?ha.left+8:b.point.x-gn.x:0,Ql=b?ha?.right??b.point.x-gn.x:0,Yo=U(()=>{let v=Y.current;if(!v||!b)return{width:100,height:12*rr,isWrapped:!1};if(b.domEdit)return{width:zo?.id===b.id?zo.width:Math.max(1,b.domEdit.rect.width),height:zo?.id===b.id?zo.height:Math.max(1,b.domEdit.rect.height),isWrapped:b.domEdit.wrapsText};let A=v.getContext("2d");if(!A)return{width:100,height:b.fontSize*rr,isWrapped:!1};A.font=`${b.fontSize}px ${An}`;let Z=b.point.x-gn.x;if(!Xt){let ae=!!(b.linkedSelector||b.target),Ie=rd({text:b.text,fontSize:b.fontSize,effectiveMaxWidth:384,annotationPrefixWidth:Uo,isModifiedRail:!1,fitToContent:ae,context:A}).width+Uo+16,Qe=xp({anchorLeftX:Gl,anchorRightX:Ql,editorWidth:Ie,trailingWidth:Vl,viewportWidth:window.innerWidth});return rd({text:b.text,fontSize:b.fontSize,effectiveMaxWidth:Math.max(1,Qe.maxEditorWidth-16),annotationPrefixWidth:Uo,isModifiedRail:!1,fitToContent:ae,context:A})}return rd({text:b.text,fontSize:b.fontSize,effectiveMaxWidth:us(Z),annotationPrefixWidth:Uo,isModifiedRail:!!Xt,context:A})},[b,Y,gn.x,Uo,Xt,Vl,Gl,Ql,zo])(),Si=!!b?.domEdit,Lh=b?Math.max(1,b.text.split(`
|
|
61
|
+
`).length)*b.fontSize*rr+8:0,Xo=Si?Yo.height:Yo.height+8,_d=ha?wc(ha,Xo,Ci,window.innerHeight):void 0,Wd=ps(_d?.anchor??b?.linkedAnchor),jh=Yo.isWrapped?Xo-Lh:0,Bd=b?Si?(b.domEdit.flowRect??b.domEdit.rect).top:_d?.top??b.point.y-4-gn.y-jh:0,zh=b?Si?(b.domEdit.flowRect??b.domEdit.rect).left:b.point.x-8-gn.x:0,go=Si?Yo.width:Yo.width+Uo+16,Ko=b&&!Si&&!Xt?xp({anchorLeftX:Gl,anchorRightX:Ql,editorWidth:go,trailingWidth:Vl,viewportWidth:window.innerWidth}).editorLeft:zh,Ii=b?Si?Bd:Qf(Bd,Xo,oe,Ko,go):0,ki=b?.domEdit?{image:b.domEdit.boundaryRects.map(()=>"linear-gradient(#000 0 0)").join(", "),position:b.domEdit.boundaryRects.map(v=>`${v.left-Ko}px ${v.top-Ii}px`).join(", "),size:b.domEdit.boundaryRects.map(v=>`${v.width}px ${v.height}px`).join(", ")}:void 0,Jd=b?b.domEdit?{position:"fixed",left:Ko,top:Ii,zIndex:10002,width:go,height:Xo,minHeight:0,padding:0,margin:0,boxSizing:"border-box",appearance:"none",fontSize:b.fontSize,fontFamily:b.domEdit.fontFamily,fontWeight:b.domEdit.fontWeight,fontStyle:b.domEdit.fontStyle,color:"transparent",caretColor:r.activeColor,WebkitTextFillColor:"transparent",backgroundColor:"transparent",border:"none",borderRadius:0,outline:"none",boxShadow:"none",lineHeight:b.domEdit.lineHeight,textIndent:b.domEdit.firstLineIndent,letterSpacing:b.domEdit.letterSpacing,textTransform:b.domEdit.textTransform,textAlign:b.domEdit.textAlign,wordSpacing:b.domEdit.wordSpacing,textDecoration:b.domEdit.textDecoration,textShadow:b.domEdit.textShadow,resize:"none",overflow:"hidden",whiteSpace:b.domEdit.wrapsText?b.domEdit.whiteSpace:"pre",wordBreak:b.domEdit.wordBreak,overflowWrap:b.domEdit.overflowWrap,maskImage:ki?.image,maskPosition:ki?.position,maskSize:ki?.size,maskRepeat:"no-repeat",WebkitMaskImage:ki?.image,WebkitMaskPosition:ki?.position,WebkitMaskSize:ki?.size,WebkitMaskRepeat:"no-repeat"}:{position:"fixed",left:Ko,top:Ii,zIndex:10002,width:go,height:Xo,padding:`${4+gd}px 8px ${4-gd}px`,paddingLeft:8+Uo,boxSizing:"border-box",fontSize:b.fontSize,fontFamily:An,color:"#ffffff",backgroundColor:r.activeColor,border:"none",borderRadius:b.linkedSelector?Wd:0,animation:b.linkedSelector&&b.isNew?"popmeltAnnotationFieldEnter 150ms ease-out both":void 0,outline:"none",boxShadow:"none",lineHeight:rr,resize:"none",overflow:"hidden",whiteSpace:Yo.isWrapped?"pre-wrap":"pre",wordBreak:Yo.isWrapped?"break-word":void 0}:{},qd=b?.target&&b.linkedSelector?pn(b.linkedSelector,b.elements):null,Dh=v=>!b||!Xt?null:M(at,{children:[h(bv,{anchor:v,width:go,height:Xo,value:b.text,fontSize:b.fontSize,prefix:pa,inputRef:Fr,inputStyle:Jd,onChange:un,onKeyDown:Yr,onPaste:ve,onBlur:Ct,onContextMenu:A=>{A.preventDefault(),A.stopPropagation(),Wr(b.id)}}),h(_c,{stepCount:b.interactionEpisode?.steps.length??0,onClear:()=>yr(b.id)})]}),{nestedBadgeOwnerSelector:Hh,hasExistingOverlay:Oh,hoveredLinkedAnnotationId:Ud,hasSelectedHighlightForElement:Nh,ownedInFlightSelectorColors:Yd,ownedFocusedSelectorColors:Xd,claimElementOverlay:xr}=qb({activeText:b,pendingLinkedText:Ve,activeTextSendHintId:Io,activeTool:r.activeTool,isAnnotating:r.isAnnotating,annotations:r.annotations,pageAnnotations:Gt,pageStyleModifications:Jn,pageTextModifications:nr,supersededAnnotations:ne,nestedBadgeHover:fr,isSendBundleHovered:jn,badgeHoveredAnnotationId:Ln,hoveredTextId:Le,badgeHoveredSelector:pr,focusedThreadAnnotationId:q,inFlightSelectorColors:f,focusedSelectorColors:Jr,hoveredElement:qe}),Zl=Xr,Fh=b?.domEdit?Ga(r.activeColor,.28):"#000000",_h=b?.domEdit?"transparent":"#ffffff",Ua=b?.linkedSelector&&!b.domEdit?b:Ve,Ya=Ua?.linkedSelector?pn(Ua.linkedSelector,Ua.elements):null,es=Ya??qe,Kd=Ya?"selected":"hover",Vd=Ya?Ua?.target??va(Ya):ze,ts=Vd?.adapter,ns=Vd?.key;_(()=>(X?.(r.isAnnotating&&es?{element:es,selection:Kd,subject:ts&&ns?{adapter:ts,key:ns}:void 0}:null),()=>X?.(null)),[X,r.isAnnotating,es,Kd,ts,ns]);let Gd=v=>{rt.current=null,E?.remove(v),Nn(null),Ot(null),Oe(A=>A?.target.adapter===v.adapter&&A.target.key===v.key?null:A)};if(Ue){let v=Se.current,A=v?.draft?r.activeColor:r.annotations.find(Z=>Z.id===v?.id)?.color??r.activeColor;return Ht?h(ub,{cursor:Ht,stepCount:nt,accentColor:A,toolbarElement:H?.current,threadElement:j}):null}return M(at,{children:[h("canvas",{ref:$e,id:"devtools-canvas",style:qo,onPointerDown:v=>{ce?.(),fo(v)},onPointerMove:v=>{ce?.(),!(!Xe.current&&ze&&Bp(v.currentTarget.ownerDocument,v.clientX,v.clientY))&&ua(v)},onPointerUp:mo,onPointerCancel:v=>{if(Xe.current){se();return}Ur(v)},onLostPointerCapture:v=>{Xe.current?.pointerId===v.pointerId&&se()},onDoubleClick:ft,onPointerLeave:v=>{if(Xe.current||W0(v.relatedTarget)||Yp(v.relatedTarget))return;mo(v),st(),_n.current=null,qt.current=null;let A=()=>{Nn(null),Ot(null)};if(va(qe)){let{clientX:Z,clientY:ae}=v;window.setTimeout(()=>{Yp(document.elementFromPoint(Z,ae))||rt.current!==null||A()},100);return}A()},onContextMenu:v=>{if(ze&&Bp(v.currentTarget.ownerDocument,v.clientX,v.clientY)){v.preventDefault(),v.stopPropagation(),Gd(ze);return}vn(v)}}),We&&E&&(()=>{let v=E.resolve(We);return v?h(Il,{element:v.element,activeFacet:"translate",accentColor:r.activeColor,showHandles:!1,showRotateHandle:!1,refreshKey:tt}):null})(),ge&&E&&h(Mb,{accentColor:r.activeColor,created:ge.created,registry:E,target:ge.target,onCommit:v=>{Nn(v.element),Ot(v.elementInfo),wt(A=>A+1)},onClose:()=>Oe(null),onCancelCreated:()=>{E.remove(ge.target),Oe(null)}},`${ge.target.adapter}:${ge.target.key}`),Nt&&h(Sv,{color:Xr,cursorRef:ot,tool:Nt.tool,onHandoff:()=>yt(v=>v?.id===Nt.id?{...v,nativeReady:!0}:v),onDone:()=>yt(null)},Nt.id),r.isAnnotating&&b&&M(at,{children:[qd&&b.subjectAnchor&&h(wv,{element:qd,annotationRect:{left:Ko,top:Ii,width:go,height:Xo},subjectAnchor:b.subjectAnchor,color:r.activeColor,subjectRegistry:E}),h(vv,{value:b.text,fontSize:b.fontSize,prefix:pa,inputRef:Fr,inputStyle:Jd,selectionBackground:Fh,selectionColor:_h,annotationBorderRadius:Wd,activeColor:r.activeColor,boundaryRects:b.domEdit?.boundaryRects,wrapsDomText:b.domEdit?.wrapsText,showEditor:!Xt,rawLeft:Ko,top:Ii,baselineOffset:gd,onChange:un,onKeyDown:Yr,onPaste:ve,onBlur:Ct}),!Xt&&!b.domEdit&&h(yv,{rawLeft:Ko,width:go,top:Ii,scroll:gn,collisionId:xi,nestedAnnotationCount:so,nestedAnnotationIds:Fo,nestedBadgeColor:xe,imageCount:qa,color:r.activeColor,interactionEpisodeStepCount:b.interactionEpisode?.steps.length??0,showSendHint:vi===Io&&!!b.text.trim(),bundleCount:ta,onHoverNestedAnnotations:Na,onHoverSendHint:Qi,onClearInteractionEpisode:()=>yr(b.id),onSend:D?bt:void 0}),h(Zf,{point:b.point,scroll:gn,attachments:b.attachments??[],showAttachments:!b.domEdit,onRemoveAttachment:Je})]}),r.isAnnotating&&r.activeTool!=="hand"&&(Jn.length>0||nr.length>0||Tn.length>0||(m?.size??0)>0||ke)&&h(em,{styleModifications:Jn,textModifications:nr,stagedComments:Tn,accentColor:r.activeColor,annotationNumberBySelector:Ce,inFlightSelectors:p,inFlightAnnotationIds:a,activeAnnotationIds:d,inFlightSelectorJobIds:u,waitingApprovalJobIds:s,inFlightSelectorColors:f,toolbarRef:H,onHoverSelector:Ul,sendHintSelector:Wo,pendingBundleCount:ta,onHoverSendBundle:Qi,onSend:D?bt:void 0,onSelectSticker:Yl,onDeleteSticker:Zi,threadStates:m,onViewThread:I,hoveredElement:qe,hoveredElementInfo:Rn,showHoverIdentifier:ke,onEditComment:_e,onDeleteComment:Wr,onDeletePeerComment:F?v=>{let A=zt.current.annotations.find(Z=>Z.id===v);A&&Va(A,zt.current.annotations)?Wr(v):F(v)}:void 0,onDiscardTextChanges:Wa,onArchiveThread:R,onClearInteractionEpisode:yr,onEditSubject:wi,onDeleteSubject:Gd,onHoverSubjectLabel:v=>{rt.current=v},refreshKey:Lr,activeCommentEntry:Xt?{element:Xt.element,width:go,imageCount:qa,trailingWidth:Sc(qa)+Ic(b?.interactionEpisode?.steps.length??0),render:Dh}:void 0}),r.activeTool==="hand"&&r.isAnnotating&&(Jn.length>0||nr.length>0)&&h(hb,{styleModifications:Jn.filter(v=>{let A=tn(v.selector);return!!A&&xr(A,"pending-change")}),textModifications:nr.filter(v=>{let A=tn(v.selector);return!!A&&xr(A,"pending-change")}),accentColor:r.activeColor}),r.isAnnotating&&!b?.domEdit&&(()=>{let v=new Set;return nr.flatMap(A=>{if(A.captured||v.has(A.selector))return[];let Z=tn(A.selector);return Z?xr(Z,"pending-change")?(v.add(A.selector),[h(Qr,{element:Z,isSelected:!1,color:r.activeColor,hideTooltip:!0},`pending-text-change-${A.selector}`)]):[]:[]})})(),r.isAnnotating&&h(tm,{annotations:Gt,displayAnnotations:co,supersededAnnotations:ne,inFlightIds:a,orientationLabels:l,activeIds:d,queuePositions:c,scrollX:gn.x,scrollY:gn.y,annotationGroupMap:le,onViewThread:I,onSelectAnnotation:Yt,onDeleteDraftAnnotation:Wr,onClearInteractionEpisode:yr,onHoverAnnotation:fi,canvasRef:Y,toolbarRef:H,activeBundleAnnotationIds:oa,inactiveBundleOpacity:aa,animateBundleOpacity:!la&&!ra,hoverRestoredAnnotationIds:ia,nestedAnnotationCountById:Dt,nestedAnnotationIdsById:Br,onHoverNestedAnnotations:Na,onHoverSendBundle:Qi,onSend:D?bt:void 0,sendHintAnchorId:uo===Io?null:uo,pendingBundleCount:ta,parentPinnedAnnotationIds:tr,parentPinnedLocationLabels:Kl,parentPinnedTooltipAnnotationId:Ba,onActivateAnnotation:vr,hiddenAnnotationIds:_o}),r.isAnnotating&&Yd&&h(kc,{inFlightSelectorColors:Yd,subjectRegistry:E}),r.isAnnotating&&Xd&&h(kc,{inFlightSelectorColors:Xd,animated:!1,subjectRegistry:E}),h(nb,{active:r.activeTool==="hand"&&r.isAnnotating,accentColor:r.activeColor,domDropPreview:te,cursorViewport:Ge,gapElement:Zn?je.current.element:Vt,gapDragging:Zn,gapHoveredAxis:gr,gapIsAuto:La,gapRefreshKey:Ki,swipeHint:ii,radiusElement:er?En.current.element:Po,radiusDragging:er,radiusHoveredCorner:Dr,textElement:ui?di.current.element:ci,textDragging:ui,textHoveredProperty:jo,paddingElement:Re?Qn.current.element:mr,paddingDragging:Re,paddingHoveredSide:Me}),r.isAnnotating&&e&&!b&&!Ve&&!ge&&h(Zy,{hasExistingOverlay:Oh,entry:e,color:r.activeColor,subjectRegistry:E}),(r.activeTool==="inspector"||r.activeTool==="sticker")&&r.isAnnotating&&h(at,{children:qe&&(()=>{let v=r.activeTool==="sticker"&&an==="value"&&(St==="padding"||St==="margin")&&jt.current?.element===qe,A=gp(r.activeTool==="sticker",St,an,Jt);if(Nh(qe)||!xr(qe,"inspector-hover"))return null;let Z=b?.linkedSelector?pn(b.linkedSelector,b.elements):null,ae=Ve?.linkedSelector?pn(Ve.linkedSelector,Ve.elements):null,Ie=(Z?Ws(Z,qe,b?.elements?.[0]?.context):!1)||(ae?Ws(ae,qe,Ve?.elements?.[0]?.context):!1)||Gt.some(Et=>{if(!Et.linkedSelector||ne.has(Et))return!1;let Pt=pn(Et.linkedSelector,Et.elements);return Ws(Pt,qe,Et.elements?.[0]?.context)}),Qe=!!Le||!!Ln;return M(at,{children:[!v&&h(Qr,{element:qe,isSelected:!1,elementInfo:Rn,color:Zl,hideFill:!ze,refreshKey:r.activeTool==="sticker"?Lr:void 0,hideTooltip:de||ke||Ie||Qe}),!A&&!ze&&h(Il,{element:qe,activeFacet:"translate",accentColor:Zl,showHandles:!1,refreshKey:r.activeTool==="sticker"?Lr:void 0})]})})()}),h(Ib,{active:r.activeTool==="sticker"&&r.isAnnotating,accentColor:Zl,family:St,stage:an,subproperty:Jt,hoveredElement:qe,previewElement:jt.current?.element??null,transformPreviewElement:Kt.current?.element??null,previewRevision:Lr,cursorViewport:Mr,drag:zn,onGapPointerDown:Oa,onRadiusPointerDown:Wl,onSpacingPointerDown:Bl,onTransformPointerDown:Jl}),r.activeTool==="sticker"&&r.isAnnotating&&Mr&&h(nm,{cursor:Mr,family:St,step:on,subproperty:Jt,stage:an,accentColor:r.activeColor,applyPulse:$n,contextLabelPulse:Rr,depthSnapPulse:oi,rejectPulse:Ui,stepUnavailable:Sn,query:fn?{tokens:fn.segments.flatMap((v,A)=>{let Z=fn.history[A]?.scope??ad,ae=Ea(Z,v);return ae?[fx(ae)]:[]}),...mx(fn.query,ld(fn.scope,fn.query))}:null,toolbarElement:H?.current,threadElement:j,annotationRailHovered:pr!==null||Ln!==null||fr!==null||jn}),!fr&&!jn&&(b?.linkedSelector||Ve?.linkedSelector)&&(()=>{let v=b?.linkedSelector||Ve?.linkedSelector;if(!v)return null;let A=tn(v);return!A||!xr(A,"direct-manipulation")?null:h(Qr,{element:A,isSelected:!0,color:sa?.color??r.activeColor,hideTooltip:!0})})(),q&&(()=>{if(jn)return null;let v=r.annotations.find(ae=>ae.id===q);if(!v?.linkedSelector||Hh===v.linkedSelector)return null;let A=tn(v.linkedSelector);if(!A||!xr(A,"thread-focus"))return null;let Z=!!(a&&a.has(v.id));return h(Qr,{element:A,isSelected:!Z,color:v.color,onActivate:v.threadId?()=>ro(v.threadId):void 0,hideTooltip:!0})})(),Ud&&(()=>{let v=r.annotations.find(Z=>Z.id===Ud);if(!v?.linkedSelector)return null;let A=tn(v.linkedSelector);return!A||!xr(A,"annotation-hover")?null:h(Qr,{element:A,isSelected:!1,color:v.color,onActivate:v.threadId?()=>ro(v.threadId):void 0,hideTooltip:!0})})(),fr&&!jn&&(()=>{let v=new Set;return fr.annotationIds.flatMap(A=>{let Z=r.annotations.find(Ie=>Ie.id===A);if(!Z?.linkedSelector||v.has(Z.linkedSelector))return[];let ae=pn(Z.linkedSelector,Z.elements);return ae?xr(ae,"nested-preview")?(v.add(Z.linkedSelector),[h(Qr,{element:ae,isSelected:!1,color:Z.color,hideTooltip:!0},`nested-annotation-${A}`)]):[]:[]})})(),jn&&(()=>{let v=[],A=new Set,Z=(ae,Ie,Qe,Et)=>{if(!Ie||A.has(Ie))return;let Pt=pn(Ie,Qe);Pt&&xr(Pt,"bundle-preview")&&(A.add(Ie),v.push({id:ae,element:Pt,color:Et}))};for(let ae of Gt)(ae.status??"pending")==="pending"&&Z(ae.id,ae.linkedSelector,ae.elements,ae.color);b&&!b.domEdit&&b.text.trim()&&Z(Io,b.linkedSelector,b.elements,r.activeColor);for(let ae of Jn)ae.captured||Z(`style-${ae.selector}`,ae.selector,[ae.element],r.activeColor);for(let ae of nr)ae.captured||Z(`text-${ae.selector}`,ae.selector,[ae.element],r.activeColor);return v.map(ae=>h(Qr,{element:ae.element,isSelected:!1,color:ae.color,hideTooltip:!0},`send-bundle-${ae.id}`))})(),pr&&(()=>{let v=tn(pr);if(!v||!xr(v,"badge-hover"))return null;let A=ls([pr],m??new Map,Tt.get(pr)??r.activeColor,tn);return h(at,{children:h(Qr,{element:v,isSelected:!1,color:A,fillOpacity:.1,hideTooltip:!0,subjectRegistry:E})})})()]})}var q0={capacity:{label:"At capacity",message:"The model provider is temporarily unavailable. Try again shortly."},rate_limited:{label:"Rate limited",message:"The model provider is receiving too many requests. Try again shortly."},timeout:{label:"Timed out",message:"The model took too long to respond. Try again."},connection:{label:"Connection lost",message:"The model provider disconnected before the run completed. Try again."},authentication:{label:"Sign-in required",message:"The model provider needs to be authenticated before this run can continue."},send_rejected:{label:"Not sent",message:"This reply did not reach the thread. Try again when the connection is ready."},failed:{label:"Failed",message:"The model could not complete this run. Try again, or inspect the job diagnostics if the problem continues."}};function U0(e){let t=typeof e=="string"?e:(()=>{try{return JSON.stringify(e)}catch{return String(e??"")}})();return/\b(?:http\s*)?503\b|server at capacity|\bat capacity\b|resource[_\s-]?exhausted|temporarily unavailable/i.test(t)?"capacity":/\b(?:http\s*)?429\b|rate[_\s-]?limit|too many requests/i.test(t)?"rate_limited":/timed?\s*out|timeout/i.test(t)?"timeout":/auth(?:entication|orization)? required|oauth|not authenticated|sign[ -]?in required|unauthorized|\b401\b/i.test(t)?"authentication":/transport channel closed|connection (?:closed|lost|reset)|socket hang up|network error|disconnected/i.test(t)?"connection":"failed"}function Kp(e,t){let n=t??U0(e);return{kind:n,...q0[n]}}function Y0(e,t){if(!t||t.size===0)return e;let n=!1,r=e.map(o=>{if(!o.threadId)return o;let i=t.get(o.threadId);return!i||i===o.color?o:(n=!0,{...o,color:i})});return n?r:e}function Rl(e,t,n){return t&&n?.get(t)||e}var yd="popmelt-status-notices",Vp=50,Gp=2,X0=new Set(["Model","Reviewed","Has a question","Needs decision","Needs review","Applied changes","Replied","Done"]);function Qp(e){return e.status!=="done"||e.doneLabel&&X0.has(e.doneLabel)?e:{...e,doneLabel:"Replied"}}function $l(e){return e?`${yd}:${e}`:yd}function Zp(e,t,n=!0){return t===null?!1:t===void 0?!0:e.threadId?t.has(e.threadId):n&&e.global===!0}function eh(e){if(typeof window>"u")return[];try{let t=JSON.parse(localStorage.getItem($l(e))??localStorage.getItem(yd)??"[]");return(Array.isArray(t)?t:t?.version===Gp&&Array.isArray(t.entries)?t.entries:[]).filter(n=>{if(!n||typeof n!="object")return!1;let r=n;return typeof r.jobId=="string"&&typeof r.color=="string"&&(r.status==="done"||r.status==="error")}).map(Qp).slice(-Vp)}catch{return[]}}function vd(e){try{let t=JSON.parse(localStorage.getItem($l(e))||"{}");return new Set(Array.isArray(t.acknowledgedJobIds)?t.acknowledgedJobIds.filter(n=>typeof n=="string"):[])}catch{return new Set}}function K0(e,t,n){if(!(typeof window>"u"))try{let r=e.filter(ko).map(Qp).slice(-Vp),o=JSON.stringify({version:Gp,entries:r,acknowledgedJobIds:Array.from(n).slice(-500)}),i=$l(t);localStorage.getItem(i)!==o&&localStorage.setItem(i,o)}catch{}}function ko(e){return e.status==="done"||e.status==="error"}function bd(e,t){return!!(t&&e.status==="done"&&e.doneLabel==="Has a question"&&e.threadId&&t.has(e.threadId))}function V0(e,t,n,r,o){return!e&&(t||n)&&(r>0||o===!1)}function G0(e,t){return e.left<t.right&&e.right>t.left&&e.top<t.bottom&&e.bottom>t.top}var Q0=['[data-devtools="thread-panel"]:not([aria-hidden="true"])','[data-devtools="imprint-panel"]','[data-popmelt-active-annotation-surface="true"]'].join(", "),th=500,Z0=80,nh=120;function Pl(e){return e==="project_model"}var xd=2,Ca=24,ew=0,wd={display:"flex",alignItems:"center",gap:3,padding:`${xd}px 0`,backgroundColor:"transparent",border:"none",fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace",fontSize:11,height:Ca,boxSizing:"border-box",whiteSpace:"nowrap",animation:"popmeltJobStatusEnter 180ms ease-out both",transition:"transform 200ms ease, opacity 200ms ease",willChange:"transform, opacity"};function tw(e,t=!1){if(e.find(c=>c.type==="job_started")?.data.kind==="project_model")return"Projecting model";let n=e.filter(c=>c.type==="orientation"),r=n[n.length-1]?.data.orientation?.snapshot?.focus?.trim();if(r)return t||r.length<=40?r:`${r.slice(0,37).trimEnd()}\u2026`;let o=e.filter(c=>c.type==="tool_use");if(o.length===0)return"Starting\u2026";let i=o[o.length-1],a=String(i.data.tool||""),l=i.data.file?String(i.data.file):null,s=l?l.split("/").pop()??l:null,d=i.data.content?String(i.data.content):null;switch(a){case"Read":return s?`Reading ${s}`:"Reading file";case"Edit":return s?`Editing ${s}`:"Editing file";case"Write":return s?`Writing ${s}`:"Writing file";case"Bash":{if(!d)return"Running command";let c=d.split(`
|
|
62
|
+
`)[0].trim();return t||c.length<=40?c:c.slice(0,37)+"\u2026"}case"Glob":return"Searching files";case"Grep":return"Searching code";default:return a?`Using ${a}`:"Working\u2026"}}function nw(e,t=!1){if(!t)return"Failed";let n=Kp(e);return`${n.label} \u2014 ${n.message}`}function rw(e,t=3){let n=e.trim().replace(/\s+/g," ");if(!n)return 0;let r=n.split(" "),o=Math.max(...r.map(s=>s.length)),i=s=>{let d=1,c=0;for(let p of r){let u=c===0?p.length:c+1+p.length;u<=s?c=u:(d+=1,c=p.length)}return d},a=o,l=n.length;for(;a<l;){let s=Math.floor((a+l)/2);i(s)<=Math.max(1,t)?l=s:a=s+1}return a}function Sd(e,t){if(e.find(i=>i.type==="job_started"&&i.data.jobId===t)?.data.kind==="project_model")return"Model";let n=[...e].reverse().find(i=>i.type==="done"&&i.data.jobId===t)?.data.result,r=e.some(i=>i.type==="question"&&i.data.jobId===t);if(n?.attention==="response_requested")return"Has a question";if(n?.attention==="decision_required")return"Needs decision";if(n?.attention==="review_required")return"Needs review";if(n?.outcomes?.some(i=>i.kind==="changes_applied"))return"Applied changes";if(r)return"Has a question";if(n?.attention==="response_available")return"Replied";let o=new Set(["Edit","Write"]);return e.some(i=>i.type==="tool_use"&&i.data.jobId===t&&o.has(String(i.data.tool||"")))?"Applied changes":"Replied"}function rh(e,t,n=[]){let r=new Map;for(let l of t){if(l.type!=="done"&&l.type!=="error")continue;let s=typeof l.data.jobId=="string"?l.data.jobId:null;s&&r.set(s,l)}if(r.size===0&&n.length===0)return e;let o=new Set(n),i=!1,a=e.map(l=>{let s=r.get(l.jobId);if(!s)return l.status==="queued"&&o.has(l.jobId)?(i=!0,{...l,status:"working"}):l;let d=s.type==="error",c=d?"error":"done",p=d?void 0:Sd(t,l.jobId),u=d?String(s.data.message||""):void 0,f=d?!!s.data.cancelled:void 0,m=typeof s.data.threadId=="string"?s.data.threadId:void 0;return l.status===c&&l.doneLabel===p&&l.errorMessage===u&&l.cancelled===f&&l.threadId===(l.threadId||m)?l:(i=!0,{...l,status:c,doneLabel:p,errorMessage:u,cancelled:f,threadId:l.threadId||m})});return i?a:e}function ow(e,t){return t?[...e].reverse():e}function iw({color:e}){let[t,n]=$(0);return _(()=>{let r=setInterval(()=>{n(o=>(o+1)%2)},250);return()=>clearInterval(r)},[]),h("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:e,style:{verticalAlign:"middle",flexShrink:0},children:t===1?M(at,{children:[h("circle",{cx:"7",cy:"7",r:"2"}),h("circle",{cx:"17",cy:"7",r:"2"}),h("circle",{cx:"7",cy:"17",r:"2"}),h("circle",{cx:"17",cy:"17",r:"2"})]}):M(at,{children:[h("circle",{cx:"12",cy:"6",r:"2"}),h("circle",{cx:"6",cy:"12",r:"2"}),h("circle",{cx:"18",cy:"12",r:"2"}),h("circle",{cx:"12",cy:"18",r:"2"})]})})}function aw({color:e}){return h("span",{style:{color:e,fontSize:12,lineHeight:1,width:10,display:"inline-block"},children:"\u2713"})}function lw({onCancel:e}){let t=J(null);return _(()=>{let n=t.current;if(!n)return;let r=a=>{a.stopPropagation(),e()},o=()=>{n.style.opacity="0.5"},i=()=>{n.style.opacity="0.7"};return n.addEventListener("click",r),n.addEventListener("mouseenter",o),n.addEventListener("mouseleave",i),()=>{n.removeEventListener("click",r),n.removeEventListener("mouseenter",o),n.removeEventListener("mouseleave",i)}},[e]),h("button",{ref:t,style:{background:"none",border:"none",cursor:"pointer",color:"#ffffff",opacity:.7,fontSize:14,padding:"0 2px",lineHeight:1},title:"Cancel",children:"\xD7"})}function sw({onDismiss:e,onHoverChange:t}){let n=J(null),[r,o]=$(!1);return _(()=>{let i=n.current;if(!i)return;let a=d=>{d.stopPropagation(),e()},l=()=>{o(!0),t?.(!0)},s=()=>{o(!1),t?.(!1)};return i.addEventListener("click",a),i.addEventListener("mouseenter",l),i.addEventListener("mouseleave",s),()=>{i.removeEventListener("click",a),i.removeEventListener("mouseenter",l),i.removeEventListener("mouseleave",s)}},[e,t]),h("button",{ref:n,style:{background:"none",border:"none",cursor:"pointer",color:"#ffffff",opacity:r?1:.3,display:"flex",alignItems:"center",justifyContent:"center",width:16,height:16,padding:0,lineHeight:1,transition:"opacity 120ms ease-out"},title:"Hide","aria-label":"Hide",children:h(Tg,{size:12,strokeWidth:2.25})})}function dw({bridge:e,inFlightJobs:t,threadColors:n,isVisible:r,isHidden:o=!1,onHover:i,isInteractionSuppressed:a=!1,clearSignal:l,onClickJob:s,onCancel:d,onHoverJob:c,isConnected:p,dismissedThreadIds:u,acknowledgedThread:f,recoveredAcknowledgedThreadIds:m,recoveredAcknowledgedJobIds:g,recoveredSettledQuestionThreadIds:y,pendingQuestionThreadIds:w,snapPosition:k="bottom-right",currentPathname:D,noticeScope:I,ownedThreadIds:O,allowThreadlessNotices:R=!0,viewedThreadId:F}){let Q=J(new Set),[N,K]=$(()=>{let b=vd(I),ie=eh(I).filter(ve=>!b.has(ve.jobId));return Q.current=new Set(ie.map(ve=>ve.jobId)),ie}),[q,S]=$(!1),[ee,G]=$(null),[H,j]=$(null),[P,E]=$(!1),[C,X]=$(!1),[ce,ue]=$("waiting"),Y=a||P,he=o||Y,W=J(he),fe=J(!1),re=J(null),pe=J(null),ye=J(null),[Be]=$(()=>vd(I)),Ee=J(Be),z=J(new Set);_(()=>{Y&&(S(!1),G(null),i(!1),c?.(null))},[Y,i,c]),_(()=>{o&&(S(!1),G(null),i(!1),c?.(null))},[o,i,c]),_(()=>{O!==null&&K0(N.filter(b=>Zp(b,O,R)&&!Ee.current.has(b.jobId)),I,Ee.current)},[N,I,O,R]),_(()=>{if(!F)return;let b=N.filter(ie=>ie.threadId===F&&ko(ie));b.length!==0&&(b.forEach(ie=>Ee.current.add(ie.jobId)),K(ie=>ie.filter(ve=>!Ee.current.has(ve.jobId))))},[N,F]),_(()=>{K(b=>Y0(b,n))},[n]),_(()=>{let b=ie=>{if(ie.key!==$l(I))return;vd(I).forEach(Je=>Ee.current.add(Je));let ve=eh(I).filter(Je=>!Ee.current.has(Je.jobId));K(Je=>[...Je.filter(Mt=>!ko(Mt)),...ve])};return window.addEventListener("storage",b),()=>window.removeEventListener("storage",b)},[I]);let[Ne,$e]=$(()=>typeof window<"u"?{w:window.innerWidth,h:window.innerHeight}:{w:1920,h:1080});_(()=>{let b=()=>$e({w:window.innerWidth,h:window.innerHeight});return window.addEventListener("resize",b),()=>window.removeEventListener("resize",b)},[]);let Xe=cm(k,Ne.w,Ne.h);_(()=>{l>0&&K(b=>(b.forEach(ie=>Ee.current.add(ie.jobId)),[]))},[l]),_(()=>{!u||u.size===0||K(b=>{let ie=b.filter(ve=>!ve.threadId||!u.has(ve.threadId)||!ko(ve));return ie.length===b.length?b:ie})},[u]),_(()=>{f&&(z.current.add(f.threadId),K(b=>{let ie=b.filter(ve=>ve.threadId===f.threadId&&ko(ve));return ie.forEach(ve=>Ee.current.add(ve.jobId)),ie.length===0?b:b.filter(ve=>!Ee.current.has(ve.jobId))}))},[f]),_(()=>{!m||m.size===0||(m.forEach(b=>z.current.add(b)),K(b=>{let ie=b.filter(ve=>ve.threadId&&m.has(ve.threadId)&&ko(ve));return ie.forEach(ve=>Ee.current.add(ve.jobId)),ie.length===0?b:b.filter(ve=>!Ee.current.has(ve.jobId))}))},[m]),_(()=>{!g||g.size===0||(g.forEach(b=>Ee.current.add(b)),K(b=>{let ie=b.filter(ve=>!g.has(ve.jobId));return ie.length===b.length?b:ie}))},[g]),_(()=>{!y||y.size===0||K(b=>{let ie=b.filter(ve=>!bd(ve,y));return ie.length===b.length?b:ie})},[y]),_(()=>{!w||w.size===0||K(b=>{let ie=!1,ve=b.map(Je=>Je.status!=="done"||!Je.threadId||!w.has(Je.threadId)||Je.doneLabel==="Has a question"?Je:(ie=!0,{...Je,doneLabel:"Has a question"}));return ie?ve:b})},[w]),_(()=>{K(b=>{let ie=new Set(b.map(ge=>ge.jobId)),ve=!1,Je=b.map(ge=>{let Oe=t[ge.jobId];if(Oe&&(!ge.threadId||ge.color==="#888"||!ge.kind||!ge.routePathnames&&Oe.routePathnames||ge.global==null&&Oe.global!=null))return ve=!0,{...ge,annotationIds:ge.annotationIds??Oe.annotationIds,threadId:ge.threadId||Oe.threadId||e.activeJobThreads[ge.jobId],color:Rl(ge.color==="#888"?Oe.color:ge.color,ge.threadId||Oe.threadId,n),kind:ge.kind??Oe.kind,routePathnames:ge.routePathnames??Oe.routePathnames,global:ge.global??Oe.global};let tt=e.activeJobThreads[ge.jobId];return!ge.threadId&&tt?(ve=!0,{...ge,threadId:tt,color:Rl(ge.color,tt,n)}):ge});for(let[ge,Oe]of Object.entries(t)){if(Pl(Oe.kind))continue;let tt=e.events.some(rt=>rt.data.jobId===ge&&rt.type!=="job_started"),wt=!!(Oe.threadId&&z.current.has(Oe.threadId)&&!tt);!ie.has(ge)&&!Ee.current.has(ge)&&!wt&&(Je.push({jobId:ge,annotationIds:Oe.annotationIds,color:Rl(Oe.color,Oe.threadId,n),status:"queued",kind:Oe.kind,threadId:Oe.threadId,routePathnames:Oe.routePathnames,global:Oe.global}),ve=!0)}let Mt=new Set(Object.keys(t)),Le=new Set(e.activeJobIds),ct=Je.filter(ge=>Pl(ge.kind)?!1:ge.status!=="queued"?!0:Mt.has(ge.jobId)||Le.has(ge.jobId));ct.length!==Je.length&&(ve=!0);let Ve=new Set(ct.map(ge=>ge.jobId));for(let ge of e.activeJobIds)if(!Ve.has(ge)&&!Ee.current.has(ge)){let Oe=e.events.find(qe=>qe.type==="job_started"&&qe.data.jobId===ge),tt=Oe?.data.kind;if(Pl(tt))continue;let wt=Oe?.data?.threadId??e.activeJobThreads[ge],rt=e.events.some(qe=>qe.data.jobId===ge&&qe.type!=="job_started");if(wt&&z.current.has(wt)&&!rt)continue;let ot=typeof Oe?.data.color=="string"?Oe.data.color:tt==="synthesize"||tt==="project_model"?"#000000":"#888",rn=Rl(ot,wt,n);ct.push({jobId:ge,annotationIds:Array.isArray(Oe?.data.annotationIds)?Oe.data.annotationIds.filter(qe=>typeof qe=="string"):void 0,color:rn,status:"working",kind:tt,threadId:wt,routePathnames:void 0,global:Oe?.data.global===!0||tt==="synthesize"||tt==="project_model"}),ve=!0}let Bt=rh(ct.filter(ge=>!Ee.current.has(ge.jobId)),e.events,e.activeJobIds).filter(ge=>!bd(ge,y));return ve||Bt!==ct?Bt:b})},[t,e.activeJobIds,e.activeJobThreads,e.events,y,n]),_(()=>{if(e.activeJobIds.length===0)return;let b=new Set(e.activeJobIds);K(ie=>ie.map(ve=>b.has(ve.jobId)&&ve.status!=="done"&&ve.status!=="error"?{...ve,status:"working"}:ve))},[e.activeJobIds]),_(()=>{K(b=>{let ie=rh(b.filter(Je=>!Ee.current.has(Je.jobId)),e.events).filter(Je=>!bd(Je,y));if(!u||u.size===0)return ie;let ve=ie.filter(Je=>!Je.threadId||!u.has(Je.threadId)||!ko(Je));return ve.length===ie.length?ie:ve})},[e.events,u,y]);let Ye=U(b=>b.global||!D||!b.routePathnames||b.routePathnames.length===0?!0:b.routePathnames.includes(D),[D]),We=we(()=>N.filter(b=>!Pl(b.kind)&&Ye(b)&&Zp(b,O,R)&&(!F||b.threadId!==F)&&!(b.threadId&&u?.has(b.threadId))&&!Ee.current.has(b.jobId)),[N,Ye,O,R,F,u]),Ae=We.some(ko),se=V0(o,r,Ae,We.length,p),Fe=We.map(b=>`${b.jobId}:${b.status}:${b.color}:${b.threadId??""}`).join("|");Lt(()=>{let b=W.current;if(W.current=he,re.current&&(clearTimeout(re.current),re.current=null),pe.current&&(clearTimeout(pe.current),pe.current=null),ye.current&&(clearTimeout(ye.current),ye.current=null),!fe.current){if(he||!se){X(!1),ue("waiting");return}return We.forEach(ie=>Q.current.add(ie.jobId)),X(!0),ue("waiting"),re.current=setTimeout(()=>{ue("fading"),re.current=null,pe.current=setTimeout(()=>{fe.current=!0,ue("complete"),pe.current=null,ye.current=setTimeout(()=>{X(!1),ye.current=null},th)},nh)},Z0),()=>{re.current&&(clearTimeout(re.current),re.current=null),pe.current&&(clearTimeout(pe.current),pe.current=null),ye.current&&(clearTimeout(ye.current),ye.current=null)}}if(he||!se){X(!1);return}if(b)return X(!0),ye.current=setTimeout(()=>{X(!1),ye.current=null},th),()=>{ye.current&&(clearTimeout(ye.current),ye.current=null)}},[Fe,he,se,We]);let Ke=J(null);Lt(()=>{if(!se){E(!1);return}let b=Ke.current;if(!b)return;let ie=null,ve=new Set,Je=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>Ve()),Mt=()=>{let tt=[document],wt=b.getRootNode();return wt!==document&&"querySelectorAll"in wt&&tt.unshift(wt),tt},Le=()=>{let tt=new Set;for(let wt of Mt())wt.querySelectorAll(Q0).forEach(rt=>tt.add(rt));return Array.from(tt)},ct=()=>{ie=null;let tt=b.getBoundingClientRect(),wt=Le();for(let ot of wt)Je&&!ve.has(ot)&&(ve.add(ot),Je.observe(ot));let rt=wt.some(ot=>{let rn=window.getComputedStyle(ot);return rn.display==="none"||rn.visibility==="hidden"||rn.opacity==="0"?!1:G0(tt,ot.getBoundingClientRect())});E(ot=>ot===rt?ot:rt)};function Ve(){ie===null&&(ie=window.requestAnimationFrame(ct))}Je?.observe(b);let Bt=b.getRootNode(),ge=typeof MutationObserver>"u"?null:new MutationObserver(Ve);ge&&Bt instanceof Node&&ge.observe(Bt,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["aria-hidden","style"]});let Oe=typeof MutationObserver>"u"||!document.body?null:new MutationObserver(Ve);return Oe?.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-popmelt-active-annotation-surface"]}),window.addEventListener("resize",Ve),window.addEventListener("scroll",Ve,!0),window.addEventListener("pointermove",Ve,{passive:!0}),ct(),()=>{ie!==null&&window.cancelAnimationFrame(ie),Je?.disconnect(),ge?.disconnect(),Oe?.disconnect(),window.removeEventListener("resize",Ve),window.removeEventListener("scroll",Ve,!0),window.removeEventListener("pointermove",Ve)}},[se,k,We.length]),_(()=>{if(!se)return;let b=Ke.current;if(!b)return;let ie=()=>{S(!0),i(!0)},ve=()=>{S(!1),G(null),i(!1),c?.(null)};return b.addEventListener("mouseenter",ie),b.addEventListener("mouseleave",ve),()=>{b.removeEventListener("mouseenter",ie),b.removeEventListener("mouseleave",ve)}},[se,i,c]);let xt=J(new Map),et=U((b,ie)=>{ie?xt.current.set(b,ie):xt.current.delete(b)},[]);if(_(()=>{if(!se)return;let b=[];for(let ie of We){let ve=xt.current.get(ie.jobId);if(!ve)continue;if(s){let Ve=ie.jobId,Bt=ie.threadId,ge=ie.annotationIds,Oe=()=>s(Ve,Bt,ge);ve.addEventListener("click",Oe),b.push(()=>ve.removeEventListener("click",Oe))}let Je=ie.jobId,Mt=ie.annotationIds,Le=()=>{G(Je),c?.(Je,Mt)},ct=()=>{G(Ve=>Ve===Je?null:Ve),c?.(null)};ve.addEventListener("mouseenter",Le),ve.addEventListener("mouseleave",ct),b.push(()=>{ve.removeEventListener("mouseenter",Le),ve.removeEventListener("mouseleave",ct)})}return()=>b.forEach(ie=>ie())},[se,We,s,c]),!se)return null;let Se={working:3,queued:2,error:1,done:0},Ue=[],ht=new Map;for(let b of We){if(!b.threadId){Ue.push(b);continue}let ie=ht.get(b.threadId);(!ie||Se[b.status]>Se[ie.status]||Se[b.status]===Se[ie.status])&&ht.set(b.threadId,b)}for(let b of ht.values())Ue.push(b);let gt=Ue.filter(b=>b.status==="queued"),nt=new Map;gt.forEach((b,ie)=>{nt.set(b.jobId,`(${ie+1}/${gt.length})`)});let lt=!q&&!C&&Ue.length>1,Ht=um(k),nn=pm(k),cn=ow(Ue,Ht),Mn=bu(e.events),At=new Map(Ue.map((b,ie)=>[b.jobId,ie])),Pe=!fe.current&&ce==="waiting",Wt=!fe.current&&ce==="fading",dt=Y||Pe;return M("div",{ref:Ke,style:{...Xe,zIndex:10001,opacity:dt?0:1,visibility:dt?"hidden":"visible",pointerEvents:dt?"none":"auto",transition:Wt?`opacity ${nh}ms ease-out`:"none"},"aria-hidden":dt||void 0,"data-devtools":!0,children:[h("style",{children:`
|
|
63
|
+
@keyframes popmeltJobStatusEnter {
|
|
64
|
+
from { opacity: 0; transform: translateX(12px); }
|
|
65
|
+
to { opacity: 1; transform: translateX(0); }
|
|
66
|
+
}
|
|
67
|
+
@media (prefers-reduced-motion: reduce) {
|
|
68
|
+
@keyframes popmeltJobStatusEnter {
|
|
69
|
+
from { opacity: 1; transform: none; }
|
|
70
|
+
to { opacity: 1; transform: none; }
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
`}),cn.map((b,ie)=>{let ve=ie===cn.length-1,Je=At.get(b.jobId)??ie,Mt=Ue.length-1-Je,Le=ee===b.jobId,ct=Math.max(160,Math.min(360,Ne.w-32)),Ve=b.status==="working"&&Mn.has(b.jobId),Bt=ot=>Ve?"Approval needed":b.status==="working"?tw(e.events.filter(rn=>rn.data.jobId===b.jobId),ot):b.status==="queued"?`Queued ${nt.get(b.jobId)??""}`:b.status==="done"?b.doneLabel||"Done":b.cancelled?"Cancelled":nw(b.errorMessage||"",ot),ge=Bt(!1),Oe=Bt(!0),tt=Le?Oe:ge,wt=rw(tt,3),rt=Le&&(Oe!==ge||wt>24);return h("div",{"data-popmelt-status-job":b.jobId,style:{position:"relative",zIndex:Je+1,marginBottom:lt?ve?0:-18:ve?0:ew,transform:lt?`scale(${Math.max(.94,1-Mt*.02)})`:"scale(1)",opacity:1,transformOrigin:`${Ht?"top":"bottom"} ${nn?"right":"left"}`,transition:C?"none":"margin-bottom 250ms ease, transform 250ms ease, opacity 250ms ease"},children:h("div",{ref:ot=>et(b.jobId,ot),style:{...wd,animation:!fe.current||Q.current.has(b.jobId)?"none":wd.animation,position:"relative",overflow:"visible",cursor:s?"pointer":void 0,height:rt?"auto":Ca,minHeight:Ca,alignItems:rt?"flex-start":"center"},"aria-label":tt,children:M("div",{style:{display:"flex",alignItems:rt?"flex-start":"center",gap:3,height:rt?"auto":Ca-xd*2,minHeight:Ca-xd*2,maxWidth:rt?ct:void 0,boxSizing:"border-box",padding:rt?"3px 5px 3px 8px":"0 5px 0 8px",margin:0,backgroundColor:b.color,color:"#ffffff",borderRadius:Cc},children:[M("span",{style:{display:"flex",alignItems:rt?"flex-start":"center",gap:3,minWidth:0,opacity:H===b.jobId?.3:1,transition:"opacity 120ms ease-out"},children:[b.status==="working"&&(Ve?h(uu,{size:12,"aria-label":"Approval needed"}):h(iw,{color:"#ffffff"})),b.status==="queued"&&h(cu,{size:12,strokeWidth:2.25,color:"#ffffff",style:{opacity:.6}}),b.status==="done"&&(b.doneLabel==="Has a question"?h(Ig,{size:12,strokeWidth:2.25,style:{marginRight:3}}):b.doneLabel==="Replied"?h(kg,{size:12,strokeWidth:2.25}):h(aw,{color:"#ffffff"})),b.status==="error"&&h(Eg,{size:12,strokeWidth:2.25}),h("span",{style:{opacity:b.status==="queued"?.6:1,display:rt?"-webkit-box":"block",WebkitBoxOrient:rt?"vertical":void 0,WebkitLineClamp:rt?3:void 0,whiteSpace:rt?"normal":"nowrap",textWrap:rt?"balance":void 0,lineHeight:"14px",width:rt?`min(${wt+.5}ch, ${ct-48}px)`:void 0,maxWidth:rt?ct-48:160,overflow:"hidden",textOverflow:"ellipsis",transition:"opacity 120ms ease-out"},children:tt})]}),b.status==="working"&&d&&h(lw,{onCancel:()=>d(b.jobId)}),(b.status==="done"||b.status==="error")&&h(sw,{onHoverChange:ot=>j(ot?b.jobId:null),onDismiss:()=>{j(null),N.filter(ot=>b.threadId?ot.threadId===b.threadId:ot.jobId===b.jobId).forEach(ot=>Ee.current.add(ot.jobId)),K(ot=>ot.filter(rn=>b.threadId?rn.threadId!==b.threadId:rn.jobId!==b.jobId))}})]})})},b.jobId)}),p===!1&&N.length>0&&h("div",{style:wd,children:M("div",{style:{display:"flex",alignItems:"center",gap:3,padding:"3px 5px 3px 8px",margin:0,backgroundColor:"#f59e0b",color:"#ffffff",borderRadius:Cc},children:[h("span",{style:{display:"inline-block",width:8,height:8,borderRadius:"50%",backgroundColor:"#ffffff",opacity:.6}}),h("span",{children:"Reconnecting\u2026"})]})})]})}function cw({children:e}){let[t,n]=$(null);return Lt(()=>{let r=document.createElement("div");return r.setAttribute("data-popmelt-top-layer-host",""),Object.assign(r.style,{position:"fixed",inset:"0",width:"100dvw",height:"100dvh",overflow:"visible",pointerEvents:"none",zIndex:String(2147483647)}),document.documentElement.appendChild(r),n(r),()=>r.remove()},[]),t?hu(e,t):null}var uw=`
|
|
74
|
+
${om}
|
|
75
|
+
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
|
|
76
|
+
:host {
|
|
77
|
+
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
|
78
|
+
font-size: 12px;
|
|
79
|
+
color: #1f2937;
|
|
80
|
+
line-height: 1.5;
|
|
81
|
+
-webkit-font-smoothing: antialiased;
|
|
82
|
+
}
|
|
83
|
+
/* Direct reset for all Popmelt chrome elements.
|
|
84
|
+
Beats broad selectors from mirrored host stylesheets (e.g. div, span, *).
|
|
85
|
+
Inline styles on individual elements still win (higher specificity).
|
|
86
|
+
color: inherit (not a fixed value) so children properly inherit inline
|
|
87
|
+
colors set by parents \u2014 e.g. thread header sets color:#fff, child spans
|
|
88
|
+
should get white, not this reset gray. */
|
|
89
|
+
:host *:not([data-popmelt-panel]):not([data-popmelt-panel] *):not([data-popmelt-font="sans"]):not([data-popmelt-font="sans"] *) {
|
|
90
|
+
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
|
91
|
+
font-size: 12px;
|
|
92
|
+
color: inherit;
|
|
93
|
+
line-height: 1.5;
|
|
94
|
+
-webkit-font-smoothing: antialiased;
|
|
95
|
+
}
|
|
96
|
+
/* Thread typography has its own role-based type system. Let descendants
|
|
97
|
+
inherit the nearest thread style so conversational UI can use Geist while
|
|
98
|
+
explicitly monospaced headers, code, and tool payloads remain monospaced. */
|
|
99
|
+
:host [data-devtools="thread-panel"]:not([data-popmelt-panel]) * {
|
|
100
|
+
font-family: inherit;
|
|
101
|
+
font-size: inherit;
|
|
102
|
+
line-height: inherit;
|
|
103
|
+
}
|
|
104
|
+
/* Break font inheritance for component previews \u2014 let mirrored host
|
|
105
|
+
page styles (Tailwind, globals) apply instead of Popmelt's monospace. */
|
|
106
|
+
[data-popmelt-panel] {
|
|
107
|
+
font: 16px / 1.5 system-ui, -apple-system, sans-serif;
|
|
108
|
+
color: initial;
|
|
109
|
+
-webkit-font-smoothing: auto;
|
|
110
|
+
}
|
|
111
|
+
`;function pw({children:e}){return _(()=>{rm(document)},[]),M(at,{children:[h("style",{children:uw}),e]})}function hw(e){return e.tagName==="STYLE"||e.tagName==="LINK"&&e.rel==="stylesheet"}function fw(e){let t=new Map,n=e.firstChild;function r(a){if(t.has(a)||a.hasAttribute("data-pm-mirror"))return;let l=a.cloneNode(!0);l.setAttribute("data-pm-mirror",""),e.insertBefore(l,n),t.set(a,l)}function o(a){let l=t.get(a);l&&(l.remove(),t.delete(a))}for(let a of document.querySelectorAll('link[rel="stylesheet"], style'))a.getRootNode()===document&&r(a);try{document.adoptedStyleSheets.length>0&&(e.adoptedStyleSheets=[...document.adoptedStyleSheets,...e.adoptedStyleSheets])}catch{}let i=new MutationObserver(a=>{for(let l of a)if(l.type==="childList"){for(let s of l.addedNodes)s instanceof Element&&hw(s)&&r(s);for(let s of l.removedNodes)s instanceof Element&&o(s)}});return i.observe(document.head,{childList:!0}),document.body&&i.observe(document.body,{childList:!0}),()=>{i.disconnect();for(let a of t.values())a.remove();t.clear()}}function mw({children:e,zIndex:t=1e4}){let n=J(null),[r,o]=$(null),[i,a]=$(null);return Lt(()=>{let l=n.current;if(!l||l.shadowRoot)return;let s=l.attachShadow({mode:"open"}),d=document.createElement("div");d.setAttribute("data-popmelt-root",""),d.setAttribute("data-popmelt-canvas-block",""),s.appendChild(d),o(s),a(d)},[]),_(()=>{if(r)return fw(r)},[r]),M(at,{children:[h("div",{ref:n,"data-popmelt-shadow-host":!0,style:{position:"absolute",width:0,height:0,overflow:"visible",pointerEvents:"auto",zIndex:t}}),i&&hu(e,i)]})}function Eo({src:e,alt:t="",...n}){let r=typeof e=="string"&&ec(e),[o,i]=$(null);return _(()=>{if(!r||typeof e!="string")return;let a=new AbortController,l;return Qt(e,{signal:a.signal,cache:"no-store"}).then(async s=>{if(!s.ok)return;let d=await s.blob();a.signal.aborted||(l=URL.createObjectURL(d),i({src:e,objectUrl:l}))}).catch(()=>{}),()=>{a.abort(),l&&URL.revokeObjectURL(l)}},[e,r]),h("img",{...n,alt:t,src:r?o?.src===e?o.objectUrl:void 0:e})}function gw({messages:e,renderMessage:t,onChange:n}){return e.length?M("section",{"aria-label":"Queued messages",style:{display:"flex",flexDirection:"column",gap:12,borderTop:"1px solid var(--popmelt-thread-hairline)",paddingTop:8},children:[M("div",{style:{fontSize:12,color:"var(--popmelt-thread-muted)"},children:["Queued \xB7 ",e.length]}),e.map(r=>h(yw,{message:r,renderMessage:t,onChange:n},r.lifecycle?.submissionIds[0]??`${r.jobId}-${r.timestamp}`))]}):null}function yw({message:e,renderMessage:t,onChange:n}){let[r,o]=$(!1),[i,a]=$(e.replyToQuestion??""),[l,s]=$(!1),[d,c]=$(""),p=!!(n&&e.lifecycle?.submissionIds[0])&&!l,u=async m=>{if(!(!p||!n||m==="")){s(!0),c("");try{await n(e,m),o(!1)}catch(g){c(g instanceof Error?g.message:"Could not update queued message.")}finally{s(!1)}}},f={display:"inline-flex",alignItems:"center",justifyContent:"center",background:"none",border:0,color:"var(--popmelt-thread-muted-strong)",cursor:"pointer",padding:6};return M("div",{"data-queued-reply":!0,style:{alignSelf:"flex-end",display:"flex",flexDirection:"column",gap:4,width:"100%",maxWidth:280,flexShrink:0},children:[r&&n?h("textarea",{autoFocus:!0,"aria-label":"Edit queued message",value:i,disabled:l,onChange:m=>a(m.target.value),onKeyDown:m=>{m.key==="Escape"&&(m.stopPropagation(),l||o(!1)),m.key==="Enter"&&(m.metaKey||m.ctrlKey)&&!m.nativeEvent.isComposing&&(m.preventDefault(),m.stopPropagation(),u(i.trim()))},style:{width:"100%",boxSizing:"border-box",minHeight:90,resize:"vertical",font:"inherit",lineHeight:1.5,color:"inherit",background:"var(--popmelt-thread-raised)",border:"1px solid var(--popmelt-thread-hairline)",borderRadius:12,padding:12}}):t(e),n&&h("div",{style:{display:"flex",justifyContent:"flex-end",gap:2},children:r?M(at,{children:[h("button",{type:"button",title:"Save queued message","aria-label":"Save queued message",disabled:!p||!i.trim(),style:f,onClick:()=>{u(i.trim())},children:h(vo,{size:14})}),h("button",{type:"button",title:"Cancel editing","aria-label":"Cancel editing",disabled:l,style:f,onClick:()=>o(!1),children:h(al,{size:14})})]}):M(at,{children:[h("button",{type:"button",title:"Edit queued message","aria-label":"Edit queued message",disabled:!p,style:f,onClick:()=>{a(e.replyToQuestion??""),c(""),o(!0)},children:h(su,{size:14})}),h("button",{type:"button",title:"Delete queued message","aria-label":"Delete queued message",disabled:!p,style:f,onClick:()=>{u(null)},children:h(Cg,{size:14})})]})}),d&&h("div",{role:"alert",style:{fontSize:12,color:"#dc2626"},children:d})]})}var oh={background:"var(--popmelt-thread-soft)",border:"1px solid var(--popmelt-thread-border)",borderRadius:24,display:"flex",flexDirection:"column",gap:10,padding:16},Id={background:"transparent",border:"1px solid var(--popmelt-thread-border)",borderRadius:16,color:"var(--popmelt-thread-secondary)",cursor:"pointer",fontFamily:"inherit",fontSize:11,fontWeight:650,padding:"6px 9px",textAlign:"left"};function vw({approval:e,accentColor:t,connected:n,decide:r}){let[o,i]=$(!1),[a,l]=$(!1),[s,d]=$(""),c=e.status==="pending",p=async u=>{if(!(a||!n)){l(!0),d("");try{await r(u)}catch(f){d(f instanceof Error?f.message:"Could not send decision.")}finally{l(!1)}}};return c?M("div",{"data-popmelt-approval":e.status,style:oh,children:[M("button",{type:"button","aria-expanded":o,onClick:()=>i(!o),style:{background:"none",border:0,padding:0,display:"flex",alignItems:"center",gap:8,color:"var(--popmelt-thread-primary)",font:"inherit",fontSize:14,fontWeight:650,cursor:"pointer",textAlign:"left"},children:[h(uu,{size:16,color:t,"aria-hidden":"true"}),h("span",{style:{flex:1},children:c?"Permission needed":{pending:"Permission needed",allowed:"Allowed once",denied:"Denied",expired:"Request expired"}[e.status]}),h(Pi,{size:14,"aria-hidden":"true",style:{transform:o?"rotate(180deg)":"none"}})]}),c&&M("div",{style:{color:"var(--popmelt-thread-secondary)",fontSize:13,lineHeight:1.35},children:[e.summary,e.phase==="parked"&&h("div",{role:"status",children:"Parked \xB7 other tasks can continue. Approve to run next."})]}),h("div",{title:e.cwd,style:{fontSize:11,color:"var(--popmelt-thread-muted-strong)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.cwd}),o&&M("div",{style:{borderLeft:"1px solid var(--popmelt-thread-border)",paddingLeft:12,color:"var(--popmelt-thread-secondary)",fontSize:12},children:[M("div",{children:["One-time permission for this"," ",e.kind==="command"?"command":"file change","."]}),h("pre",{style:{fontSize:11,whiteSpace:"pre-wrap",overflowWrap:"anywhere",maxHeight:200,overflow:"auto",marginBottom:0},children:e.details})]}),c&&M("div",{style:{display:"flex",gap:6},children:[h("button",{type:"button","data-approval-decision":"allow",disabled:a||!n,style:Id,onClick:()=>{p("allow")},children:"Allow once"}),h("button",{type:"button","data-approval-decision":"deny",disabled:a||!n,style:Id,onClick:()=>{p("deny")},children:"Deny"})]}),c&&!n&&h("div",{role:"status",style:{fontSize:12},children:"Reconnecting\u2026"}),s&&h("div",{role:"alert",style:{fontSize:12},children:s})]}):h(ih,{approval:e})}function ih({approval:e}){let t=e.kind==="command"?lu:bg;return M("div",{"data-popmelt-approval":e.status,title:e.details,style:{display:"flex",alignItems:"center",gap:6,color:"var(--popmelt-thread-muted-strong)",fontSize:12},children:[h(t,{size:14,"aria-hidden":"true"}),M("span",{children:[e.status==="allowed"?e.phase==="queued"?"Allowed once \xB7 queued next":"Allowed once":e.status==="denied"?"Denied":e.expiryReason==="no_response"?"No response received":"Request expired"," ","\xB7 ",e.summary]})]})}function bw({bridgeUrl:e,threadId:t,visible:n,active:r,onPendingChange:o}){let[i,a]=$([]),[l,s]=$(!1),d=i.some(c=>c.threadId===t&&c.status==="pending");return _(()=>(o(d),()=>o(!1)),[o,d]),_(()=>{if(a([]),s(!1),!n)return;let c=new AbortController,p,u=async()=>{try{let f=await Qt(`${e}/approvals?threadId=${encodeURIComponent(t)}`,{signal:c.signal});if(!f.ok)throw new Error("Approval fetch failed");let m=await f.json();c.signal.aborted||(a(Array.isArray(m.approvals)?m.approvals:[]),s(!0))}catch{c.signal.aborted||s(!1)}!c.signal.aborted&&r&&(p=setTimeout(()=>{u()},1500))};return u(),()=>{c.abort(),clearTimeout(p)}},[e,t,n,r]),{approvals:i,connected:l,decide:async(c,p)=>{let u=await Qt(`${e}/approvals`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:c.id,threadId:t,jobId:c.jobId,decision:p})}),f=await u.json();if(!u.ok)throw new Error(f.error||"Could not send decision.");a(Array.isArray(f.approvals)?f.approvals:[])}}}var kd="ui-monospace, SFMono-Regular, Menlo, monospace",xw=0;function ww({size:e=11}){let t=++xw,n=`pm-vs-m${t}`,r=`pm-vs-f0-${t}`,o=`pm-vs-f1-${t}`,i=`pm-vs-g${t}`;return M("svg",{width:e,height:e,viewBox:"0 0 100 100",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{display:"inline",verticalAlign:"middle",marginLeft:3,flexShrink:0},children:[h("mask",{id:n,style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:"0",y:"0",width:"100",height:"100",children:h("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M70.9119 99.3171C72.4869 99.9307 74.2828 99.8914 75.8725 99.1264L96.4608 89.2197C98.6242 88.1787 100 85.9892 100 83.5872V16.4133C100 14.0113 98.6243 11.8218 96.4609 10.7808L75.8725 0.873756C73.7862 -0.130129 71.3446 0.11576 69.5135 1.44695C69.252 1.63711 69.0028 1.84943 68.769 2.08341L29.3551 38.0415L12.1872 25.0096C10.589 23.7965 8.35363 23.8959 6.86933 25.2461L1.36303 30.2549C-0.452552 31.9064 -0.454633 34.7627 1.35853 36.417L16.2471 50.0001L1.35853 63.5832C-0.454633 65.2374 -0.452552 68.0938 1.36303 69.7453L6.86933 74.7541C8.35363 76.1043 10.589 76.2037 12.1872 74.9905L29.3551 61.9587L68.769 97.9167C69.3925 98.5406 70.1246 99.0104 70.9119 99.3171ZM75.0152 27.2989L45.1091 50.0001L75.0152 72.7012V27.2989Z",fill:"white"})}),M("g",{mask:`url(#${n})`,children:[h("path",{d:"M96.4614 10.7962L75.8569 0.875542C73.4719 -0.272773 70.6217 0.211611 68.75 2.08333L1.29858 63.5832C-0.515693 65.2373 -0.513607 68.0937 1.30308 69.7452L6.81272 74.754C8.29793 76.1042 10.5347 76.2036 12.1338 74.9905L93.3609 13.3699C96.086 11.3026 100 13.2462 100 16.6667V16.4275C100 14.0265 98.6246 11.8378 96.4614 10.7962Z",fill:"#0065A9"}),h("g",{filter:`url(#${r})`,children:h("path",{d:"M96.4614 89.2038L75.8569 99.1245C73.4719 100.273 70.6217 99.7884 68.75 97.9167L1.29858 36.4169C-0.515693 34.7627 -0.513607 31.9063 1.30308 30.2548L6.81272 25.246C8.29793 23.8958 10.5347 23.7964 12.1338 25.0095L93.3609 86.6301C96.086 88.6974 100 86.7538 100 83.3334V83.5726C100 85.9735 98.6246 88.1622 96.4614 89.2038Z",fill:"#007ACC"})}),h("g",{filter:`url(#${o})`,children:h("path",{d:"M75.8578 99.1263C73.4721 100.274 70.6219 99.7885 68.75 97.9166C71.0564 100.223 75 98.5895 75 95.3278V4.67213C75 1.41039 71.0564 -0.223106 68.75 2.08329C70.6219 0.211402 73.4721 -0.273666 75.8578 0.873633L96.4587 10.7807C98.6234 11.8217 100 14.0112 100 16.4132V83.5871C100 85.9891 98.6234 88.1786 96.4586 89.2196L75.8578 99.1263Z",fill:"#1F9CF0"})}),h("g",{style:{mixBlendMode:"overlay"},opacity:"0.25",children:h("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M70.8511 99.3171C72.4261 99.9306 74.2221 99.8913 75.8117 99.1264L96.4 89.2197C98.5634 88.1787 99.9392 85.9892 99.9392 83.5871V16.4133C99.9392 14.0112 98.5635 11.8217 96.4001 10.7807L75.8117 0.873695C73.7255 -0.13019 71.2838 0.115699 69.4527 1.44688C69.1912 1.63705 68.942 1.84937 68.7082 2.08335L29.2943 38.0414L12.1264 25.0096C10.5283 23.7964 8.29285 23.8959 6.80855 25.246L1.30225 30.2548C-0.513334 31.9064 -0.515415 34.7627 1.29775 36.4169L16.1863 50L1.29775 63.5832C-0.515415 65.2374 -0.513334 68.0937 1.30225 69.7452L6.80855 74.754C8.29285 76.1042 10.5283 76.2036 12.1264 74.9905L29.2943 61.9586L68.7082 97.9167C69.3317 98.5405 70.0638 99.0104 70.8511 99.3171ZM74.9544 27.2989L45.0483 50L74.9544 72.7012V27.2989Z",fill:`url(#${i})`})})]}),M("defs",{children:[M("filter",{id:r,x:"-8.39411",y:"15.8291",width:"116.727",height:"92.2456",filterUnits:"userSpaceOnUse",colorInterpolationFilters:"sRGB",children:[h("feFlood",{floodOpacity:"0",result:"BackgroundImageFix"}),h("feColorMatrix",{in:"SourceAlpha",type:"matrix",values:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"}),h("feOffset",{}),h("feGaussianBlur",{stdDeviation:"4.16667"}),h("feColorMatrix",{type:"matrix",values:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"}),h("feBlend",{mode:"overlay",in2:"BackgroundImageFix",result:"effect1_dropShadow"}),h("feBlend",{mode:"normal",in:"SourceGraphic",in2:"effect1_dropShadow",result:"shape"})]}),M("filter",{id:o,x:"60.4167",y:"-8.07558",width:"47.9167",height:"116.151",filterUnits:"userSpaceOnUse",colorInterpolationFilters:"sRGB",children:[h("feFlood",{floodOpacity:"0",result:"BackgroundImageFix"}),h("feColorMatrix",{in:"SourceAlpha",type:"matrix",values:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"}),h("feOffset",{}),h("feGaussianBlur",{stdDeviation:"4.16667"}),h("feColorMatrix",{type:"matrix",values:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"}),h("feBlend",{mode:"overlay",in2:"BackgroundImageFix",result:"effect1_dropShadow"}),h("feBlend",{mode:"normal",in:"SourceGraphic",in2:"effect1_dropShadow",result:"shape"})]}),M("linearGradient",{id:i,x1:"49.9392",y1:"0.257812",x2:"49.9392",y2:"99.7423",gradientUnits:"userSpaceOnUse",children:[h("stop",{stopColor:"white"}),h("stop",{offset:"1",stopColor:"white",stopOpacity:"0"})]})]})]})}var Sw=/^#[0-9a-fA-F]{3,8}$/,Iw=/^(?:rgba?|hsla?|oklch)\([^)]+\)$/,kw=new Set(["black","white","red","blue","green","yellow","orange","purple","pink","gray","grey","cyan","magenta","brown","navy","teal","maroon","olive","silver","aqua","fuchsia","lime"]);function Ew(e){let t=e.trim();return Sw.test(t)||Iw.test(t)||kw.has(t.toLowerCase())}function Ed(e,t){return h("span",{style:{display:"inline-block",width:10,height:10,backgroundColor:e,border:"1px solid rgba(0,0,0,0.15)",borderRadius:2,verticalAlign:"middle",marginRight:3}},t)}function Aa(e){let t=[],n=/(`[^`]+`)|(\*\*\*(.+?)\*\*\*)|(\*\*(.+?)\*\*)|(\*(.+?)\*)|(_([^_]+?)_)|(\[([^\]]+)\]\(([^)]+)\))|(#[0-9a-fA-F]{3,8})(?![0-9a-fA-F])|((?:rgba?|hsla?|oklch)\([^)]+\))/g,r=0,o;for(;(o=n.exec(e))!==null;){if(o.index>r&&t.push(e.slice(r,o.index)),o[1]){let i=o[1].slice(1,-1);Ew(i)&&t.push(Ed(i,`sw-${o.index}`)),t.push(h("code",{style:{fontFamily:kd,fontSize:"0.9em",backgroundColor:"rgba(0,0,0,0.06)",padding:"1px 4px",borderRadius:2},children:i},o.index))}else if(o[3]!==void 0)t.push(h("strong",{children:h("em",{children:o[3]})},o.index));else if(o[5]!==void 0)t.push(h("strong",{children:o[5]},o.index));else if(o[7]!==void 0)t.push(h("em",{children:o[7]},o.index));else if(o[9]!==void 0)t.push(h("em",{children:o[9]},o.index));else if(o[11]!==void 0&&o[12]!==void 0){let i=o[12],a=!/^https?:\/\/|^mailto:/i.test(i),l=a?`vscode://file/${i}`:i;a?t.push(M("a",{href:l,target:"_blank",rel:"noopener noreferrer",style:{color:"inherit",textDecoration:"underline",whiteSpace:"nowrap",backgroundColor:"rgba(0,0,0,0.06)",padding:"1px 4px",borderRadius:2,fontFamily:kd,fontSize:"0.9em"},children:[o[11],h(ww,{})]},o.index)):t.push(h("a",{href:l,target:"_blank",rel:"noopener noreferrer",style:{color:"inherit",textDecoration:"underline"},children:o[11]},o.index))}else o[13]!==void 0?(t.push(Ed(o[13],`sw-${o.index}`)),t.push(o[13])):o[14]!==void 0&&(t.push(Ed(o[14],`sw-${o.index}`)),t.push(o[14]));r=o.index+o[0].length}return r<e.length&&t.push(e.slice(r)),t}function Tr(e){let t=e.split(`
|
|
112
|
+
`),n=[],r=0;for(;r<t.length;){let o=t[r];if(o.trimStart().startsWith("```")){let l=[];for(r++;r<t.length&&!t[r].trimStart().startsWith("```");)l.push(t[r]),r++;r++,n.push(h("pre",{style:{fontFamily:kd,fontSize:"0.9em",lineHeight:1.4,backgroundColor:"rgba(0,0,0,0.04)",padding:"6px 8px",margin:"4px 0",overflowX:"auto",whiteSpace:"pre"},children:l.join(`
|
|
113
|
+
`)},n.length));continue}if(/^(-{3,}|\*{3,}|_{3,})\s*$/.test(o)){n.push(h("hr",{style:{border:"none",borderTop:"1px solid rgba(0,0,0,0.1)",margin:"6px 0"}},n.length)),r++;continue}let i=o.match(/^(#{1,4})\s+(.+)/);if(i){let l=i[1].length,s={1:16,2:14,3:13,4:12};n.push(h("div",{style:{fontWeight:700,fontSize:s[l]??12,margin:"8px 0 2px"},children:Aa(i[2])},n.length)),r++;continue}if(o.trimStart().startsWith("|")&&o.trimEnd().endsWith("|")){let l=[];for(;r<t.length&&t[r].trimStart().startsWith("|")&&t[r].trimEnd().endsWith("|");)l.push(t[r]),r++;let s=g=>/^\|[\s\-:|]+\|$/.test(g),d=l.filter(g=>!s(g)),c=g=>g.split("|").slice(1,-1).map(y=>y.trim()),p=g=>/^\*\*.+\*\*$/.test(g)||/^__.+__$/.test(g),u=d.map(c),f=u.length>1&&u.slice(1).every(g=>g[0]&&p(g[0])),m=u.length>0&&u[0].every(g=>p(g));n.push(h("div",{style:{overflowX:"auto",margin:"4px 0",paddingBottom:4},children:h("table",{style:{borderCollapse:"separate",borderSpacing:0,fontSize:"0.95em",width:"max-content",minWidth:"100%"},children:h("tbody",{children:d.map((g,y)=>h("tr",{children:c(g).map((w,k)=>h(y===0?"th":"td",{style:{border:"1px solid rgba(0,0,0,0.1)",padding:"3px 6px",textAlign:"left",fontWeight:y===0?600:400,minWidth:60,whiteSpace:"nowrap",...k===0&&f||y===0&&m?{position:"sticky",...k===0&&f?{left:0}:{},...y===0&&m?{top:0}:{},background:"#fff",zIndex:k===0&&f&&y===0&&m?2:1}:{}},children:Aa(w)},k))},y))})})},n.length));continue}if(o.match(/^(\s*)([-*])\s+(.+)/)){let l=[];for(;r<t.length;){let s=t[r].match(/^\s*[-*]\s+(.+)/);if(s)l.push(s[1]),r++;else if(l.length>0&&t[r].match(/^\s+\S/)&&!t[r].match(/^\s*\d+\.\s/)&&!t[r].match(/^\s*[-*]\s+/))l[l.length-1]+=" "+t[r].trim(),r++;else break}n.push(h("ul",{style:{margin:0,paddingLeft:20,listStyleType:"disc",display:"flex",flexDirection:"column",gap:8,fontSize:"inherit",lineHeight:"inherit"},children:l.map((s,d)=>h("li",{children:Aa(s)},d))},n.length));continue}let a=o.match(/^(\s*)(\d+)\.\s+(.+)/);if(a){let l=a[1].length,s=parseInt(a[2],10)||1,d=[],c=null;for(;r<t.length;){let p=t[r],u=p.match(/^(\s*)(\d+)\.\s+(.+)/);if(u&&u[1].length===l)c=[u[3]],d.push(c),r++;else if(c&&p.trim()==="")r++;else if(d.length>0&&t[r].match(/^\s+\S/)&&!t[r].match(/^\s*\d+\.\s/)&&!t[r].match(/^\s*[-*]\s+/))c.push(t[r].trim()),r++;else if(c&&/^(Eval|Checks|Sources|Rationale|Prompt|Assertions?|Reason|Why|Expected|Notes?):/i.test(p.trim()))c.push(p.trim()),r++;else if(c&&c.length>1&&p.trim()&&!p.match(/^(#{1,4})\s+/)&&!p.trimStart().startsWith("|")&&!p.match(/^\s*[-*]\s+/)&&!p.match(/^\s*\d+\.\s+/)&&!/^(\*\*)?[A-Z][A-Za-z /&-]{2,40}(\*\*)?$/.test(p.trim()))c.push(p.trim()),r++;else break}n.push(h("ol",{start:s,style:{margin:0,paddingLeft:20,listStyleType:"decimal",display:"flex",flexDirection:"column",gap:8,fontSize:"inherit",lineHeight:"inherit"},children:d.map((p,u)=>h("li",{children:h("div",{style:{display:"flex",flexDirection:"column",gap:6},children:p.map((f,m)=>h("div",{children:Aa(f)},m))})},u))},n.length));continue}if(o.trim()===""){r++;continue}n.push(h("div",{style:{fontSize:"inherit",lineHeight:"inherit"},children:Aa(o)},n.length)),r++}return h("div",{style:{display:"flex",flexDirection:"column",fontSize:"inherit",gap:8,lineHeight:"inherit"},children:n})}var ah="<orientation>",Tw="</orientation>",Cw="<\\/orientation>",lh=[Tw,Cw];function Aw(e,t){let n=t;for(;n<e.length&&/\s/.test(e[n]);)n++;if(n>=e.length)return{status:"incomplete",start:n};if(e[n]!=="{")return{status:"invalid",start:n};let r=0,o=!1,i=!1;for(let a=n;a<e.length;a++){let l=e[a];if(o){i?i=!1:l==="\\"?i=!0:l==='"'&&(o=!1);continue}if(l==='"')o=!0;else if(l==="{")r++;else if(l==="}"){if(r--,r===0)return{status:"complete",start:n,end:a+1};if(r<0)return{status:"invalid",start:n}}}return{status:"incomplete",start:n}}function Td(e,t){if(!t)return;let n=e[e.length-1];n?.kind==="text"?n.text+=t:e.push({kind:"text",text:t})}function sh(e,t){let n=null;for(let r of lh){let o=e.indexOf(r,t);o>=0&&(!n||o<n.index)&&(n={index:o,tag:r})}return n}function Mw(e){let t=[],n=0;for(;n<e.length;){let r=e.indexOf(ah,n),o=sh(e,n);if(o&&(r<0||o.index<r)){Td(t,e.slice(n,o.index)),n=o.index+o.tag.length;continue}if(r<0){Td(t,e.slice(n));break}Td(t,e.slice(n,r));let i=r+ah.length,a=Aw(e,i);if(a.status!=="complete"){let d=sh(e,i);if(d){n=d.index+d.tag.length;continue}n=i;continue}t.push({kind:"orientation",json:e.slice(a.start,a.end)}),n=a.end;let l=n;for(;l<e.length&&/\s/.test(e[l]);)l++;let s=lh.find(d=>e.startsWith(d,l));s&&(n=l+s.length)}return t}function Rw(e){return Mw(e).map(t=>t.kind==="text"?t.text:`
|
|
114
|
+
|
|
115
|
+
`).join("").replace(/\n{3,}/g,`
|
|
116
|
+
|
|
117
|
+
`).trim()}function $w(e){return e.replace(/<resolution>[\s\S]*?(?:<\/resolution>|$)/g,"")}function Pw(e){return e.replace(/\b([A-Za-z]{2,}[.!?])(?=[A-Z][a-z])/g,`$1
|
|
118
|
+
|
|
119
|
+
`)}function Cd(e){return Pw($w(Rw(e)).replace(/<question>[\s\S]*?<\/question>/g,"").replace(/<plan>[\s\S]*?<\/plan>/g,"").replace(/<review>[\s\S]*?<\/review>/g,"").replace(/<novel>[\s\S]*?<\/novel>/g,"").replace(/<eval_proposals>[\s\S]*?<\/eval_proposals>/g,"").replace(/<eval_run_result>[\s\S]*?<\/eval_run_result>/g,"").replace(/<evals>[\s\S]*?<\/evals>/g,"").replace(/<memory-review>[\s\S]*?<\/memory-review>/g,"").replace(/<memory-review-card>[\s\S]*?<\/memory-review-card>/g,"").replace(/<memory-[\s\S]*$/g,"").replace(/<imprint>[\s\S]*?<\/imprint>/g,"").replace(/<imprint>[\s\S]*$/g,"").trim())}function dh(e){return e.replace(/\s+/g," ").trim()}function Lw(e,t){let n=dh(Cd(t)),r=dh(e.filter(o=>o.kind==="text"&&typeof o.text=="string").map(o=>Cd(o.text)).join(" "));return n===r}function jw(e){return e.kind==="tool_group"?!0:e.kind!=="text"||!("text"in e)?!1:typeof e.text=="string"&&e.text.trim().length===0}function ch(e){let t=new Set,n=null;for(let r=0;r<e.length;r++){let o=e[r];if(o.kind==="orientation"){n=r;continue}jw(o)||n!==null&&(t.add(n),n=null)}return n!==null&&t.add(n),e.filter((r,o)=>r.kind!=="orientation"||t.has(o))}var zw="popmelt-thread-composer-draft",Ll={text:"",selectionStart:0,selectionEnd:0,selectionDirection:"none"};function uh(){if(!(typeof window>"u"))return window.localStorage}function ph(e){return`${zw}:${e}`}function Dw(e,t=uh()){if(!t)return Ll;try{let n=t.getItem(ph(e));if(!n)return Ll;if(!n.startsWith("{"))return{text:n,selectionStart:n.length,selectionEnd:n.length,selectionDirection:"none"};let r=JSON.parse(n);if(typeof r.text!="string")return Ll;let o=Math.max(0,Math.min(r.text.length,Number(r.selectionStart)||0)),i=Math.max(o,Math.min(r.text.length,Number(r.selectionEnd)||0)),a=r.selectionDirection==="forward"||r.selectionDirection==="backward"?r.selectionDirection:"none";return{text:r.text,selectionStart:o,selectionEnd:i,selectionDirection:a}}catch{return Ll}}function Ad(e,t,n=uh(),r={selectionStart:t.length,selectionEnd:t.length,selectionDirection:"none"}){if(n)try{let o=ph(e);t.length>0?n.setItem(o,JSON.stringify({text:t,selectionStart:r.selectionStart,selectionEnd:r.selectionEnd,selectionDirection:r.selectionDirection})):n.removeItem(o)}catch{}}function Hw(e,t){return t??(e>=0?e+1:void 0)}function Ow(e,t){return e?.trim()?e.trim():Jy(t.find(n=>n.role==="human"))}function Nw(e,t){if(!t)return e;let n=e.findIndex(r=>r.role==="human"&&r.execution==="none"&&r.jobId===`suggestion-${t}`);return n<0?e:e.slice(n+1).some(r=>r.role==="human"&&r.execution!=="none"&&!r.replyToQuestion&&!!(r.screenshotUrl||Object.values(r.screenshotUrls??{}).some(Boolean))&&!!(r.requestText?.trim()||r.requestItems?.length||r.feedbackSummary?.trim()))?e.filter((r,o)=>o!==n):e}var Md=280,jl=e=>`${e.jobId}:${e.role}:${e.timestamp}`;function Fw(e,t,n,r){let o=`${n}:${t??""}`,i=we(()=>Nw(e,t),[e,t]),a=e.find(u=>u.role==="human"&&u.execution==="none"&&u.jobId===`suggestion-${t}`),l=i.length<e.length,s=we(()=>{if(!a||l)return i;let u=e.indexOf(a);return e.filter((f,m)=>m<=u||f.role==="assistant"||f.execution==="none"||!!f.replyToQuestion)},[e,a,l,i]),[d,c]=$({scope:o,phase:"idle",seenKeys:[]});if(d.scope!==o)c({scope:o,phase:"idle",seenKeys:[]});else if(d.phase==="idle"){if(l)c({...d,phase:d.seedKey?"preparing":"done"});else if(a){let u=s.map(jl);u.join("|")!==d.seenKeys.join("|")&&c({...d,seenKeys:u,seedKey:jl(a)})}}Lt(()=>{if(d.phase!=="preparing")return;let u=Array.from(r.current?.querySelectorAll('[data-suggestion-handoff="incoming"] img')??[]),f=new Set(u.filter(w=>!w.getAttribute("src")||!w.complete)),m=()=>c(w=>({...w,phase:window.matchMedia?.("(prefers-reduced-motion: reduce)").matches?"done":"animating"})),g=w=>{f.delete(w.target),f.size||m()};f.forEach(w=>{w.addEventListener("load",g),w.addEventListener("error",g)});let y=window.setTimeout(m,1500);return f.size||m(),()=>{window.clearTimeout(y),u.forEach(w=>{w.removeEventListener("load",g),w.removeEventListener("error",g)})}},[r,d.phase,o]),Lt(()=>{if(d.phase!=="animating")return;let u=window.setTimeout(()=>c(f=>({...f,phase:"done"})),Md);return()=>window.clearTimeout(u)},[d.phase,o]);let p=d.phase==="preparing"||d.phase==="animating";return{messages:p?e:s,replacementReady:l,phase:d.phase,motion:u=>{if(!p)return;let f=jl(u);if(f===d.seedKey)return"outgoing";if(!d.seenKeys.includes(f))return"incoming"}}}function _w(e){return e==="Bash"?"terminal":e==="Edit"||e==="Write"?"pencil":"tool"}function Ww(e){let t=new Map;for(let n of e){let r=_w(n.tool),o=t.get(r)??{kind:r,count:0,groups:[]};o.count+=n.items.length,o.groups.push(n),t.set(r,o)}return[...t.values()]}function Bw(e,t,n){return e&&t!==n}var dn=os,Jw=350,qw=200,Uw=120,To=14,hh=360,Yw=0,Xw=!1,Kw=8,Vw="devtools-thread-panel-position",Gw=hh+2*Yw;function Co(){let e=window.visualViewport;return{width:e?.width??window.innerWidth,height:e?.height??window.innerHeight}}function Ma(e=Co().width){let t=Vo(e);return Math.max(t,e-Tc(e)-t)}function Rd(e="right"){let{width:t}=Co(),n=Vo(t);return{top:n,left:e==="left"?n:Ma(t)}}function fh(e,t,n){let{width:r,height:o}=Co(),i=Vo(r),a=n?.getBoundingClientRect(),l=0,s=o-i-l;return a&&t+Gw>a.left&&(s=a.top-Kw-l),Math.max(200,s-Math.max(0,e))}var Qw={width:hh,backgroundColor:"var(--popmelt-thread-surface)",backgroundClip:"padding-box",borderWidth:1,borderStyle:"solid",borderColor:"var(--popmelt-thread-border)",boxSizing:"border-box",display:"flex",flexDirection:"column",overflow:"visible",padding:4,borderRadius:"16px 16px 20px 20px",backdropFilter:"blur(59.5px)",fontFamily:dn,fontSize:14,color:"var(--popmelt-thread-primary)",pointerEvents:"auto"},Zw={display:"flex",alignItems:"center",justifyContent:"space-between",padding:"6px 12px",margin:0,fontWeight:600,fontSize:12,fontFamily:"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace",lineHeight:1.2,overflow:"hidden",position:"absolute",top:4,left:4,right:4,borderRadius:10,zIndex:2},eS={flex:1,overflowY:"auto",padding:"32px 12px 112px",display:"flex",flexDirection:"column",gap:32,scrollbarGutter:"stable",scrollbarWidth:"thin"},tS=`
|
|
120
|
+
[data-devtools="thread-panel-messages"] {
|
|
121
|
+
scrollbar-color: transparent transparent;
|
|
122
|
+
}
|
|
123
|
+
[data-devtools="thread-panel-messages"][data-scroll-active="true"] {
|
|
124
|
+
scrollbar-color: var(--popmelt-thread-scrollbar-idle) transparent;
|
|
125
|
+
}
|
|
126
|
+
[data-devtools="thread-panel-messages"]:hover {
|
|
127
|
+
scrollbar-color: var(--popmelt-thread-scrollbar-hover) transparent;
|
|
128
|
+
}
|
|
129
|
+
[data-devtools="thread-panel-messages"]::-webkit-scrollbar {
|
|
130
|
+
width: 8px;
|
|
131
|
+
}
|
|
132
|
+
[data-devtools="thread-panel-messages"]::-webkit-scrollbar-track {
|
|
133
|
+
background: transparent;
|
|
134
|
+
}
|
|
135
|
+
[data-devtools="thread-panel-messages"]::-webkit-scrollbar-thumb {
|
|
136
|
+
background: transparent;
|
|
137
|
+
background-clip: padding-box;
|
|
138
|
+
border: 2px solid transparent;
|
|
139
|
+
border-radius: 999px;
|
|
140
|
+
transition: background-color 300ms ease;
|
|
141
|
+
}
|
|
142
|
+
[data-devtools="thread-panel-messages"][data-scroll-active="true"]::-webkit-scrollbar-thumb {
|
|
143
|
+
background-color: var(--popmelt-thread-scrollbar-idle);
|
|
144
|
+
}
|
|
145
|
+
[data-devtools="thread-panel-messages"]:hover::-webkit-scrollbar-thumb {
|
|
146
|
+
background-color: var(--popmelt-thread-scrollbar-hover);
|
|
147
|
+
}
|
|
148
|
+
[data-devtools="thread-panel-messages"]::-webkit-scrollbar-thumb:hover {
|
|
149
|
+
background-color: var(--popmelt-thread-scrollbar-hover);
|
|
150
|
+
}
|
|
151
|
+
`,nS={background:"var(--popmelt-thread-raised)",border:"1px solid var(--popmelt-thread-border)",borderRadius:16,display:"flex",flexDirection:"column",overflow:"hidden"},Ji={color:"var(--popmelt-thread-primary)",fontSize:14,letterSpacing:"0.14px",lineHeight:1.3,wordBreak:"break-word"},mh=16,rS={...Ji,background:"var(--popmelt-thread-control)",borderRadius:mh,boxSizing:"border-box",color:"var(--popmelt-thread-muted-strong)",maxWidth:"100%",padding:12,width:"fit-content"};function Ra(e){return Cd(e)}function oS({patterns:e}){let[t,n]=$(!1);return M("div",{style:{marginTop:2},children:[M("button",{type:"button","aria-expanded":t,onClick:()=>n(r=>!r),style:{alignItems:"center",background:"transparent",border:0,color:"var(--popmelt-thread-secondary)",cursor:"pointer",display:"inline-flex",fontFamily:dn,fontSize:12,gap:2,lineHeight:1,padding:0,textAlign:"left"},children:[M("span",{children:["Model details \xB7 ",e.length]}),h(Pi,{"aria-hidden":"true",color:"var(--popmelt-thread-muted)",size:14,strokeWidth:1.5,style:{transform:t?"rotate(180deg)":"none",transition:"transform 120ms ease"}})]}),t&&h("div",{style:{display:"flex",flexDirection:"column",gap:4,marginTop:8},children:e.map((r,o)=>M("div",{style:{background:"var(--popmelt-thread-soft)",border:"1px solid var(--popmelt-thread-border)",borderRadius:24,display:"flex",flexDirection:"column",gap:12,padding:16},children:[M("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[M("div",{style:{alignItems:"center",display:"flex",gap:8},children:[h(ol,{"aria-hidden":"true",color:"#e51a1a",size:16,strokeWidth:1.5,style:{flexShrink:0}}),h("strong",{style:{color:"var(--popmelt-thread-primary)",fontSize:14,fontWeight:500,letterSpacing:"0.14px",lineHeight:1.3},children:r.element})]}),h("div",{style:{padding:"0 7px"},children:h("div",{style:{alignItems:"center",borderLeft:"1px solid var(--popmelt-thread-border)",color:"var(--popmelt-thread-muted-strong)",display:"flex",fontSize:14,letterSpacing:"0.14px",lineHeight:1.3,padding:"6px 16px 8px"},children:r.decision})})]}),h("div",{style:{color:"var(--popmelt-thread-muted)",fontSize:12,letterSpacing:"0.12px",lineHeight:1.3},children:r.reason})]},`${r.category}:${r.element}:${o}`))})]})}function iS({memoryReview:e}){let[t,n]=$(!1),r=(e.acceptedTruth?.decisions.length??0)+e.packets.length;return M("div",{children:[M("button",{type:"button","aria-expanded":t,onClick:()=>n(o=>!o),style:{alignItems:"center",background:"transparent",border:0,color:"var(--popmelt-thread-muted-strong)",cursor:"pointer",display:"inline-flex",fontFamily:dn,fontSize:12,gap:4,padding:0,textAlign:"left"},children:[M("span",{children:["Decision history \xB7 ",r]}),h(Ms,{"aria-hidden":"true",size:12,strokeWidth:1.5,style:{transform:t?"rotate(90deg)":"none",transition:"transform 120ms ease"}})]}),t&&M("div",{style:{borderLeft:"2px solid var(--popmelt-thread-border)",color:"var(--popmelt-thread-secondary)",display:"flex",flexDirection:"column",fontSize:12,gap:10,lineHeight:1.45,marginTop:8,padding:"2px 0 2px 12px"},children:[e.acceptedTruth?.decisions.map(o=>M("div",{children:[h("div",{children:o.claim}),M("div",{style:{color:o.effectiveState==="conflicted"?"#b45309":"var(--popmelt-thread-muted)",fontSize:11,marginTop:2},children:[o.kind," \xB7 ",o.effectiveState," \xB7"," ",o.implementation," \xB7 ",o.verification,o.freshness.length?` \xB7 review: ${o.freshness.join(", ")}`:""]})]},o.id)),e.acceptedTruth?.conflicts.map(o=>M("div",{style:{color:"#92400e"},children:["Conflict: ",o.unresolvedQuestion]},o.id)),e.packets.map(o=>M("div",{children:[h("div",{children:o.claim}),M("div",{style:{color:"var(--popmelt-thread-muted)",fontSize:11,marginTop:2},children:[o.presentation==="surface_before_action"?"Confirm before applying":"Advisory",o.evidenceCount>0?` \xB7 ${o.evidenceCount} evidence reference${o.evidenceCount===1?"":"s"}`:""]})]},o.packetId)),(e.truncated||e.acceptedTruth?.truncated)&&h("div",{style:{color:"var(--popmelt-thread-muted)",fontSize:11},children:"More relevant history is available."})]})]})}function $a(e){let t=new Date(e),n=new Intl.DateTimeFormat(void 0,{hour:"numeric",minute:"2-digit",hour12:!0}).formatToParts(t),r=n.find(u=>u.type==="hour")?.value??"",o=String(Number.parseInt(r,10)||0),i=n.find(u=>u.type==="minute")?.value??"00",a=(n.find(u=>u.type==="dayPeriod")?.value??"").toUpperCase(),l=`${o}:${i}${a}`,s=`${o}:${i}${a?` ${a}`:""}`,d=new Date;if(t.getFullYear()===d.getFullYear()&&t.getMonth()===d.getMonth()&&t.getDate()===d.getDate())return l;let c=Date.UTC(t.getFullYear(),t.getMonth(),t.getDate()),p=Date.UTC(d.getFullYear(),d.getMonth(),d.getDate());return Math.floor((p-c)/864e5)>=7?`${new Intl.DateTimeFormat(void 0,{month:"numeric",day:"numeric",year:"2-digit"}).format(t)}, ${s}`:`${new Intl.DateTimeFormat(void 0,{weekday:"long"}).format(t)}, ${l}`}var aS=250;function lS({color:e}){let[t,n]=$(0);return _(()=>{let r=setInterval(()=>n(o=>(o+1)%2),aS);return()=>clearInterval(r)},[]),M("span",{style:{display:"inline-flex",alignItems:"center",gap:4},children:[h("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:e,style:{verticalAlign:"middle",flexShrink:0,opacity:.6},children:t===1?M(at,{children:[h("circle",{cx:"7",cy:"7",r:"2"}),h("circle",{cx:"17",cy:"7",r:"2"}),h("circle",{cx:"7",cy:"17",r:"2"}),h("circle",{cx:"17",cy:"17",r:"2"})]}):M(at,{children:[h("circle",{cx:"12",cy:"6",r:"2"}),h("circle",{cx:"6",cy:"12",r:"2"}),h("circle",{cx:"18",cy:"12",r:"2"}),h("circle",{cx:"12",cy:"18",r:"2"})]})}),h("span",{style:{fontSize:14,color:"var(--popmelt-thread-muted-strong)"},children:"Thinking"})]})}var gh=32,$d=80,sS=mh/2,dS={width:gh,height:gh,objectFit:"cover",cursor:"pointer",border:"1px solid var(--popmelt-thread-hairline)"},ni={...dS,borderRadius:sS,height:$d,width:$d};function cS(e){let t=/^`(\/[^`]*)`$/gm,n=[...e.matchAll(t)];if(n.length===0)return null;let r=[];for(let o=0;o<n.length;o++){let i=n[o],a=i[1],l=i.index+i[0].length,s=o+1<n.length?n[o+1].index:e.length,d=e.slice(l,s).trim();r.push({route:a,text:d})}return r}function uS(e,t){let n=[];if(e.replyImageUrls)for(let r of e.replyImageUrls){let o=r.startsWith("blob:")||r.startsWith("http")?r:`${t}${r}`;n.push({url:o,label:"pasted image"})}return n}function ri(e,t){return/^(?:blob:|data:|https?:\/\/)/.test(t)?t:`${e}${t}`}function pS(e,t){let n=[];if(e.imageUrls)for(let[,r]of Object.entries(e.imageUrls))for(let o of r)n.push({url:ri(t,o),label:"pasted image"});return n}function hS({src:e,onClose:t}){return _(()=>{let n=r=>{r.key==="Escape"&&(r.stopPropagation(),t())};return document.addEventListener("keydown",n),()=>document.removeEventListener("keydown",n)},[t]),h("div",{onClick:t,style:{position:"fixed",inset:0,zIndex:1e5,backgroundColor:"rgba(0,0,0,0.8)",display:"flex",alignItems:"center",justifyContent:"center",cursor:"zoom-out"},children:h(Eo,{src:e,alt:"Attached image preview",onClick:n=>n.stopPropagation(),style:{maxWidth:"90vw",maxHeight:"90vh",objectFit:"contain",cursor:"default",boxShadow:"0 4px 24px rgba(0,0,0,0.4)"}})})}function fS(e){let t=String(e.data.tool||""),n=e.data.file?String(e.data.file):null,r=n?n.split("/").pop()??n:null,o=e.data.content?String(e.data.content):null;switch(t){case"Read":return r?`Reading ${r}`:"Reading file";case"Edit":return r?`Editing ${r}`:"Editing file";case"Write":return r?`Writing ${r}`:"Writing file";case"Bash":return o?mS(o):"Running command";case"Glob":return"Searching files";case"Grep":return"Searching code";case"WebFetch":return"Fetching page";case"WebSearch":return"Searching web";default:return o??(t?`Using ${t}`:null)}}function mS(e){let t=e.split(`
|
|
152
|
+
`)[0].trim();return t.length<=60?t:t.slice(0,57)+"\u2026"}var gS={focus_set:"Focused",focus_shifted:"Focus shifted",evidence_updated:"Evidence updated",hypothesis_changed:"Working approach changed",assumption_abandoned:"Assumption dropped",uncertainty_identified:"Uncertainty identified",next_observation_selected:"Checking next"};function yh({orientation:e}){let t=e.snapshot.update??e.snapshot.seeking??e.snapshot.nextObservation;return M("div",{style:{borderLeft:"2px solid var(--popmelt-thread-hairline)",color:"var(--popmelt-thread-secondary)",display:"flex",flexDirection:"column",fontSize:12,gap:2,lineHeight:1.35,paddingLeft:10},children:[M("span",{children:[h("span",{style:{color:"var(--popmelt-thread-primary)",fontWeight:550},children:gS[e.transition]})," \xB7 ",e.snapshot.focus]}),t&&t!==e.snapshot.focus&&h("span",{style:{opacity:.72},children:t})]})}function yS(e){let t=[];for(let n of e){if(n.type==="approval"){let r=n.data.approval,o=t.find(i=>i.kind==="approval"&&i.approval.id===r.id);o?.kind==="approval"?o.approval=r:t.push({kind:"approval",approval:r});continue}if(n.type==="tool_use"){let r=fS(n),o=String(n.data.tool||""),i=n.data.file?String(n.data.file):null,a=n.data.content?String(n.data.content):null,l=i??a??void 0;if(r){let s=t[t.length-1];s&&s.kind==="tool_group"&&s.tool===o?s.items.push({label:r,detail:l,...i?{filePath:i}:{}}):t.push({kind:"tool_group",tool:o,items:[{label:r,detail:l,...i?{filePath:i}:{}}]})}if(a&&i){let s=i.includes(".")?`.${i.split(".").pop().toLowerCase()}`:"",d=i.includes(".claude/plans/");t.push({kind:"file_content",file:i,content:a,ext:s,isPlan:d})}}else if(n.type==="delta"){let r=String(n.data.text||"");if(!r)continue;let o=t[t.length-1];o&&o.kind==="text"?o.text+=r:t.push({kind:"text",text:r})}else if(n.type==="thinking"){let r=String(n.data.text||"");if(!r)continue;let o=t[t.length-1];o&&o.kind==="thinking"?o.text+=r:t.push({kind:"thinking",text:r})}else if(n.type==="status"){let r=String(n.data.text||"").trim();if(!r)continue;let o=t.findIndex(i=>i.kind==="status");o>=0&&t.splice(o,1),t.push({kind:"status",text:r})}else if(n.type==="orientation"){let r=n.data.orientation;r?.snapshot?.focus&&t.push({kind:"orientation",orientation:r})}}return t}function vS({file:e,content:t,ext:n,isPlan:r,onAccept:o}){let[i,a]=$(r),l=e.split("/").pop()??e;return M("div",{style:{margin:"4px 0 4px 12px",border:"1px solid var(--popmelt-thread-hairline)",backgroundColor:"var(--popmelt-thread-raised)",fontSize:11},children:[M("div",{onClick:()=>a(s=>!s),style:{display:"flex",alignItems:"center",gap:6,padding:"4px 8px",cursor:"pointer",userSelect:"none",fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace",color:"var(--popmelt-thread-primary)"},children:[h("span",{style:{fontSize:9,color:"var(--popmelt-thread-muted)"},children:i?"\u25BC":"\u25B6"}),h("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:l}),r&&h("span",{style:{fontSize:9,color:"#6366f1",fontFamily:"inherit"},children:"plan"})]}),i&&M(at,{children:[h("div",{style:{maxHeight:300,overflowY:"auto",padding:"6px 10px",borderTop:"1px solid var(--popmelt-thread-soft-hairline)",lineHeight:1.5,wordBreak:"break-word"},children:n===".md"?Tr(t):h("pre",{style:{margin:0,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace",fontSize:11,whiteSpace:"pre-wrap"},children:t})}),r&&o&&h("div",{style:{padding:"4px 8px",borderTop:"1px solid var(--popmelt-thread-soft-hairline)",display:"flex",justifyContent:"flex-end"},children:h("button",{onClick:s=>{s.stopPropagation(),o()},style:{background:"#111",color:"#fff",border:"none",padding:"4px 12px",fontSize:11,cursor:"pointer",fontFamily:"inherit"},children:"Accept"})})]})]})}function bS(e){return/\b(?:bash|command|terminal)\b/i.test(e)?"Bash":/\b(?:edit|edited|editing)\b/i.test(e)?"Edit":/\b(?:write|wrote|writing)\b/i.test(e)?"Write":/\b(?:read|reading)\b/i.test(e)?"Read":/\b(?:grep|search(?:ed|ing)?)\b/i.test(e)?"Grep":"Tool"}function vh(e){let t=new Map;for(let n of e){let r=t.get(n.tool);r?r.items.push(...n.items):t.set(n.tool,{...n,items:[...n.items]})}return[...t.values()]}function zl(e){let t=e.filePath??e.detail;return t&&(t.startsWith("/")||/^[A-Za-z]:[\\/]/.test(t))?t:void 0}function xS(e,t){return(e==="Read"||e==="Edit"||e==="Write")&&t.some(n=>zl(n))?t.filter(n=>zl(n)).filter((n,r,o)=>o.findIndex(i=>zl(i)===zl(n))===r):t}function bh(e){return Ww(e.map(t=>({...t,items:xS(t.tool,t.items)})))}function Dl(e,t){if(!t||typeof window>"u")return;let n=e.closest('[data-devtools="thread-panel"]');if(!n)return;let r=n.getBoundingClientRect(),o=e.getBoundingClientRect(),i=n.querySelector("[data-popmelt-thread-header]"),a=t.querySelector("[data-popmelt-tool-receipt-scroll]");if(t.style.left=`${r.left+8-o.left}px`,t.style.width=`${Math.max(0,r.width-16)}px`,i){let l=i.getBoundingClientRect(),s=Math.max(0,Math.floor(o.top-l.bottom-16));t.style.setProperty("--popmelt-tool-receipt-max-height",`${s}px`)}else t.style.removeProperty("--popmelt-tool-receipt-max-height");t.dataset.ready="true",requestAnimationFrame(()=>{a&&Pa(a)})}function Pa(e){let t=e.closest("[data-popmelt-tool-receipt-tooltip]");if(!t)return;let n=e.scrollTop>1,r=e.scrollTop+e.clientHeight<e.scrollHeight-1;t.toggleAttribute("data-overflow-top",n),t.toggleAttribute("data-overflow-bottom",r)}function xh({receipt:e,animateCount:t=!1}){let n=e.kind==="terminal"?lu:e.kind==="pencil"?su:yg,r=e.kind==="terminal"?"Terminal used":e.kind==="pencil"?"Files changed":e.groups.length===1?`${e.groups[0].tool} used`:"Tools used",o=e.groups.map(d=>`${d.tool} (${d.items.length})`).join(", "),i=J(null),a=J(null),l=J(null),s=J(0);return _(()=>{let d=s.current;if(d===e.count)return;s.current=e.count;let c=i.current,p=a.current;if(!c)return;let u=typeof window<"u"&&window.matchMedia?.("(prefers-reduced-motion: reduce)").matches;c.getAnimations().forEach(f=>f.cancel()),p?.getAnimations().forEach(f=>f.cancel()),!(u||!Bw(t,d,e.count))&&(c.animate([{color:"var(--popmelt-thread-muted)"},{color:"var(--popmelt-thread-primary)",offset:.18},{color:"var(--popmelt-thread-primary)",offset:.52},{color:"var(--popmelt-thread-muted)"}],{duration:720,easing:"ease-out"}),p&&p.animate([{opacity:0,transform:"translate(-50%, 4px) scale(0.72)"},{opacity:1,transform:"translate(-50%, 0) scale(1.08)",offset:.14},{opacity:1,transform:"translate(-50%, 0) scale(1)",offset:.24},{opacity:1,transform:"translate(-50%, 0) scale(1)",offset:.72},{opacity:0,transform:"translate(-50%, -7px) scale(0.94)"}],{duration:1050,easing:"ease-out",fill:"both"}))},[t,e.count]),_(()=>{let d=l.current;if(!d)return;let c=requestAnimationFrame(()=>{let p=d.querySelector("[data-popmelt-tool-receipt-scroll]");p&&Pa(p)});return()=>cancelAnimationFrame(c)},[e]),M("span",{"data-popmelt-tool-receipt-trigger":!0,onMouseEnter:d=>Dl(d.currentTarget,l.current),onFocusCapture:d=>Dl(d.currentTarget,l.current),style:{display:"inline-flex",flexShrink:0,position:"relative"},children:[M("button",{ref:i,type:"button","aria-label":`Inspect tool activity: ${o}`,style:{alignItems:"center",background:"transparent",border:0,color:"var(--popmelt-thread-muted)",cursor:"pointer",display:"inline-flex",flexShrink:0,height:18,justifyContent:"center",padding:0,position:"relative",transition:"color 100ms ease",width:18},children:[h(n,{"aria-hidden":"true",color:"currentColor","data-popmelt-tool-receipt-icon":!0,size:14,strokeWidth:1.5}),e.count>1&&M("span",{ref:a,"data-popmelt-tool-count":!0,style:{alignItems:"center",background:"var(--popmelt-thread-action)",borderRadius:9,color:"var(--popmelt-thread-on-action)",display:"flex",fontFamily:dn,fontSize:12,fontWeight:500,height:18,justifyContent:"center",letterSpacing:"-0.1px",minWidth:18,padding:"0 5px",pointerEvents:"none",position:"absolute",bottom:"calc(100% + 3px)",left:"50%",opacity:0,transform:"translate(-50%, -7px) scale(0.94)"},children:[e.count,"x"]})]}),M("span",{ref:l,role:"tooltip","data-popmelt-tool-receipt-tooltip":!0,style:{background:"var(--popmelt-thread-raised)",borderRadius:16,bottom:"100%",boxSizing:"border-box",color:"var(--popmelt-thread-primary)",left:0,overflow:"hidden",pointerEvents:"auto",position:"absolute",width:0,zIndex:20},children:[M("span",{"data-popmelt-tool-receipt-scroll":!0,onScroll:d=>Pa(d.currentTarget),style:{display:"flex",flexDirection:"column",gap:8,maxHeight:"var(--popmelt-tool-receipt-max-height, 190px)",overflowY:"auto",padding:"14px 15px"},children:[M("span",{style:{alignItems:"center",display:"flex",fontSize:11,fontWeight:500,gap:6,lineHeight:1.3,opacity:.65},children:[h(n,{"aria-hidden":"true",color:"currentColor",size:14,strokeWidth:1.5,style:{flexShrink:0}}),h("span",{children:r})]}),e.groups.map(d=>M("span",{style:{display:"flex",flexDirection:"column",gap:7,padding:"6px 0"},children:[M("span",{style:{fontSize:11,fontWeight:500,lineHeight:1.3,opacity:.65},children:[d.tool," \xB7 ",d.items.length]}),d.items.map((c,p)=>h("span",{style:{fontSize:14,fontWeight:400,lineHeight:1.3,whiteSpace:"normal"},children:c.label},`${c.label}-${p}`))]},d.tool))]}),h("span",{"data-popmelt-tool-receipt-scrim":"top","aria-hidden":"true"}),h("span",{"data-popmelt-tool-receipt-scrim":"bottom","aria-hidden":"true"})]})]})}function wh(e){let t=new Map;for(let n of e)t.has(n.id)||t.set(n.id,n);return[...t.values()]}function wS(e){let t=wh(e.flatMap(n=>n.type!=="imprint_used"?[]:n.data.usage?.explanations??[]));return t.length>0?{updated:!1,explanations:t}:void 0}function SS(e,t){let n=new Map(t.flatMap(s=>s.imprintContext?[[s.jobId,s.imprintContext]]:[])),r=[],o,i,a=!1;for(let s of e){let d=s.imprintSummary;if(d){a=!0,o=d.title,i=d.detail;for(let u of d.changes)r.push({id:u.explanationId,statement:u.statement,state:u.state})}let c=n.get(s.jobId),p=new Set([...s.imprintUsedExplanationIds??[],...s.imprintAppliedExplanationIds??[],...s.imprintRecognition?[s.imprintRecognition.explanationId]:[]]);for(let u of p){let f=c?.explanations.find(m=>m.id===u);f?r.push(f):s.imprintRecognition?.explanationId===u&&r.push({id:u,kind:"pattern",statement:s.imprintRecognition.statement,state:"grounded",scope:{kind:"project",values:[]}})}}let l=wh(r);if(!(!a&&l.length===0))return{updated:a,title:o,detail:i,explanations:l}}function IS(e){return e==="testing"||e==="emerging"?"Emerging":e.charAt(0).toUpperCase()+e.slice(1)}function Sh(e){return e?e.charAt(0).toUpperCase()+e.slice(1):void 0}function Ih({receipt:e,accentColor:t}){let n=e.updated?"Imprint updated":"Imprint used",r=J(null);return _(()=>{let o=r.current;if(!o)return;let i=requestAnimationFrame(()=>{let a=o.querySelector("[data-popmelt-tool-receipt-scroll]");a&&Pa(a)});return()=>cancelAnimationFrame(i)},[e]),M("span",{"data-popmelt-tool-receipt-trigger":!0,onMouseEnter:o=>Dl(o.currentTarget,r.current),onFocusCapture:o=>Dl(o.currentTarget,r.current),style:{display:"inline-flex",flexShrink:0,position:"relative"},children:[h("button",{type:"button","aria-label":`Inspect ${n.toLowerCase()}`,style:{alignItems:"center",background:"transparent",border:0,color:e.updated?t:"var(--popmelt-thread-muted)",cursor:"pointer",display:"inline-flex",flexShrink:0,height:18,justifyContent:"center",padding:0,transition:"color 100ms ease",width:18},children:h(Zr,{"aria-hidden":"true",color:"currentColor",size:14,strokeWidth:1.5})}),M("span",{ref:r,role:"tooltip","data-popmelt-tool-receipt-tooltip":!0,style:{background:"var(--popmelt-thread-raised)",borderRadius:16,bottom:"100%",boxSizing:"border-box",color:"var(--popmelt-thread-primary)",left:0,overflow:"hidden",pointerEvents:"auto",position:"absolute",width:0,zIndex:20},children:[M("span",{"data-popmelt-tool-receipt-scroll":!0,onScroll:o=>Pa(o.currentTarget),style:{display:"flex",flexDirection:"column",gap:8,maxHeight:"var(--popmelt-tool-receipt-max-height, 190px)",overflowY:"auto",padding:"14px 15px"},children:[M("span",{style:{alignItems:"center",display:"flex",fontSize:11,fontWeight:500,gap:6,lineHeight:1.3,opacity:.65},children:[h(Zr,{"aria-hidden":"true",color:e.updated?t:"currentColor",size:14,strokeWidth:1.5,style:{flexShrink:0}}),h("span",{children:n})]}),e.title&&h("span",{style:{fontSize:14,fontWeight:500,lineHeight:1.3},children:e.title}),e.detail&&h("span",{style:{fontSize:12,fontWeight:400,lineHeight:1.45,opacity:.72},children:e.detail}),e.explanations.map(o=>M("span",{style:{display:"flex",flexDirection:"column",gap:7,padding:"6px 0"},children:[M("span",{style:{alignItems:"center",display:"flex",fontSize:11,fontWeight:500,gap:4,lineHeight:1.3,opacity:.65},children:[h("span",{children:IS(o.state)}),Sh(o.kind)&&h("span",{style:{opacity:.72},children:Sh(o.kind)})]}),h("span",{style:{fontSize:14,fontWeight:400,lineHeight:1.3,whiteSpace:"normal"},children:o.statement}),o.scope?.values.length?h("span",{style:{fontSize:11,fontWeight:400,lineHeight:1.3,opacity:.5},children:o.scope.values.join(" \xB7 ")}):null]},o.id))]}),h("span",{"data-popmelt-tool-receipt-scrim":"top","aria-hidden":"true"}),h("span",{"data-popmelt-tool-receipt-scrim":"bottom","aria-hidden":"true"})]})]})}function kS({summary:e,accentColor:t,busy:n,onAction:r}){let o=!!e.resolvedAction,[i,a]=$(!!(e.grounding&&!o)),l={...Id,cursor:n?"default":"pointer",fontFamily:dn};return M("div",{style:oh,children:[M("button",{type:"button","aria-expanded":i,onClick:()=>a(s=>!s),style:{alignItems:"center",background:"transparent",border:0,color:"var(--popmelt-thread-primary)",cursor:"pointer",display:"flex",fontFamily:dn,fontSize:14,fontWeight:650,gap:8,padding:0,textAlign:"left",width:"100%"},children:[h(Zr,{"aria-hidden":"true",color:t,size:16,strokeWidth:2}),M("span",{style:{flex:1},children:["Imprint ",e.kind,": ",e.title]}),h(Pi,{"aria-hidden":"true",size:14,strokeWidth:1.5,style:{transform:i?"rotate(180deg)":"none",transition:"transform 120ms ease"}})]}),i&&M(at,{children:[M("div",{style:{borderLeft:"1px solid var(--popmelt-thread-border)",color:"var(--popmelt-thread-secondary)",fontSize:13,lineHeight:1.35,padding:"4px 12px"},children:[e.detail,e.additionalObservationCount?M("div",{style:{color:"var(--popmelt-thread-muted)",fontSize:11,marginTop:4},children:["Updated with ",e.additionalObservationCount," additional"," ",e.additionalObservationCount===1?"observation":"observations","."]}):null]}),e.changes.map(s=>M("div",{style:{color:"var(--popmelt-thread-secondary)",fontSize:12,lineHeight:1.35},children:[h("div",{children:s.statement}),M("div",{style:{color:"var(--popmelt-thread-muted)",fontSize:10,marginTop:2},children:[s.action," \xB7 ",s.state]})]},`${s.explanationId}:${s.action}`)),e.grounding&&!o&&h("div",{style:{color:"var(--popmelt-thread-primary)",fontSize:13,lineHeight:1.35,marginTop:2},children:e.grounding.question}),o?M("div",{style:{alignItems:"center",color:"var(--popmelt-thread-muted-strong)",display:"flex",fontSize:11,gap:6},children:[h(vo,{"aria-hidden":"true",color:t,size:12,strokeWidth:2}),e.resolvedAction==="no"?"Correction requested":`Feedback applied: ${e.resolvedAction==="yes"?"Yes":"This time"}`]}):e.grounding?M("div",{style:{display:"flex",flexWrap:"wrap",gap:6},children:[h("button",{disabled:n,onClick:()=>r("yes"),style:l,children:"Yes"}),h("button",{disabled:n,onClick:()=>r("this_time"),style:l,children:"This time"}),h("button",{disabled:n,onClick:()=>r("no"),style:l,children:"No"})]}):null]})]})}function ES({receipt:e,accentColor:t}){let[n,r]=$(!0);return M("div",{style:{background:"var(--popmelt-thread-soft)",border:"1px solid var(--popmelt-thread-border)",borderRadius:24,display:"flex",flexDirection:"column",gap:10,padding:16},children:[M("button",{type:"button","aria-expanded":n,onClick:()=>r(o=>!o),style:{alignItems:"center",background:"transparent",border:0,color:"var(--popmelt-thread-primary)",cursor:"pointer",display:"flex",fontFamily:dn,fontSize:14,fontWeight:650,gap:8,padding:0,textAlign:"left",width:"100%"},children:[h(Zr,{"aria-hidden":"true",color:t,size:16,strokeWidth:2}),M("span",{style:{flex:1},children:["Existing Imprint reapplied: ",e.title]}),h(Pi,{"aria-hidden":"true",size:14,strokeWidth:1.5,style:{transform:n?"rotate(180deg)":"none",transition:"transform 120ms ease"}})]}),n&&M(at,{children:[h("div",{style:{borderLeft:"1px solid var(--popmelt-thread-border)",color:"var(--popmelt-thread-secondary)",fontSize:13,lineHeight:1.35,padding:"4px 12px"},children:e.detail}),M("div",{style:{color:"var(--popmelt-thread-secondary)",fontSize:12,lineHeight:1.35},children:[h("div",{children:e.statement}),h("div",{style:{color:"var(--popmelt-thread-muted)",fontSize:10,marginTop:2},children:"recognized \xB7 grounded"})]}),M("div",{style:{alignItems:"center",color:"var(--popmelt-thread-muted-strong)",display:"flex",fontSize:11,gap:6},children:[h(vo,{"aria-hidden":"true",color:t,size:12,strokeWidth:2}),"Shared understanding unchanged"]})]})]})}function TS({card:e,accentColor:t,busy:n,resolved:r,superseded:o,onAction:i}){let[a,l]=$(!1),[s,d]=$(e.claim),[c,p]=$(!1),[u,f]=$(!1),[m,g]=$(!1),[y,w]=$(null),k=J(null);_(()=>{l(!1),d(e.claim),p(!1),f(!1),g(!1),w(null)},[e.claim,e.proposalId]),_(()=>{if(!a)return;let Q=k.current;Q&&(Q.focus(),Q.select(),Q.style.height="auto",Q.style.height=`${Q.scrollHeight}px`)},[a]);let D=U(()=>{let Q=s.trim();d(Q||e.claim),l(!1),p(!1)},[e.claim,s]),I=U(()=>{d(e.claim),l(!1),p(!1)},[e.claim]),O=s.trim()!==e.claim.trim(),R=r||o,F=e.title;return r?M("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[M("button",{type:"button","aria-expanded":m,onClick:()=>g(Q=>!Q),style:{alignItems:"center",alignSelf:"flex-start",background:"transparent",border:0,color:"var(--popmelt-thread-muted-strong)",cursor:"pointer",display:"inline-flex",fontFamily:dn,fontSize:14,fontWeight:400,gap:6,letterSpacing:"0.14px",lineHeight:1.35,padding:0,textAlign:"left"},children:[h(Zr,{"aria-hidden":"true",color:t,size:14,strokeWidth:1.5}),M("span",{style:{alignItems:"center",display:"inline-flex",gap:2},children:[h("span",{children:F}),h(Pi,{"aria-hidden":"true",size:12,strokeWidth:1.5,style:{transform:m?"rotate(180deg)":"rotate(0deg)",transition:"transform 120ms ease"}})]})]}),m&&M(at,{children:[h("div",{style:{borderLeft:"1px solid var(--popmelt-thread-border)",color:"var(--popmelt-thread-muted-strong)",fontSize:14,fontStyle:"italic",letterSpacing:"0.14px",lineHeight:1.3,marginLeft:7,padding:"6px 16px 8px"},children:s}),h("div",{style:{borderLeft:"1px solid var(--popmelt-thread-border)",color:"var(--popmelt-thread-muted-strong)",fontSize:14,fontStyle:"italic",letterSpacing:"0.14px",lineHeight:1.3,marginLeft:7,padding:"6px 16px 8px"},children:e.rationale}),e.scope?M("div",{style:{color:"var(--popmelt-thread-muted-strong)",fontSize:14,letterSpacing:"0.14px",lineHeight:1.35},children:["Scope: ",e.scope]}):null]})]}):M("div",{style:{border:"1px solid var(--popmelt-thread-border)",background:"var(--popmelt-thread-soft)",borderRadius:24,padding:16,display:"flex",flexDirection:"column",gap:12},children:[M("div",{style:{alignItems:"center",color:"var(--popmelt-thread-primary)",display:"flex",fontSize:14,fontWeight:600,gap:8,letterSpacing:"0.14px",lineHeight:1.3},children:[h(Zr,{"aria-hidden":"true",color:t,size:16,strokeWidth:2}),h("span",{children:F})]}),a&&!R?h("textarea",{ref:k,value:s,disabled:n,onChange:Q=>{d(Q.target.value),Q.currentTarget.style.height="auto",Q.currentTarget.style.height=`${Q.currentTarget.scrollHeight}px`},onBlur:D,onKeyDown:Q=>{Q.key==="Enter"&&!Q.shiftKey?(Q.preventDefault(),D()):Q.key==="Escape"&&(Q.preventDefault(),Q.stopPropagation(),I())},rows:1,style:{resize:"none",overflow:"hidden",outline:"none",boxSizing:"border-box",border:0,borderLeft:"1px solid var(--popmelt-thread-border)",background:"var(--popmelt-thread-soft-hairline)",color:"var(--popmelt-thread-muted-strong)",cursor:"text",fontFamily:dn,fontSize:14,fontStyle:"italic",letterSpacing:"0.14px",lineHeight:1.3,margin:"0 7px",padding:"6px 16px 8px",width:"calc(100% - 14px)"}}):h("button",{type:"button",disabled:R||n,onClick:()=>l(!0),onMouseEnter:()=>p(!0),onMouseLeave:()=>p(!1),onFocus:()=>p(!0),onBlur:()=>p(!1),style:{border:0,borderLeft:"1px solid var(--popmelt-thread-border)",background:c&&!R?"var(--popmelt-thread-soft-hairline)":"transparent",color:"var(--popmelt-thread-muted-strong)",cursor:R?"default":"text",fontFamily:dn,fontSize:14,fontStyle:"italic",letterSpacing:"0.14px",lineHeight:1.3,margin:"0 7px",padding:"6px 16px 8px",textAlign:"left",width:"calc(100% - 14px)"},children:s}),M("div",{style:{color:"var(--popmelt-thread-primary)",fontSize:14},children:[M("button",{type:"button","aria-expanded":u,onClick:()=>f(Q=>!Q),style:{alignItems:"center",border:0,background:"transparent",color:"var(--popmelt-thread-primary)",cursor:"pointer",display:"inline-flex",gap:2,fontFamily:dn,fontSize:14,fontWeight:400,letterSpacing:"0.14px",lineHeight:1.3,margin:0,opacity:u?1:.35,padding:0},children:[h("span",{children:"Why?"}),u?h(Pi,{"aria-hidden":"true",size:10,strokeWidth:2.5}):h(Ms,{"aria-hidden":"true",size:10,strokeWidth:2.5})]}),u?M(at,{children:[h("div",{style:{borderLeft:"1px solid var(--popmelt-thread-border)",color:"var(--popmelt-thread-muted-strong)",fontSize:14,fontStyle:"italic",letterSpacing:"0.14px",lineHeight:1.3,margin:"8px 7px 0",padding:"6px 16px 8px"},children:e.rationale}),e.scope?M("div",{style:{color:"var(--popmelt-thread-muted-strong)",fontSize:14,letterSpacing:"0.14px",lineHeight:1.35,marginTop:8},children:["Scope: ",e.scope]}):null]}):null]}),o?h("div",{style:{color:"var(--popmelt-thread-secondary)",fontSize:12,fontWeight:700},children:"Refined in a later review card"}):M("div",{style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr) minmax(0, 1fr)",gap:6,alignItems:"stretch"},children:[M("button",{type:"button",disabled:n,onClick:()=>i("reject"),onMouseEnter:()=>{n||w("reject")},onMouseLeave:()=>w(null),style:{...Ld,alignItems:"center",background:"var(--popmelt-thread-control)",border:0,borderRadius:16,color:"var(--popmelt-thread-primary)",display:"flex",justifyContent:"space-between",padding:"8px 12px",width:"100%",fontSize:12,transition:"background-color 120ms ease"},children:[h("span",{children:"Reject"}),h(il,{"aria-hidden":"true",color:"#dd4141",size:12,strokeWidth:2.5})]}),M("button",{type:"button",disabled:n||!s.trim(),onClick:()=>i(O?"edit_and_accept":"accept",O?s.trim():void 0),onMouseEnter:()=>{!n&&s.trim()&&w("accept")},onMouseLeave:()=>w(null),style:{...Pd,alignItems:"center",background:y==="accept"?"var(--popmelt-thread-action-hover)":"var(--popmelt-thread-action)",borderColor:y==="accept"?"var(--popmelt-thread-action-hover)":"var(--popmelt-thread-action)",borderRadius:24,color:"var(--popmelt-thread-on-action)",display:"flex",justifyContent:"space-between",padding:"8px 12px",width:"100%",fontSize:12,opacity:n||!s.trim()?.45:1,transition:"background-color 120ms ease, border-color 120ms ease"},children:[h("span",{children:O?"Adopt edited":"Adopt"}),h(vo,{"aria-hidden":"true",color:"#61c920",size:12,strokeWidth:3})]})]})]})}function CS({stepCount:e}){return M("div",{"data-thread-interaction-episode-receipt":!0,style:{...Ji,alignItems:"center",alignSelf:"flex-end",color:"var(--popmelt-thread-muted-strong)",display:"inline-flex",gap:6,paddingBlock:4},children:[h(vg,{"aria-hidden":!0,color:"currentColor",size:14,strokeWidth:1.5,style:{flexShrink:0}}),M("span",{children:[e," recorded ",e===1?"action":"actions"," sent"]})]})}function AS({frames:e,onLightbox:t}){return e.length===0?null:h("div",{"data-thread-interaction-episode-visuals":!0,style:{display:"flex",flexWrap:"wrap",gap:4,justifyContent:"flex-end",width:"100%"},children:e.map(n=>M("button",{type:"button","aria-label":`View ${n.label.toLowerCase()}`,title:n.label,onClick:()=>t(n.url),style:{background:"transparent",border:0,color:"var(--popmelt-thread-muted-strong)",cursor:"pointer",font:"inherit",padding:0,textAlign:"right"},children:[h(Eo,{src:n.url,alt:"",style:{...ni,display:"block"}}),h("span",{style:{display:"block",fontSize:10,marginTop:2,maxWidth:$d,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:n.label})]},n.id))})}var kh=dg(function({msg:e,index:t,bridgeUrl:n,accentColor:r,onLightbox:o,hideSender:i=!1,hideTimestamp:a=!1,hideModelSenderUntilHover:l=!1,compactSpacing:s=!1,workedFor:d="a moment",activityTimestamp:c,memoryReviewBusy:p=!1,memoryReviewResolved:u=!1,memoryReviewSuperseded:f=!1,foldedActivityMessages:m=[],underMessageActivity:g,onMemoryReviewAction:y,onImprintAction:w}){let k=e.role==="human",D=Ir(Ka),I=e.authorPeer?e.authorPeer.id===D?.participantId?"You":e.authorPeer.name==="You"?"Host":e.authorPeer.name:D&&!D.canManageThreads&&!e.jobId.startsWith("_pending_reply_")?"Host":"You",[O,R]=$(!1),F={...rS,...s?{borderBottomRightRadius:4}:{}},Q=k?e.replyToQuestion?uS(e,n):e.requestItems?.length?[]:pS(e,n):[];if(e.cancelled||e.error){let z=e.error?Kp(e.error,e.errorKind):null;return h("div",{"data-msg":!0,style:{padding:0},children:M("div",{style:{backgroundColor:"var(--popmelt-thread-soft)",border:"1px solid var(--popmelt-thread-border)",borderRadius:24,color:"var(--popmelt-thread-muted-strong)",fontSize:14,letterSpacing:"0.14px",lineHeight:1.35,padding:16},children:[h("span",{style:{color:z?"#f59e0b":"var(--popmelt-thread-muted-strong)"},children:z?.label??"Cancelled"}),z?` \u2014 ${z.message}`:""]})},`${e.jobId}-${t}`)}let N=e.requestText||e.feedbackSummary||"(annotation)",K=e.requestText?Vy(e.requestText):N,q=!!(k&&!e.replyToQuestion&&e.requestText&&e.requestText.trim()!==K.trim()),S=k?e.replyToQuestion||(O?N:K):Ra(e.responseText||""),ee=(z,Ne=F)=>M("div",{style:Ne,children:[z.includes(`
|
|
153
|
+
`)?Tr(z):z,q&&h("button",{type:"button","aria-expanded":O,onClick:()=>R($e=>!$e),style:{background:"transparent",border:0,color:"inherit",cursor:"pointer",display:"block",fontFamily:"inherit",fontSize:12,fontWeight:600,marginTop:8,opacity:.72,padding:0,textAlign:"left"},children:O?"Show less":"Read more"})]}),G=k?void 0:e.question,H=k?[]:(e.resolutions??[]).filter(z=>z.status!=="resolved"),j=H.length>0,P=!k&&e.segments&&e.segments.length>0,E=P?ch(e.segments):[],C=!!(!k&&P&&S&&!Lw(e.segments,e.responseText??"")),X=[...m,e],ce=k?[]:X.flatMap(z=>(z.segments??[]).filter(Ne=>Ne.kind==="tool_group")),ue=k?[]:X.flatMap(z=>z.segments?.length?[]:(z.toolsUsed??[]).map(Ne=>({kind:"tool_group",tool:bS(Ne),items:[{label:Ne}]}))),Y=vh([...ce,...ue]),he=bh(Y),W=!!(X.some(z=>z.memoryReceipt?.status==="committed")||g?.decisionRecorded),fe=g?.imprintReceipt,re=!!g?.modelUpdated,pe=he.length>0||W||re||!!fe,ye=k&&!!(e.memoryReview?.packets.length||e.memoryReview?.acceptedTruth?.decisions.length),Be=!k&&!!(e.memoryReceipt&&e.memoryReceipt.status!=="committed"),Ee=!k&&(!i||!a);return!S&&!G&&!j&&!P&&!ye&&!e.memoryReviewCard&&!e.imprintSummary&&!Be&&!pe?null:M("div",{"data-msg":!0,style:{alignSelf:k?"flex-end":"stretch",display:"flex",flexDirection:"column",gap:16,marginTop:s?-24:0,padding:0,position:"relative",maxWidth:k?280:void 0,width:k?"fit-content":"auto"},children:[Ee&&h("div",{"data-under-message-rail":l?"hover":"latest",style:{alignItems:"center",alignSelf:"stretch",display:"flex",gap:4,marginTop:l?0:16,order:2,...l?{left:0,paddingTop:7,position:"absolute",right:0,top:"100%",zIndex:1}:{},width:"100%"},children:k?M(at,{children:[!a&&h("span",{"data-message-timestamp":!0,style:{fontSize:12,fontWeight:400,color:"var(--popmelt-thread-muted)"},children:$a(e.timestamp)}),!i&&h("span",{style:{color:r,fontSize:12,fontWeight:500,marginLeft:"auto",opacity:.55},children:I})]}):M(at,{children:[h("div",{"data-worked-for-trigger":!0,style:{alignItems:"center",background:"transparent",border:0,color:"var(--popmelt-thread-muted)",cursor:"default",display:"flex",fontFamily:dn,fontSize:14,padding:0,textAlign:"left"},children:M("span",{style:{display:"grid"},children:[M("span",{"data-worked-for-label":!0,style:{gridArea:"1 / 1",textAlign:"left"},children:["Worked for ",d]}),!a&&h("span",{"data-worked-for-time":!0,style:{gridArea:"1 / 1",justifySelf:"start",opacity:0,textAlign:"left"},children:$a(c??e.timestamp)})]})}),h("div",{style:{alignItems:"center",display:"flex",marginLeft:"auto",minHeight:14},children:M("div",{"data-message-activity":!0,style:{alignItems:"center",color:"var(--popmelt-thread-muted)",display:"flex",gap:6},children:[Y.length>0&&h("div",{style:{alignItems:"center",display:"flex",gap:6},children:he.map(z=>h(xh,{receipt:z},z.kind))}),W&&h(Zr,{"aria-label":"Decision recorded",color:r,size:14,strokeWidth:1.5}),re&&h(ol,{"aria-label":"Model updated",color:"var(--popmelt-thread-muted)",size:14,strokeWidth:1.5}),fe&&h(Ih,{receipt:fe,accentColor:r})]})})]})}),k&&!a&&h("span",{"data-message-timestamp":!0,style:{color:"var(--popmelt-thread-muted)",fontSize:12,fontWeight:400,position:"absolute",right:0,top:"calc(100% + 8px)"},children:$a(e.timestamp)}),Q.length>0&&h("div",{style:{display:"flex",flexWrap:"wrap",gap:4,justifyContent:"flex-end",width:"100%"},children:Q.map((z,Ne)=>h(Eo,{src:z.url,alt:z.label||"Attached image",title:z.label,style:ni,onClick:()=>o(z.url)},Ne))}),k&&!e.replyToQuestion&&(()=>{if(e.requestItems?.length){let $e=new Set(e.requestItems.flatMap(We=>We.pathname?[We.pathname]:[])).size>1,Xe=new Set,Ye=e.screenshotUrl?ri(n,e.screenshotUrl):null;return M("div",{"data-thread-request-cluster":!0,style:{alignItems:"flex-end",display:"flex",flexDirection:"column",gap:4,width:"100%"},children:[Ye&&!e.screenshotUrls?h(Eo,{src:Ye,alt:"Thread screenshot",title:"screenshot",style:{...ni,flexShrink:0},onClick:()=>o(Ye)}):null,e.requestItems.map((We,Ae)=>{let se=We.pathname,Fe=se&&!Xe.has(se)?e.screenshotUrls?.[se]:void 0;se&&Xe.add(se);let Ke=Fe?ri(n,Fe):null,xt=We.kind==="annotation"&&We.annotationId?e.imageUrls?.[We.annotationId]??[]:[],et=We.kind==="annotation"?e.annotationSnapshot?.annotations.find(nt=>nt.id===We.annotationId)?.interactionEpisode:void 0,Se=qy(et,xt).map(nt=>({...nt,url:ri(n,nt.url)})),Ue=new Set(Se.map(nt=>nt.imageIndex)),ht=xt.flatMap((nt,lt)=>Ue.has(lt)?[]:[ri(n,nt)]),gt=We.kind==="annotation"?We.interactionEpisodeStepCount??et?.steps.length??0:0;return M(cg,{children:[Ke?h(Eo,{src:Ke,alt:`Screenshot for ${se}`,title:se,style:{...ni,flexShrink:0},onClick:()=>o(Ke)}):null,ht.length>0?h("div",{style:{display:"flex",flexWrap:"wrap",gap:4,justifyContent:"flex-end",width:"100%"},children:ht.map((nt,lt)=>h(Eo,{src:nt,alt:"Attached image",title:"pasted image",style:ni,onClick:()=>o(nt)},lt))}):null,h(AS,{frames:Se,onLightbox:o}),gt>0?h(CS,{stepCount:gt}):null,M("div",{style:{...F,minWidth:0},children:[$e&&se?h("code",{style:{backgroundColor:"var(--popmelt-thread-soft-hairline)",display:"inline-block",fontSize:10,marginBottom:4,padding:"1px 4px"},children:se}):null,We.kind==="annotation"?We.text.includes(`
|
|
154
|
+
`)?Tr(We.text):We.text:M(at,{children:[M("div",{style:{fontWeight:600},children:[We.elementLabel," ",M("span",{style:{opacity:.64},children:["(",We.changes.length," ",We.changes.length===1?"change":"changes",")"]})]}),h("div",{style:{marginTop:6},children:We.changes.map((nt,lt)=>h("div",{style:{marginTop:lt===0?0:3},children:nt},lt))})]})]})]},`${We.kind}-${Ae}`)})]})}let z=S?cS(S):null;if(z&&e.screenshotUrls)return h("div",{style:{display:"flex",flexDirection:"column",gap:4},children:z.map(($e,Xe)=>{let Ye=e.screenshotUrls?.[$e.route],We=Ye?ri(n,Ye):null;return M("div",{style:{alignItems:"flex-end",display:"flex",flexDirection:"column",gap:6,width:"100%"},children:[We?h(Eo,{src:We,alt:`Screenshot for ${$e.route}`,title:$e.route,style:{...ni,flexShrink:0},onClick:()=>o(We)}):null,M("div",{style:{...F,minWidth:0},children:[h("code",{style:{fontSize:10,backgroundColor:"var(--popmelt-thread-soft-hairline)",padding:"1px 4px"},children:$e.route}),$e.text&&h("div",{style:{marginTop:2},children:Tr($e.text)})]})]},Xe)})});let Ne=e.screenshotUrl?ri(n,e.screenshotUrl):null;return Ne&&S?M("div",{style:{alignItems:"flex-end",display:"flex",flexDirection:"column",gap:6,width:"100%"},children:[h(Eo,{src:Ne,alt:"Thread screenshot",title:"screenshot",style:{...ni,flexShrink:0},onClick:()=>o(Ne)}),ee(S,{...F,minWidth:0})]}):S?ee(S):null})(),k&&e.replyToQuestion&&S&&h("div",{style:F,children:S.includes(`
|
|
155
|
+
`)?Tr(S):S}),ye&&h(iS,{memoryReview:e.memoryReview}),!k&&P&&E.map((z,Ne)=>{if(z.kind==="approval")return h(ih,{approval:z.approval},z.approval.id);if(z.kind==="tool_group")return null;if(z.kind==="orientation")return h(yh,{orientation:z.orientation},Ne);if(C)return null;let $e=Ra(z.text);return $e?h("div",{style:Ji,children:Tr($e)},Ne):null}),!k&&!P&&S&&h("div",{style:Ji,children:Tr(S)}),!k&&C&&S&&h("div",{style:Ji,children:Tr(S)}),!k&&e.memoryReviewCard&&y&&h(TS,{card:e.memoryReviewCard,accentColor:r,busy:p,resolved:u,superseded:f,onAction:(z,Ne)=>y(e.memoryReviewCard,z,Ne)}),!k&&e.imprintSummary&&w&&h(kS,{summary:e.imprintSummary,accentColor:r,busy:p,onAction:z=>w(e.imprintSummary,z)}),!k&&e.imprintRecognition&&h(ES,{receipt:e.imprintRecognition,accentColor:r}),Be&&e.memoryReceipt&&M("div",{style:{alignItems:"center",color:"var(--popmelt-thread-primary)",display:"flex",fontSize:12,fontStyle:"italic",gap:6,lineHeight:1.35},children:[e.memoryReceipt.status==="committed"?h(Zr,{"aria-hidden":"true",color:r,size:12,strokeWidth:1.5}):h(il,{"aria-hidden":"true",color:r,size:12,strokeWidth:1.5}),h("span",{style:{opacity:.5},children:e.memoryReceipt.status==="committed"?"Decision recorded":"Decision not recorded"})]}),G&&h("div",{style:Ji,children:Tr(G)}),j&&h("div",{style:{backgroundColor:"var(--popmelt-thread-soft)",border:"1px solid var(--popmelt-thread-border)",borderRadius:24,color:"var(--popmelt-thread-muted-strong)",fontSize:14,letterSpacing:"0.14px",lineHeight:1.35,marginTop:-4,padding:16},children:H.map((z,Ne)=>M("div",{children:[h("span",{style:{color:z.status==="resolved"?"#10b981":"#f59e0b"},children:z.status==="resolved"?"Done":"Needs review"}),z.summary?` \u2014 ${z.summary}`:""]},Ne))}),!k&&e.modelDetails?.length?h(oS,{patterns:e.modelDetails}):null]},`${e.jobId}-${t}`)});function Eh(e,t){return!t||e.role!=="human"||t.role!=="human"||e.authorPeer?.id!==t.authorPeer?.id||!e.replyToQuestion||!t.replyToQuestion?!1:e.jobId===t.jobId||e.timestamp-t.timestamp<6e4}function Th(e,t){if(!t||e.timestamp<=t.timestamp)return"a moment";let n=Ng((e.segments??[]).flatMap(s=>s.kind==="approval"?[s.approval]:[]),t.timestamp,e.timestamp),r=Math.max(1,Math.round((e.timestamp-t.timestamp-n)/1e3));if(r<60)return`${r}s`;let o=Math.floor(r/60),i=r%60;if(o<60)return`${o}m${i?` ${i}s`:""}`;let a=Math.floor(o/60),l=o%60;return[`${a}h`,l?`${l}m`:"",i?`${i}s`:""].filter(Boolean).join(" ")}function MS(e,t){if(e.role!=="assistant"||e.cancelled||e.error)return!1;let n=Ra(e.responseText??"").trim(),r=(e.segments??[]).some(i=>i.kind==="approval"?!0:i.kind==="tool_group"?!1:i.kind==="orientation"?!0:Ra(i.text).trim().length>0),o=!!(n||e.question||e.resolutions?.length||e.memoryReviewCard||e.imprintSummary||r);return!!(e.memoryReceipt?.status==="committed"||e.toolsUsed?.length||e.segments?.some(i=>i.kind==="tool_group")||t)&&!o}function Ch(e,t){return t.status==="applied"?t.applicationMode==="automatic"&&t.presentationJobId?e.jobId===t.presentationJobId:e.jobId===`apply-${t.id}`:t.status==="dismissed"?e.jobId===`dismiss-${t.id}`:t.presentationJobId?e.jobId===t.presentationJobId:t.runId&&e.jobId===t.runId?!0:!t.runId&&e.role==="assistant"&&!!e.responseText?.includes("Model suggestion ready")}function Cr(e){return!!(e&&typeof e=="object"&&!Array.isArray(e))}function Hl(e){if(e===void 0)return"undefined";try{return JSON.stringify(e)}catch{return String(e)}}function Ol(e,t){return Hl(e)===Hl(t)}function qi(e){if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return String(e);if(Array.isArray(e))return`${e.length} item${e.length===1?"":"s"}`;if(Cr(e)){let t=Object.keys(e);return typeof e.value=="string"||typeof e.value=="number"?String(e.value):`{ ${t.slice(0,4).join(", ")}${t.length>4?", ...":""} }`}return String(e)}function RS(e,t){let n=e;for(let r of t){if(!n||typeof n!="object")return;n=n[String(r)]}return n}function Ah(e,t,n,r){if(!Cr(e)){Ol(e,t)||r.push({id:`token:${n.join(".")}`,group:"tokens",label:n.join("."),detail:qi(e),path:n,value:e,currentValue:t});return}if("value"in e){Ol(e,t)||r.push({id:`token:${n.join(".")}`,group:"tokens",label:n.join("."),detail:qi(e),path:n,value:e,currentValue:t});return}for(let o of Object.keys(e))Ah(e[o],Cr(t)?t[o]:void 0,[...n,o],r)}function $S(e,t){if(t.changes?.length)return t.changes.map(s=>{let d=s.path[0],c=d==="rules"||d==="components"||d==="tokens"?d:"model";return{id:s.id,group:c,label:s.label??s.path.map(String).join("."),detail:s.rationale,path:s.path,value:s.value,decisionIds:s.decisionIds,currentValue:RS(e,s.path)}});let n=t.proposedModel;if(!n)return[];let r=[],o=Array.isArray(e?.rules)?e.rules:[],i=Array.isArray(n.rules)?n.rules:[];for(let s=0;s<i.length;s++){let d=i[s];if(!Cr(d))continue;let c=typeof d.id=="string"?d.id:`rule-${s}`,p=o.find(u=>Cr(u)&&(typeof u.id=="string"&&u.id===c||Hl(u)===Hl(d)));Ol(p,d)||r.push({id:`rule:${c}`,group:"rules",label:typeof d.scope=="string"?d.scope:"rule",detail:typeof d.text=="string"?d.text:qi(d),path:["rules"],value:d,currentValue:p,ruleValue:d})}let a=Cr(n.components)?n.components:{},l=Cr(e?.components)?e.components:{};for(let s of Object.keys(a)){let d=a[s],c=l[s];Ol(d,c)||r.push({id:`component:${s}`,group:"components",label:s,detail:qi(d),path:["components",s],value:d,currentValue:c})}return Cr(n.tokens)&&Ah(n.tokens,e?.tokens,["tokens"],r),r}function PS(e,t,n){let r=t.filter(a=>n.has(a.id)),o=r.filter(a=>a.group==="rules"&&a.ruleValue),i=r.filter(a=>!a.ruleValue).map(a=>({path:a.path,value:a.value,decisionIds:a.decisionIds}));if(o.length>0){let a=Array.isArray(e?.rules)?[...e.rules]:[];for(let l of o){let s=l.ruleValue,d=Cr(s)&&typeof s.id=="string"?s.id:null,c=d?a.findIndex(p=>Cr(p)&&p.id===d):-1;c>=0?a[c]=s:a.push(s)}i.push({path:["rules"],value:a,decisionIds:[...new Set(o.flatMap(l=>l.decisionIds??[]))]})}return i}function LS(e){return(e.selectedChanges??[]).flatMap((t,n)=>{if(!t.label&&!t.detail)return[];let r=t.group==="rules"||t.group==="components"||t.group==="tokens"||t.group==="model"?t.group:"model";return[{id:`selected:${e.id}:${n}`,group:r,label:t.label??r,detail:t.detail??qi(t.value),path:t.path??[],value:t.value,currentValue:t.currentValue}]})}function jS({proposal:e,timestamp:t,bridgeUrl:n,accentColor:r,busy:o,onApplySelected:i,onDismiss:a,onReviewUnderlying:l,hideModelSenderUntilHover:s=!1}){let d=e.authorityStatus==="accepted",c=e.status==="pending"&&d,[p,u]=$(null),[f,m]=$(()=>new Set),[g,y]=$(null),w=we(()=>{let q=LS(e);return!c&&q.length>0?q:$S(p,e)},[p,c,e]),k=we(()=>PS(p,w,f),[w,p,f]),D=we(()=>w.filter(q=>f.has(q.id)),[w,f]),I=we(()=>{let q={rules:[],components:[],tokens:[],model:[]};for(let S of w)q[S.group].push(S);return q},[w]),O=w.map(q=>q.id).join("|");_(()=>{let q=!1;return Qt(`${n}/model`).then(S=>S.ok?S.json():null).then(S=>{q||u(S?.model&&typeof S.model=="object"?S.model:null)}).catch(()=>{q||u(null)}),()=>{q=!0}},[n,e.id]),_(()=>{m(c&&O?new Set(O.split("|")):new Set)},[O,c,e.id]);let R=U(q=>{m(S=>{let ee=new Set(S);return ee.has(q)?ee.delete(q):ee.add(q),ee})},[]),F=U(()=>{m(new Set(w.map(q=>q.id)))},[w]),Q=U(()=>{m(new Set)},[]),N=`${w.length} ${w.length===1?"change":"changes"}`,K=w.length===1?`1 ${w[0]?.group==="rules"?"rule":w[0]?.group==="components"?"component":w[0]?.group==="tokens"?"token":"change"}`:N;return e.status==="applied"?M("div",{"data-msg":!0,style:{display:"flex",flexDirection:"column",gap:16,position:"relative"},children:[M("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[M("div",{style:{alignItems:"center",color:"var(--popmelt-thread-primary)",display:"flex",fontSize:12,fontStyle:"italic",gap:6,lineHeight:1.35},children:[h(Zr,{"aria-hidden":"true",color:r,size:12,strokeWidth:1.5}),h("span",{style:{opacity:.5},children:"Decision recorded"})]}),M("div",{style:{alignItems:"center",color:"var(--popmelt-thread-primary)",display:"flex",fontSize:12,fontStyle:"italic",gap:6,lineHeight:1.35},children:[h(ol,{"aria-hidden":"true",color:r,size:12,strokeWidth:1.5}),h("span",{style:{opacity:.5},children:"Model updated"})]})]}),M("div",{style:{alignItems:"center",display:"flex",gap:4,marginTop:s?0:16,...s?{left:0,position:"absolute",right:0,top:"calc(100% + 7px)",zIndex:1}:{}},children:[M("span",{"data-model-sender":"sender",style:{alignItems:"center",color:"var(--popmelt-thread-muted-strong)",display:"flex",fontSize:12,fontWeight:500,gap:4},children:[h(Jc,{provider:e.provider,size:12,style:{color:"var(--popmelt-thread-muted-strong)"}}),h("span",{children:qc(e.model,e.provider)})]}),h("span",{"data-message-timestamp":!0,style:{color:"var(--popmelt-thread-muted)",fontSize:12,fontWeight:400,marginLeft:"auto"},children:$a(t)})]})]}):M("div",{"data-msg":!0,style:{display:"flex",flexDirection:"column",gap:16,position:"relative"},children:[M("div",{style:{background:"var(--popmelt-thread-soft)",border:"1px solid var(--popmelt-thread-border)",borderRadius:24,padding:16,display:"flex",flexDirection:"column",gap:12},children:[e.status==="dismissed"?M("div",{style:{alignItems:"center",display:"flex",gap:6,opacity:.45},children:[h(il,{"aria-hidden":"true",size:16,strokeWidth:2.5}),h("span",{style:{fontSize:14,fontWeight:600},children:"Model suggestion dismissed"})]}):M("div",{style:{alignItems:"center",display:"flex",gap:8},children:[h(ol,{"aria-hidden":"true",color:r,size:16,strokeWidth:2}),h("span",{style:{fontSize:14,fontWeight:600},children:"Model suggestion"})]}),e.status==="pending"&&d&&w.length>0&&M("div",{style:{alignItems:"center",display:"flex",fontSize:14,lineHeight:1.35,marginTop:4},children:[h("span",{style:{fontWeight:600},children:K}),M("div",{style:{display:"flex",gap:12,marginLeft:"auto"},children:[h("button",{type:"button",disabled:o,onClick:F,style:{background:"transparent",border:0,cursor:"pointer",fontFamily:dn,fontSize:12,fontWeight:600,color:"var(--popmelt-thread-muted-strong)",padding:0},children:"Select all"}),h("button",{type:"button",disabled:o,onClick:Q,style:{background:"transparent",border:0,cursor:"pointer",fontFamily:dn,fontSize:12,fontWeight:600,color:"var(--popmelt-thread-muted-strong)",padding:0},children:"Clear"})]})]}),e.status==="pending"&&h(at,{children:w.length>0?h("div",{style:{display:"flex",flexDirection:"column",gap:8,marginTop:4},children:["rules","components","tokens","model"].flatMap(q=>I[q]).map(q=>{let S=f.has(q.id);return M("label",{style:{alignItems:"start",color:c&&!S?"var(--popmelt-thread-secondary)":"var(--popmelt-thread-primary)",columnGap:8,cursor:c?"pointer":"default",display:"grid",fontSize:14,gridTemplateColumns:c?"14px minmax(0, 1fr)":"minmax(0, 1fr)",lineHeight:1.35,padding:"0 0 8px 12px"},children:[c&&h("input",{type:"checkbox",checked:S,disabled:o,onChange:()=>R(q.id),style:{WebkitAppearance:"none",appearance:"none",margin:"1px 0 0",width:14,height:14,backgroundColor:S?r:"transparent",border:`1px solid ${S?r:"rgba(0,0,0,0.34)"}`,boxSizing:"border-box",cursor:o?"default":"pointer"}}),M("span",{style:{minWidth:0},children:[h("span",{style:{fontWeight:700},children:q.label}),M("span",{children:[" \u2014 ",q.detail]}),q.currentValue!==void 0&&M("span",{style:{display:"block",marginTop:2,opacity:.5},children:["was ",qi(q.currentValue)]})]})]},q.id)})}):h("div",{style:{color:"var(--popmelt-thread-muted-strong)",fontSize:14,lineHeight:1.4},children:"No concrete model diff could be derived from this proposal."})}),!d&&e.status==="pending"&&h("div",{style:{color:"#92400e",background:"rgba(180,83,9,0.06)",border:"1px solid rgba(180,83,9,0.2)",padding:8,fontSize:12,lineHeight:1.4},children:h("strong",{children:"A competing product decision is pending"})}),e.status==="pending"&&d&&M("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:6},children:[M("button",{type:"button",disabled:o,onClick:a,onMouseEnter:()=>{o||y("reject")},onMouseLeave:()=>y(null),style:{...Ld,alignItems:"center",background:"var(--popmelt-thread-control)",border:0,color:"var(--popmelt-thread-primary)",display:"flex",fontSize:12,justifyContent:"space-between",padding:"8px 12px",transition:"background-color 120ms ease"},children:[h("span",{children:"Reject"}),h(il,{"aria-hidden":"true",color:"#dd4141",size:12,strokeWidth:2.5})]}),M("button",{type:"button",disabled:o||k.length===0,onClick:()=>i(e,k,D),onMouseEnter:()=>{!o&&k.length>0&&y("confirm")},onMouseLeave:()=>y(null),style:{...Pd,alignItems:"center",display:"flex",fontSize:12,background:g==="confirm"?"var(--popmelt-thread-action-hover)":"var(--popmelt-thread-action)",borderColor:g==="confirm"?"var(--popmelt-thread-action-hover)":"var(--popmelt-thread-action)",color:"var(--popmelt-thread-on-action)",justifyContent:"space-between",padding:"8px 12px",opacity:o||k.length===0?.45:1,cursor:o||k.length===0?"not-allowed":"pointer",transition:"background-color 120ms ease, border-color 120ms ease"},children:[h("span",{children:"Confirm"}),h(vo,{"aria-hidden":"true",color:"#61c920",size:12,strokeWidth:3})]})]}),e.status==="pending"&&!d&&M("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:8},children:[h("button",{type:"button",disabled:o,onClick:a,style:Ld,children:"Dismiss"}),h("button",{type:"button",disabled:o||!e.underlyingProposalId,onClick:l,style:{...Pd,opacity:e.underlyingProposalId?1:.45},children:"Review decision"})]})]}),M("div",{style:{alignItems:"center",display:"flex",gap:4,marginTop:s?0:16,...s?{left:0,position:"absolute",right:0,top:"calc(100% + 7px)",zIndex:1}:{}},children:[M("span",{"data-model-sender":"sender",style:{alignItems:"center",color:"var(--popmelt-thread-muted-strong)",display:"flex",fontSize:12,fontWeight:500,gap:4},children:[h(Jc,{provider:e.provider,size:12,style:{color:"var(--popmelt-thread-muted-strong)"}}),h("span",{children:qc(e.model,e.provider)})]}),h("span",{"data-message-timestamp":!0,style:{color:"var(--popmelt-thread-muted)",fontSize:12,fontWeight:400,marginLeft:"auto"},children:$a(t)})]})]})}var Pd={border:"1px solid var(--popmelt-thread-action)",borderRadius:24,background:"var(--popmelt-thread-action)",color:"var(--popmelt-thread-on-action)",cursor:"pointer",fontFamily:dn,fontSize:12,fontWeight:700,padding:"6px 8px"},Ld={border:"1px solid var(--popmelt-thread-border)",borderRadius:16,background:"transparent",color:"var(--popmelt-thread-secondary)",cursor:"pointer",fontFamily:dn,fontSize:12,fontWeight:700,padding:"6px 8px"};function zS({onAttentionChange:e,threadId:t,bridgeUrl:n,accentColor:r,initialMessages:o=[],completedJobId:i,refreshKey:a,isStreaming:l,isQueued:s,queuePosition:d,activeJobId:c,streamingEvents:p,onClose:u,onReply:f,onContribute:m,onApproveSuggestion:g,onCancel:y,canManage:w=!0,readOnlyReason:k,lastError:D,onMouseEnter:I,temporarilyHidden:O=!1,backdropCursor:R,toolbarRef:F,surfaceRef:Q,currentModel:N,currentProvider:K,availableProviders:q=[],models:S=[],modelIndex:ee=0,agentSettings:G,onProviderChange:H,onModelChange:j,onAgentSettingsChange:P,onModelMenuOpen:E,annotationNumber:C,annotationText:X,onPreviousThread:ce,onNextThread:ue,preferredSide:Y="right",modal:he=!0}){let[W,,fe]=hs(),re=fs[W],pe={"--popmelt-thread-surface":re.surface,"--popmelt-thread-raised":re.raisedSurface,"--popmelt-thread-soft":re.softSurface,"--popmelt-thread-control":re.control,"--popmelt-thread-primary":re.threadPrimary,"--popmelt-thread-secondary":re.secondary,"--popmelt-thread-muted":re.muted,"--popmelt-thread-muted-strong":re.mutedStrong,"--popmelt-thread-border":re.border,"--popmelt-thread-hairline":re.hairline,"--popmelt-thread-soft-hairline":re.softHairline,"--popmelt-thread-action":re.actionSurface,"--popmelt-thread-on-action":re.actionForeground,"--popmelt-thread-action-hover":re.actionHover,"--popmelt-thread-scrollbar-idle":re.scrollbarIdle,"--popmelt-thread-scrollbar-hover":re.scrollbarHover},[ye,Be]=$(()=>o),[Ee,z]=$(),Ne=Ir(Ka),$e=(Ee&&Ne?.peerColors?.[Ee.authorId])??r,Xe=Ne?.onThreadViewed;_(()=>{Ee!==void 0&&!O&&Xe?.(t)},[Xe,Ee,O,t]);let[Ye,We]=$(!1),[Ae,se]=$(""),Fe=Ee?.state==="pending",Ke=Ee===void 0?void 0:Fe?m:Ee&&Ee.state!=="sent"?void 0:f,[xt,et]=$([]);_(()=>(e?.(!O&&xt.length?{threadId:t,targets:xt}:null),()=>e?.(null)),[e,O,t,xt]);let Se=we(()=>Ow(X,ye),[X,ye]),[Ue,ht]=$([]),[gt,nt]=$(!1),[lt,Ht]=$(!1),nn=bw({bridgeUrl:n,threadId:t,visible:!O,active:!!l,onPendingChange:Ht}),[cn,Mn]=$(o.length===0),At=J(null);At.current||(At.current=Dw(t));let[Pe,Wt]=$(()=>At.current.text),[dt,b]=$([]),[ie,ve]=$(!1),[Je,Mt]=$(!1),Le=J(null),ct=J(null),Ve=J(null),Bt=J(null),ge=J(!1),Oe=J(!1),tt=J(!1),wt=J(!1),rt=J({selectionStart:At.current.selectionStart,selectionEnd:At.current.selectionEnd,selectionDirection:At.current.selectionDirection}),[ot,rn]=$(!0),[qe,Nn]=$(null),Rn=U(L=>Nn(L),[]),Ot=J(null),Kn=J(!0),bn=J(null),St=J(null),ar=J(0),on=J(null),xn=U((L,te)=>{let be=L&&te.trim();Ot.current&&(Ot.current.style.opacity=be?"0.65":"1")},[]),Jt=J(null),to=J(null),an=U(L=>{to.current=L,Q?.(L)},[Q]),Ar=J(null),Mr=J(l),Zt=J(c),Nt=J(null);_(()=>{Ad(t,Pe,void 0,rt.current)},[Pe,t]),Lt(()=>{let L=Jt.current,te=At.current;!L||!te||te.text.length===0||L.setSelectionRange(te.selectionStart,te.selectionEnd,te.selectionDirection)},[]);let yt=U(()=>{Le.current&&(clearTimeout(Le.current),Le.current=null)},[]),en=U(()=>{ct.current&&(clearTimeout(ct.current),ct.current=null)},[]),$n=U(()=>{Ve.current&&(clearTimeout(Ve.current),Ve.current=null),Bt.current!==null&&(cancelAnimationFrame(Bt.current),Bt.current=null)},[]),wn=U(()=>{E?.(),$n(),Mt(!0),Bt.current=requestAnimationFrame(()=>{Bt.current=null,ve(!0)})},[$n,E]),Rr=U(()=>{$n(),ve(!1),Ve.current=setTimeout(()=>{Ve.current=null,Mt(!1)},Uw)},[$n]),lr=U(()=>{yt(),en(),ge.current=!1,Oe.current=!1,tt.current=!1,Rr()},[en,yt,Rr]),oi=U(()=>{en(),yt(),Le.current=setTimeout(()=>{Le.current=null,ge.current&&wn()},Jw)},[en,yt,wn]),$r=U(()=>{yt(),en(),!tt.current&&(ct.current=setTimeout(()=>{ct.current=null,!ge.current&&!Oe.current&&!tt.current&&Rr()},qw))},[en,yt,Rr]),Ui=U(L=>{tt.current=L,L?en():!ge.current&&!Oe.current&&$r()},[en,$r]);_(()=>()=>{yt(),en(),$n()},[en,$n,yt]);let Ft=J(Rd(Y)),Sn=J({x:0,y:0}),Pr=J(!1),Lr=J({x:0,y:0,offsetX:0,offsetY:0}),Fn=J(Y==="right"),[,fn]=$(0),sr=`${Vw}:${Y}`;_(()=>{try{let L=localStorage.getItem(sr);if(L){let te=JSON.parse(L);if(typeof te.top=="number"&&typeof te.left=="number"){let{width:be,height:Re}=Co(),Te=Vo(be),De=Ma(be),Ge={top:Math.max(Te,Math.min(te.top,Re-Te-200)),left:Math.max(Te,Math.min(te.left,De))};Fn.current=Ge.left>=De-2,Ft.current=Ge,fn(ut=>ut+1)}}}catch{}},[sr]),_(()=>{let L=()=>{if(Fn.current)Ft.current=Rd(Y);else{let te=Ft.current,{width:be,height:Re}=Co(),Te=Vo(be),De=Ma(be);Ft.current={top:Math.max(Te,Math.min(te.top,Re-Te-200)),left:Math.max(Te,Math.min(te.left,De))}}fn(te=>te+1)};return window.addEventListener("resize",L,{passive:!0}),window.visualViewport?.addEventListener("resize",L,{passive:!0}),()=>{window.removeEventListener("resize",L),window.visualViewport?.removeEventListener("resize",L)}},[Y]),_(()=>{let L=Ar.current;if(!L)return;let te=De=>{Ec(Co().width)||De.button!==0||De.target.closest("button")||(De.preventDefault(),De.stopPropagation(),Pr.current=!0,Lr.current={x:De.clientX,y:De.clientY,offsetX:Sn.current.x,offsetY:Sn.current.y})},be=De=>{if(!Pr.current)return;let Ge=Lr.current,ut=Ge.offsetX+(De.clientX-Ge.x),je=Ge.offsetY+(De.clientY-Ge.y),{width:Vt}=Co(),$o=Vo(Vt),gr=Math.max($o,Math.min(Ma(Vt),Ft.current.left+ut)),kn=Math.max($o,Ft.current.top+je);Sn.current={x:gr-Ft.current.left,y:kn-Ft.current.top};let Zn=to.current;Zn&&(Zn.style.top=`${kn}px`,Zn.style.left=`${gr}px`,Zn.style.height=`${fh(kn,gr,F?.current)}px`)},Re=()=>{if(!Pr.current)return;let De=Ft.current.top+Sn.current.y,Ge=Ft.current.left+Sn.current.x;Ft.current={top:De,left:Ge},Sn.current={x:0,y:0};let ut=Ma();Fn.current=Ge>=ut-2;try{localStorage.setItem(sr,JSON.stringify({top:De,left:Ge}))}catch{}Pr.current=!1},Te=()=>{Ft.current=Rd(Y),Sn.current={x:0,y:0},Fn.current=Y==="right";try{localStorage.removeItem(sr)}catch{}fn(De=>De+1)};return L.addEventListener("mousedown",te),window.addEventListener("mousemove",be),window.addEventListener("mouseup",Re),L.addEventListener("dblclick",Te),()=>{L.removeEventListener("mousedown",te),window.removeEventListener("mousemove",be),window.removeEventListener("mouseup",Re),L.removeEventListener("dblclick",Te)}},[sr,Y,F]);let _t=U(async L=>{try{let te=await Qt(`${n}/thread/${t}`);if(!te.ok)throw new Error(`Thread fetch failed: ${te.status}`);let be=await te.json(),Re=be.messages??[];z(be.suggestion??null);let Te=im(be,location.pathname);et(je=>JSON.stringify(je)===JSON.stringify(Te)?je:Te);let De=L?.settleJobId,Ge=am(Re,De);(Ge||L?.applyUnsettled)&&Be(je=>Re.length===0&&je.length>0?je:Re);let ut=Array.isArray(be.modelProposals)?be.modelProposals:be.modelProposal?[be.modelProposal]:[];return(Ge||L?.applyUnsettled)&&ht(ut),Mn(!1),{messages:Re,settled:Ge}}catch{return Mn(!1),null}},[n,t]),He=U(async(L,te)=>{if(!gt){nt(!0);try{let be=await Qt(`${n}/projection/proposals/${encodeURIComponent(L.id)}/${te}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:K,model:N,...G})});if(be.ok){let Re=await be.json();Re.proposal&&ht(Te=>Te.map(De=>De.id===Re.proposal.id?Re.proposal:De)),await _t()}}finally{nt(!1)}}},[G,n,N,K,_t,gt]);_(()=>{a&&_t({applyUnsettled:!0})},[a,_t]);let no=U(async(L,te,be)=>{if(!gt){nt(!0);try{(await Qt(`${n}/memory/conversation-action`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:t,proposalId:L.proposalId,action:te,claim:be,provider:K,model:N,...G})})).ok&&await _t()}finally{nt(!1)}}},[G,n,N,K,_t,gt,t]),jt=U(async(L,te)=>{if(!gt){nt(!0);try{(await Qt(`${n}/imprint/action`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:t,transactionId:L.transactionId,action:te})})).ok&&await _t()}finally{nt(!1)}}},[n,_t,gt,t]),Pn=U(async(L,te,be)=>{if(!(gt||te.length===0)){nt(!0);try{let Re=await Qt(`${n}/projection/proposals/${encodeURIComponent(L.id)}/apply-selected`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({changes:te,changeSummaries:be.map(Te=>({group:Te.group,label:Te.label,detail:Te.detail,path:Te.path,value:Te.value,currentValue:Te.currentValue})),provider:K,model:N,...G})});if(Re.ok){let Te=await Re.json();Te.proposal&&ht(De=>De.map(Ge=>Ge.id===Te.proposal.id?Te.proposal:Ge)),await _t()}}finally{nt(!1)}}},[G,n,N,K,_t,gt]);_(()=>{let L=!1;ar.current=0,Mn(o.length===0),St.current&&(clearTimeout(St.current),St.current=null);let te=async()=>{let be=await _t({applyUnsettled:!0});L||be===null||be.messages.length!==0||ar.current>=5||(ar.current+=1,St.current=setTimeout(te,200*ar.current))};return te(),()=>{L=!0,St.current&&(clearTimeout(St.current),St.current=null)}},[_t,o.length]);let Vn=U(L=>{if(!L||Nt.current===L)return;Nt.current=L,on.current&&clearTimeout(on.current);let te=0,be=async()=>{(await _t({settleJobId:L,applyUnsettled:te>=5}))?.settled||te>=5||(te+=1,on.current=setTimeout(be,80*te))};be()},[_t]);_(()=>{Vn(i)},[i,Vn]),_(()=>{Mr.current&&!l&&Vn(Zt.current),Mr.current=l,c&&(Zt.current=c)},[c,l,Vn]),_(()=>()=>{on.current&&clearTimeout(on.current)},[]);let Kt=we(()=>p?yS(p):[],[p]),_n=we(()=>ch(Kt),[Kt]),qt=we(()=>vh(Kt.filter(L=>L.kind==="tool_group")),[Kt]),Gn=we(()=>bh(qt),[qt]),ln=we(()=>p?wS(p):void 0,[p]),dr=we(()=>ye.filter(L=>L.role==="human"&&L.replyToQuestion&&L.queued&&L.jobId!==c),[c,ye]),st=Fw(ye,Ee?.submissionId,t,Ot),cr=!st.replacementReady||!!(Ae&&Ee?.state==="pending"),Rt=we(()=>st.messages.filter(L=>!(L.role==="human"&&L.replyToQuestion&&L.queued&&L.jobId!==c)),[c,st.messages]),In=we(()=>{let L=new Set,te=new Map,be=new Map,Re=new Map,Te=[];if(Rt.forEach((De,Ge)=>{let ut=Ue.some(je=>je.status==="applied"&&Ch(De,je));if(MS(De,ut)){Te.push(Ge);return}De.role!=="assistant"||Te.length===0||(te.set(Ge,Te.map(je=>Rt[je])),Te.forEach(je=>L.add(je)),Te=[])}),Te.length>0){let De=Te[0]-1;if(Rt[De]?.role==="assistant"&&!L.has(De)){let Ge=te.get(De)??[];te.set(De,[...Ge,...Te.map(je=>Rt[je])]),Te.forEach(je=>L.add(je));let ut=Te[Te.length-1];be.set(De,Th(Rt[ut],Rt[ut-1])),Re.set(De,Rt[ut].timestamp)}else if(Te.length>1){let Ge=Te[Te.length-1],ut=Te.slice(0,-1);te.set(Ge,ut.map(je=>Rt[je])),ut.forEach(je=>L.add(je))}}return{hiddenIndices:L,messagesByTargetIndex:te,timestampByTargetIndex:Re,workedForByTargetIndex:be}},[Ue,Rt]),Yi=we(()=>{let L=new Map;for(let te of ye)te.memoryReviewCard&&L.set(te.memoryReviewCard.proposalId,`${te.jobId}:${te.timestamp}`);return L},[ye]),Mo=we(()=>{let L=[];return Rt.forEach((te,be)=>{if(In.hiddenIndices.has(be))return;let Re=Eh(te,Rt[be-1]);te.role==="assistant"&&!Re&&L.push(`message:${te.jobId}:${be}`)}),l?"streaming":L[L.length-1]??null},[In,l,Rt]);_(()=>{let L=Ot.current;if(!L)return;let te=()=>{L.dataset.scrollActive="true",bn.current&&clearTimeout(bn.current),bn.current=setTimeout(()=>{delete L.dataset.scrollActive,bn.current=null},850)},be=()=>{te();let Re=L.scrollHeight-L.scrollTop-L.clientHeight;rn(Re<40),Kn.current=Re<2};return te(),L.addEventListener("scroll",be,{passive:!0}),()=>{L.removeEventListener("scroll",be),bn.current&&clearTimeout(bn.current)}},[]),_(()=>{Kn.current&&Ot.current&&(Ot.current.scrollTop=Ot.current.scrollHeight)},[ye,Kt.length,l,lt,st.phase]),_(()=>{if(!Je)return;let L=te=>{te.composedPath().some(be=>be instanceof HTMLElement&&be.dataset.modelPicker!==void 0)||lr()};return document.addEventListener("pointerdown",L,!0),()=>document.removeEventListener("pointerdown",L,!0)},[lr,Je]),_(()=>{let L=te=>{if(te.key==="Escape"){if(te.stopPropagation(),Je){lr();return}u()}};return document.addEventListener("keydown",L),()=>document.removeEventListener("keydown",L)},[lr,Je,u]);let Ln=U((L,te,be)=>{let Re=L.trim();if(!Re||!Ke)return!1;let Te=`_pending_reply_${Date.now()}`,De=!!l,Ge=te?te.map(ut=>URL.createObjectURL(ut)):void 0;return Be(ut=>[...ut,{role:"human",timestamp:Date.now(),jobId:Te,replyToQuestion:Re,...Fe?{execution:"none"}:{},...De?{queued:!0}:{},...Ge?{replyImageUrls:Ge}:{}}]),Promise.resolve().then(()=>Ke(t,Re,te,be)).then(async ut=>{ut?.jobId&&(Be(je=>je.map(Vt=>Vt.jobId===Te?{...Vt,jobId:ut.jobId}:Vt)),await _t({applyUnsettled:!0}))}).catch(ut=>{Be(je=>je.map(Vt=>Vt.jobId===Te?{...Vt,queued:!1,errorKind:"send_rejected",error:ut instanceof Error?ut.message:"Reply was not sent. Check your connection and permissions before retrying."}:Vt)),Wt(je=>je||Re),te&&b(je=>je.length?je:te)}),!0},[l,t,Ke,_t,Fe]),ur=U(()=>{let L=dt.length>0?dt:void 0;Ln(Pe,L)&&(Wt(""),b([]))},[Pe,dt,Ln]),pr=U(L=>{let te=L.clipboardData.items,be=[];for(let Re=0;Re<te.length;Re++){let Te=te[Re];if(Te.type.startsWith("image/")){let De=Te.getAsFile();De&&be.push(De)}}if(be.length>0){if(L.preventDefault(),Fe){se("Suggestion discussion supports text for now; images were not attached.");return}b(Re=>[...Re,...be])}},[Fe]),hr=U(L=>{L.key==="Enter"&&(L.metaKey||L.ctrlKey)&&(L.preventDefault(),ur())},[ur]);Lt(()=>{let L=Jt.current;L&&(L.style.height="auto",L.style.height=`${Math.max(34,Math.min(L.scrollHeight,120))}px`)},[Pe]);let fr=Ft.current.top+Sn.current.y,jr=Ft.current.left+Sn.current.x,jn=Co(),sn=Ec(jn.width),Qn=Vo(jn.width),Ro=Tc(jn.width),mr=fh(fr,jr,F?.current),It=ye.some(L=>L.memoryReviewCard&&!ye.some(te=>te.memoryReceipt?.proposalId===L.memoryReviewCard.proposalId)),Me=Fe?"Add to suggestion (text only)":l?"Add steering context":It?"Ask for rule changes":"Ask for changes";return M(at,{children:[he&&h("div",{"data-devtools":"thread-panel-backdrop",onPointerDown:L=>{L.target===L.currentTarget&&u()},style:{position:"fixed",inset:0,zIndex:9998,opacity:O?0:1,pointerEvents:O?"none":"auto",cursor:R,transition:O?`opacity ${ds}ms ease`:"none"}}),M("div",{ref:an,style:{...Qw,...pe,width:Ro,height:sn?"auto":mr,position:"fixed",top:sn?`max(${Qn}px, env(safe-area-inset-top))`:fr,bottom:sn?`max(${Qn}px, env(safe-area-inset-bottom))`:void 0,left:sn?`max(${Qn}px, env(safe-area-inset-left))`:jr,right:sn?`max(${Qn}px, env(safe-area-inset-right))`:void 0,zIndex:10004,opacity:O?0:1,pointerEvents:O?"none":"auto",transition:O?`opacity ${ds}ms ease`:"none"},"data-devtools":"thread-panel","data-popmelt-thread-id":t,"data-popmelt-font":"sans","data-popmelt-theme":W,"data-popmelt-theme-preference":fe,"aria-hidden":O||void 0,onMouseEnter:I,children:[Xw,M("div",{style:{background:"var(--popmelt-thread-surface)",borderRadius:"12px 12px 16px 16px",display:"flex",flexDirection:"column",overflow:"hidden",flex:1,minHeight:0},children:[M("div",{ref:Ar,"data-popmelt-thread-header":!0,style:{...Zw,backgroundColor:$e,color:"#ffffff",cursor:"grab",overflow:sn?"visible":"hidden",paddingRight:sn?32:6,userSelect:"none",WebkitUserSelect:"none"},children:[M("span",{style:{display:"flex",alignItems:"center",gap:3,minWidth:0,flex:1},children:[(C||!Ee)&&h("span",{style:{flexShrink:0},children:C?`${C}.`:"Conversation"}),Se&&h("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:Se})]}),ce&&ue&&M("span",{style:{display:"flex",flexShrink:0,gap:0,marginLeft:8},children:[h("button",{type:"button","aria-label":"Previous thread","data-popmelt-thread-nav":!0,onClick:ce,style:{alignItems:"center",background:"transparent",border:0,color:"inherit",cursor:"pointer",display:"flex",height:To,justifyContent:"center",margin:0,padding:0,position:"relative",width:To},children:h(xg,{"aria-hidden":"true",height:To,strokeWidth:2,width:To})}),h("button",{type:"button","aria-label":"Next thread","data-popmelt-thread-nav":!0,onClick:ue,style:{alignItems:"center",background:"transparent",border:0,color:"inherit",cursor:"pointer",display:"flex",height:To,justifyContent:"center",margin:0,padding:0,position:"relative",width:To},children:h(Ms,{"aria-hidden":"true",height:To,strokeWidth:2,width:To})})]}),sn&&h("button",{type:"button","aria-label":"Close thread",onClick:u,style:{alignItems:"center",background:"transparent",border:0,color:"inherit",cursor:"pointer",display:"flex",flexShrink:0,height:40,justifyContent:"center",margin:0,padding:0,position:"absolute",right:-4,top:"50%",transform:"translateY(-50%)",width:40},children:h(al,{"aria-hidden":"true",size:14,strokeWidth:2})})]}),h("style",{dangerouslySetInnerHTML:{__html:tS+`
|
|
156
|
+
[data-devtools="thread-panel"] ::selection { background: color-mix(in srgb, ${$e} 15%, transparent); }
|
|
157
|
+
[data-popmelt-thread-nav] { opacity: 0.5; transition: opacity 120ms ease; }
|
|
158
|
+
[data-popmelt-thread-nav]:hover, [data-popmelt-thread-nav]:focus-visible { opacity: 1; }
|
|
159
|
+
[data-popmelt-approve-suggestion]:not(:disabled):hover {
|
|
160
|
+
--popmelt-approval-background: var(--popmelt-thread-action-hover);
|
|
161
|
+
}
|
|
162
|
+
[data-popmelt-approve-suggestion]:focus-visible {
|
|
163
|
+
outline: 2px solid var(--popmelt-thread-primary);
|
|
164
|
+
outline-offset: 3px;
|
|
165
|
+
}
|
|
166
|
+
[data-popmelt-thread-nav]::before { content: ''; position: absolute; inset: -4px; }
|
|
167
|
+
[data-popmelt-thread-content] { isolation: isolate; }
|
|
168
|
+
[data-popmelt-thread-content]::after {
|
|
169
|
+
background: color-mix(in srgb, var(--popmelt-thread-surface) 50%, transparent);
|
|
170
|
+
content: '';
|
|
171
|
+
inset: 0;
|
|
172
|
+
opacity: 0;
|
|
173
|
+
pointer-events: none;
|
|
174
|
+
position: absolute;
|
|
175
|
+
transition: opacity 100ms ease;
|
|
176
|
+
transition-delay: 0ms;
|
|
177
|
+
z-index: 10;
|
|
178
|
+
}
|
|
179
|
+
[data-popmelt-thread-content]:has([data-popmelt-tool-receipt-trigger]:hover)::after,
|
|
180
|
+
[data-popmelt-thread-content]:has([data-popmelt-tool-receipt-trigger]:focus-within)::after {
|
|
181
|
+
opacity: 1;
|
|
182
|
+
transition-delay: 180ms;
|
|
183
|
+
}
|
|
184
|
+
[data-popmelt-thread-content] [data-popmelt-tool-receipt-tooltip] { z-index: 20; }
|
|
185
|
+
[data-popmelt-reply]::placeholder { color: var(--popmelt-thread-muted); opacity: 1; }
|
|
186
|
+
[data-message-timestamp] { opacity: 0; pointer-events: none; transition: opacity 120ms ease; }
|
|
187
|
+
[data-message-activity] { opacity: 1; transition: opacity 120ms ease; }
|
|
188
|
+
[data-worked-for-label], [data-worked-for-time] { transition: opacity 120ms ease; }
|
|
189
|
+
[data-worked-for-time] { pointer-events: none; }
|
|
190
|
+
[data-under-message-rail="hover"] { opacity: 0; pointer-events: none; transition: opacity 120ms ease; }
|
|
191
|
+
[data-model-sender] { display: none !important; }
|
|
192
|
+
[data-msg]:hover [data-under-message-rail="hover"] { opacity: 1; pointer-events: auto; }
|
|
193
|
+
[data-msg]:hover [data-message-timestamp] { opacity: 1; }
|
|
194
|
+
@media (hover: hover) {
|
|
195
|
+
[data-msg]:hover + [data-popmelt-suggestion-actions] [data-popmelt-approve-suggestion]:not(:focus-visible) {
|
|
196
|
+
opacity: 0 !important;
|
|
197
|
+
pointer-events: none;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
[data-worked-for-trigger]:hover [data-worked-for-label] { opacity: 0; }
|
|
201
|
+
[data-worked-for-trigger]:hover [data-worked-for-time] { opacity: 1 !important; }
|
|
202
|
+
[data-popmelt-tool-receipt-tooltip] {
|
|
203
|
+
opacity: 0;
|
|
204
|
+
transform: translateY(3px) scale(0.98);
|
|
205
|
+
transform-origin: bottom center;
|
|
206
|
+
transition: opacity 100ms ease, transform 100ms ease, visibility 0s linear 100ms;
|
|
207
|
+
visibility: hidden;
|
|
208
|
+
}
|
|
209
|
+
[data-popmelt-tool-receipt-scroll] {
|
|
210
|
+
overflow-x: hidden !important;
|
|
211
|
+
}
|
|
212
|
+
[data-popmelt-tool-receipt-scroll],
|
|
213
|
+
[data-popmelt-tool-receipt-scroll] * {
|
|
214
|
+
box-sizing: border-box;
|
|
215
|
+
max-width: 100%;
|
|
216
|
+
min-width: 0;
|
|
217
|
+
overflow-wrap: anywhere;
|
|
218
|
+
white-space: normal;
|
|
219
|
+
word-break: break-word;
|
|
220
|
+
}
|
|
221
|
+
[data-popmelt-tool-receipt-trigger]:hover > button {
|
|
222
|
+
color: var(--popmelt-thread-primary) !important;
|
|
223
|
+
}
|
|
224
|
+
[data-popmelt-tool-receipt-scrim] {
|
|
225
|
+
left: 0;
|
|
226
|
+
opacity: 0;
|
|
227
|
+
pointer-events: none;
|
|
228
|
+
position: absolute;
|
|
229
|
+
right: 0;
|
|
230
|
+
transition: opacity 100ms ease;
|
|
231
|
+
z-index: 1;
|
|
232
|
+
}
|
|
233
|
+
[data-popmelt-tool-receipt-scrim="top"] {
|
|
234
|
+
background: linear-gradient(to bottom, var(--popmelt-thread-raised) 10%, transparent);
|
|
235
|
+
height: 24px;
|
|
236
|
+
top: 0;
|
|
237
|
+
}
|
|
238
|
+
[data-popmelt-tool-receipt-scrim="bottom"] {
|
|
239
|
+
background: linear-gradient(to top, var(--popmelt-thread-raised) 10%, transparent);
|
|
240
|
+
bottom: 0;
|
|
241
|
+
height: 24px;
|
|
242
|
+
}
|
|
243
|
+
[data-popmelt-tool-receipt-tooltip][data-overflow-top] [data-popmelt-tool-receipt-scrim="top"],
|
|
244
|
+
[data-popmelt-tool-receipt-tooltip][data-overflow-bottom] [data-popmelt-tool-receipt-scrim="bottom"] {
|
|
245
|
+
opacity: 1;
|
|
246
|
+
}
|
|
247
|
+
[data-popmelt-tool-receipt-trigger]:hover [data-popmelt-tool-receipt-tooltip][data-ready="true"],
|
|
248
|
+
[data-popmelt-tool-receipt-trigger]:focus-within [data-popmelt-tool-receipt-tooltip][data-ready="true"] {
|
|
249
|
+
opacity: 1;
|
|
250
|
+
transform: translateY(0) scale(1);
|
|
251
|
+
transition-delay: 180ms;
|
|
252
|
+
visibility: visible;
|
|
253
|
+
}
|
|
254
|
+
@media (prefers-reduced-motion: reduce) {
|
|
255
|
+
[data-popmelt-tool-receipt-tooltip] { transition: none; }
|
|
256
|
+
[data-popmelt-thread-content]::after { transition: none; }
|
|
257
|
+
}
|
|
258
|
+
[data-suggestion-message] { display: contents; }
|
|
259
|
+
[data-suggestion-handoff] > div {
|
|
260
|
+
display: flex;
|
|
261
|
+
flex-direction: column;
|
|
262
|
+
gap: 32px;
|
|
263
|
+
}
|
|
264
|
+
[data-suggestion-phase="preparing"] [data-suggestion-handoff="incoming"] {
|
|
265
|
+
display: block;
|
|
266
|
+
position: absolute;
|
|
267
|
+
visibility: hidden;
|
|
268
|
+
pointer-events: none;
|
|
269
|
+
}
|
|
270
|
+
[data-suggestion-phase="animating"] [data-suggestion-handoff="outgoing"] {
|
|
271
|
+
display: block;
|
|
272
|
+
position: relative;
|
|
273
|
+
height: 0;
|
|
274
|
+
flex-shrink: 0;
|
|
275
|
+
margin-bottom: -32px;
|
|
276
|
+
pointer-events: none;
|
|
277
|
+
}
|
|
278
|
+
[data-suggestion-phase="animating"] [data-suggestion-handoff="outgoing"] > div {
|
|
279
|
+
position: absolute;
|
|
280
|
+
width: 100%;
|
|
281
|
+
animation: popmelt-suggestion-out ${Md}ms ease-out both;
|
|
282
|
+
}
|
|
283
|
+
[data-suggestion-phase="animating"] [data-suggestion-handoff="incoming"] > div {
|
|
284
|
+
animation: popmelt-suggestion-in ${Md}ms cubic-bezier(.2,.7,.2,1) both;
|
|
285
|
+
}
|
|
286
|
+
@keyframes popmelt-suggestion-out {
|
|
287
|
+
to { opacity: 0; transform: translateY(-16px); }
|
|
288
|
+
}
|
|
289
|
+
@keyframes popmelt-suggestion-in {
|
|
290
|
+
from { opacity: 0; transform: translateY(16px); }
|
|
291
|
+
to { opacity: 1; transform: translateY(0); }
|
|
292
|
+
}
|
|
293
|
+
@media (prefers-reduced-motion: reduce) {
|
|
294
|
+
[data-suggestion-handoff] > div { animation: none !important; }
|
|
295
|
+
}
|
|
296
|
+
@media (hover: none), (pointer: coarse) {
|
|
297
|
+
[data-message-timestamp], [data-under-message-rail="hover"] { opacity: 1; pointer-events: auto; }
|
|
298
|
+
[data-popmelt-thread-header] { cursor: default !important; }
|
|
299
|
+
[data-popmelt-reply-action] { width: 40px !important; height: 40px !important; margin: -10px; }
|
|
300
|
+
}
|
|
301
|
+
`}}),M("div",{"data-popmelt-thread-content":!0,style:{display:"flex",flex:1,flexDirection:"column",minHeight:0,position:"relative"},children:[M("div",{ref:Ot,style:{...eS,transition:"opacity 150ms ease"},"data-devtools":"thread-panel-messages","data-suggestion-phase":st.phase,children:[cn&&h("div",{style:{padding:16,color:"var(--popmelt-thread-muted)",textAlign:"center"},children:"Loading..."}),!cn&&Rt.length===0&&dr.length===0&&!l&&h("div",{style:{padding:16,color:"var(--popmelt-thread-muted)",textAlign:"center"},children:"No messages yet."}),Rt.map((L,te)=>{if(In.hiddenIndices.has(te))return null;let be=In.messagesByTargetIndex.get(te)??[],Re=[...be,L],Te=Eh(L,Rt[te-1]),De=cn?[]:Ue.filter(je=>Re.some(Vt=>Ch(Vt,je))),Ge=De.filter(je=>je.status==="applied"),ut={decisionRecorded:Ge.some(je=>je.decisionIds.length>0),modelUpdated:Ge.length>0,imprintReceipt:SS(Re,Rt)};return h("div",{"data-suggestion-message":!0,"data-suggestion-handoff":st.motion(L),"aria-hidden":st.motion(L)==="outgoing"&&st.phase==="animating"?!0:void 0,children:M("div",{style:st.motion(L)?void 0:{display:"contents"},children:[h(kh,{msg:L,index:te,bridgeUrl:n,accentColor:$e,onLightbox:Rn,hideSender:Te,hideTimestamp:Te,hideModelSenderUntilHover:Mo!==`message:${L.jobId}:${te}`,compactSpacing:Te,workedFor:In.workedForByTargetIndex.get(te)??Th(L,Rt[te-1]),activityTimestamp:In.timestampByTargetIndex.get(te),memoryReviewBusy:gt,memoryReviewResolved:!!(L.memoryReviewCard&&ye.some(je=>je.memoryReceipt?.proposalId===L.memoryReviewCard.proposalId&&je.memoryReceipt.status==="committed")),memoryReviewSuperseded:!!(L.memoryReviewCard&&Yi.get(L.memoryReviewCard.proposalId)!==`${L.jobId}:${L.timestamp}`),foldedActivityMessages:be,underMessageActivity:ut,onMemoryReviewAction:w?no:void 0,onImprintAction:w?jt:void 0}),te===0&&Ee&&Ee.state!=="sent"&&(Ae||cr&&g&&(Fe||Ee.state==="approving"))&&M("div",{"data-popmelt-suggestion-actions":!0,style:{display:"flex",flexDirection:"column",alignItems:"flex-end",gap:8,marginTop:-24,fontSize:13,color:"var(--popmelt-thread-secondary)"},children:[(Fe||Ee.state==="approving")&&cr&&g&&M("button",{"data-popmelt-approve-suggestion":!0,type:"button",disabled:Ye||!Fe,style:{...lm(W),padding:ms.padding,gap:ms.gap,background:"var(--popmelt-approval-background, var(--popmelt-thread-action))",color:"var(--popmelt-thread-on-action)",opacity:Ye||!Fe?.5:1,transition:"background-color 120ms ease, opacity 120ms ease",cursor:Ye||!Fe?"default":"pointer"},onClick:async()=>{if(!(Ye||!Fe)){We(!0),se("");try{await g(Ee.submissionId,Ee.revision)}catch(je){se(je instanceof Error?je.message:"Approval failed. Review the updated suggestion and try again.")}finally{await _t({applyUnsettled:!0}),We(!1)}}},children:[h(du,{size:ms.iconSize,strokeWidth:1.5,"aria-hidden":"true"}),Ye||!Fe?"Sending\u2026":"Approve and send"]}),Ae&&h("div",{role:"alert",children:Ae})]}),De.filter(je=>je.status!=="applied").map(je=>h("fieldset",{disabled:!w,style:{border:0,padding:0,margin:0,minWidth:0},children:h(jS,{proposal:je,timestamp:L.timestamp,bridgeUrl:n,accentColor:$e,busy:gt,onApplySelected:Pn,onDismiss:()=>He(je,"dismiss"),onReviewUnderlying:()=>{je.underlyingProposalId&&Ln("> Kicked off decision review",void 0,{memoryReviewProposalId:je.underlyingProposalId})},hideModelSenderUntilHover:Mo!==`proposal:${je.id}`})},je.id))]})},jl(L))}),l&&M("div",{style:{padding:0,display:"flex",flexDirection:"column",gap:8},children:[(!s||nn.approvals.some(L=>L.jobId===c&&L.phase))&&h(at,{children:_n.map((L,te)=>{if(L.kind==="approval"){let Re=nn.approvals.find(De=>De.id===L.approval.id),Te=L.approval.status==="pending"&&Re?.status!=="pending"?Re??L.approval:L.approval;return h(vw,{approval:Te,accentColor:$e,connected:w&&nn.connected,decide:De=>nn.decide(Te,De)},Te.id)}if(L.kind==="tool_group")return null;if(L.kind==="file_content")return h(vS,{file:L.file,content:L.content,ext:L.ext,isPlan:L.isPlan,onAccept:L.isPlan&&Ke?()=>Ke(t,"Looks good, please proceed with implementation."):void 0},te);if(L.kind==="thinking")return h("div",{style:{fontSize:12,color:"var(--popmelt-thread-muted)",fontStyle:"italic",lineHeight:1.4,whiteSpace:"pre-wrap",wordBreak:"break-word",maxHeight:80,overflowY:"auto"},children:L.text},te);if(L.kind==="status")return h("div",{style:{color:"var(--popmelt-thread-muted)",fontSize:12,fontStyle:"italic",lineHeight:1.4,wordBreak:"break-word"},children:L.text},te);if(L.kind==="orientation")return h(yh,{orientation:L.orientation},te);let be=Ra(L.text);return be?h("div",{style:{fontSize:14,letterSpacing:"0.14px",lineHeight:1.3,wordBreak:"break-word"},children:Tr(be)},te):null})}),M("div",{style:{alignItems:"center",display:"flex",justifyContent:"space-between",minHeight:24},children:[h("div",{style:{alignItems:"center",display:"flex",gap:6},children:s?M(at,{children:[h(cu,{size:12,strokeWidth:2.25,color:$e,style:{verticalAlign:"middle",flexShrink:0,opacity:.5}}),h("span",{style:{color:"var(--popmelt-thread-muted)",fontSize:12,fontStyle:"italic"},children:nn.approvals.some(L=>L.jobId===c&&L.phase==="parked")?"Parked \xB7 waiting for permission":nn.approvals.some(L=>L.jobId===c&&L.phase==="queued")?"Queued next":`Queued${d?` ${d}`:""}`})]}):M(at,{children:[lt?h("span",{style:{color:"var(--popmelt-thread-muted-strong)",fontSize:12},children:"Waiting for permission"}):h(lS,{color:"var(--popmelt-thread-muted-strong)"}),Gn.map(L=>h(xh,{receipt:L,animateCount:!0},L.kind)),ln&&h(Ih,{receipt:ln,accentColor:$e})]})}),y&&h("button",{onClick:y,style:{background:"none",border:"1px solid var(--popmelt-thread-hairline)",borderRadius:16,color:"var(--popmelt-thread-muted-strong)",cursor:"pointer",fontFamily:"inherit",fontSize:12,padding:"4px 10px"},children:"Cancel"})]})]}),h(gw,{messages:dr,renderMessage:L=>h(kh,{msg:L,index:ye.indexOf(L),bridgeUrl:n,accentColor:$e,onLightbox:Rn,hideSender:!0,hideTimestamp:!0}),onChange:w?async(L,te)=>{let be=await Qt(`${n}/reply/queued`,{method:te===null?"DELETE":"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:t,jobId:L.jobId,submissionId:L.lifecycle?.submissionIds[0],expectedReply:L.replyToQuestion,reply:te})});if(!be.ok){let Re=await be.json().catch(()=>({}));throw new Error(Re.error??"Could not update queued message.")}await _t({applyUnsettled:!0})}:void 0}),!l&&D&&M("div",{style:{padding:"8px 16px",backgroundColor:"rgba(239, 68, 68, 0.06)",fontSize:12,color:"#dc2626",lineHeight:1.4},children:[h("span",{style:{fontWeight:600},children:"Error: "}),D]})]}),!Ke&&k&&M("div",{role:"status",style:{alignItems:"center",color:"var(--popmelt-thread-muted)",display:"flex",fontSize:12,gap:4,justifyContent:"center",letterSpacing:"0.12px",lineHeight:1.35,padding:"16px 12px",whiteSpace:"nowrap"},children:[h(wg,{"aria-hidden":"true",size:12,strokeWidth:1.5}),h("span",{children:k})]}),Ke&&M("div",{style:{bottom:0,left:0,position:"absolute",right:0,zIndex:1},children:[Je&&h(sm,{visible:ie,provider:K,availableProviders:q,models:S,modelIndex:ee,agentSettings:G,onProviderChange:H,onModelChange:j,onAgentSettingsChange:P,onMouseEnter:()=>{Oe.current=!0,en()},onMouseLeave:()=>{Oe.current=!1,$r()},onScrubChange:Ui}),!ot&&ye.length>0&&h("button",{type:"button","data-scroll-to-bottom":!0,"aria-label":"Scroll to latest message",title:"Scroll to latest message",onClick:()=>{Ot.current&&Ot.current.scrollTo({top:Ot.current.scrollHeight,behavior:"smooth"})},style:{alignItems:"center",background:"var(--popmelt-thread-surface)",border:"1px solid var(--popmelt-thread-border)",borderRadius:999,bottom:"calc(100% + 8px)",color:"var(--popmelt-thread-muted-strong)",cursor:"pointer",display:"flex",height:30,justifyContent:"center",left:"50%",padding:0,position:"absolute",transform:"translateX(-50%)",width:30,zIndex:2},children:h(Sg,{"aria-hidden":"true",size:16,strokeWidth:1.75})}),dt.length>0&&h("div",{style:{position:"absolute",bottom:"100%",display:"flex",gap:4,padding:"6px 5px 5px",flexWrap:"wrap"},children:dt.map((L,te)=>M("span",{onClick:()=>b(be=>be.filter((Re,Te)=>Te!==te)),onMouseEnter:be=>{let Re=be.currentTarget.querySelector("[data-chip-x]");Re&&(Re.style.color="#fff")},onMouseLeave:be=>{let Re=be.currentTarget.querySelector("[data-chip-x]");Re&&(Re.style.color="rgba(255,255,255,0.4)")},style:{display:"inline-flex",alignItems:"center",gap:4,fontSize:10,color:"#fff",backgroundColor:$e,backdropFilter:"blur(4px)",borderRadius:8,padding:"2px 6px 2px 6px",cursor:"pointer"},children:["image ",te+1,h("span",{"data-chip-x":!0,style:{fontSize:12,lineHeight:1,color:"rgba(255,255,255,0.4)"},children:"\xD7"})]},te))}),M("div",{style:nS,children:[h("textarea",{ref:Jt,"data-popmelt-reply":!0,autoFocus:!sn,rows:1,value:Pe,onChange:L=>{rt.current={selectionStart:L.target.selectionStart,selectionEnd:L.target.selectionEnd,selectionDirection:L.target.selectionDirection},Ad(t,L.target.value,void 0,rt.current),Wt(L.target.value),xn(wt.current,L.target.value)},onSelect:L=>{rt.current={selectionStart:L.currentTarget.selectionStart,selectionEnd:L.currentTarget.selectionEnd,selectionDirection:L.currentTarget.selectionDirection},Ad(t,L.currentTarget.value,void 0,rt.current)},onFocus:()=>{wt.current=!0,xn(!0,Pe)},onBlur:()=>{wt.current=!1,xn(!1,Pe)},onKeyDown:hr,onPaste:pr,placeholder:Me,style:{width:"100%",minWidth:0,height:34,minHeight:34,padding:"12px 12px 0",fontSize:14,fontFamily:dn,backgroundColor:"transparent",color:"var(--popmelt-thread-primary)",border:"none",outline:"none",lineHeight:1.3,boxSizing:"border-box",overflowX:"hidden",overflowY:"auto",resize:"none",whiteSpace:"pre-wrap",wordBreak:"break-word"}}),M("div",{style:{alignItems:"center",display:"flex",justifyContent:"space-between",padding:"10px 12px"},children:[h(dm,{provider:K,open:ie,onClick:()=>{yt(),en(),ie?lr():wn()},onMouseEnter:()=>{ge.current=!0,ie?en():oi()},onMouseLeave:()=>{ge.current=!1,$r()}}),h("button",{type:"button","data-popmelt-reply-action":!0,onClick:ur,disabled:!Pe.trim(),"aria-label":"Send reply",style:{display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,background:"none",border:"none",cursor:Pe.trim()?"pointer":"default",color:"var(--popmelt-thread-primary)",opacity:Pe.trim()?1:.12,flexShrink:0},children:h("span",{style:{alignItems:"center",display:"flex",height:16,justifyContent:"center",width:16},children:h(du,{"aria-hidden":"true",fill:"currentColor",size:Pe.trim()?16:14,strokeWidth:1.5,style:{transform:"rotate(-45deg)",transition:"width 120ms ease, height 120ms ease"}})})})]})]})]})]})]})]}),qe&&h(hS,{src:qe,onClose:()=>Nn(null)})]})}function Ao(e,t){let n=new Set(e.annotationIds);if(n.size===0&&e.threadId)for(let r of t)r.threadId===e.threadId&&n.add(r.id);return[...n]}function DS(e,t){switch(t.type){case"restore_thread":return e.openThreadId||e.imprintStashedThreadId||e.toolbarSuspendedThreadId?e:{openThreadId:t.toolbarExpanded&&!t.imprintActive?t.threadId:null,imprintStashedThreadId:t.imprintActive?t.threadId:null,toolbarSuspendedThreadId:!t.toolbarExpanded&&!t.imprintActive?t.threadId:null};case"enter_imprint":return t.preserveOpenThread||!e.openThreadId?e:{openThreadId:null,imprintStashedThreadId:e.openThreadId,toolbarSuspendedThreadId:null};case"leave_imprint":return e.openThreadId?e.imprintStashedThreadId?{...e,imprintStashedThreadId:null}:e:e.imprintStashedThreadId?{openThreadId:e.imprintStashedThreadId,imprintStashedThreadId:null,toolbarSuspendedThreadId:null}:e;case"open_thread":return{openThreadId:t.threadId,imprintStashedThreadId:null,toolbarSuspendedThreadId:null};case"collapse_toolbar":return e.openThreadId?{...e,openThreadId:null,toolbarSuspendedThreadId:e.openThreadId}:e;case"expand_toolbar":return e.toolbarSuspendedThreadId?{...e,openThreadId:e.toolbarSuspendedThreadId,toolbarSuspendedThreadId:null}:e;case"close_thread":return{openThreadId:null,imprintStashedThreadId:null,toolbarSuspendedThreadId:null}}}function HS(e){let t=e.chromeHoverSurface==="toolbar"&&e.chromeHoverPhase==="visible",n=e.toolbarSources.has("tool-menu")||e.toolbarSources.has("popmelt-guide")||e.toolbarSources.has("peer-details"),r=e.activeTool==="model";return{threadTemporarilyHidden:!e.toolbarExpanded||t||!!e.peerPlanePeeking,projectPanelTemporarilyHidden:!!e.peerPlanePeeking||n||e.chromeHoverSurface==="job-stack",statusInteractionSuppressed:!!e.peerPlanePeeking||n||t||r}}function OS(e,t,n=[]){let r=new Set,o=[];for(let i of e){let a=i.threadId;!a||t.has(a)||r.has(a)||(r.add(a),o.push(a))}for(let i of n){let a=i.threadId;t.has(a)||r.has(a)||(r.add(a),o.push(a))}return o}function NS(e,t,n){if(e.length<2)return;let r=e.indexOf(t);if(!(r<0))return e[(r+n+e.length)%e.length]}function Mh(e,t){return t?e.ownerParticipantId?e.ownerParticipantId===t.participantId:t.isHost===!0:!0}function FS(e,t,n,r){let o=J(e),i=J(void 0);_(()=>{o.current!==e&&(o.current=e,n()),t&&(t.id!==i.current?.id||t.request!==i.current?.request)&&(i.current=t,r(t.id)),t||(i.current=void 0)},[e,t,n,r])}var _S=[],jd="devtools-provider",Nl="devtools-model",zd="devtools-model-id",Rh="devtools-agent-settings",Dd="devtools-open-thread-id",Fl="popmelt-dismissed-thread-ids",Hd="#000000",WS=20,BS=[],JS=[];function Od(e){let t=e.dispose?.();t&&Promise.resolve(t).catch(()=>{})}function qS(e){let t=J(new Map),[n,r]=$([]);return _(()=>{let o=t.current,i=new Map,a=[];for(let s of e){if(i.has(s.id))continue;let d=o.get(s.id);if(d?.configurationKey===s.configurationKey){i.set(s.id,d),a.push(s);continue}d&&Od(d.runtime),i.set(s.id,{configurationKey:s.configurationKey,runtime:s.activate()}),a.push(s)}for(let[s,d]of o)i.has(s)||Od(d.runtime);t.current=i;let l=a.map(s=>i.get(s.id)?.runtime).filter(s=>!!s);r(s=>s.length===l.length&&s.every((d,c)=>d===l[c])?s:l)},[e]),_(()=>()=>{for(let o of t.current.values())Od(o.runtime);t.current.clear()},[]),n}function US(e,t=96){let n=e.replace(/\s+/g," ").trim();return n.length>t?`${n.slice(0,t-1)}...`:n}function YS(e){let t=e.annotations.map(a=>a.instruction?.trim()?a.instruction.trim():a.imageCount?`${a.imageCount} image${a.imageCount===1?"":"s"}`:`${a.type} annotation`),n=e.styleModifications.flatMap(a=>a.changes.map(l=>`${a.element?.reactComponent||a.element?.tagName||a.selector}: ${l.property} ${l.original||"unset"} -> ${l.modified||"unset"}${l.token?` [${l.token}]`:""}`)),r=(e.textModifications??[]).map(a=>`${a.element?.reactComponent||a.element?.tagName||a.selector}: text ${a.original||"empty"} -> ${a.modified||"empty"}`),o=(e.spacingTokenChanges??[]).map(a=>`${a.tokenName}: ${a.originalPx}px -> ${a.newPx}px`),i=[...n,...r,...o,...t].map(a=>US(a)).filter(Boolean);return i.length===0?"Annotation":i.length<=3?i.join("; "):`${i.slice(0,3).join("; ")}; +${i.length-3} more`}function _l(e){if(typeof window>"u"||!e)return new Set;try{let t=JSON.parse(localStorage.getItem(Ei(Fl,e))||"[]");return new Set(Array.isArray(t)?t.filter(n=>typeof n=="string"):[])}catch{return new Set}}function $h(e,t){if(!(typeof window>"u"||!t))try{let n=_l(t);for(let r of e)n.add(r);localStorage.setItem(Ei(Fl,t),JSON.stringify(Array.from(n).slice(-200)))}catch{}}function XS(e){let t=e.getBoundingClientRect();return t.bottom<0||t.top>window.innerHeight||t.right<0||t.left>window.innerWidth}function KS(e){for(let t of e){let n=tn(t);if(n){XS(n)&&n.scrollIntoView({behavior:"smooth",block:"center",inline:"nearest"});return}}}async function Nd(e,t){t?await t(e):(window.history.pushState(window.history.state,"",e),window.dispatchEvent(new PopStateEvent("popstate",{state:window.history.state}))),await new Promise(n=>{requestAnimationFrame(()=>requestAnimationFrame(()=>{setTimeout(n,600)}))})}function VS(e,t,n,r,o){if(t==="copilot"||t==="omp"||e==="copilot"||e==="omp")return 0;let i=vc(e,r),a=vc(t,o);if(a.length===0)return 0;let l=i.findIndex(d=>d.index===n),s=l>=0?l:a.length-1;return a[Math.min(s,a.length-1)].index}function GS({children:e,enabled:t=process.env.NODE_ENV==="development",multiplayer:n=!1,...r}){let o=Ir(Ka),[i,a]=$([]),l=U(p=>(a(u=>u.includes(p)?u:[...u,p]),()=>a(u=>u.filter(f=>f!==p))),[]),s=we(()=>({isEnabled:t,registerSubjectAdapter:l}),[t,l]),d=we(()=>[...r.subjectAdapters??[],...i],[r.subjectAdapters,i]),c=h(QS,{...r,multiplayer:n,enabled:!0,registeredSubjectAdapters:i});return M(Kh.Provider,{value:s,children:[e,t&&(o?n?c:null:h(Oy,{multiplayer:n,projectId:r.projectId,adapters:d,children:c}))]})}function QS({enabled:e=!0,multiplayer:t=!1,registeredSubjectAdapters:n,bridgeUrl:r=typeof window<"u"?window.__POPMELT_BRIDGE_URL__??"http://localhost:1111":"http://localhost:1111",projectId:o,navigate:i,subjectAdapters:a=BS,extensions:l=JS,imageAnnotation:s=!0,videoAnnotation:d=!0,getCommentMeta:c}){let p=typeof window<"u"?o??window.__POPMELT_PROJECT_ID__??null:null,[u,f]=$(p),[m,g]=$(!!p),y=u,w=J(null),k=J(!1),[D,I]=Vh(w,k),O=Ir(tc),R=Ir(Ka),[F,Q]=$(()=>new Set),[N,K]=$(0),q=J(0);_(()=>{if(!N)return;let x=window.setTimeout(()=>K(0),220);return()=>window.clearTimeout(x)},[N]);let S=we(()=>R?.participantId?Gh(nc(D,R.pendingSubmissions??[],R.participantId,F),R.annotationColor):D,[D,R?.pendingSubmissions,R?.participantId,R?.annotationColor,F]);_(()=>{if(!F.size)return;let x=nc(D,R?.pendingSubmissions??[],R?.participantId??""),T=new Set([...F].filter(B=>{let V=x.annotations.find(oe=>oe.id===B);return V&&["pending","sending"].includes(V.status??"pending")}));T.size!==F.size&&Q(T)},[D,R?.pendingSubmissions,R?.participantId,F]);let ee=!R||R.canReadThreads,G=!R||R.canReply,H=!R||R.canManageThreads,j=qS(l),P=we(()=>{for(let x=j.length-1;x>=0;x-=1){let T=j[x]?.imageRecognition;if(T)return T}},[j]),E=we(()=>j.flatMap(x=>x.subjectAdapters??[]),[j]),C=we(()=>{for(let x=j.length-1;x>=0;x-=1){let T=j[x]?.videoTracking;if(T)return T}},[j]),X=we(()=>{for(let x=j.length-1;x>=0;x-=1){let T=j[x]?.videoSegmentation;if(T)return T}},[j]),ce=we(()=>!P||s===!1?s:{...typeof s=="object"?s:{},recognition:P},[P,s]),ue=we(()=>[...E,...a,...n],[E,n,a]),Y=Fy({enabled:e,active:S.isAnnotating||S.annotations.some(x=>x.target?.adapter==="see:image"),configuration:ce,adapters:ue}),he=we(()=>!C&&!X||d===!1?d:{...typeof d=="object"?d:{},...C?{tracking:C}:{},...X?{segmentation:X}:{}},[X,C,d]),W=_y({enabled:e,configuration:he,adapters:Y}),fe=(!e||ce===!1||ue.some(x=>x.surfaceKind==="image"||x.id==="see:image")||Y.some(x=>x.surfaceKind==="image"||x.id==="see:image"))&&(!e||he===!1||Y.some(x=>x.surfaceKind==="video"||x.id==="see:video")||W.some(x=>x.surfaceKind==="video"||x.id==="see:video")),re=we(()=>new Gm(W),[W]),[pe,ye]=$(!1),Be=J(re);Be.current=re,_(()=>{let x=!1;return ye(!1),fe?(re.whenReady().then(()=>{x||ye(!0)}),()=>{x=!0}):()=>{}},[fe,re]),_(()=>()=>re.destroy(),[re]);let Ee=R?.bindSubjects;_(()=>Ee?.(re),[Ee,re]);let z=Og(r,e&&!!y,y),Ne=z.dismissQuestion,$e=z.clearEvents;_(()=>{p&&(typeof window<"u"&&(window.__POPMELT_PROJECT_ID__=p,rc()),f(p),g(!0))},[p]);let Xe=J(null),Ye=J(null),[We,Ae]=$(null),se=jg()??r,{onCanvasFocusChange:Fe,onCanvasActivity:Ke,inspectingElement:xt,inspectingElements:et}=yy(e&&z.isConnected&&S.isAnnotating,se,{getCommentMeta:c,registry:re,state:S,screenshotOptions:{nativeCapture:x=>oc(se,x),captureSurfaces:()=>re.captureSurfaces()}}),Se=U(x=>oc(se,x),[se]),Ue=U(async()=>{let x=Math.min(1,1200/Math.max(1,window.innerWidth));return Ug(()=>Se({url:window.location.href,clip:{x:window.scrollX,y:window.scrollY,width:window.innerWidth,height:window.innerHeight},scale:x}),async()=>{let[T]=await Zo(document.body,Xe.current,[],{dpr:x,viewportOnly:!0,captureSurfaces:()=>re.captureSurfaces()});return T??null})},[Se,re]),ht=J(new Map),gt=J(new Set),nt=J(!1);_(()=>{if(!se)return;let x=new Set(S.annotations.flatMap(oe=>oe.attachments?.map(ne=>ne.id)??[])),T=gt.current,B=[...x].filter(oe=>!T.has(oe)),V=[...T].filter(oe=>!x.has(oe));gt.current=x,B.length>0&&ic(se,B).catch(()=>{}),V.length>0&&Promise.all(V.map(oe=>is(se,oe).catch(()=>{})))},[se,S.annotations]);let lt=J(new Map),Ht=J(new Map),[,nn]=$(0),[cn,Mn]=$(null),At=J(!1),Pe=as(),Wt=U((x,T,B,V,oe)=>{let ne=[],me=de=>{let ke=URL.createObjectURL(de);return ne.push(ke),ke},le,Ce;V instanceof Map?(Ce=Object.fromEntries(Array.from(V,([de,ke])=>[de,me(ke)])),le=Object.values(Ce)[0]):le=me(V);let ze=oe&&oe.size>0?Object.fromEntries(Array.from(oe,([de,ke])=>[de,ke.map(me)])):void 0;for(Ht.current.get(x)?.objectUrls.forEach(de=>URL.revokeObjectURL(de)),Ht.current.delete(x),Ht.current.set(x,{objectUrls:ne,message:{role:"human",timestamp:Date.now(),jobId:T,feedbackSummary:YS(B),requestText:Ky(B),requestItems:Xy(B),...B.meta?{meta:B.meta}:{},...le?{screenshotUrl:le}:{},...Ce?{screenshotUrls:Ce}:{},...ze?{imageUrls:ze}:{}}});Ht.current.size>WS;){let de=Ht.current.keys().next().value;if(!de)break;Ht.current.get(de)?.objectUrls.forEach(ke=>URL.revokeObjectURL(ke)),Ht.current.delete(de)}nn(de=>de+1)},[]);_(()=>()=>{for(let x of Ht.current.values())x.objectUrls.forEach(T=>URL.revokeObjectURL(T));Ht.current.clear()},[]);let dt=R?.modelSelectionLocked??!1,b=R?.inheritedModelSelection,[ie,ve]=$(()=>typeof window>"u"?"codex":localStorage.getItem(jd)||"codex"),[Je,Mt]=$(()=>{if(typeof window>"u")return 0;let x=localStorage.getItem(Nl);return x&&parseInt(x,10)||0}),Le=dt?b?.provider??"codex":ie,ct=dt?0:Je,[Ve,Bt]=$(()=>{if(typeof window>"u")return{};try{return JSON.parse(localStorage.getItem(Rh)||"{}")}catch{return{}}}),[ge,Oe]=$([]),[tt,wt]=$({}),[rt,ot]=$(0),[rn,qe]=$(!1),[Nn,Rn]=$({}),[Ot,Kn]=$(null),[bn,St]=$(null),[ar,on]=$(null),[xn,Jt]=$("idle"),[to,an]=$(null),Ar=J(null),Mr=U(x=>{let T=Object.entries(x.providers).filter(([,ne])=>ne.available).map(([ne])=>ne);T.length>0&&Oe(T);let B={},V={};for(let[ne,me]of Object.entries(x.providers))me.models?.length&&(B[ne]=me.models),me.mcp&&(V[ne]=me.mcp);let oe=Ar.current;if(oe){let ne=B[oe.provider]?.findIndex(me=>me.id===oe.id);ne!==void 0&&ne>=0&&Mt(ne)}wt(B),Rn(V),qe(!0)},[]),Zt=U(async x=>{if(!z.isConnected)return;let T=await Qh(se,x);T&&Mr(T)},[Mr,z.isConnected,se]);_(()=>{Zt(Le)},[Le,z.capabilitiesVersion,rt,Zt]),_(()=>{if(!z.isConnected){Kn(null),St(null),on(null);return}let x=!1;return fa(se).then(T=>{x||(Kn(T?.version??null),St(T?.projectRoot??null),on(T?.execution??null))}),()=>{x=!0}},[z.isConnected,z.capabilitiesVersion,rt,se]),_(()=>{if(xn==="idle"||xn==="restarting")return;let x=window.setTimeout(()=>{Jt("idle"),an(null)},xn==="ok"?4e3:8e3);return()=>window.clearTimeout(x)},[xn]),_(()=>{if(!dt&&ge.length>0&&!ge.includes(Le)){let x=ge[0];ve(x),localStorage.setItem(jd,x)}},[ge,Le,dt]);let Nt=we(()=>dt?[{id:b?.model??"",label:b?.label??"Waiting for host",source:"static"}]:tt[Le]?.length?tt[Le]:Le==="codex"?[...ac]:Le==="copilot"?[...lc]:Le==="omp"?[...sc]:[...dc],[dt,b?.model,b?.label,tt,Le]),yt=Nt[ct]??Nt[0],en=R?.setHostModelSelection;_(()=>{if(!en||!rn||!z.isConnected||!ge.includes(Le))return;let x=!1,T,B=()=>{x||en({provider:Le,model:yt.id,label:yt.label}).catch(()=>{x||(T=setTimeout(B,2e3))})};return T=setTimeout(B,0),()=>{x=!0,clearTimeout(T)}},[en,rn,z.isConnected,ge,Le,yt.id,yt.label]),Ar.current={provider:Le,id:yt.id};let $n=`${Le}:${yt.id||"default"}`,wn=we(()=>Ve[$n]??{},[Ve,$n]);_(()=>{if(!e||y||m)return;let x=!1;return fetch("/popmelt/status").then(T=>T.ok?T.json():null).then(T=>{if(x)return;let B=typeof window<"u"&&T?.devOrigin===window.location.origin,V=T?.projectId&&(B||T.projectIdVerified===!0)?T.projectId:null;V&&typeof window<"u"&&(window.__POPMELT_PROJECT_ID__=V,rc()),f(V),g(!0)}).catch(()=>{x||g(!0)}),()=>{x=!0}},[e,y,m]),_(()=>{if(dt)return;let x=localStorage.getItem(`${zd}:${Le}`),T=x!==null?Nt.findIndex(V=>V.id===x):Le==="omp"?Nt.findIndex(V=>V.isDefault):-1,B=T>=0?T:ct<Nt.length?-1:0;B<0||B===ct||(Mt(B),localStorage.setItem(Nl,String(B)))},[ct,Nt,Le,dt]);let Rr=U(x=>{if(dt)return;let T=Le,B=x==="codex"?[...ac]:x==="copilot"?[...lc]:x==="omp"?[...sc]:[...dc],V=tt[x]&&tt[x].length>0?tt[x]:B;ve(x),localStorage.setItem(jd,x);let oe=VS(T,x,ct,Nt,V);Mt(oe),localStorage.setItem(Nl,String(oe));let ne=V[oe];ne&&localStorage.setItem(`${zd}:${x}`,ne.id)},[ct,Nt,Le,tt,dt]),lr=U(x=>{if(dt)return;Mt(x),localStorage.setItem(Nl,String(x));let T=Nt[x];T&&localStorage.setItem(`${zd}:${Le}`,T.id)},[Nt,Le,dt]),oi=U(x=>{Bt(T=>{let B={...T,[$n]:x};return localStorage.setItem(Rh,JSON.stringify(B)),B})},[$n]),[$r,Ui]=$(()=>Zh()),[Ft,Sn]=$(null),Pr=we(()=>Ft?new Set(Ft.annotationIds):null,[Ft]),Lr=U(()=>Sn(null),[]),Fn=U(x=>{Ui(x),ef(x)},[]),fn=U(x=>Nd(x,i),[i]),[sr,_t]=$(()=>({openThreadId:null,imprintStashedThreadId:null,toolbarSuspendedThreadId:null})),{openThreadId:He,imprintStashedThreadId:no,toolbarSuspendedThreadId:jt}=sr,Pn=J(0),Vn=J({toolbarExpanded:S.isAnnotating,imprintActive:S.activeTool==="model"});Vn.current={toolbarExpanded:S.isAnnotating,imprintActive:S.activeTool==="model"};let[Kt,_n]=$(0),qt=U(x=>{(x.type==="open_thread"||x.type==="close_thread")&&(Pn.current+=1),_t(T=>DS(T,x))},[]),[Gn,ln]=$(null),dr=J(null),[st,cr]=$(new Set),[Rt,In]=$(null),[Yi,Mo]=$(null),[Ln,ur]=$(new Set),[pr,hr]=$(new Set),[fr,jr]=$(new Set),[jn,sn]=$({}),Qn=we(()=>new Set(Object.keys(jn)),[jn]),[Ro,mr]=$(null);_(()=>{In(null),y&&(cr(_l(y)),In(y),localStorage.removeItem(Fl))},[y]),_(()=>{if(R||!y||!z.isConnected)return;let x=!1;ln(null);let T=Pn.current,B=Ei(Dd,y),V=localStorage.getItem(B);if(localStorage.removeItem(Dd),!V){ln(y);return}return Qt(`${se}/thread/${encodeURIComponent(V)}`).then(oe=>{x||T!==Pn.current||(oe.ok?qt({type:"restore_thread",threadId:V,...Vn.current}):localStorage.removeItem(B))}).catch(()=>{}).finally(()=>{x||ln(y)}),()=>{x=!0}},[qt,z.isConnected,y,se,R]),_(()=>{if(R||!y||Gn!==y)return;let x=Ei(Dd,y),T=He??no??jt;T?localStorage.setItem(x,T):localStorage.removeItem(x)},[y,no,He,Gn,jt,R]);let It=R?`popmelt-in-flight-jobs:${y}:participant:${R.participantId}`:"popmelt-in-flight-jobs",[Me,L]=$(()=>{try{let x=localStorage.getItem(It);return x?JSON.parse(x):{}}catch{return{}}}),[te,be]=$(new Map);_(()=>{try{Object.keys(Me).length>0?localStorage.setItem(It,JSON.stringify(Me)):localStorage.removeItem(It)}catch{}},[Me,It]),_(()=>{let x=T=>{if(T.key===It)try{let B=T.newValue?JSON.parse(T.newValue):{};L(B)}catch{}};return window.addEventListener("storage",x),()=>window.removeEventListener("storage",x)},[It]);let Re=J(new Map),Te=J(new Map),De=J(new Map),Ge=U((x,T,B)=>{let V=Te.current.get(x)??[],oe=De.current.get(x);be(ne=>tf(ne,x,T,B,V,oe))},[]);_(()=>{for(let[x,T]of Object.entries(Me)){let B=Ao(T,S.annotations);B.length>0&&Re.current.set(x,B);let V=new Set(T.styleSelectors);for(let oe of B){let ne=S.annotations.find(me=>me.id===oe);if(ne&&(ne.linkedSelector&&V.add(ne.linkedSelector),ne.groupId))for(let me of S.annotations)me.groupId===ne.groupId&&me.linkedSelector&&V.add(me.linkedSelector)}V.size>0&&Te.current.set(x,Array.from(V)),T.threadId&&De.current.set(x,T.threadId)}},[Me,S.annotations]);let ut=J("");_(()=>{if(S.annotations.length===0)return;let x=Object.keys(Me).sort().join(",");if(x===ut.current)return;ut.current=x;let T=new Set;for(let V of Object.values(Me))for(let oe of Ao(V,S.annotations))T.add(oe);let B=S.annotations.flatMap(V=>{if(T.has(V.id)||V.threadId)return[];let oe=V.status??"pending";return oe==="in_flight"?[V.id]:oe==="pending"&&V.captured?[V.id]:[]});B.length>0&&I({type:"SET_ANNOTATION_STATUS",payload:{ids:B,status:"dismissed"}})},[S.annotations,Me,I]);let je=we(()=>{let x=new Set;for(let T of Object.values(Me))for(let B of Ao(T,S.annotations))x.add(B);return x},[Me,S.annotations]),Vt=we(()=>bu(z.events),[z.events]),$o=we(()=>{let x=new Map,T={focus_set:"Investigating",focus_shifted:"Refocusing",evidence_updated:"Checking",hypothesis_changed:"Reframing",assumption_abandoned:"Reconsidering",uncertainty_identified:"Clarifying",next_observation_selected:"Checking"};for(let B of z.events){if(B.type!=="orientation")continue;let V=String(B.data.jobId??""),oe=B.data.orientation,ne=oe?.transition?T[oe.transition]:void 0;if(!V||!ne)continue;let me=Me[V],le=me?Ao(me,S.annotations):Re.current.get(V)??[];for(let Ce of le)x.set(Ce,ne)}for(let B of Vt)if(Me[B])for(let V of Ao(Me[B],S.annotations))x.set(V,"Approval needed");return x},[z.events,Me,S.annotations,Vt]),gr=we(()=>{let x=new Set(z.activeJobIds),T=new Set;for(let[B,V]of Object.entries(Me))if(x.has(B))for(let oe of Ao(V,S.annotations))T.add(oe);return T},[Me,z.activeJobIds,S.annotations]),kn=we(()=>nf(z.events,z.lastCompletedJobId),[z.events,z.lastCompletedJobId]),Zn=we(()=>{let x=new Set(cc(Object.keys(Me),z.activeJobIds,kn)),T=Object.entries(Me).filter(([oe])=>x.has(oe)),B=T.length,V=new Map;return T.forEach(([,oe],ne)=>{let me=`(${ne+1}/${B})`;for(let le of Ao(oe,S.annotations))V.set(le,me)}),V},[Me,z.activeJobIds,kn,S.annotations]),Xi=we(()=>{let x=new Set(z.activeJobIds),T=new Set(z.activeJobIds.flatMap(V=>{let oe=z.activeJobThreads[V]??Me[V]?.threadId;return oe?[oe]:[]})),B=rf(te,T);for(let[V,oe]of Object.entries(Me))if(x.has(V)&&!(!oe.global&&oe.routePathnames?.length&&!oe.routePathnames.includes(Pe)))for(let ne of oe.styleSelectors)B.add(ne);return B},[Me,z.activeJobIds,z.activeJobThreads,te,Pe]),La=we(()=>{let x=new Map;for(let[T,B]of Object.entries(Me))if(B.threadId&&!(!B.global&&B.routePathnames?.length&&!B.routePathnames.includes(Pe)))for(let V of B.styleSelectors)x.set(V,T);return x},[Me,Pe]),ja=we(()=>{let x=new Set(z.activeJobIds),T=new Map;for(let[B,V]of Object.entries(Me))if(x.has(B)&&!(!V.global&&V.routePathnames?.length&&!V.routePathnames.includes(Pe))){for(let oe of V.styleSelectors)T.set(oe,V.color);for(let oe of Ao(V,S.annotations)){let ne=S.annotations.find(me=>me.id===oe);if(ne&&(ne.linkedSelector&&T.set(ne.linkedSelector,V.color),ne.groupId))for(let me of S.annotations)me.groupId===ne.groupId&&me.linkedSelector&&T.set(me.linkedSelector,V.color)}}return T},[Me,z.activeJobIds,S.annotations,Pe]),Ki=J(S.annotations);Ki.current=S.annotations;let Vi=J(S.styleModifications);Vi.current=S.styleModifications;let ii=J(Me);ii.current=Me,_(()=>{let x=null,T=0,B=()=>{let ne=window.location.pathname;nu(Vi.current.filter(me=>!me.pathname||me.pathname===ne))},V=()=>{if(Object.keys(ii.current).length>0)return;let ne=Ki.current,me=Vi.current,le=[],Ce=[];for(let ze of ne){if(!ze.linkedSelector||!ze.linkedSelector.startsWith("[data-pm=")||ze.pathname||ze.captured||ze.status&&ze.status!=="pending")continue;let de=tn(ze.linkedSelector);!de&&ze.elements?.[0]?.selector&&(de=tn(ze.elements[0].selector)),de||le.push(ze.linkedSelector)}for(let ze of me)ze.pathname&&ze.pathname!==window.location.pathname||eg(ze)||Ce.push(ze.selector);(le.length>0||Ce.length>0)&&I({type:"CLEANUP_ORPHANED",payload:{linkedSelectors:le,styleSelectors:Ce}})},oe=xu(ne=>{ne.some(me=>me.addedNodes.length>0)&&(window.cancelAnimationFrame(T),T=window.requestAnimationFrame(B)),ne.some(me=>me.removedNodes.length>0)&&(x&&clearTimeout(x),x=setTimeout(V,3e3))});return()=>{oe.disconnect(),window.cancelAnimationFrame(T),x&&clearTimeout(x)}},[I]);let ai=J(typeof window<"u"?window.location.pathname:"/");_(()=>{let x=V=>{if(At.current)return;let oe=window.location.pathname;if(V===oe)return;let ne=Ki.current.filter(le=>le.pathname===V&&(le.status??"pending")==="pending");if(console.log(`[Popmelt] Navigation from ${V} \u2192 ${oe}, ${ne.length} pending annotations on departing page`),ne.length===0)return;let me=Xe.current;if(!me){console.warn("[Popmelt] No canvas ref for capture-on-leave");return}if(Zo(document.body,me,ne,{dpr:1,captureSurfaces:()=>Be.current.captureSurfaces()}).then(le=>pl(le)).then(le=>{le?(lt.current.set(V,le),console.log(`[Popmelt] Cached screenshot for ${V} (${(le.size/1024).toFixed(0)}KB)`)):console.warn(`[Popmelt] Capture-on-leave produced no blob for ${V}`)}).catch(le=>{console.warn("[Popmelt] Capture-on-leave failed:",le)}),lt.current.size>20){let le=[...lt.current.entries()];lt.current=new Map(le.slice(-10))}},T=V=>{let oe=V.detail?.prevPath;oe&&(x(oe),ai.current=window.location.pathname)},B=()=>{let V=ai.current;x(V),ai.current=window.location.pathname};return window.addEventListener("popmelt:locationchange",T),window.addEventListener("popstate",B),()=>{window.removeEventListener("popmelt:locationchange",T),window.removeEventListener("popstate",B)}},[]),_(()=>{z.lastCompletedJobId&&z.lastCompletedJobId in Me&&L(x=>{let{[z.lastCompletedJobId]:T,...B}=x;return B})},[z.lastCompletedJobId,Me]);let En=J(new Set),Po=J(!1);_(()=>{if(!z.isConnected){Po.current=!1;return}if(Po.current)return;Po.current=!0;let x={...ii.current};fa(se).then(async T=>{if(!T)return;let B=T.activeJobs??[],V=T.recentJobs??[],oe=[...B,...T.queuedJobs??[]],ne=new Set(oe.map(le=>le.id)),me=new Set;for(let le of Object.values(x))if(le.annotationIds)for(let Ce of le.annotationIds)me.add(Ce);for(let le of S.annotations){let Ce=le.status??"pending";(Ce==="sending"||Ce==="in_flight"||le.captured&&le.threadId&&(le.replyCount??0)===0)&&me.add(le.id)}L(le=>{let Ce={...le},ze=Date.now();for(let ke of Object.keys(Ce)){if(ke.startsWith("_pending_")){let pt=parseInt(ke.replace(/^_pending_(?:reply_)?/,""),10);!isNaN(pt)&&ze-pt>3e4&&delete Ce[ke];continue}ke in x&&!ne.has(ke)&&(T.queuedJobs!==void 0||V.some(pt=>pt.id===ke))&&delete Ce[ke]}for(let ke of oe)if(!Ce[ke.id]&&(ke.annotationIds?.length||ke.threadId)){let pt=ke.kind,Dt=Array.from(new Set((ke.annotationIds??[]).map(Br=>S.annotations.find(br=>br.id===Br)?.pathname||Pe).filter(Boolean)));Ce[ke.id]={annotationIds:ke.annotationIds??[],styleSelectors:[],color:pt==="project_model"&&ke.standalone===!0?Hd:ke.color??"#888",threadId:ke.threadId,kind:pt,routePathnames:Dt.length>0?Dt:void 0,global:pt==="synthesize"||pt==="project_model"&&ke.standalone===!0}}let de=new Set;for(let ke of V)if(ke.annotationIds)for(let pt of ke.annotationIds)de.add(pt);for(let ke of Object.keys(Ce)){if(!ke.startsWith("_pending_"))continue;let pt=Ce[ke];pt&&pt.annotationIds.some(Dt=>de.has(Dt))&&delete Ce[ke]}return Ce});for(let le of V)if(le.annotationIds?.length&&le.annotationIds.some(Ce=>me.has(Ce))&&!En.current.has(le.id)){if(le.status==="error"){En.current.add(le.id),I({type:"MARK_ANNOTATIONS_FAILED",payload:{ids:le.annotationIds,threadId:le.threadId}});continue}if(le.status==="done")try{let Ce=await uc(se,le.id),ze=Ce?.events.find(ke=>ke.type==="done"),de=Ce?.events.find(ke=>ke.type==="question");En.current.add(le.id),de&&typeof de.question=="string"?I({type:"SET_ANNOTATION_QUESTION",payload:{ids:le.annotationIds,question:de.question,threadId:de.threadId??le.threadId??""}}):ze&&Array.isArray(ze.resolutions)&&ze.resolutions.length>0?I({type:"APPLY_RESOLUTIONS",payload:{resolutions:ze.resolutions,threadId:ze.threadId??void 0,jobId:le.id}}):I({type:"MARK_ANNOTATIONS_REPLIED",payload:{ids:le.annotationIds,threadId:ze?.threadId??le.threadId,jobId:le.id}})}catch{En.current.add(le.id);let Ce=z.pendingQuestions.find(ze=>ze.jobId===le.id);I(Ce?{type:"SET_ANNOTATION_QUESTION",payload:{ids:le.annotationIds,question:Ce.question,threadId:Ce.threadId}}:{type:"MARK_ANNOTATIONS_REPLIED",payload:{ids:le.annotationIds,threadId:le.threadId,jobId:le.id}})}}})},[z.isConnected,z.pendingQuestions,se,I,S.annotations,Pe]),_(()=>{let x=z.events.filter(T=>T.type==="done");for(let T of x){let B=T.data.jobId;if(En.current.has(B))continue;if(Sd(z.events,B)==="Has a question"){Ge(B,"waiting_input","Question");let oe=z.pendingQuestions.find(ze=>ze.jobId===B),ne=[...z.events].reverse().find(ze=>ze.type==="question"&&ze.data.jobId===B),me=Array.isArray(T.data.annotationIds)?T.data.annotationIds:Array.isArray(ne?.data.annotationIds)?ne.data.annotationIds:Me[B]?.annotationIds??Re.current.get(B)??[],le=oe?.question??(typeof ne?.data.question=="string"?ne.data.question:void 0),Ce=oe?.threadId??(typeof ne?.data.threadId=="string"?ne.data.threadId:void 0)??(typeof T.data.threadId=="string"?T.data.threadId:void 0);le&&Ce&&me.length>0&&(En.current.add(B),I({type:"SET_ANNOTATION_QUESTION",payload:{ids:me,question:le,threadId:Ce}}));continue}En.current.add(B),Ge(B,"resolved",Sd(z.events,B));let V=Te.current.get(B)??Me[B]?.styleSelectors??[];if(V.length>0&&I({type:"SETTLE_CAPTURED_STYLES",payload:{selectors:V}}),Array.isArray(T.data.resolutions)&&T.data.resolutions.length>0)I({type:"APPLY_RESOLUTIONS",payload:{resolutions:T.data.resolutions,threadId:T.data.threadId,jobId:B}});else{let oe=Array.isArray(T.data.annotationIds)?T.data.annotationIds:Me[B]?.annotationIds??Re.current.get(B)??[];oe.length>0&&I({type:"MARK_ANNOTATIONS_REPLIED",payload:{ids:oe,threadId:T.data.threadId,jobId:B}})}}},[z.events,z.pendingQuestions,I,Me,Ge]),_(()=>{let x=z.events.filter(T=>T.type==="error");for(let T of x){let B=T.data.jobId;if(En.current.has(B))continue;En.current.add(B),Ge(B,"failed","Failed");let V=Array.isArray(T.data.annotationIds)?T.data.annotationIds:Me[B]?.annotationIds??Re.current.get(B)??[];V.length!==0&&I({type:"MARK_ANNOTATIONS_FAILED",payload:{ids:V,threadId:T.data.threadId}})}},[z.events,I,Me,Ge]);let zr=J("__uninitialized__"),Dr=R?.participantId,li=R?.isHost,er=`${y??"pending"}:participant:${Dr??"standalone"}`,[si,di]=$(null);_(()=>{if(!z.isConnected){zr.current="__uninitialized__";return}if(!pe||Rt!==y)return;let x=new Set(S.annotations.flatMap(me=>me.threadId?[me.threadId]:[])),T=new Set([...Object.values(z.activeJobThreads),...Object.entries(Me).filter(([me])=>z.activeJobIds.includes(me)).flatMap(([,me])=>me.threadId?[me.threadId]:[])]),B=S.annotations.filter(me=>{if(!me.threadId||(me.replyCount??0)>0||T.has(me.threadId))return!1;let le=me.status??"pending";return le!=="sending"&&le!=="waiting_input"&&le!=="needs_review"}),V=[`plane:${er}:${li===!0}`,...B.map(me=>`${me.id}:${me.threadId}`),...Array.from(x).map(me=>`represented:${me}`),...Array.from(T).map(me=>`active:${me}`)].sort().join("|");if(V===zr.current)return;zr.current=V;let oe=!1,ne=!1;return Qt(`${se}/threads/recent?limit=200`).then(me=>me.ok?me.json():[]).then(async me=>{if(oe)return;let le=Dr?{participantId:Dr,isHost:li}:null,Ce=me.filter(xe=>Mh(xe,le));di({scope:er,threadIds:new Set(Ce.map(xe=>xe.id))});let ze=new Set(me.filter(xe=>!Mh(xe,le)).map(xe=>xe.id)),de=of(Ce,Pe,xe=>{let Tt=re.resolve(xe);return Tt?[Tt.selector]:null}),ke=new Set([...z.activeJobIds,...Object.keys(Me)]);ur(af(Ce,T)),hr(lf(Ce)),jr(sf(Ce));let pt=Object.fromEntries(Ce.flatMap(xe=>xe.pendingQuestion?[[xe.id,xe.pendingQuestion]]:[]));sn(pt);let Dt=new Set(Object.keys(pt)),Br=new Set(Ce.filter(xe=>!xe.pendingQuestion&&(xe.hasReply??(xe.messageCount>1&&!xe.hasError))).map(xe=>xe.id)),br=new Set(Ce.filter(xe=>xe.hasError&&!xe.hasReply).map(xe=>xe.id));for(let xe of S.annotations){let Tt=Ce.find(Tn=>Tn.id===xe.threadId)?.color;Tt&&Tt!==xe.color&&I({type:"UPDATE_ANNOTATION_COLOR",payload:{id:xe.id,color:Tt}})}for(let xe of S.annotations){if(!xe.threadId)continue;let Tt=pt[xe.threadId];Tt&&(xe.status==="waiting_input"&&xe.question===Tt||I({type:"SET_ANNOTATION_QUESTION",payload:{ids:[xe.id],question:Tt,threadId:xe.threadId}}))}for(let xe of S.annotations)!xe.threadId||!br.has(xe.threadId)||xe.status!=="failed"&&I({type:"MARK_ANNOTATIONS_FAILED",payload:{ids:[xe.id],threadId:xe.threadId}});for(let xe of B)!xe.threadId||Dt.has(xe.threadId)||!Br.has(xe.threadId)||I({type:"MARK_ANNOTATIONS_REPLIED",payload:{ids:[xe.id],threadId:xe.threadId,jobId:`thread-recovery:${xe.threadId}`}});let sa=Date.now()-7200*1e3,xi=_l(y),Xt=Ce.filter(xe=>(xe.hasReply??(xe.messageCount>1&&!xe.hasError))&&xe.updatedAt>=sa&&!x.has(xe.id)&&!xi.has(xe.id)),so=await Promise.all(Xt.map(async xe=>{let Tt=await Qt(`${se}/decision/${encodeURIComponent(xe.id)}`);if(!Tt.ok)return[];let Tn=(await Tt.json()).decision;if(!Tn?.annotations?.length)return[];let _o="/";try{_o=new URL(Tn.url).pathname}catch{}if(_o!==Pe)return[];let Wo=Tn.color??df("oklch(0.628 0.258 29)",S.annotations,Pe);return Tn.annotations.flatMap($t=>{if(!$t.instruction)return[];let co=$t.target?re.resolve($t.target)??($t.elements?.[0]?re.restore($t.target,$t.elements[0]):null):null,uo=co?.selector??$t.linkedSelector;if(!uo)return[];let Jr=co?.element??tn(uo)??($t.elements?.[0]?.selector?tn($t.elements[0].selector):null);if(!Jr)return[];let Dn=Jr.getBoundingClientRect(),po=Tn.resolutions?.find(da=>da.annotationId===$t.id);return[{id:$t.id,type:"text",points:[{x:Dn.left+window.scrollX,y:Dn.top+window.scrollY}],color:Wo,strokeWidth:2,text:$t.instruction,fontSize:12,timestamp:Tn.createdAt,captured:!0,status:po?.status??"resolved",resolutionSummary:po?.summary,replyCount:1,replyJobIds:[`thread-recovery:${xe.id}`],threadId:xe.id,pathname:$t.pathname??_o,elements:$t.elements,linkedSelector:uo,...$t.target?{target:$t.target}:{},linkedAnchor:Dn.top>=26?"top-left":"bottom-left"}]})}));if(oe)return;let Fo=so.flat();Fo.length>0&&I({type:"MERGE_ANNOTATIONS",payload:{annotations:Fo}}),be(xe=>cf(de,new Map([...xe].filter(([,Tt])=>!ze.has(Tt.threadId))),ke)),I({type:"SETTLE_CAPTURED_STYLES",payload:{selectors:[...de.values()].filter(xe=>xe.status==="resolved").flatMap(xe=>xe.selectors??[])}}),ne=!0}).catch(()=>{oe||(zr.current="__uninitialized__")}),()=>{oe=!0,!ne&&zr.current===V&&(zr.current="__uninitialized__")}},[z.activeJobIds,z.activeJobThreads,z.isConnected,Pe,I,y,Rt,Me,se,S.annotations,re,pe,Dr,li,er]);let ci=J(new Set);_(()=>{let x=z.events.filter(T=>T.type==="error"&&T.data.cancelled);for(let T of x){let B=T.data.jobId;if(!B||ci.current.has(B))continue;ci.current.add(B);let V=Me[B];V&&V.annotationIds.length>0&&I({type:"SET_ANNOTATION_STATUS",payload:{ids:V.annotationIds,status:"dismissed"}})}},[z.events,Me,I]);let Lo=J(0);_(()=>{let x=z.incrementalResolutions;if(x.length<=Lo.current)return;let T=x.slice(Lo.current);Lo.current=x.length,I({type:"APPLY_RESOLUTIONS",payload:{resolutions:T}})},[z.incrementalResolutions,I]),_(()=>{z.incrementalResolutions.length===0&&(Lo.current=0)},[z.incrementalResolutions.length]);let jo=U(async()=>{let x=Xe.current;if(!x)return!1;let T=await Zo(document.body,x,S.annotations,{nativeCapture:Se,captureSurfaces:()=>re.captureSurfaces()});if(T.length===0)return!1;let B=await hy(T,S.annotations,S.styleModifications,S.textModifications,S.domModifications);return B&&I({type:"MARK_CAPTURED"}),B},[S.annotations,S.styleModifications,S.textModifications,S.domModifications,I,Se,re]),za=U((x,T)=>{let B=ht.current.get(x)||[];ht.current.set(x,[...B,...T])},[]),ui=U((x,T)=>{let B=new Set(T),V=(ht.current.get(x)??[]).filter((oe,ne)=>!B.has(ne));V.length>0?ht.current.set(x,V):ht.current.delete(x)},[]),pi=U(async()=>{if(R&&!R.canSend)return!1;let x=R?.captureVersion(),T=Xe.current;if(!T)return!1;Le==="omp"&&Zt("omp");let B=S.annotations.filter(de=>(de.status??"pending")==="pending"),V=S.styleModifications.filter(de=>!de.captured&&!de.awaitingReview&&(!de.pathname||de.pathname===Pe)),oe=S.textModifications.filter(de=>!de.captured&&(!de.pathname||de.pathname===Pe)),ne=S.domModifications.filter(de=>!de.captured&&(!de.pathname||de.pathname===Pe)),me=S.spacingTokenChanges.filter(de=>!de.captured);if(B.length===0&&V.length===0&&oe.length===0&&ne.length===0&&me.length===0)return!1;let le=B.map(de=>de.id),Ce=!!R?.requiresApproval,ze=!1;return Ce&&Q(de=>new Set([...de,...le])),uf(le,I,async()=>{let de=new Map;for(let _e of B){let bt=_e.pathname||Pe;de.has(bt)||de.set(bt,[]),de.get(bt).push(_e)}let ke=new Map,pt=new Map;await Hu(Be.current,de.get(Pe)??[],Pe,pt);let Dt=[...de.keys()].filter(_e=>_e!==Pe);if(Dt.length>0){let _e=Pe,bt={x:window.scrollX,y:window.scrollY};At.current=!0;for(let Ct of Dt)try{let yn=lt.current.get(Ct),qr=de.get(Ct)||[];if(yn&&!qr.some(ua=>ua.target)){ke.set(Ct,yn),console.log(`[Popmelt] Reusing cached departing-page screenshot for ${Ct}`);continue}if(console.log(`[Popmelt] Navigating to ${Ct} for screenshot capture`),await Nd(Ct,i),window.location.pathname!==Ct){console.warn(`[Popmelt] Navigation to ${Ct} did not take effect (at ${window.location.pathname})`);continue}await Hu(Be.current,qr,Ct,pt);let Ur=await Zo(document.body,T,qr,{dpr:1,nativeCapture:Se,captureSurfaces:()=>re.captureSurfaces()}),fo=await pl(Ur);fo&&(ke.set(Ct,fo),console.log(`[Popmelt] Captured ${Ct} (${(fo.size/1024).toFixed(0)}KB)`))}catch(yn){console.warn(`[Popmelt] Failed to capture ${Ct}:`,yn)}await Nd(_e,i),window.scrollTo(bt.x,bt.y),At.current=!1}let Br=B.filter(_e=>(_e.pathname||Pe)===Pe),br=await Zo(document.body,T,Br.length>0?S.annotations:[],{dpr:1,nativeCapture:Se,captureSurfaces:()=>re.captureSurfaces()});if(br.length>0){let _e=await pl(br);_e&&ke.set(Pe,_e)}if(ke.size===0)return!1;let sa=pc({annotations:S.annotations,styleModifications:S.styleModifications,textModifications:S.textModifications}),xi=_e=>{let bt=sa.modificationNumberByKey.get(Pf(_e));return bt===void 0?_e:{..._e,annotationNumber:bt}},Xt=V.map(xi),so=oe.map(xi),Fo;if(c)try{Fo=zs(await c({kind:"annotation",timestamp:Date.now(),url:window.location.href,pathname:Pe,annotations:B}))}catch(_e){return console.error("[Popmelt] Unable to capture comment metadata:",_e),!1}let xe=ul(B,Xt,void 0,me.length>0?me:void 0,so,ne,Fo),Tt=Wy(xe,B,ht.current);By(xe,Tt,pt,Pe);let Tn=JSON.stringify(xe),_o=de.size>1;console.log(`[Popmelt] Submit: ${de.size} page(s), ${ke.size} screenshot(s), pages: [${[...de.keys()].join(", ")}], cached: [${[...lt.current.keys()].join(", ")}]`);let Wo=_o?ke:ke.get(Pe)??ke,$t=[...V.map(_e=>_e.selector),...oe.map(_e=>_e.selector),...ne.map(_e=>_e.selector)],co=Array.from(new Set([...B.map(_e=>_e.pathname||Pe),...V.map(_e=>_e.pathname||Pe),...oe.map(_e=>_e.pathname||Pe),...ne.map(_e=>_e.pathname||Pe)])),uo=pf(B,S.activeColor),Jr=[...$t,...B.flatMap(_e=>_e.linkedSelector?[_e.linkedSelector]:[])],Dn=hf(Jr,S.annotations.filter(_e=>(_e.pathname||Pe)===Pe),tn),po=ls(Jr,te,Dn?.color??uo,tn),da=Dn?.threadId??ff(Jr,te),Bo=Dn?.targetBindingId??mf(Jr,te),ho=Iu(po),Cn=`_pending_${Date.now()}`,ca={annotationIds:le,styleSelectors:$t,color:po,threadId:void 0,routePathnames:co};if(!Ce){try{let _e=JSON.parse(localStorage.getItem(It)||"{}");_e[Cn]=ca,localStorage.setItem(It,JSON.stringify(_e))}catch{}L(_e=>({..._e,[Cn]:ca}))}try{let _e=R?await R.send({screenshots:Wo,feedbackJson:Tn,color:ho,provider:Le,model:yt.id,pastedImages:Tt.size>0?Tt:void 0,sourceId:$s(),agentSettings:wn},x):await hc(Wo,Tn,se,ho,Le,yt.id,Tt.size>0?Tt:void 0,$s(),wn,da,Dn?.selectorAliases,Bo);if("pendingApproval"in _e){ze=!0,_e.threadId&&I({type:"SET_ANNOTATION_THREAD",payload:{ids:B.map(ft=>ft.id),threadId:_e.threadId}});try{let ft=JSON.parse(localStorage.getItem(It)||"{}");delete ft[Cn],localStorage.setItem(It,JSON.stringify(ft))}catch{}return L(ft=>{let{[Cn]:un,...Yr}=ft;return Yr}),!1}let{jobId:bt,threadId:Ct,color:yn,continuedThread:qr,continuationEligible:Ur,targetBindings:fo=[]}=_e,ua=ft=>fo.find(un=>ft.target?un.anchor.type==="opaque"&&un.anchor.adapter===ft.target.adapter&&un.anchor.key===ft.target.key:!ft.linkedSelector||un.anchor.type!=="dom"?!1:[un.anchor.runtimeSelector,un.anchor.structuralSelector,...un.anchor.legacySelectors??[]].includes(ft.linkedSelector))?.id;Ct&&Wt(Ct,bt,xe,Wo,Tt.size>0?Tt:void 0);for(let ft of Tt.keys())ht.current.delete(ft);for(let ft of de.keys())lt.current.delete(ft);let mo=yn??po,wi={...ca,color:mo,threadId:Ct};try{let ft=JSON.parse(localStorage.getItem(It)||"{}");delete ft[Cn],ft[bt]=wi,localStorage.setItem(It,JSON.stringify(ft))}catch{}if(L(ft=>{let{[Cn]:un,...Yr}=ft;return{...Yr,[bt]:wi}}),Ct&&$t.length>0&&be(ft=>{let un=new Map(ft),Yr=new Set;for(let vn of fo){if(vn.anchor.type!=="dom")continue;let Xr=[vn.anchor.runtimeSelector,vn.anchor.structuralSelector,...vn.anchor.legacySelectors??[]].filter(qo=>!!qo),Jo=$t.find(qo=>Xr.includes(qo));if(!Jo)continue;Yr.add(Jo);let Ja=[...Xt,...so].find(qo=>qo.selector===Jo);un.set(vn.id,{jobId:bt,threadId:Ct,status:"in_flight",color:mo,continuationEligible:vn.continuationEligible??Ur,targetBindingId:vn.id,selectors:Xr,targetFingerprint:vn.anchor.targetFingerprint,annotationNumber:Ja?.annotationNumber})}for(let vn of $t){if(Yr.has(vn))continue;let Xr=[...Xt,...so].find(Jo=>Jo.selector===vn);un.set(`job:${bt}:${vn}`,{jobId:bt,threadId:Ct,status:"in_flight",color:mo,continuationEligible:Ur,selectors:[vn],annotationNumber:Xr?.annotationNumber})}return un}),I({type:"MARK_CAPTURED",payload:{annotationIds:le}}),Ct&&le.length>0){for(let ft of le)I({type:"UPDATE_ANNOTATION_COLOR",payload:{id:ft,color:mo}});for(let ft of B)I({type:"SET_ANNOTATION_THREAD",payload:{ids:[ft.id],threadId:Ct,targetBindingId:ua(ft)}})}return qr||I({type:"SET_COLOR",payload:gf({color:mo,threadId:Ct??`job:${bt}`,annotationIds:le,annotations:S.annotations,pathname:Pe})}),!0}catch(_e){try{let bt=JSON.parse(localStorage.getItem(It)||"{}");delete bt[Cn],localStorage.setItem(It,JSON.stringify(bt))}catch{}return L(bt=>{let{[Cn]:Ct,...yn}=bt;return yn}),console.error("[Pare] Failed to send to bridge:",_e),!1}}).then(de=>(Ce&&!ze&&!de&&(Q(ke=>{let pt=new Set(ke);for(let Dt of le)pt.delete(Dt);return pt}),K(++q.current)),de))},[S.annotations,S.styleModifications,S.textModifications,S.domModifications,S.spacingTokenChanges,S.activeColor,I,se,Le,yt.id,wn,Pe,i,Wt,Se,te,Zt,re,c,R,It]),Da=U(()=>yf(nt,pi,!1),[pi]),Gi=jy(e&&t&&z.isConnected&&!R,se,y,S,{provider:Le,model:yt.id,agentSettings:wn}),vt=R?.view?{...Gi,...R.view,toolbar:O}:Gi;k.current=vt.activePreview;let{onFocus:Ha,onActivity:Oa,onThread:Wl}=vy(R?.reportAttention,R?.viewedParticipantId??R?.participantId??"",S.activeColor,!!(R?.canReadThreads&&S.isAnnotating&&!vt.isPeeking)),Bl=U(x=>{Fe(x),Ha(x)},[Fe,Ha]),Jl=U(()=>{Ke(),Oa()},[Ke,Oa]),zn=U(async(x,T,B,V)=>{if(R&&!R.canReply)throw new Error("Edit permission is required to send thread messages.");Le==="omp"&&Zt("omp"),Mo(de=>({threadId:x,sequence:(de?.sequence??0)+1})),sn(de=>{if(!(x in de))return de;let ke={...de};return delete ke[x],ke});let oe=Object.values(ii.current).find(de=>de.threadId===x)?.color??S.annotations.find(de=>de.threadId===x)?.color??S.activeColor,ne=S.annotations.filter(de=>de.threadId===x&&(de.status==="waiting_input"||de.status==="resolved"||de.status==="needs_review")),me=ne.map(de=>de.id),le;if(c)try{le=zs(await c({kind:"reply",timestamp:Date.now(),url:window.location.href,pathname:Pe,threadId:x,reply:T,annotations:ne}))}catch(de){console.error("[Popmelt] Unable to capture reply metadata:",de);return}let Ce=`_pending_reply_${Date.now()}`,ze={annotationIds:me,styleSelectors:[],color:oe,threadId:x};try{let de=JSON.parse(localStorage.getItem(It)||"{}");de[Ce]=ze,localStorage.setItem(It,JSON.stringify(de))}catch{}L(de=>({...de,[Ce]:ze}));try{let de=Iu(oe),{jobId:ke}=await vf(x,T,se,de,Le,yt.id,B,$s(),wn,{...V,...le?{meta:le}:{}}),pt={...ze};try{let Dt=JSON.parse(localStorage.getItem(It)||"{}");delete Dt[Ce],Dt[ke]=pt,localStorage.setItem(It,JSON.stringify(Dt))}catch{}return L(Dt=>{let{[Ce]:Br,...br}=Dt;return{...br,[ke]:pt}}),be(Dt=>bf(Dt,x,ke)),ne.length>0&&I({type:"SET_ANNOTATION_STATUS",payload:{ids:me,status:"in_flight"}}),Ne(x),{jobId:ke}}catch(de){try{let ke=JSON.parse(localStorage.getItem(It)||"{}");delete ke[Ce],localStorage.setItem(It,JSON.stringify(ke))}catch{}throw L(ke=>{let{[Ce]:pt,...Dt}=ke;return Dt}),console.error("[Pare] Failed to send reply:",de),de}},[S.activeColor,S.annotations,se,Ne,I,Le,yt.id,wn,Zt,c,Pe,R,It]);_(()=>{for(let x of z.pendingQuestions){Ge(x.jobId,"waiting_input","Question");let T=x.annotationIds&&x.annotationIds.length>0?x.annotationIds:Me[x.jobId]?.annotationIds??Re.current.get(x.jobId);if((!T||T.length===0)&&x.threadId&&(T=S.annotations.filter(B=>B.threadId===x.threadId).map(B=>B.id)),T&&T.length>0){let B=new Set(T),V=S.annotations.filter(oe=>B.has(oe.id));if(V.length===0||V.every(oe=>oe.status==="waiting_input"&&oe.question===x.question&&oe.threadId===x.threadId))continue;I({type:"SET_ANNOTATION_QUESTION",payload:{ids:T,question:x.question,threadId:x.threadId}})}}},[z.pendingQuestions,I,Me,S.annotations,Ge]);let ql=we(()=>{if(z.activeJobId&&z.activeJobId in Me)return Me[z.activeJobId].color;let x=Object.values(Me);return x.length>0?x[x.length-1].color:void 0},[z.activeJobId,Me]),kt=U((x,T=!1)=>{_n(B=>B+1),!T&&S.activeTool==="model"&&I({type:"SET_TOOL",payload:"inspector"}),qt({type:"open_thread",threadId:x})},[qt,I,S.activeTool]),hi=U(x=>{ee&&kt(x)},[kt,ee]),mn=U(()=>{qt({type:"close_thread"})},[qt]),Hr=R?.deletePeerThread,fi=R?.deletedPeerThreadIds,Ul=we(()=>new Set([...st,...fi??[]]),[st,fi]);_(()=>{He&&fi?.includes(He)&&mn()},[He,fi,mn]),_(()=>{if(!Hr||!S.isAnnotating||!He)return;let x=T=>{!["Delete","Backspace"].includes(T.key)||T.metaKey||T.ctrlKey||T.altKey||Lf(T)||(T.preventDefault(),T.stopImmediatePropagation(),Hr(He).then(mn).catch(()=>{}))};return window.addEventListener("keydown",x,!0),()=>window.removeEventListener("keydown",x,!0)},[Hr,He,S.isAnnotating,mn]);let Na=R?.requestedThread;FS(vt.selectedId,Na,mn,hi);let Qi=U(async x=>(await Qt(`${se}/thread/${encodeURIComponent(x)}`)).status,[se]),Yl=U(x=>{qt({type:"restore_thread",threadId:x,...Vn.current})},[qt]);zy(R?.navigation,vt.selectedId,z.isConnected&&ee,He??no??jt,Pn,Qi,Yl);let[Zi,ro]=$(0),zt=Ny(`${y}:${Zi}`,async x=>{if(!(await wf(x,se)).archived)throw new Error("Thread not found")},x=>xf(x,se),S.undoStack.at(-1));w.current=zt.tryUndo;let tr=U(x=>{if(R&&!R.isHost){Hr?.(x).catch(()=>{});return}if(Object.values(Me).some(ne=>ne.threadId===x))return;He===x&&mn();let T=new Set(S.annotations.filter(ne=>ne.threadId===x).flatMap(ne=>ne.groupId?[ne.groupId]:[])),B=S.annotations.filter(ne=>ne.threadId===x||ne.groupId&&T.has(ne.groupId)).map(ne=>ne.id),V=S.annotations.filter(ne=>B.includes(ne.id)),oe=Array.from(te.entries()).filter(([,ne])=>ne.threadId===x);B.length>0&&I({type:"SET_ANNOTATION_STATUS",payload:{ids:B,status:"dismissed"}}),be(ne=>new Map(Array.from(ne.entries()).filter(([,me])=>me.threadId!==x))),cr(ne=>new Set(ne).add(x)),$h([x],y),zt.dismiss(x,()=>{for(let ne of V)I({type:"SET_ANNOTATION_STATUS",payload:{ids:[ne.id],status:ne.status??"resolved"}});if(be(ne=>{let me=new Map(ne);for(let[le,Ce]of oe)me.has(le)||me.set(le,Ce);return me}),cr(ne=>{let me=new Set(ne);return me.delete(x),me}),y)try{let ne=_l(y);ne.delete(x),localStorage.setItem(Ei(Fl,y),JSON.stringify([...ne]))}catch{}})},[mn,I,y,S.annotations,zt,Me,te,He,R,Hr]),Ut=U((x,T,B)=>{let V=Me[x],oe=Te.current.get(x),ne=V?.annotationIds??B??[];if(V||ne.length>0){let le=new Set(V?.styleSelectors??[]);for(let Ce of ne){let ze=S.annotations.find(de=>de.id===Ce);if(ze&&(ze.linkedSelector&&le.add(ze.linkedSelector),ze.groupId))for(let de of S.annotations)de.groupId===ze.groupId&&de.linkedSelector&&le.add(de.linkedSelector)}le.size>0&&(oe=Array.from(le))}oe?.length&&KS(oe);let me=V?.threadId||T||De.current.get(x);if(me){let le=V?.kind==="project_model"&&(V.annotationIds?.length??0)===0;dr.current=le?Hd:V?.color??null,kt(me,V?.kind==="synthesize")}},[Me,kt,S.annotations]),Or=U((x,T)=>{if(!x){mr(null);return}let B=T??Re.current.get(x);B&&B.length>0?mr(new Set(B)):mr(null)},[]),Nr=U(async x=>{try{let T=x?`${se}/cancel?jobId=${x}`:`${se}/cancel`;await Qt(T,{method:"POST"})}catch{}},[se]),zo=U(async()=>{Jt("restarting"),an("Restarting bridge");let x=await Sf(se,ss,2e4);if(x.ok){await zg(x.bridgeUrl??r,y),Kn(x.status.version??ss),Jt("ok"),an(x.status.version?`Bridge restarted on ${x.status.version}`:"Bridge restarted"),ot(T=>T+1);return}Kn(x.status?.version??Ot),Jt("error"),an(x.error)},[Ot,r,y,se]),Fr=we(()=>{if(!He)return null;for(let x of Object.values(Me))if(x.threadId===He&&x.kind){if(x.kind==="project_model"&&x.annotationIds.length>0)continue;return x.kind}return null},[He,Me]),oo=Fr==="project_model",_r=Fr==="synthesize",{surface:io,phase:Fa,show:yr,leave:Do,dismiss:ea}=If({openDelayMs:0,exitDurationMs:ds}),Ho=J(new Set),[_a,mi]=$(()=>new Set),gi=U((x,T)=>{T?Ho.current.add(x):Ho.current.delete(x),mi(new Set(Ho.current)),Ho.current.size>0?yr("toolbar"):Do("toolbar")},[Do,yr]),Oo=HS({toolbarExpanded:S.isAnnotating,toolbarSources:_a,chromeHoverSurface:io,chromeHoverPhase:Fa,activeTool:S.activeTool,peerPlanePeeking:vt.isPeeking}),Wn=Oo.threadTemporarilyHidden;_(()=>{He&&io&&ea(io)},[io,ea,He]),_(()=>{qt(S.activeTool==="model"?{type:"enter_imprint",preserveOpenThread:_r}:{type:"leave_imprint"})},[qt,S.activeTool,He,_r]),_(()=>{qt({type:S.isAnnotating?"expand_toolbar":"collapse_toolbar"})},[qt,S.isAnnotating]);let Yt=we(()=>kf(He,Me,z.activeJobIds,z.activeJobThreads,kn),[He,Me,z.activeJobIds,z.activeJobThreads,kn]),Bn=He?S.annotations.find(x=>x.threadId===He):void 0,Wr=He?Array.from(te.values()).find(x=>x.threadId===He&&x.color)?.color:void 0,Wa=He?Ht.current.get(He):void 0,No=we(()=>{if(!He)return null;let x=[...z.events].reverse().find(T=>(T.type==="done"||T.type==="error")&&T.data.threadId===He);return typeof x?.data.jobId=="string"?x.data.jobId:null},[z.events,He]),ao=we(()=>Yt?z.events.filter(x=>x.data.jobId===Yt):_S,[Yt,z.events]),gn=we(()=>oo?Hd:Wr??Bn?.color??dr.current??S.activeColor,[oo,Bn?.color,Wr,S.activeColor]),yi=!!(y&&Rt===y),Gt=we(()=>OS(S.annotations,st,yi?te.values():[]),[st,yi,te,S.annotations]),Jn=we(()=>Ef(te,st,Gt,yi),[st,yi,te,Gt]),nr=we(()=>{let x=new Map;for(let T of S.annotations)T.threadId&&T.color&&x.set(T.threadId,T.color);for(let T of te.values())T.threadId&&T.color&&x.set(T.threadId,T.color);return x},[te,S.annotations]),ta=[...Jn.values()].find(x=>x.threadId===He)?.annotationNumber,Xl=(He?vt.threadAnnotationNumbers?.get(He):void 0)??Hw(Bn?S.annotations.indexOf(Bn):-1,ta),vi=U(x=>{if(!He)return;let T=NS(Gt,He,x);T&&kt(T)},[Gt,He,kt]),na=He!==null&&Gt.length>1&&Gt.includes(He),[Kl,Ba]=$(!1),lo=J(!1),vr=J(null),ra=U(x=>{x?(vr.current&&(clearTimeout(vr.current),vr.current=null),Ba(!0)):vr.current=setTimeout(()=>{Ba(!1),vr.current=null},150)},[]),oa=U(x=>{ra(x),x?yr("job-stack"):Ho.current.size>0?yr("toolbar"):Do("job-stack")},[ra,Do,yr]);_(()=>{if(R)return;let x=z.workspaceGeneration;if(!y||x===void 0||!Number.isInteger(x)||x<0)return;let T=fc(localStorage,y);if(T!==null&&x<T)return;let B=Tf(T,x);if(localStorage.setItem(mc(y),String(x)),!B)return;if(lo.current){lo.current=!1;return}eu(S.styleModifications),Qm(S.textModifications),Zm(S.domModifications),document.querySelectorAll("[data-pm]").forEach(oe=>oe.removeAttribute("data-pm")),I({type:"CLEAR"}),I({type:"CLEAR_ALL_STYLES"});let V=Cf(y);for(let oe of[V.annotations,V.styleMods,V.textMods,V.domMods,V.spacingChanges])localStorage.removeItem(oe);cs(localStorage),ht.current.clear(),lt.current.clear(),L({}),be(new Map),Mo(null),ur(new Set),hr(new Set),jr(new Set),sn({}),cr(new Set),ro(oe=>oe+1),$e(),mn()},[z.workspaceGeneration,$e,mn,I,y,R,S.domModifications,S.styleModifications,S.textModifications]);let ia=U(()=>{cs(localStorage),ht.current.clear(),lt.current.clear();let x=Array.from(new Set(S.annotations.flatMap(T=>T.threadId?[T.threadId]:[])));$h(x,y),cr(T=>{let B=new Set(T);for(let V of x)B.add(V);return B}),lo.current=!0,Af(se).then(({workspaceGeneration:T})=>{if(y){let B=fc(localStorage,y);(B===null||T>B)&&localStorage.setItem(mc(y),String(T))}lo.current=!1}).catch(T=>{lo.current=!1,console.warn("[Popmelt] Failed to clear bridge workspace:",T)}),ro(T=>T+1),$e(),mn(),Nr()},[$e,mn,y,Nr,se,S.annotations]);_(()=>()=>{vr.current&&clearTimeout(vr.current)},[]);let[aa,la]=$(!1);if(_(()=>{la(!0)},[]),!e||!aa)return null;let bi=h(tc.Provider,{value:t?vt.toolbar??O:null,children:M(cw,{children:[h(Mf.Provider,{value:ee?hi:void 0,children:vt.overlay}),S.isAnnotating&&z.isConnected&&!vt.isPeeking&&!vt.activePreview&&h(gc,{element:xt,elements:et,registry:re}),h(Ti.Provider,{value:!vt.activePreview&&!vt.isPeeking,children:h("div",{"data-devtools":"host-canvas",style:{display:vt.isPeeking||vt.activePreview?"none":"contents"},children:h(J0,{historyPreview:cn,onFocusTargetChange:Bl,onFocusActivity:Jl,bridgeUrl:se,steeringContextStorageKey:y?Ex(y):void 0,state:vt.activePreview?{...S,isAnnotating:!1,annotations:[],styleModifications:[],textModifications:[],domModifications:[]}:S,dispatch:I,onScreenshot:jo,inFlightAnnotationIds:je,inFlightOrientationLabels:$o,waitingApprovalJobIds:Vt,activeAnnotationIds:gr,queuePositionMap:Zn,inFlightStyleSelectors:Xi,inFlightStyleSelectorJobIds:La,inFlightSelectorColors:ja,modifiedElementThreadStates:Jn,dismissedThreadIds:st,onAttachImages:za,onRemoveImages:ui,onCaptureInteractionFrame:Ue,onSend:z.isConnected&&(!R||R.canSend)?Da:void 0,onReply:z.isConnected&&(!R||R.canReply)?zn:void 0,onViewThread:z.isConnected&&ee?hi:void 0,onCloseThread:mn,onArchiveThread:tr,onDeleteSubmittedAnnotation:R&&!R.isHost&&R.deletePeerAnnotations?x=>{R.deletePeerAnnotations(R.participantId,[x]).catch(()=>{})}:void 0,highlightedAnnotationIds:Ro,cycleFocusedAnnotationIds:Pr,onCanvasInteraction:Lr,focusedThreadAnnotationId:Bn?.id,openThreadId:He,hasOpenThread:He!==null,externalCanvasRef:Xe,toolbarRef:Ye,threadPanelElement:Wn?null:We,clearSignal:Zi,subjectRegistry:re,subjectRegistryReady:pe},`annotation-canvas:${y??"pending"}`)})}),h(mw,{zIndex:He!==null&&!Wn?10004:10003,children:M(pw,{children:[h(Rf,{onPreviewHistoryThread:Mn,threadOpenRequest:Kt,projectId:y,state:S,hasExternalSendableItems:!!(vt.activePreview&&vt.approve),readOnlyPreview:vt.activePreview,dispatch:x=>{(!vt.activePreview||x.type==="SET_ANNOTATING")&&I(x)},onScreenshot:jo,onSendToClaude:vt.activePreview?vt.approve:z.isConnected&&(!R||R.canSend)?Da:void 0,hasActiveJobs:Object.keys(Me).length>0||z.activeJobIds.length>0,activeJobColor:ql,onCrosshairHover:ra,onClear:ia,provider:Le,onProviderChange:!dt&&z.isConnected&&ge.length>1?Rr:void 0,availableProviders:ge,modelIndex:ct,modelCount:Nt.length,modelLabel:yt.label,models:Nt,agentSettings:wn,onModelChange:!dt&&z.isConnected?lr:void 0,onModelMenuOpen:()=>{Zt(Le)},onAgentSettingsChange:z.isConnected?oi:void 0,onViewThread:z.isConnected&&ee?hi:void 0,onNavigate:fn,annotationCycleFocus:Ft,onAnnotationCycleFocusChange:Sn,isThreadPanelOpen:He!==null&&!Wn&&!_r,hasOpenThreadPanel:He!==null&&!_r,projectPanelTemporarilyHidden:Oo.projectPanelTemporarilyHidden,onToolbarHoverChange:gi,activeChromeHoverSurface:io,mcpStatus:Nn,bridgeUrl:se,isBridgeConnected:z.isConnected,packageVersion:ss,bridgeVersion:Ot,projectRoot:bn,projectRootAccess:ar?.projectRoot,codexSandboxMode:ar?.codex.sandboxMode,bridgeRestartState:xn,bridgeRestartMessage:to,onBridgeRestart:zo,toolbarRef:Ye,snapPosition:$r,onSnapPositionChange:Fn},`annotation-toolbar:${y??"pending"}`),ee&&S.isAnnotating&&He&&h(zS,{onAttentionChange:Wl,threadId:He,bridgeUrl:se,accentColor:gn,initialMessages:Wa?[Wa.message]:void 0,completedJobId:No,refreshKey:`${R?.pendingSubmissions?.find(x=>x.threadId===He)?.revision??""}:${z.events.findLast(x=>x.type==="thread_changed"&&x.data.threadId===He)?.data.jobId??""}`,isStreaming:Yt!==null,isQueued:Yt!==null&&!z.activeJobIds.includes(Yt)&&!kn.has(Yt),queuePosition:Yt&&!z.activeJobIds.includes(Yt)&&!kn.has(Yt)?(()=>{let x=cc(Object.keys(Me),z.activeJobIds,kn),T=x.indexOf(Yt);return T>=0?`(${T+1}/${x.length})`:void 0})():void 0,activeJobId:Yt,streamingEvents:ao,onClose:mn,onReply:G?zn:void 0,onContribute:R?.contribute,onApproveSuggestion:R?.approveSuggestion,canManage:H,readOnlyReason:G?void 0:"Edit permissions required to comment in threads",onCancel:H&&Yt?()=>Nr(Yt):void 0,lastError:z.lastErrorByJob?.[Yt??""]??(z.lastCompletedJobId&&De.current.get(z.lastCompletedJobId)===He?z.lastErrorByJob?.[z.lastCompletedJobId]:void 0),temporarilyHidden:Wn,backdropCursor:S.isAnnotating&&S.activeTool==="sticker"?yc(gn):void 0,toolbarRef:Ye,surfaceRef:Ae,currentModel:yt.id,currentProvider:Le,availableProviders:ge,models:Nt,modelIndex:ct,agentSettings:wn,onProviderChange:!dt&&z.isConnected?Rr:void 0,onModelChange:!dt&&z.isConnected?lr:void 0,onAgentSettingsChange:z.isConnected?oi:void 0,onModelMenuOpen:()=>{Zt(Le)},annotationNumber:Xl,annotationText:Bn?.text,onPreviousThread:na?()=>vi(-1):void 0,onNextThread:na?()=>vi(1):void 0,preferredSide:oo?"left":"right",modal:!oo},`${He}:${oo?"workflow":"default"}`),ee&&h(dw,{noticeScope:er,ownedThreadIds:si?.scope===er?si.threadIds:null,allowThreadlessNotices:!R||R.isHost,viewedThreadId:He,bridge:z,bridgeUrl:se,inFlightJobs:Me,threadColors:nr,isVisible:Kl||z.lastResponseText!==null||z.activeJobIds.length>0,isHidden:!S.isAnnotating||vt.isPeeking||vt.activePreview,onHover:oa,isInteractionSuppressed:Oo.statusInteractionSuppressed,clearSignal:Zi,onReply:G?zn:void 0,onClickJob:Ut,onCancel:H?Nr:void 0,onHoverJob:Or,isConnected:z.isConnected,dismissedThreadIds:Ul,acknowledgedThread:Yi,recoveredAcknowledgedThreadIds:Ln,recoveredAcknowledgedJobIds:pr,recoveredSettledQuestionThreadIds:fr,pendingQuestionThreadIds:Qn,snapPosition:$r,currentPathname:Pe},er)]})})]})});return h($f.Provider,{value:N,children:bi})}export{Lg as a,GS as b};
|