jat-feedback 3.3.1 β†’ 3.3.3

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.
@@ -117,7 +117,7 @@ or you can use record.mirror to access the mirror instance during recording.`;le
117
117
 
118
118
  /* Thread container */.thread.svelte-1fnmin5 {margin-top:6px;display:flex;flex-direction:column;gap:4px;}.thread-entry.svelte-1fnmin5 {padding:6px 8px;border-radius:5px;font-size:12px;border-left:2px solid;}.thread-user.svelte-1fnmin5 {background:#111827;border-left-color:#6b7280;}.thread-dev.svelte-1fnmin5 {background:#0f172a;border-left-color:#3b82f6;}.thread-entry-header.svelte-1fnmin5 {display:flex;align-items:center;gap:6px;margin-bottom:3px;}.thread-from.svelte-1fnmin5 {font-weight:600;font-size:11px;color:#d1d5db;}.thread-type-badge.svelte-1fnmin5 {font-size:9px;font-weight:600;padding:1px 5px;border-radius:3px;text-transform:uppercase;letter-spacing:0.3px;}.thread-type-badge.submission.svelte-1fnmin5 {background:#6b728020;color:#9ca3af;}.thread-type-badge.completion.svelte-1fnmin5 {background:#3b82f620;color:#60a5fa;}.thread-type-badge.rejection.svelte-1fnmin5 {background:#ef444420;color:#f87171;}.thread-type-badge.acceptance.svelte-1fnmin5 {background:#10b98120;color:#34d399;}.thread-time.svelte-1fnmin5 {font-size:10px;color:#4b5563;margin-left:auto;}.thread-message.svelte-1fnmin5 {color:#d1d5db;line-height:1.5;margin:0;word-break:break-word;}.thread-summary.svelte-1fnmin5 {margin:4px 0 0 0;padding:0 0 0 16px;font-size:11px;color:#9ca3af;}.thread-summary.svelte-1fnmin5 li:where(.svelte-1fnmin5) {margin:1px 0;}.thread-screenshots.svelte-1fnmin5 {display:flex;gap:4px;margin-top:4px;}.thread-elements.svelte-1fnmin5 {display:flex;gap:3px;flex-wrap:wrap;margin-top:4px;}.element-badge.svelte-1fnmin5 {font-size:10px;font-family:'SF Mono', 'Fira Code', 'Consolas', monospace;padding:1px 5px;background:#1e293b;border:1px solid #334155;border-radius:3px;color:#94a3b8;}.element-badge.removable.svelte-1fnmin5 {display:inline-flex;align-items:center;gap:3px;}.element-remove.svelte-1fnmin5 {background:none;border:none;color:#6b7280;cursor:pointer;padding:0;font-size:12px;line-height:1;}.element-remove.svelte-1fnmin5:hover {color:#ef4444;}
119
119
 
120
- /* Enhanced rejection form */.reject-attachments.svelte-1fnmin5 {display:flex;gap:6px;margin-top:6px;}.attach-btn.svelte-1fnmin5 {display:flex;align-items:center;gap:4px;padding:3px 8px;background:#111827;border:1px solid #374151;border-radius:4px;color:#9ca3af;font-size:11px;cursor:pointer;font-family:inherit;transition:border-color 0.15s, color 0.15s;}.attach-btn.svelte-1fnmin5:hover:not(:disabled) {border-color:#60a5fa;color:#d1d5db;}.attach-btn.svelte-1fnmin5:disabled {opacity:0.5;cursor:not-allowed;}.reject-preview-strip.svelte-1fnmin5 {display:flex;gap:4px;margin-top:6px;overflow-x:auto;}.reject-preview-item.svelte-1fnmin5 {position:relative;flex-shrink:0;width:52px;height:36px;border-radius:4px;overflow:hidden;border:1px solid #374151;}.reject-preview-item.svelte-1fnmin5 img:where(.svelte-1fnmin5) {width:100%;height:100%;object-fit:cover;display:block;}.reject-preview-remove.svelte-1fnmin5 {position:absolute;top:1px;right:1px;width:14px;height:14px;border-radius:50%;background:rgba(0,0,0,0.7);color:#e5e7eb;border:none;cursor:pointer;font-size:10px;line-height:1;display:flex;align-items:center;justify-content:center;}.reject-preview-remove.svelte-1fnmin5:hover {background:#ef4444;}.reject-element-strip.svelte-1fnmin5 {display:flex;gap:3px;flex-wrap:wrap;margin-top:6px;}.report-footer.svelte-1fnmin5 {display:flex;align-items:center;justify-content:space-between;margin-top:8px;}.report-time.svelte-1fnmin5 {font-size:11px;color:#6b7280;}.status-pill.svelte-1fnmin5 {font-size:11px;font-weight:600;padding:2px 8px;border-radius:4px;}.status-pill.accepted.svelte-1fnmin5 {color:#10b981;background:#10b98118;}.status-pill.rejected.svelte-1fnmin5 {color:#ef4444;background:#ef444418;}.response-actions.svelte-1fnmin5 {display:flex;gap:6px;}.accept-btn.svelte-1fnmin5, .reject-btn.svelte-1fnmin5 {padding:3px 10px;border-radius:4px;font-size:11px;font-weight:600;cursor:pointer;border:1px solid;font-family:inherit;transition:background 0.15s;}.accept-btn.svelte-1fnmin5 {background:#10b98118;color:#10b981;border-color:#10b98140;}.accept-btn.svelte-1fnmin5:hover:not(:disabled) {background:#10b98130;}.reject-btn.svelte-1fnmin5 {background:#ef444418;color:#ef4444;border-color:#ef444440;}.reject-btn.svelte-1fnmin5:hover:not(:disabled) {background:#ef444430;}.accept-btn.svelte-1fnmin5:disabled, .reject-btn.svelte-1fnmin5:disabled {opacity:0.5;cursor:not-allowed;}.reject-reason-form.svelte-1fnmin5 {width:100%;margin-top:6px;}.reject-reason-input.svelte-1fnmin5 {width:100%;padding:6px 8px;background:#111827;border:1px solid #374151;border-radius:5px;color:#d1d5db;font-size:12px;font-family:inherit;resize:vertical;min-height:40px;}.reject-reason-input.svelte-1fnmin5:focus {outline:none;border-color:#ef4444;}.reject-reason-actions.svelte-1fnmin5 {display:flex;justify-content:flex-end;gap:6px;margin-top:6px;}.cancel-btn.svelte-1fnmin5 {padding:3px 10px;border-radius:4px;font-size:11px;font-weight:600;cursor:pointer;border:1px solid #374151;background:#1f2937;color:#9ca3af;font-family:inherit;transition:background 0.15s;}.cancel-btn.svelte-1fnmin5:hover {background:#374151;}.confirm-reject-btn.svelte-1fnmin5 {padding:3px 10px;border-radius:4px;font-size:11px;font-weight:600;cursor:pointer;border:1px solid #ef444440;background:#ef444418;color:#ef4444;font-family:inherit;transition:background 0.15s;}.confirm-reject-btn.svelte-1fnmin5:hover:not(:disabled) {background:#ef444430;}.confirm-reject-btn.svelte-1fnmin5:disabled {opacity:0.5;cursor:not-allowed;}.char-hint.svelte-1fnmin5 {display:block;font-size:10px;color:#6b7280;margin-top:3px;}`};function RequestList(d,p){push(p,!0),append_styles(d,$$css$4);let h=prop(p,"endpoint",7),g=prop(p,"reports",31,()=>proxy([])),m=prop(p,"loading",7),_=prop(p,"error",7),b=prop(p,"onreload",7),y=state(null),w=state(null),x=state(null),E=state(void 0),S=state(""),k=state(""),I=state(""),R=state(proxy([])),M=state(proxy([])),A=state(!1),C=state("active"),N=state("all"),$=user_derived(()=>get(N)==="all"?g():g().filter(D=>(D.source||"feedback")===get(N))),O=user_derived(()=>get(C)==="active"?get($).filter(D=>["submitted","in_progress","rejected","completed","wontfix"].includes(D.status)):get($).filter(D=>D.status==="accepted"||D.status==="closed")),F=user_derived(()=>get($).filter(D=>["submitted","in_progress","rejected","completed","wontfix"].includes(D.status)).length),j=user_derived(()=>get($).filter(D=>D.status==="accepted"||D.status==="closed").length),Y=user_derived(()=>g().filter(D=>(D.source||"feedback")==="feedback").length),q=user_derived(()=>g().filter(D=>D.source==="jat").length),ue=user_derived(()=>get(Y)>0&&get(q)>0);function oe(D){return D?D.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/^#{1,3} (.+)$/gm,'<strong style="display:block;margin-top:6px;color:#f3f4f6">$1</strong>').replace(/\*\*(.+?)\*\*/g,"<strong>$1</strong>").replace(/\*(.+?)\*/g,"<em>$1</em>").replace(/^[-*] (.+)$/gm,'<span style="display:block;padding-left:10px">β€’ $1</span>').replace(/\n/g,"<br>"):""}function ce(D){const H=get(x)===D;set(x,H?null:D,!0),H?(get(w)===D&&set(w,null),set(y,null)):setTimeout(()=>{if(!get(E))return;const X=get(E).querySelector(`[data-card-id="${D}"]`);X&&X.scrollIntoView({behavior:"smooth",block:"nearest"})},220)}function se(D){set(k,D,!0),set(I,""),set(R,[],!0),set(M,[],!0)}function xe(){set(k,""),set(I,""),set(R,[],!0),set(M,[],!0)}async function ve(){if(!get(A)){set(A,!0);try{const D=await captureViewport();set(R,[...get(R),D],!0)}catch(D){console.error("Screenshot capture failed:",D)}set(A,!1)}}function Re(D){set(R,get(R).filter((H,X)=>X!==D),!0)}function ke(){startElementPicker(D=>{set(M,[...get(M),{tagName:D.tagName,className:D.className,id:D.id,selector:D.selector,textContent:D.textContent}],!0)})}function me(D){set(M,get(M).filter((H,X)=>X!==D),!0)}async function Ce(D,H,X){set(S,D,!0);const fe=H==="rejected"?{screenshots:get(R).length>0?get(R):void 0,elements:get(M).length>0?get(M):void 0}:void 0;(await respondToReport(h(),D,H,X,fe)).ok?(g(g().map(de=>de.id===D?{...de,status:H==="rejected"?"submitted":"accepted",responded_at:new Date().toISOString(),...H==="rejected"?{revision_count:(de.revision_count||0)+1}:{}}:de)),set(k,""),set(I,""),set(R,[],!0),set(M,[],!0),b()()):set(k,""),set(S,"")}function T(D){set(w,get(w)===D?null:D,!0)}function z(D){return D?D.length:0}function L(D){return{submission:"Submitted",completion:"Completed",rejection:"Rejected",acceptance:"Accepted",note:"Note"}[D.type]||D.type}function P(D){return{submitted:"Submitted",in_progress:"Working On It",completed:"Ready for Review",accepted:"Done",rejected:"Revising",wontfix:"Won't Fix",closed:"Closed"}[D]||D}function G(D){return{submitted:"#6b7280",in_progress:"#3b82f6",completed:"#f59e0b",accepted:"#10b981",rejected:"#f59e0b",wontfix:"#6b7280",closed:"#6b7280"}[D]||"#6b7280"}function W(D){const H=D.issue_type||D.type;return H==="bug"?"πŸ›":H==="enhancement"||H==="feature"?"✨":H==="task"?"βœ…":H==="epic"?"🎯":"πŸ“"}function ie(D){const H=Date.now(),X=new Date(D).getTime(),fe=H-X,Q=Math.floor(fe/6e4);if(Q<1)return"just now";if(Q<60)return`${Q}m ago`;const de=Math.floor(Q/60);if(de<24)return`${de}h ago`;const we=Math.floor(de/24);return we<30?`${we}d ago`:new Date(D).toLocaleDateString()}var J={get endpoint(){return h()},set endpoint(D){h(D),flushSync()},get reports(){return g()},set reports(D=[]){g(D),flushSync()},get loading(){return m()},set loading(D){m(D),flushSync()},get error(){return _()},set error(D){_(D),flushSync()},get onreload(){return b()},set onreload(D){b(D),flushSync()}},ne=root$4(),ge=child(ne);{var ee=D=>{var H=root_1$3(),X=child(H);let fe;var Q=sibling(child(X)),de=child(Q,!0);reset(Q),reset(X);var we=sibling(X,2);let Ze;var Te=sibling(child(we)),Fe=child(Te,!0);reset(Te),reset(we);var Oe=sibling(we,2);let te;var Qe=sibling(child(Oe)),wt=child(Qe,!0);reset(Qe),reset(Oe),reset(H),template_effect(()=>{fe=set_class(X,1,"source-pill svelte-1fnmin5",null,fe,{active:get(N)==="all"}),set_text(de,g().length),Ze=set_class(we,1,"source-pill svelte-1fnmin5",null,Ze,{active:get(N)==="feedback"}),set_text(Fe,get(Y)),te=set_class(Oe,1,"source-pill svelte-1fnmin5",null,te,{active:get(N)==="jat"}),set_text(wt,get(q))}),delegated("click",X,()=>set(N,"all")),delegated("click",we,()=>set(N,"feedback")),delegated("click",Oe,()=>set(N,"jat")),append(D,H)};if_block(ge,D=>{get(ue)&&D(ee)})}var he=sibling(ge,2),B=child(he);let K;var pe=sibling(child(B));{var le=D=>{var H=root_2$3(),X=child(H,!0);reset(H),template_effect(()=>set_text(X,get(F))),append(D,H)};if_block(pe,D=>{get(F)>0&&D(le)})}reset(B);var Ee=sibling(B,2);let Me;var Se=sibling(child(Ee));{var We=D=>{var H=root_3$2(),X=child(H,!0);reset(H),template_effect(()=>set_text(X,get(j))),append(D,H)};if_block(Se,D=>{get(j)>0&&D(We)})}reset(Ee),reset(he);var ae=sibling(he,2),V=child(ae);return key(V,()=>get(C),D=>{var H=root_4$2(),X=child(H);{var fe=Te=>{var Fe=root_5$2();append(Te,Fe)},Q=Te=>{var Fe=root_6$3(),Oe=child(Fe),te=child(Oe,!0);reset(Oe);var Qe=sibling(Oe,2);reset(Fe),template_effect(()=>set_text(te,_())),delegated("click",Qe,function(...wt){var Ge;(Ge=b())==null||Ge.apply(this,wt)}),append(Te,Fe)},de=Te=>{var Fe=root_7$3(),Oe=child(Fe);Oe.textContent="πŸ“‹",next(4),reset(Fe),append(Te,Fe)},we=Te=>{var Fe=root_8$3(),Oe=child(Fe),te=child(Oe,!0);reset(Oe),reset(Fe),template_effect(()=>set_text(te,get(C)==="submitted"?"No submitted requests":get(C)==="review"?"Nothing to review right now":"No completed requests yet")),append(Te,Fe)},Ze=Te=>{var Fe=root_9$2();each(Fe,21,()=>get(O),Oe=>Oe.id,(Oe,te)=>{var Qe=root_10$2();let wt;var Ge=child(Qe),Ve=child(Ge),yt=child(Ve,!0);reset(Ve);var Ot=sibling(Ve,2),Cn=child(Ot,!0);reset(Ot);var Be=sibling(Ot,2),He=child(Be,!0);reset(Be);var xt=sibling(Be,2);let dt;reset(Ge);var Wt=sibling(Ge,2);{var lr=hn=>{var nn=root_11$2(),In=child(nn);{var Fn=Ne=>{var Le=root_12$2(),et=sibling(child(Le),2),pt=child(et,!0);reset(et),reset(Le),template_effect(Rt=>{set_attribute(Le,"href",get(te).page_url),set_text(pt,Rt)},[()=>get(te).page_url.replace(/^https?:\/\//,"").split("?")[0]]),append(Ne,Le)};if_block(In,Ne=>{get(te).page_url&&Ne(Fn)})}var gn=sibling(In,2);{var cr=Ne=>{var Le=root_13$2(),et=child(Le);reset(Le),template_effect(()=>set_text(et,`Revision ${get(te).revision_count??""}`)),append(Ne,Le)};if_block(gn,Ne=>{get(te).revision_count>0&&get(te).status!=="accepted"&&Ne(cr)})}var Kn=sibling(gn,2);{var Pn=Ne=>{var Le=root_14$3(),et=first_child(Le),pt=child(et);let Rt;var it=sibling(pt,2),rt=child(it);reset(it),reset(et);var qe=sibling(et,2);{var ht=Ye=>{var Et=root_15$3();each(Et,21,()=>get(te).thread,Qt=>Qt.id,(Qt,Xe)=>{var sn=root_16$3();let an;var _n=child(sn),Vt=child(_n),Rn=child(Vt,!0);reset(Vt);var Dt=sibling(Vt,2);let An;var Un=child(Dt,!0);reset(Dt);var Z=sibling(Dt,2),re=child(Z,!0);reset(Z),reset(_n);var _e=sibling(_n,2),ye=child(_e);html(ye,()=>oe(get(Xe).message)),reset(_e);var De=sibling(_e,2);{var Ue=st=>{var mt=root_17$3();each(mt,21,()=>get(Xe).summary,index,(je,Pe)=>{var tt=root_18$2(),bt=child(tt,!0);reset(tt),template_effect(()=>set_text(bt,get(Pe))),append(je,tt)}),reset(mt),append(st,mt)};if_block(De,st=>{get(Xe).summary&&get(Xe).summary.length>0&&st(Ue)})}var ut=sibling(De,2);{var gt=st=>{var mt=root_19$2(),je=first_child(mt);each(je,21,()=>get(Xe).screenshots,index,(bt,kt,At)=>{var Nn=comment(),jn=first_child(Nn);{var en=Ct=>{var Lt=root_21$2();set_attribute(Lt,"aria-label",`Screenshot ${At+1}`);var $n=child(Lt);set_attribute($n,"alt",`Screenshot ${At+1}`),reset(Lt),template_effect(()=>set_attribute($n,"src",`${h()??""}${get(kt).url??""}`)),delegated("click",Lt,()=>set(y,get(y)===get(kt).url?null:get(kt).url,!0)),append(Ct,Lt)};if_block(jn,Ct=>{get(kt).url&&Ct(en)})}append(bt,Nn)}),reset(je);var Pe=sibling(je,2);{var tt=bt=>{const kt=user_derived(()=>get(Xe).screenshots.find(en=>en.url===get(y)));var At=comment(),Nn=first_child(At);{var jn=en=>{var Ct=root_23$2(),Lt=child(Ct),$n=sibling(Lt,2);reset(Ct),template_effect(()=>set_attribute(Lt,"src",`${h()??""}${get(y)??""}`)),delegated("click",$n,()=>set(y,null)),append(en,Ct)};if_block(Nn,en=>{get(kt)&&en(jn)})}append(bt,At)};if_block(Pe,bt=>{get(y)&&bt(tt)})}append(st,mt)};if_block(ut,st=>{get(Xe).screenshots&&get(Xe).screenshots.length>0&&st(gt)})}var _t=sibling(ut,2);{var Gt=st=>{var mt=root_24$1();each(mt,21,()=>get(Xe).elements,index,(je,Pe)=>{var tt=root_25$1(),bt=child(tt);reset(tt),template_effect((kt,At)=>{set_attribute(tt,"title",get(Pe).selector),set_text(bt,`<${kt??""}${get(Pe).id?`#${get(Pe).id}`:""}${At??""}>`)},[()=>get(Pe).tagName.toLowerCase(),()=>get(Pe).className?`.${get(Pe).className.split(" ")[0]}`:""]),append(je,tt)}),reset(mt),append(st,mt)};if_block(_t,st=>{get(Xe).elements&&get(Xe).elements.length>0&&st(Gt)})}reset(sn),template_effect((st,mt)=>{an=set_class(sn,1,"thread-entry svelte-1fnmin5",null,an,{"thread-user":get(Xe).from==="user","thread-dev":get(Xe).from==="dev"}),set_text(Rn,get(Xe).from==="user"?"You":"Dev"),An=set_class(Dt,1,"thread-type-badge svelte-1fnmin5",null,An,{submission:get(Xe).type==="submission",completion:get(Xe).type==="completion",rejection:get(Xe).type==="rejection",acceptance:get(Xe).type==="acceptance"}),set_text(Un,st),set_text(re,mt)},[()=>L(get(Xe)),()=>ie(get(Xe).at)]),append(Qt,sn)}),reset(Et),append(Ye,Et)};if_block(qe,Ye=>{get(w)===get(te).id&&Ye(ht)})}template_effect((Ye,Et)=>{Rt=set_class(pt,0,"thread-toggle-icon svelte-1fnmin5",null,Rt,{expanded:get(w)===get(te).id}),set_text(rt,`${Ye??""} ${Et??""}`)},[()=>z(get(te).thread),()=>z(get(te).thread)===1?"message":"messages"]),delegated("click",et,()=>T(get(te).id)),append(Ne,Le)},dr=Ne=>{var Le=root_26(),et=child(Le,!0);reset(Le),template_effect(pt=>set_text(et,pt),[()=>get(te).description.length>120?get(te).description.slice(0,120)+"...":get(te).description]),append(Ne,Le)};if_block(Kn,Ne=>{get(te).thread&&get(te).thread.length>0?Ne(Pn):get(te).description&&Ne(dr,1)})}var Xn=sibling(Kn,2);{var Zn=Ne=>{var Le=root_27$1(),et=first_child(Le);each(et,21,()=>get(te).screenshot_urls,index,(rt,qe,ht)=>{var Ye=root_28$1();set_attribute(Ye,"aria-label",`Screenshot ${ht+1}`);var Et=child(Ye);set_attribute(Et,"alt",`Screenshot ${ht+1}`),reset(Ye),template_effect(()=>set_attribute(Et,"src",`${h()??""}${get(qe)??""}`)),delegated("click",Ye,()=>set(y,get(y)===get(qe)?null:get(qe),!0)),append(rt,Ye)}),reset(et);var pt=sibling(et,2);{var Rt=rt=>{var qe=root_29$1(),ht=child(qe),Ye=sibling(ht,2);reset(qe),template_effect(()=>set_attribute(ht,"src",`${h()??""}${get(y)??""}`)),delegated("click",Ye,()=>set(y,null)),append(rt,qe)},it=user_derived(()=>get(y)&&get(te).screenshot_urls.includes(get(y)));if_block(pt,rt=>{get(it)&&rt(Rt)})}append(Ne,Le)};if_block(Xn,Ne=>{!get(te).thread&&get(te).screenshot_urls&&get(te).screenshot_urls.length>0&&Ne(Zn)})}var Jn=sibling(Xn,2);{var Qn=Ne=>{const Le=user_derived(()=>{var it,rt;return get(te).recording_url??((rt=(it=get(te).thread)==null?void 0:it.find(qe=>qe.recordingUrl))==null?void 0:rt.recordingUrl)??null});var et=comment(),pt=first_child(et);{var Rt=it=>{var rt=root_31$1(),qe=first_child(rt),ht=sibling(child(qe),2);reset(qe);var Ye=sibling(qe,2);{let Et=user_derived(()=>get(te).console_logs??null),Qt=user_derived(()=>get(te).network_requests??null);TimelineViewer(Ye,{get recordingUrl(){return get(Le)},get endpoint(){return h()},get consoleLogs(){return get(Et)},get networkRequests(){return get(Qt)}})}template_effect(()=>set_attribute(ht,"href",`${h()??""}/feedback/replay.html?id=${get(te).id??""}`)),append(it,rt)};if_block(pt,it=>{get(Le)&&it(Rt)})}append(Ne,et)},rn=user_derived(()=>get(te).recording_url||get(te).thread&&get(te).thread.some(Ne=>Ne.recordingUrl));if_block(Jn,Ne=>{get(rn)&&Ne(Qn)})}var Tn=sibling(Jn,2);{var er=Ne=>{var Le=root_32$1(),et=sibling(child(Le),2),pt=child(et);html(pt,()=>oe(get(te).dev_notes)),reset(et),reset(Le),append(Ne,Le)};if_block(Tn,Ne=>{get(te).dev_notes&&!get(te).thread&&get(te).status!=="in_progress"&&Ne(er)})}var tr=sibling(Tn,2),mn=child(tr),Bn=child(mn,!0);reset(mn);var nr=sibling(mn,2);{var vn=Ne=>{var Le=root_33$1();Le.textContent="βœ“ Accepted",append(Ne,Le)},rr=Ne=>{var Le=root_34$1();Le.textContent="βœ— Rejected",append(Ne,Le)},ur=Ne=>{var Le=comment(),et=first_child(Le);{var pt=it=>{var rt=root_36$1(),qe=child(rt);remove_textarea_child(qe);var ht=sibling(qe,2),Ye=child(ht),Et=sibling(child(Ye));reset(Ye);var Qt=sibling(Ye,2);reset(ht);var Xe=sibling(ht,2);{var sn=_e=>{var ye=root_37$1();each(ye,21,()=>get(R),index,(De,Ue,ut)=>{var gt=root_38(),_t=child(gt);set_attribute(_t,"alt",`Screenshot ${ut+1}`);var Gt=sibling(_t,2);reset(gt),template_effect(()=>set_attribute(_t,"src",get(Ue))),delegated("click",Gt,()=>Re(ut)),append(De,gt)}),reset(ye),append(_e,ye)};if_block(Xe,_e=>{get(R).length>0&&_e(sn)})}var an=sibling(Xe,2);{var _n=_e=>{var ye=root_39();each(ye,21,()=>get(M),index,(De,Ue,ut)=>{var gt=root_40(),_t=child(gt),Gt=sibling(_t);reset(gt),template_effect(st=>set_text(_t,`<${st??""}${get(Ue).id?`#${get(Ue).id}`:""}> `),[()=>get(Ue).tagName.toLowerCase()]),delegated("click",Gt,()=>me(ut)),append(De,gt)}),reset(ye),append(_e,ye)};if_block(an,_e=>{get(M).length>0&&_e(_n)})}var Vt=sibling(an,2),Rn=child(Vt),Dt=sibling(Rn,2),An=child(Dt,!0);reset(Dt),reset(Vt);var Un=sibling(Vt,2);{var Z=_e=>{var ye=root_41(),De=child(ye);reset(ye),template_effect(Ue=>set_text(De,`${Ue??""} more characters needed`),[()=>10-get(I).trim().length]),append(_e,ye)},re=user_derived(()=>get(I).trim().length>0&&get(I).trim().length<10);if_block(Un,_e=>{get(re)&&_e(Z)})}reset(rt),template_effect(_e=>{Ye.disabled=get(A),set_text(Et,` ${get(A)?"...":"Screenshot"}`),Dt.disabled=_e,set_text(An,get(S)===get(te).id?"...":"βœ— Reject")},[()=>get(I).trim().length<10||get(S)===get(te).id]),bind_value(qe,()=>get(I),_e=>set(I,_e)),delegated("click",Ye,ve),delegated("click",Qt,ke),delegated("click",Rn,xe),delegated("click",Dt,()=>Ce(get(te).id,"rejected",get(I).trim())),append(it,rt)},Rt=it=>{var rt=root_42(),qe=child(rt),ht=child(qe,!0);reset(qe);var Ye=sibling(qe,2);Ye.textContent="βœ— Reject",reset(rt),template_effect(()=>{qe.disabled=get(S)===get(te).id,set_text(ht,get(S)===get(te).id?"...":"βœ“ Accept"),Ye.disabled=get(S)===get(te).id}),delegated("click",qe,()=>Ce(get(te).id,"accepted")),delegated("click",Ye,()=>se(get(te).id)),append(it,rt)};if_block(et,it=>{get(k)===get(te).id?it(pt):it(Rt,!1)})}append(Ne,Le)};if_block(nr,Ne=>{get(te).status==="accepted"?Ne(vn):get(te).status==="rejected"?Ne(rr,1):(get(te).status==="completed"||get(te).status==="wontfix")&&Ne(ur,2)})}reset(tr),reset(nn),template_effect(Ne=>set_text(Bn,Ne),[()=>ie(get(te).created_at)]),transition(3,nn,()=>slide,()=>({duration:200})),append(hn,nn)};if_block(Wt,hn=>{get(x)===get(te).id&&hn(lr)})}reset(Qe),template_effect((hn,nn,In,Fn,gn)=>{wt=set_class(Qe,1,"report-card svelte-1fnmin5",null,wt,{awaiting:get(te).status==="completed",expanded:get(x)===get(te).id}),set_attribute(Qe,"data-card-id",get(te).id),set_text(yt,hn),set_text(Cn,get(te).title),set_style(Be,`background: ${nn??""}20; color: ${In??""}; border-color: ${Fn??""}40;`),set_text(He,gn),dt=set_class(xt,0,"chevron svelte-1fnmin5",null,dt,{"chevron-open":get(x)===get(te).id})},[()=>W(get(te)),()=>G(get(te).status),()=>G(get(te).status),()=>G(get(te).status),()=>P(get(te).status)]),delegated("click",Ge,()=>ce(get(te).id)),append(Oe,Qe)}),reset(Fe),append(Te,Fe)};if_block(X,Te=>{m()?Te(fe):_()&&g().length===0?Te(Q,1):g().length===0?Te(de,2):get(O).length===0?Te(we,3):Te(Ze,!1)})}reset(H),transition(3,H,()=>slide,()=>({duration:200})),append(D,H)}),reset(ae),bind_this(ae,D=>set(E,D),()=>get(E)),reset(ne),template_effect(()=>{K=set_class(B,1,"subtab svelte-1fnmin5",null,K,{active:get(C)==="active"}),Me=set_class(Ee,1,"subtab svelte-1fnmin5",null,Me,{active:get(C)==="done"})}),delegated("click",B,()=>set(C,"active")),delegated("click",Ee,()=>set(C,"done")),append(d,ne),pop(J)}delegate(["click"]),create_custom_element(RequestList,{endpoint:{},reports:{},loading:{},error:{},onreload:{}},[],[],{mode:"open"});var root_6$2=from_html('<span class="step-counter svelte-bez0nz"> </span>'),root_7$2=from_html('<div class="empty-state svelte-bez0nz"><div class="empty-icon svelte-bez0nz"><svg width="32" height="32" viewBox="0 0 24 24" fill="none" class="svelte-bez0nz"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z" fill="currentColor" opacity="0.3" class="svelte-bez0nz"></path><path d="M21 11.5a8.38 8.38 0 01-.9 3.8 8.5 8.5 0 01-7.6 4.7 8.38 8.38 0 01-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 01-.9-3.8 8.5 8.5 0 014.7-7.6 8.38 8.38 0 013.8-.9h.5a8.48 8.48 0 018 8v.5z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" fill="none" class="svelte-bez0nz"></path></svg></div> <p class="empty-text svelte-bez0nz">Tell the agent what to do on this page</p> <p class="empty-hint svelte-bez0nz">e.g. "Fill in the contact form" or "Click the sign up button"</p></div>'),root_14$2=from_html('<span class="msg-tool svelte-bez0nz"> </span>'),root_15$2=from_html('<div class="approval-buttons svelte-bez0nz"><button class="approve-btn svelte-bez0nz"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" class="svelte-bez0nz"><path d="M20 6L9 17l-5-5" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-bez0nz"></path></svg> Approve</button> <button class="skip-btn svelte-bez0nz"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" class="svelte-bez0nz"><path d="M5 5l14 14M19 5L5 19" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="svelte-bez0nz"></path></svg> Skip</button></div>'),root_16$2=from_html("<span> </span>"),root_17$2=from_html('<span class="msg-step svelte-bez0nz"> </span>'),root_10$1=from_html('<div><span class="msg-icon svelte-bez0nz"><!></span> <div class="msg-body svelte-bez0nz"><!> <span class="msg-text svelte-bez0nz"> </span> <!></div> <!></div>'),root_19$1=from_html('<span class="msg-tool svelte-bez0nz"> </span>'),root_20$1=from_html('<span class="msg-duration svelte-bez0nz"> </span>'),root_21$1=from_html('<span class="msg-step svelte-bez0nz"> </span>'),root_18$1=from_html('<div><span class="msg-icon svelte-bez0nz"> </span> <div class="msg-body svelte-bez0nz"><!> <span class="msg-text svelte-bez0nz"> </span> <!></div> <!></div>'),root_22$1=from_html('<div class="message msg-thinking live svelte-bez0nz"><span class="msg-icon svelte-bez0nz">…</span> <div class="msg-body svelte-bez0nz"><span class="thinking-dots svelte-bez0nz"><span class="dot svelte-bez0nz"></span> <span class="dot svelte-bez0nz"></span> <span class="dot svelte-bez0nz"></span></span></div></div>'),root_8$2=from_html("<!> <!>",1),root_23$1=from_html('<button class="stop-btn svelte-bez0nz" aria-label="Stop agent"><svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor" class="svelte-bez0nz"><rect x="6" y="6" width="12" height="12" rx="1" class="svelte-bez0nz"></rect></svg> Stop</button>'),root$3=from_html('<div class="agent-panel svelte-bez0nz"><div class="status-bar svelte-bez0nz"><div><span class="status-dot svelte-bez0nz"></span> <span class="status-text svelte-bez0nz"><!></span></div> <div class="status-right svelte-bez0nz"><!> <label class="auto-approve-toggle svelte-bez0nz" title="Auto-approve all actions"><input type="checkbox" class="svelte-bez0nz"/> <span class="toggle-label svelte-bez0nz">Auto</span></label></div></div> <div class="messages svelte-bez0nz"><!></div> <div class="input-area svelte-bez0nz"><!> <div class="input-row svelte-bez0nz"><input type="text" class="chat-input svelte-bez0nz"/> <button class="send-btn svelte-bez0nz" aria-label="Send"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" class="svelte-bez0nz"><path d="M22 2L11 13M22 2l-7 20-4-9-9-4 20-7z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-bez0nz"></path></svg></button></div></div></div>');const $$css$3={hash:"svelte-bez0nz",code:`.agent-panel.svelte-bez0nz {display:flex;flex-direction:column;height:100%;min-height:0;font-family:inherit;color:#e5e7eb;}
120
+ /* Enhanced rejection form */.reject-attachments.svelte-1fnmin5 {display:flex;gap:6px;margin-top:6px;}.attach-btn.svelte-1fnmin5 {display:flex;align-items:center;gap:4px;padding:3px 8px;background:#111827;border:1px solid #374151;border-radius:4px;color:#9ca3af;font-size:11px;cursor:pointer;font-family:inherit;transition:border-color 0.15s, color 0.15s;}.attach-btn.svelte-1fnmin5:hover:not(:disabled) {border-color:#60a5fa;color:#d1d5db;}.attach-btn.svelte-1fnmin5:disabled {opacity:0.5;cursor:not-allowed;}.reject-preview-strip.svelte-1fnmin5 {display:flex;gap:4px;margin-top:6px;overflow-x:auto;}.reject-preview-item.svelte-1fnmin5 {position:relative;flex-shrink:0;width:52px;height:36px;border-radius:4px;overflow:hidden;border:1px solid #374151;}.reject-preview-item.svelte-1fnmin5 img:where(.svelte-1fnmin5) {width:100%;height:100%;object-fit:cover;display:block;}.reject-preview-remove.svelte-1fnmin5 {position:absolute;top:1px;right:1px;width:14px;height:14px;border-radius:50%;background:rgba(0,0,0,0.7);color:#e5e7eb;border:none;cursor:pointer;font-size:10px;line-height:1;display:flex;align-items:center;justify-content:center;}.reject-preview-remove.svelte-1fnmin5:hover {background:#ef4444;}.reject-element-strip.svelte-1fnmin5 {display:flex;gap:3px;flex-wrap:wrap;margin-top:6px;}.report-footer.svelte-1fnmin5 {display:flex;align-items:center;justify-content:space-between;margin-top:8px;}.report-time.svelte-1fnmin5 {font-size:11px;color:#6b7280;}.status-pill.svelte-1fnmin5 {font-size:11px;font-weight:600;padding:2px 8px;border-radius:4px;}.status-pill.accepted.svelte-1fnmin5 {color:#10b981;background:#10b98118;}.status-pill.rejected.svelte-1fnmin5 {color:#ef4444;background:#ef444418;}.response-actions.svelte-1fnmin5 {display:flex;gap:6px;}.accept-btn.svelte-1fnmin5, .reject-btn.svelte-1fnmin5 {padding:3px 10px;border-radius:4px;font-size:11px;font-weight:600;cursor:pointer;border:1px solid;font-family:inherit;transition:background 0.15s;}.accept-btn.svelte-1fnmin5 {background:#10b98118;color:#10b981;border-color:#10b98140;}.accept-btn.svelte-1fnmin5:hover:not(:disabled) {background:#10b98130;}.reject-btn.svelte-1fnmin5 {background:#ef444418;color:#ef4444;border-color:#ef444440;}.reject-btn.svelte-1fnmin5:hover:not(:disabled) {background:#ef444430;}.accept-btn.svelte-1fnmin5:disabled, .reject-btn.svelte-1fnmin5:disabled {opacity:0.5;cursor:not-allowed;}.reject-reason-form.svelte-1fnmin5 {width:100%;margin-top:6px;}.reject-reason-input.svelte-1fnmin5 {width:100%;padding:6px 8px;background:#111827;border:1px solid #374151;border-radius:5px;color:#d1d5db;font-size:12px;font-family:inherit;resize:vertical;min-height:40px;}.reject-reason-input.svelte-1fnmin5:focus {outline:none;border-color:#ef4444;}.reject-reason-actions.svelte-1fnmin5 {display:flex;justify-content:flex-end;gap:6px;margin-top:6px;}.cancel-btn.svelte-1fnmin5 {padding:3px 10px;border-radius:4px;font-size:11px;font-weight:600;cursor:pointer;border:1px solid #374151;background:#1f2937;color:#9ca3af;font-family:inherit;transition:background 0.15s;}.cancel-btn.svelte-1fnmin5:hover {background:#374151;}.confirm-reject-btn.svelte-1fnmin5 {padding:3px 10px;border-radius:4px;font-size:11px;font-weight:600;cursor:pointer;border:1px solid #ef444440;background:#ef444418;color:#ef4444;font-family:inherit;transition:background 0.15s;}.confirm-reject-btn.svelte-1fnmin5:hover:not(:disabled) {background:#ef444430;}.confirm-reject-btn.svelte-1fnmin5:disabled {opacity:0.5;cursor:not-allowed;}.char-hint.svelte-1fnmin5 {display:block;font-size:10px;color:#6b7280;margin-top:3px;}`};function RequestList(d,p){push(p,!0),append_styles(d,$$css$4);let h=prop(p,"endpoint",7),g=prop(p,"reports",31,()=>proxy([])),m=prop(p,"loading",7),_=prop(p,"error",7),b=prop(p,"onreload",7),y=state(null),w=state(null),x=state(null),E=state(void 0),S=state(""),k=state(""),I=state(""),R=state(proxy([])),M=state(proxy([])),A=state(!1),C=state("active"),N=state("all"),$=user_derived(()=>get(N)==="all"?g():g().filter(D=>(D.source||"feedback")===get(N))),O=user_derived(()=>get(C)==="active"?get($).filter(D=>["submitted","in_progress","rejected","completed","wontfix"].includes(D.status)):get($).filter(D=>D.status==="accepted"||D.status==="closed")),F=user_derived(()=>get($).filter(D=>["submitted","in_progress","rejected","completed","wontfix"].includes(D.status)).length),j=user_derived(()=>get($).filter(D=>D.status==="accepted"||D.status==="closed").length),Y=user_derived(()=>g().filter(D=>(D.source||"feedback")==="feedback").length),q=user_derived(()=>g().filter(D=>D.source==="jat").length),ue=user_derived(()=>get(Y)>0&&get(q)>0);function oe(D){return D?D.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/^#{1,3} (.+)$/gm,'<strong style="display:block;margin-top:6px;color:#f3f4f6">$1</strong>').replace(/\*\*(.+?)\*\*/g,"<strong>$1</strong>").replace(/\*(.+?)\*/g,"<em>$1</em>").replace(/^[-*] (.+)$/gm,'<span style="display:block;padding-left:10px">β€’ $1</span>').replace(/\n/g,"<br>"):""}function ce(D){const H=get(x)===D;set(x,H?null:D,!0),H?(get(w)===D&&set(w,null),set(y,null)):setTimeout(()=>{if(!get(E))return;const X=get(E).querySelector(`[data-card-id="${D}"]`);X&&X.scrollIntoView({behavior:"smooth",block:"nearest"})},220)}function se(D){set(k,D,!0),set(I,""),set(R,[],!0),set(M,[],!0)}function xe(){set(k,""),set(I,""),set(R,[],!0),set(M,[],!0)}async function ve(){if(!get(A)){set(A,!0);try{const D=await captureViewport();set(R,[...get(R),D],!0)}catch(D){console.error("Screenshot capture failed:",D)}set(A,!1)}}function Re(D){set(R,get(R).filter((H,X)=>X!==D),!0)}function ke(){startElementPicker(D=>{set(M,[...get(M),{tagName:D.tagName,className:D.className,id:D.id,selector:D.selector,textContent:D.textContent}],!0)})}function me(D){set(M,get(M).filter((H,X)=>X!==D),!0)}async function Ce(D,H,X){set(S,D,!0);const fe=H==="rejected"?{screenshots:get(R).length>0?get(R):void 0,elements:get(M).length>0?get(M):void 0}:void 0;(await respondToReport(h(),D,H,X,fe)).ok?(g(g().map(de=>de.id===D?{...de,status:H==="rejected"?"submitted":"accepted",responded_at:new Date().toISOString(),...H==="rejected"?{revision_count:(de.revision_count||0)+1}:{}}:de)),set(k,""),set(I,""),set(R,[],!0),set(M,[],!0),b()()):set(k,""),set(S,"")}function T(D){set(w,get(w)===D?null:D,!0)}function z(D){return D?D.length:0}function L(D){return{submission:"Submitted",completion:"Completed",rejection:"Rejected",acceptance:"Accepted",note:"Note"}[D.type]||D.type}function P(D){return{submitted:"Submitted",in_progress:"Working On It",completed:"Ready for Review",accepted:"Done",rejected:"Revising",wontfix:"Won't Fix",closed:"Closed"}[D]||D}function G(D){return{submitted:"#6b7280",in_progress:"#3b82f6",completed:"#f59e0b",accepted:"#10b981",rejected:"#f59e0b",wontfix:"#6b7280",closed:"#6b7280"}[D]||"#6b7280"}function W(D){const H=D.issue_type||D.type;return H==="bug"?"πŸ›":H==="enhancement"||H==="feature"?"✨":H==="task"?"βœ…":H==="epic"?"🎯":"πŸ“"}function ie(D){const H=Date.now(),X=new Date(D).getTime(),fe=H-X,Q=Math.floor(fe/6e4);if(Q<1)return"just now";if(Q<60)return`${Q}m ago`;const de=Math.floor(Q/60);if(de<24)return`${de}h ago`;const we=Math.floor(de/24);return we<30?`${we}d ago`:new Date(D).toLocaleDateString()}var J={get endpoint(){return h()},set endpoint(D){h(D),flushSync()},get reports(){return g()},set reports(D=[]){g(D),flushSync()},get loading(){return m()},set loading(D){m(D),flushSync()},get error(){return _()},set error(D){_(D),flushSync()},get onreload(){return b()},set onreload(D){b(D),flushSync()}},ne=root$4(),ge=child(ne);{var ee=D=>{var H=root_1$3(),X=child(H);let fe;var Q=sibling(child(X)),de=child(Q,!0);reset(Q),reset(X);var we=sibling(X,2);let Ze;var Te=sibling(child(we)),Fe=child(Te,!0);reset(Te),reset(we);var Oe=sibling(we,2);let te;var Qe=sibling(child(Oe)),wt=child(Qe,!0);reset(Qe),reset(Oe),reset(H),template_effect(()=>{fe=set_class(X,1,"source-pill svelte-1fnmin5",null,fe,{active:get(N)==="all"}),set_text(de,g().length),Ze=set_class(we,1,"source-pill svelte-1fnmin5",null,Ze,{active:get(N)==="feedback"}),set_text(Fe,get(Y)),te=set_class(Oe,1,"source-pill svelte-1fnmin5",null,te,{active:get(N)==="jat"}),set_text(wt,get(q))}),delegated("click",X,()=>set(N,"all")),delegated("click",we,()=>set(N,"feedback")),delegated("click",Oe,()=>set(N,"jat")),append(D,H)};if_block(ge,D=>{get(ue)&&D(ee)})}var he=sibling(ge,2),B=child(he);let K;var pe=sibling(child(B));{var le=D=>{var H=root_2$3(),X=child(H,!0);reset(H),template_effect(()=>set_text(X,get(F))),append(D,H)};if_block(pe,D=>{get(F)>0&&D(le)})}reset(B);var Ee=sibling(B,2);let Me;var Se=sibling(child(Ee));{var We=D=>{var H=root_3$2(),X=child(H,!0);reset(H),template_effect(()=>set_text(X,get(j))),append(D,H)};if_block(Se,D=>{get(j)>0&&D(We)})}reset(Ee),reset(he);var ae=sibling(he,2),V=child(ae);return key(V,()=>get(C),D=>{var H=root_4$2(),X=child(H);{var fe=Te=>{var Fe=root_5$2();append(Te,Fe)},Q=Te=>{var Fe=root_6$3(),Oe=child(Fe),te=child(Oe,!0);reset(Oe);var Qe=sibling(Oe,2);reset(Fe),template_effect(()=>set_text(te,_())),delegated("click",Qe,function(...wt){var Ge;(Ge=b())==null||Ge.apply(this,wt)}),append(Te,Fe)},de=Te=>{var Fe=root_7$3(),Oe=child(Fe);Oe.textContent="πŸ“‹",next(4),reset(Fe),append(Te,Fe)},we=Te=>{var Fe=root_8$3(),Oe=child(Fe),te=child(Oe,!0);reset(Oe),reset(Fe),template_effect(()=>set_text(te,get(C)==="submitted"?"No submitted requests":get(C)==="review"?"Nothing to review right now":"No completed requests yet")),append(Te,Fe)},Ze=Te=>{var Fe=root_9$2();each(Fe,21,()=>get(O),Oe=>Oe.id,(Oe,te)=>{var Qe=root_10$2();let wt;var Ge=child(Qe),Ve=child(Ge),yt=child(Ve,!0);reset(Ve);var Ot=sibling(Ve,2),Cn=child(Ot,!0);reset(Ot);var Be=sibling(Ot,2),He=child(Be,!0);reset(Be);var xt=sibling(Be,2);let dt;reset(Ge);var Wt=sibling(Ge,2);{var lr=hn=>{var nn=root_11$2(),In=child(nn);{var Fn=Ne=>{var Le=root_12$2(),et=sibling(child(Le),2),pt=child(et,!0);reset(et),reset(Le),template_effect(Rt=>{set_attribute(Le,"href",get(te).page_url),set_text(pt,Rt)},[()=>get(te).page_url.replace(/^https?:\/\//,"").split("?")[0]]),append(Ne,Le)};if_block(In,Ne=>{get(te).page_url&&Ne(Fn)})}var gn=sibling(In,2);{var cr=Ne=>{var Le=root_13$2(),et=child(Le);reset(Le),template_effect(()=>set_text(et,`Revision ${get(te).revision_count??""}`)),append(Ne,Le)};if_block(gn,Ne=>{get(te).revision_count>0&&get(te).status!=="accepted"&&Ne(cr)})}var Kn=sibling(gn,2);{var Pn=Ne=>{var Le=root_14$3(),et=first_child(Le),pt=child(et);let Rt;var it=sibling(pt,2),rt=child(it);reset(it),reset(et);var qe=sibling(et,2);{var ht=Ye=>{var Et=root_15$3();each(Et,21,()=>get(te).thread,Qt=>Qt.id,(Qt,Xe)=>{var sn=root_16$3();let an;var _n=child(sn),Vt=child(_n),Rn=child(Vt,!0);reset(Vt);var Dt=sibling(Vt,2);let An;var Un=child(Dt,!0);reset(Dt);var Z=sibling(Dt,2),re=child(Z,!0);reset(Z),reset(_n);var _e=sibling(_n,2),ye=child(_e);html(ye,()=>oe(get(Xe).message)),reset(_e);var De=sibling(_e,2);{var Ue=st=>{var mt=root_17$3();each(mt,21,()=>get(Xe).summary,index,(je,Pe)=>{var tt=root_18$2(),bt=child(tt,!0);reset(tt),template_effect(()=>set_text(bt,get(Pe))),append(je,tt)}),reset(mt),append(st,mt)};if_block(De,st=>{get(Xe).summary&&get(Xe).summary.length>0&&st(Ue)})}var ut=sibling(De,2);{var gt=st=>{var mt=root_19$2(),je=first_child(mt);each(je,21,()=>get(Xe).screenshots,index,(bt,kt,At)=>{var Nn=comment(),jn=first_child(Nn);{var en=Ct=>{var Lt=root_21$2();set_attribute(Lt,"aria-label",`Screenshot ${At+1}`);var $n=child(Lt);set_attribute($n,"alt",`Screenshot ${At+1}`),reset(Lt),template_effect(()=>set_attribute($n,"src",`${h()??""}${get(kt).url??""}`)),delegated("click",Lt,()=>set(y,get(y)===get(kt).url?null:get(kt).url,!0)),append(Ct,Lt)};if_block(jn,Ct=>{get(kt).url&&Ct(en)})}append(bt,Nn)}),reset(je);var Pe=sibling(je,2);{var tt=bt=>{const kt=user_derived(()=>get(Xe).screenshots.find(en=>en.url===get(y)));var At=comment(),Nn=first_child(At);{var jn=en=>{var Ct=root_23$2(),Lt=child(Ct),$n=sibling(Lt,2);reset(Ct),template_effect(()=>set_attribute(Lt,"src",`${h()??""}${get(y)??""}`)),delegated("click",$n,()=>set(y,null)),append(en,Ct)};if_block(Nn,en=>{get(kt)&&en(jn)})}append(bt,At)};if_block(Pe,bt=>{get(y)&&bt(tt)})}append(st,mt)};if_block(ut,st=>{get(Xe).screenshots&&get(Xe).screenshots.length>0&&st(gt)})}var _t=sibling(ut,2);{var Gt=st=>{var mt=root_24$1();each(mt,21,()=>get(Xe).elements,index,(je,Pe)=>{var tt=root_25$1(),bt=child(tt);reset(tt),template_effect((kt,At)=>{set_attribute(tt,"title",get(Pe).selector),set_text(bt,`<${kt??""}${get(Pe).id?`#${get(Pe).id}`:""}${At??""}>`)},[()=>get(Pe).tagName.toLowerCase(),()=>get(Pe).className?`.${get(Pe).className.split(" ")[0]}`:""]),append(je,tt)}),reset(mt),append(st,mt)};if_block(_t,st=>{get(Xe).elements&&get(Xe).elements.length>0&&st(Gt)})}reset(sn),template_effect((st,mt)=>{an=set_class(sn,1,"thread-entry svelte-1fnmin5",null,an,{"thread-user":get(Xe).from==="user","thread-dev":get(Xe).from==="dev"}),set_text(Rn,get(Xe).from==="user"?"You":"Dev"),An=set_class(Dt,1,"thread-type-badge svelte-1fnmin5",null,An,{submission:get(Xe).type==="submission",completion:get(Xe).type==="completion",rejection:get(Xe).type==="rejection",acceptance:get(Xe).type==="acceptance"}),set_text(Un,st),set_text(re,mt)},[()=>L(get(Xe)),()=>ie(get(Xe).at)]),append(Qt,sn)}),reset(Et),append(Ye,Et)};if_block(qe,Ye=>{get(w)===get(te).id&&Ye(ht)})}template_effect((Ye,Et)=>{Rt=set_class(pt,0,"thread-toggle-icon svelte-1fnmin5",null,Rt,{expanded:get(w)===get(te).id}),set_text(rt,`${Ye??""} ${Et??""}`)},[()=>z(get(te).thread),()=>z(get(te).thread)===1?"message":"messages"]),delegated("click",et,()=>T(get(te).id)),append(Ne,Le)},dr=Ne=>{var Le=root_26(),et=child(Le,!0);reset(Le),template_effect(pt=>set_text(et,pt),[()=>get(te).description.length>120?get(te).description.slice(0,120)+"...":get(te).description]),append(Ne,Le)};if_block(Kn,Ne=>{get(te).thread&&get(te).thread.length>0?Ne(Pn):get(te).description&&Ne(dr,1)})}var Xn=sibling(Kn,2);{var Zn=Ne=>{var Le=root_27$1(),et=first_child(Le);each(et,21,()=>get(te).screenshot_urls,index,(rt,qe,ht)=>{var Ye=root_28$1();set_attribute(Ye,"aria-label",`Screenshot ${ht+1}`);var Et=child(Ye);set_attribute(Et,"alt",`Screenshot ${ht+1}`),reset(Ye),template_effect(()=>set_attribute(Et,"src",`${h()??""}${get(qe)??""}`)),delegated("click",Ye,()=>set(y,get(y)===get(qe)?null:get(qe),!0)),append(rt,Ye)}),reset(et);var pt=sibling(et,2);{var Rt=rt=>{var qe=root_29$1(),ht=child(qe),Ye=sibling(ht,2);reset(qe),template_effect(()=>set_attribute(ht,"src",`${h()??""}${get(y)??""}`)),delegated("click",Ye,()=>set(y,null)),append(rt,qe)},it=user_derived(()=>get(y)&&get(te).screenshot_urls.includes(get(y)));if_block(pt,rt=>{get(it)&&rt(Rt)})}append(Ne,Le)};if_block(Xn,Ne=>{!get(te).thread&&get(te).screenshot_urls&&get(te).screenshot_urls.length>0&&Ne(Zn)})}var Jn=sibling(Xn,2);{var Qn=Ne=>{const Le=user_derived(()=>{var it,rt;return get(te).recording_url??((rt=(it=get(te).thread)==null?void 0:it.find(qe=>qe.recordingUrl))==null?void 0:rt.recordingUrl)??null});var et=comment(),pt=first_child(et);{var Rt=it=>{var rt=root_31$1(),qe=first_child(rt),ht=sibling(child(qe),2);reset(qe);var Ye=sibling(qe,2);{let Et=user_derived(()=>get(te).console_logs??null),Qt=user_derived(()=>get(te).network_requests??null);TimelineViewer(Ye,{get recordingUrl(){return get(Le)},get endpoint(){return h()},get consoleLogs(){return get(Et)},get networkRequests(){return get(Qt)}})}template_effect(()=>set_attribute(ht,"href",`${h()??""}/feedback/replay?id=${get(te).id??""}`)),append(it,rt)};if_block(pt,it=>{get(Le)&&it(Rt)})}append(Ne,et)},rn=user_derived(()=>get(te).recording_url||get(te).thread&&get(te).thread.some(Ne=>Ne.recordingUrl));if_block(Jn,Ne=>{get(rn)&&Ne(Qn)})}var Tn=sibling(Jn,2);{var er=Ne=>{var Le=root_32$1(),et=sibling(child(Le),2),pt=child(et);html(pt,()=>oe(get(te).dev_notes)),reset(et),reset(Le),append(Ne,Le)};if_block(Tn,Ne=>{get(te).dev_notes&&!get(te).thread&&get(te).status!=="in_progress"&&Ne(er)})}var tr=sibling(Tn,2),mn=child(tr),Bn=child(mn,!0);reset(mn);var nr=sibling(mn,2);{var vn=Ne=>{var Le=root_33$1();Le.textContent="βœ“ Accepted",append(Ne,Le)},rr=Ne=>{var Le=root_34$1();Le.textContent="βœ— Rejected",append(Ne,Le)},ur=Ne=>{var Le=comment(),et=first_child(Le);{var pt=it=>{var rt=root_36$1(),qe=child(rt);remove_textarea_child(qe);var ht=sibling(qe,2),Ye=child(ht),Et=sibling(child(Ye));reset(Ye);var Qt=sibling(Ye,2);reset(ht);var Xe=sibling(ht,2);{var sn=_e=>{var ye=root_37$1();each(ye,21,()=>get(R),index,(De,Ue,ut)=>{var gt=root_38(),_t=child(gt);set_attribute(_t,"alt",`Screenshot ${ut+1}`);var Gt=sibling(_t,2);reset(gt),template_effect(()=>set_attribute(_t,"src",get(Ue))),delegated("click",Gt,()=>Re(ut)),append(De,gt)}),reset(ye),append(_e,ye)};if_block(Xe,_e=>{get(R).length>0&&_e(sn)})}var an=sibling(Xe,2);{var _n=_e=>{var ye=root_39();each(ye,21,()=>get(M),index,(De,Ue,ut)=>{var gt=root_40(),_t=child(gt),Gt=sibling(_t);reset(gt),template_effect(st=>set_text(_t,`<${st??""}${get(Ue).id?`#${get(Ue).id}`:""}> `),[()=>get(Ue).tagName.toLowerCase()]),delegated("click",Gt,()=>me(ut)),append(De,gt)}),reset(ye),append(_e,ye)};if_block(an,_e=>{get(M).length>0&&_e(_n)})}var Vt=sibling(an,2),Rn=child(Vt),Dt=sibling(Rn,2),An=child(Dt,!0);reset(Dt),reset(Vt);var Un=sibling(Vt,2);{var Z=_e=>{var ye=root_41(),De=child(ye);reset(ye),template_effect(Ue=>set_text(De,`${Ue??""} more characters needed`),[()=>10-get(I).trim().length]),append(_e,ye)},re=user_derived(()=>get(I).trim().length>0&&get(I).trim().length<10);if_block(Un,_e=>{get(re)&&_e(Z)})}reset(rt),template_effect(_e=>{Ye.disabled=get(A),set_text(Et,` ${get(A)?"...":"Screenshot"}`),Dt.disabled=_e,set_text(An,get(S)===get(te).id?"...":"βœ— Reject")},[()=>get(I).trim().length<10||get(S)===get(te).id]),bind_value(qe,()=>get(I),_e=>set(I,_e)),delegated("click",Ye,ve),delegated("click",Qt,ke),delegated("click",Rn,xe),delegated("click",Dt,()=>Ce(get(te).id,"rejected",get(I).trim())),append(it,rt)},Rt=it=>{var rt=root_42(),qe=child(rt),ht=child(qe,!0);reset(qe);var Ye=sibling(qe,2);Ye.textContent="βœ— Reject",reset(rt),template_effect(()=>{qe.disabled=get(S)===get(te).id,set_text(ht,get(S)===get(te).id?"...":"βœ“ Accept"),Ye.disabled=get(S)===get(te).id}),delegated("click",qe,()=>Ce(get(te).id,"accepted")),delegated("click",Ye,()=>se(get(te).id)),append(it,rt)};if_block(et,it=>{get(k)===get(te).id?it(pt):it(Rt,!1)})}append(Ne,Le)};if_block(nr,Ne=>{get(te).status==="accepted"?Ne(vn):get(te).status==="rejected"?Ne(rr,1):(get(te).status==="completed"||get(te).status==="wontfix")&&Ne(ur,2)})}reset(tr),reset(nn),template_effect(Ne=>set_text(Bn,Ne),[()=>ie(get(te).created_at)]),transition(3,nn,()=>slide,()=>({duration:200})),append(hn,nn)};if_block(Wt,hn=>{get(x)===get(te).id&&hn(lr)})}reset(Qe),template_effect((hn,nn,In,Fn,gn)=>{wt=set_class(Qe,1,"report-card svelte-1fnmin5",null,wt,{awaiting:get(te).status==="completed",expanded:get(x)===get(te).id}),set_attribute(Qe,"data-card-id",get(te).id),set_text(yt,hn),set_text(Cn,get(te).title),set_style(Be,`background: ${nn??""}20; color: ${In??""}; border-color: ${Fn??""}40;`),set_text(He,gn),dt=set_class(xt,0,"chevron svelte-1fnmin5",null,dt,{"chevron-open":get(x)===get(te).id})},[()=>W(get(te)),()=>G(get(te).status),()=>G(get(te).status),()=>G(get(te).status),()=>P(get(te).status)]),delegated("click",Ge,()=>ce(get(te).id)),append(Oe,Qe)}),reset(Fe),append(Te,Fe)};if_block(X,Te=>{m()?Te(fe):_()&&g().length===0?Te(Q,1):g().length===0?Te(de,2):get(O).length===0?Te(we,3):Te(Ze,!1)})}reset(H),transition(3,H,()=>slide,()=>({duration:200})),append(D,H)}),reset(ae),bind_this(ae,D=>set(E,D),()=>get(E)),reset(ne),template_effect(()=>{K=set_class(B,1,"subtab svelte-1fnmin5",null,K,{active:get(C)==="active"}),Me=set_class(Ee,1,"subtab svelte-1fnmin5",null,Me,{active:get(C)==="done"})}),delegated("click",B,()=>set(C,"active")),delegated("click",Ee,()=>set(C,"done")),append(d,ne),pop(J)}delegate(["click"]),create_custom_element(RequestList,{endpoint:{},reports:{},loading:{},error:{},onreload:{}},[],[],{mode:"open"});var root_6$2=from_html('<span class="step-counter svelte-bez0nz"> </span>'),root_7$2=from_html('<div class="empty-state svelte-bez0nz"><div class="empty-icon svelte-bez0nz"><svg width="32" height="32" viewBox="0 0 24 24" fill="none" class="svelte-bez0nz"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z" fill="currentColor" opacity="0.3" class="svelte-bez0nz"></path><path d="M21 11.5a8.38 8.38 0 01-.9 3.8 8.5 8.5 0 01-7.6 4.7 8.38 8.38 0 01-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 01-.9-3.8 8.5 8.5 0 014.7-7.6 8.38 8.38 0 013.8-.9h.5a8.48 8.48 0 018 8v.5z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" fill="none" class="svelte-bez0nz"></path></svg></div> <p class="empty-text svelte-bez0nz">Tell the agent what to do on this page</p> <p class="empty-hint svelte-bez0nz">e.g. "Fill in the contact form" or "Click the sign up button"</p></div>'),root_14$2=from_html('<span class="msg-tool svelte-bez0nz"> </span>'),root_15$2=from_html('<div class="approval-buttons svelte-bez0nz"><button class="approve-btn svelte-bez0nz"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" class="svelte-bez0nz"><path d="M20 6L9 17l-5-5" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-bez0nz"></path></svg> Approve</button> <button class="skip-btn svelte-bez0nz"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" class="svelte-bez0nz"><path d="M5 5l14 14M19 5L5 19" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="svelte-bez0nz"></path></svg> Skip</button></div>'),root_16$2=from_html("<span> </span>"),root_17$2=from_html('<span class="msg-step svelte-bez0nz"> </span>'),root_10$1=from_html('<div><span class="msg-icon svelte-bez0nz"><!></span> <div class="msg-body svelte-bez0nz"><!> <span class="msg-text svelte-bez0nz"> </span> <!></div> <!></div>'),root_19$1=from_html('<span class="msg-tool svelte-bez0nz"> </span>'),root_20$1=from_html('<span class="msg-duration svelte-bez0nz"> </span>'),root_21$1=from_html('<span class="msg-step svelte-bez0nz"> </span>'),root_18$1=from_html('<div><span class="msg-icon svelte-bez0nz"> </span> <div class="msg-body svelte-bez0nz"><!> <span class="msg-text svelte-bez0nz"> </span> <!></div> <!></div>'),root_22$1=from_html('<div class="message msg-thinking live svelte-bez0nz"><span class="msg-icon svelte-bez0nz">…</span> <div class="msg-body svelte-bez0nz"><span class="thinking-dots svelte-bez0nz"><span class="dot svelte-bez0nz"></span> <span class="dot svelte-bez0nz"></span> <span class="dot svelte-bez0nz"></span></span></div></div>'),root_8$2=from_html("<!> <!>",1),root_23$1=from_html('<button class="stop-btn svelte-bez0nz" aria-label="Stop agent"><svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor" class="svelte-bez0nz"><rect x="6" y="6" width="12" height="12" rx="1" class="svelte-bez0nz"></rect></svg> Stop</button>'),root$3=from_html('<div class="agent-panel svelte-bez0nz"><div class="status-bar svelte-bez0nz"><div><span class="status-dot svelte-bez0nz"></span> <span class="status-text svelte-bez0nz"><!></span></div> <div class="status-right svelte-bez0nz"><!> <label class="auto-approve-toggle svelte-bez0nz" title="Auto-approve all actions"><input type="checkbox" class="svelte-bez0nz"/> <span class="toggle-label svelte-bez0nz">Auto</span></label></div></div> <div class="messages svelte-bez0nz"><!></div> <div class="input-area svelte-bez0nz"><!> <div class="input-row svelte-bez0nz"><input type="text" class="chat-input svelte-bez0nz"/> <button class="send-btn svelte-bez0nz" aria-label="Send"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" class="svelte-bez0nz"><path d="M22 2L11 13M22 2l-7 20-4-9-9-4 20-7z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-bez0nz"></path></svg></button></div></div></div>');const $$css$3={hash:"svelte-bez0nz",code:`.agent-panel.svelte-bez0nz {display:flex;flex-direction:column;height:100%;min-height:0;font-family:inherit;color:#e5e7eb;}
121
121
 
122
122
  /* Status bar */.status-bar.svelte-bez0nz {display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid #1f2937;flex-shrink:0;}.status-indicator.svelte-bez0nz {display:flex;align-items:center;gap:6px;font-size:12px;font-weight:500;}.status-dot.svelte-bez0nz {width:7px;height:7px;border-radius:50%;flex-shrink:0;}.status-indicator.idle.svelte-bez0nz .status-dot:where(.svelte-bez0nz) {background:#6b7280;}.status-indicator.idle.svelte-bez0nz .status-text:where(.svelte-bez0nz) {color:#9ca3af;}.status-indicator.thinking.svelte-bez0nz .status-dot:where(.svelte-bez0nz) {background:#f59e0b;
123
123
  animation: svelte-bez0nz-pulse-dot 1.2s ease-in-out infinite;}.status-indicator.thinking.svelte-bez0nz .status-text:where(.svelte-bez0nz) {color:#fcd34d;}.status-indicator.acting.svelte-bez0nz .status-dot:where(.svelte-bez0nz) {background:#3b82f6;
@@ -441,7 +441,7 @@ Parameters: ${m}`,inputSchema:record(string(),any()),async execute(_){try{const
441
441
  }.voice-recording-indicator.svelte-nv4d5v {display:flex;align-items:center;gap:4px;height:24px;}.voice-dot.svelte-nv4d5v {width:4px;height:16px;background:#ef4444;border-radius:2px;
442
442
  animation: svelte-nv4d5v-voice-pulse 0.8s ease-in-out infinite;}.voice-dot.svelte-nv4d5v:nth-child(2) {animation-delay:0.15s;}.voice-dot.svelte-nv4d5v:nth-child(3) {animation-delay:0.3s;}.voice-processing.svelte-nv4d5v {display:flex;align-items:center;gap:0.5rem;color:#9ca3af;font-size:13px;}
443
443
  @keyframes svelte-nv4d5v-voice-spin { to { transform: rotate(360deg); } }.voice-spinner.svelte-nv4d5v {width:16px;height:16px;border:2px solid #374151;border-top-color:#60a5fa;border-radius:50%;
444
- animation: svelte-nv4d5v-voice-spin 0.7s linear infinite;flex-shrink:0;}.voice-status-text.svelte-nv4d5v {font-size:12px;color:#9ca3af;margin:0;}.voice-done.svelte-nv4d5v {color:#22c55e;}.voice-done-text.svelte-nv4d5v {color:#22c55e !important;font-weight:500;}.voice-error-icon.svelte-nv4d5v {width:36px;height:36px;border-radius:50%;background:#991b1b;color:white;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;}.voice-error-text.svelte-nv4d5v {color:#f87171 !important;}.voice-reset.svelte-nv4d5v {font-size:12px;color:#60a5fa;background:transparent;border:none;cursor:pointer;text-decoration:underline;font-family:inherit;padding:0;}.voice-footer.svelte-nv4d5v {font-size:11px;color:#4b5563;margin:0;line-height:1.5;}.voice-footer.svelte-nv4d5v strong:where(.svelte-nv4d5v) {color:#6b7280;}`};function FeedbackPanel(d,p){push(p,!0),append_styles(d,$$css$1);const h="3.3.1";let g=prop(p,"endpoint",7),m=prop(p,"project",7),_=prop(p,"isOpen",7,!1),b=prop(p,"userId",7,""),y=prop(p,"userEmail",7,""),w=prop(p,"userName",7,""),x=prop(p,"userRole",7,""),E=prop(p,"orgId",7,""),S=prop(p,"orgName",7,""),k=prop(p,"onclose",7),I=prop(p,"ongrip",7),R=prop(p,"agentProxy",7,""),M=prop(p,"agentModel",7,""),A=prop(p,"agentContext",7,""),C=prop(p,"registeredTools",23,()=>[]),N=state("new"),$=state(!1),O=state(!1),F=state(!1),j=state(proxy([]));function Y(){if(get(F)){const Z=stopRecording();set(j,Z,!0),set(F,!1),dt(`Session recorded (${Z.length} events)`,"success")}else startRecording(),set(j,[],!0),set(F,!0),dt("Recording session...","info")}let q=state(!1),ue=state(!1),oe=state("idle"),ce=state(""),se=state(null),xe=[];async function ve(){var Z;try{const re=await navigator.mediaDevices.getUserMedia({audio:!0}),_e=MediaRecorder.isTypeSupported("audio/webm;codecs=opus")?"audio/webm;codecs=opus":MediaRecorder.isTypeSupported("audio/webm")?"audio/webm":"audio/ogg",ye=new MediaRecorder(re,{mimeType:_e});xe=[],ye.ondataavailable=De=>{De.data.size>0&&xe.push(De.data)},ye.onstop=()=>{re.getTracks().forEach(De=>De.stop()),ke(new Blob(xe,{type:_e}),_e)},ye.start(500),set(se,ye,!0),set(q,!0),set(oe,"recording"),set(ce,"Recording…")}catch(re){set(oe,"error"),set(ce,(Z=re.message)!=null&&Z.includes("Permission")?"Microphone permission denied":"Could not start recording",!0)}}function Re(){get(se)&&get(se).state!=="inactive"&&get(se).stop(),set(q,!1),set(oe,"processing"),set(ce,"Sending to JAT…")}async function ke(Z,re){set(ue,!0);try{const _e=re.includes("webm")?"webm":re.includes("ogg")?"ogg":"audio",ye=new FormData;ye.append("file",Z,`voice-note.${_e}`);const De=`${g()}/api/tasks/voice`,Ue=await fetch(De,{method:"POST",body:ye});if(Ue.ok)set(oe,"done"),set(ce,"Done! Tasks will appear in your Voice Inbox shortly.");else{const ut=await Ue.json().catch(()=>({}));set(oe,"error"),set(ce,ut.message||`Error ${Ue.status}`,!0)}}catch(_e){set(oe,"error"),set(ce,_e.message||"Failed to send recording",!0)}finally{set(ue,!1),xe=[]}}function me(){get(se)&&get(se).state!=="inactive"&&get(se).stop(),set(q,!1),set(ue,!1),set(oe,"idle"),set(ce,""),xe=[],set(se,null)}let Ce=state(proxy([])),T=state("idle"),z=state(0),L=state(!1),P=state(null);function G(){return get(P)||set(P,new AgentBridge({proxyUrl:R(),model:M()||void 0,maxSteps:20,appContext:A()||void 0,endpoint:g(),project:m(),registeredTools:C(),onMessagesChange:Z=>{set(Ce,Z,!0)},onStateChange:(Z,re)=>{set(T,Z,!0),set(z,re,!0)}}),!0),get(P)}function W(){var Z;(Z=get(P))==null||Z.invalidateNotesCache()}user_effect(()=>{get(N)==="agent"&&!get($)&&set($,!0)}),user_effect(()=>{get(N)==="notes"&&!get(O)&&set(O,!0)});function ie(Z){G().execute(Z)}function J(){var Z;(Z=get(P))==null||Z.stop()}function ne(Z){var re;(re=get(P))==null||re.approve(Z)}function ge(Z){var re;(re=get(P))==null||re.skip(Z)}function ee(Z){set(L,Z,!0),get(P)&&(get(P).autoApprove=Z)}onDestroy(()=>{var Z;(Z=get(P))==null||Z.dispose()});let he=state(proxy([])),B=state(!1),K=state(""),pe=user_derived(()=>get(he).filter(Z=>Z.status==="completed").length);async function le(){set(B,!0),set(K,"");const Z=await fetchReports(g());set(he,Z.reports,!0),Z.error&&set(K,Z.error,!0),set(B,!1)}user_effect(()=>{g()&&le()});let Ee=state(""),Me=state(""),Se=state("bug"),We=state("medium"),ae=state(proxy([])),V=state(proxy([])),D=state(proxy([])),H=state(proxy([])),X=state(proxy([])),fe=state(void 0);const Q=["image/png","image/jpeg","image/gif","image/webp","image/svg+xml"];function de(){var Z;(Z=get(fe))==null||Z.click()}async function we(Z){const re=Z.target,_e=re.files;if(!(!_e||_e.length===0)){for(const ye of _e)try{const De=await Ze(ye);Q.includes(ye.type)?(set(ae,[...get(ae),De],!0),dt(`Image added: ${ye.name}`,"success")):(set(V,[...get(V),{name:ye.name,type:ye.type||"application/octet-stream",data:De,size:ye.size}],!0),dt(`File attached: ${ye.name}`,"success"))}catch{dt(`Failed to read: ${ye.name}`,"error")}re.value=""}}function Ze(Z){return new Promise((re,_e)=>{const ye=new FileReader;ye.onload=()=>re(ye.result),ye.onerror=()=>_e(ye.error),ye.readAsDataURL(Z)})}function Te(Z){set(V,get(V).filter((re,_e)=>_e!==Z),!0)}function Fe(Z){return Z<1024?`${Z}B`:Z<1024*1024?`${(Z/1024).toFixed(1)}KB`:`${(Z/(1024*1024)).toFixed(1)}MB`}let Oe=state(!1),te=state(!1),Qe=state(!1),wt=state(null),Ge=state(!1),Ve=state(null),yt=state(""),Ot=state(void 0),Cn=!1;user_effect(()=>{_()&&!Cn&&(requestAnimationFrame(()=>{requestAnimationFrame(()=>{var Z;(Z=get(Ot))==null||Z.focus()})}),get(N)==="new"&&setTimeout(()=>{captureViewportQuick().then(Z=>{get(ae).length===0?set(ae,[Z],!0):set(ae,[Z,...get(ae).slice(1)],!0)}).catch(()=>{})},300)),Cn=_()});let Be=state(""),He=state("success"),xt=state(!1);function dt(Z,re){set(Be,Z,!0),set(He,re,!0),set(xt,!0),setTimeout(()=>{set(xt,!1)},3e3)}async function Wt(){set(te,!0);try{const Z=await captureViewport();set(yt,Z,!0),set(Ve,get(ae).length,!0)}catch(Z){console.error("[jat-feedback] Screenshot failed:",Z),dt("Screenshot failed: "+(Z instanceof Error?Z.message:"unknown error"),"error")}finally{set(te,!1)}}function lr(Z){set(ae,get(ae).filter((re,_e)=>_e!==Z),!0)}function hn(Z){set(yt,get(ae)[Z],!0),set(Ve,Z,!0)}function nn(Z){get(Ve)!==null&&(get(Ve)>=get(ae).length?(set(ae,[...get(ae),Z],!0),dt(`Screenshot captured (${get(ae).length})`,"success")):(set(ae,get(ae).map((re,_e)=>_e===get(Ve)?Z:re),!0),dt("Screenshot updated","success"))),set(Ve,null),set(yt,"")}function In(){get(Ve)!==null&&get(Ve)>=get(ae).length&&(set(ae,[...get(ae),get(yt)],!0),dt(`Screenshot captured (${get(ae).length})`,"success")),set(Ve,null),set(yt,"")}function Fn(){set(Qe,!0),startElementPicker(Z=>{set(D,[...get(D),Z],!0),set(Qe,!1),dt(`Element captured: <${Z.tagName.toLowerCase()}>`,"success")})}function gn(){set(H,getCapturedLogs(),!0),set(X,getCapturedRequests(),!0)}async function cr(Z){if(Z.preventDefault(),!get(Ee).trim())return;set(Oe,!0),gn();const re={};if((b()||y()||w()||x())&&(re.reporter={},b()&&(re.reporter.userId=b()),y()&&(re.reporter.email=y()),w()&&(re.reporter.name=w()),x()&&(re.reporter.role=x())),(E()||S())&&(re.organization={},E()&&(re.organization.id=E()),S()&&(re.organization.name=S())),get(F)){const De=stopRecording();set(j,De,!0),set(F,!1)}let _e;if(get(j).length>0){const De=crypto.randomUUID(),Ue=await uploadRecording(g(),get(j),De);Ue.ok&&Ue.recording_url&&(_e=Ue.recording_url)}const ye={title:get(Ee).trim(),description:get(Me).trim(),type:get(Se),priority:get(We),project:m()||"",page_url:window.location.href,user_agent:navigator.userAgent,console_logs:get(H).length>0?get(H):null,network_requests:get(X).length>0?get(X):null,selected_elements:get(D).length>0?get(D):null,recording_events:null,screenshots:get(ae).length>0?get(ae):null,attachments:get(V).length>0?get(V):null,metadata:Object.keys(re).length>0?re:null,recording_url:_e||null};try{const De=await submitReport(g(),ye);if(De.ok){if(ye.recording_url){const Ue={recording_url:ye.recording_url,console_logs:ye.console_logs,network_requests:ye.network_requests};G().setReportContext(Ue)}set(wt,De.id,!0),set(Ge,!!ye.recording_url),dt(`Report submitted (${De.id})`,"success"),Kn(),setTimeout(()=>{le(),set(N,"requests")},1200)}else enqueue(g(),ye),dt("Queued for retry (endpoint unreachable)","error")}catch{enqueue(g(),ye),dt("Queued for retry (endpoint unreachable)","error")}finally{set(Oe,!1)}}function Kn(){set(Ee,""),set(Me,""),set(Se,"bug"),set(We,"medium"),set(ae,[],!0),set(V,[],!0),set(D,[],!0),set(H,[],!0),set(X,[],!0),set(j,[],!0),get(F)&&(stopRecording(),set(F,!1))}user_effect(()=>{gn()});function Pn(Z){Z.stopPropagation()}const dr=[{value:"bug",label:"Bug"},{value:"enhancement",label:"Enhancement"},{value:"other",label:"Other"}],Xn=[{value:"low",label:"Low"},{value:"medium",label:"Medium"},{value:"high",label:"High"},{value:"critical",label:"Critical"}];function Zn(){return get(ae).length+get(V).length+get(D).length}var Jn={get endpoint(){return g()},set endpoint(Z){g(Z),flushSync()},get project(){return m()},set project(Z){m(Z),flushSync()},get isOpen(){return _()},set isOpen(Z=!1){_(Z),flushSync()},get userId(){return b()},set userId(Z=""){b(Z),flushSync()},get userEmail(){return y()},set userEmail(Z=""){y(Z),flushSync()},get userName(){return w()},set userName(Z=""){w(Z),flushSync()},get userRole(){return x()},set userRole(Z=""){x(Z),flushSync()},get orgId(){return E()},set orgId(Z=""){E(Z),flushSync()},get orgName(){return S()},set orgName(Z=""){S(Z),flushSync()},get onclose(){return k()},set onclose(Z){k(Z),flushSync()},get ongrip(){return I()},set ongrip(Z){I(Z),flushSync()},get agentProxy(){return R()},set agentProxy(Z=""){R(Z),flushSync()},get agentModel(){return M()},set agentModel(Z=""){M(Z),flushSync()},get agentContext(){return A()},set agentContext(Z=""){A(Z),flushSync()},get registeredTools(){return C()},set registeredTools(Z=[]){C(Z),flushSync()}},Qn=root$1(),rn=first_child(Qn),Tn=child(rn),er=child(Tn);{var tr=Z=>{var re=root_1$1();delegated("mousedown",re,function(..._e){var ye;(ye=I())==null||ye.apply(this,_e)}),append(Z,re)};if_block(er,Z=>{I()&&Z(tr)})}var mn=sibling(er,2),Bn=child(mn);let nr;var vn=sibling(Bn,2);let rr;var ur=sibling(child(vn),2);{var Ne=Z=>{var re=root_2$1(),_e=child(re,!0);reset(re),template_effect(()=>set_text(_e,get(pe))),append(Z,re)};if_block(ur,Z=>{get(pe)>0&&Z(Ne)})}reset(vn);var Le=sibling(vn,2);{var et=Z=>{var re=root_3();let _e;template_effect(()=>_e=set_class(re,1,"tab svelte-nv4d5v",null,_e,{active:get(N)==="agent"})),delegated("click",re,()=>{set(N,"agent"),set($,!0)}),append(Z,re)};if_block(Le,Z=>{R()&&Z(et)})}var pt=sibling(Le,2);let Rt;var it=sibling(pt,2);let rt;reset(mn);var qe=sibling(mn,2);reset(Tn);var ht=sibling(Tn,2);{var Ye=Z=>{var re=root_4(),_e=child(re),ye=sibling(child(_e),2);remove_input_defaults(ye),bind_this(ye,be=>set(Ot,be),()=>get(Ot)),reset(_e);var De=sibling(_e,2),Ue=sibling(child(De),2);remove_textarea_child(Ue),reset(De);var ut=sibling(De,2),gt=child(ut),_t=sibling(child(gt),2);each(_t,21,()=>dr,index,(be,Ae)=>{var nt=root_5(),at=child(nt,!0);reset(nt);var ot={};template_effect(()=>{set_text(at,get(Ae).label),ot!==(ot=get(Ae).value)&&(nt.value=(nt.__value=get(Ae).value)??"")}),append(be,nt)}),reset(_t),reset(gt);var Gt=sibling(gt,2),st=sibling(child(Gt),2);each(st,21,()=>Xn,index,(be,Ae)=>{var nt=root_6(),at=child(nt,!0);reset(nt);var ot={};template_effect(()=>{set_text(at,get(Ae).label),ot!==(ot=get(Ae).value)&&(nt.value=(nt.__value=get(Ae).value)??"")}),append(be,nt)}),reset(st),reset(Gt),reset(ut);var mt=sibling(ut,2),je=child(mt),Pe=child(je),tt=child(Pe);{var bt=be=>{var Ae=root_7();next(),append(be,Ae)},kt=be=>{var Ae=root_8(),nt=sibling(first_child(Ae),2);{var at=ot=>{var ft=root_9(),Nt=child(ft,!0);reset(ft),template_effect(()=>set_text(Nt,get(ae).length)),append(ot,ft)};if_block(nt,ot=>{get(ae).length>0&&ot(at)})}append(be,Ae)};if_block(tt,be=>{get(te)?be(bt):be(kt,!1)})}reset(Pe);var At=sibling(Pe,2),Nn=sibling(child(At),2);{var jn=be=>{var Ae=text("Click an element...");append(be,Ae)},en=be=>{var Ae=root_11(),nt=sibling(first_child(Ae));{var at=ot=>{var ft=root_12(),Nt=child(ft,!0);reset(ft),template_effect(()=>set_text(Nt,get(D).length)),append(ot,ft)};if_block(nt,ot=>{get(D).length>0&&ot(at)})}append(be,Ae)};if_block(Nn,be=>{get(Qe)?be(jn):be(en,!1)})}reset(At);var Ct=sibling(At,2);let Lt;var $n=child(Ct);{var Fr=be=>{var Ae=root_13();next(),append(be,Ae)},Pr=be=>{var Ae=root_14(),nt=sibling(first_child(Ae),2);{var at=ot=>{var ft=root_15(),Nt=child(ft,!0);reset(ft),template_effect(()=>set_text(Nt,get(j).length)),append(ot,ft)};if_block(nt,ot=>{get(j).length>0&&ot(at)})}append(be,Ae)};if_block($n,be=>{get(F)?be(Fr):be(Pr,!1)})}reset(Ct);var Wn=sibling(Ct,2),Zr=sibling(child(Wn),2);{var Br=be=>{var Ae=root_16(),nt=child(Ae,!0);reset(Ae),template_effect(()=>set_text(nt,get(V).length)),append(be,Ae)};if_block(Zr,be=>{get(V).length>0&&be(Br)})}reset(Wn);var Ir=sibling(Wn,2);bind_this(Ir,be=>set(fe,be),()=>get(fe)),reset(je);var Ur=sibling(je,2);ScreenshotPreview(Ur,{get screenshots(){return get(ae)},get capturing(){return get(te)},oncapture:Wt,onremove:lr,onedit:hn}),reset(mt);var Tr=sibling(mt,2);{var jr=be=>{var Ae=root_17();each(Ae,21,()=>get(V),index,(nt,at,ot)=>{var ft=root_18(),Nt=child(ft),hr=child(Nt);{var Vn=Ft=>{var Hn=root_19();append(Ft,Hn)},gr=user_derived(()=>get(at).type.includes("pdf")),mr=Ft=>{var Hn=root_20();append(Ft,Hn)},bn=user_derived(()=>get(at).type.includes("markdown")||get(at).name.endsWith(".md")),Gn=Ft=>{var Hn=root_21();append(Ft,Hn)};if_block(hr,Ft=>{get(gr)?Ft(Vn):get(bn)?Ft(mr,1):Ft(Gn,!1)})}reset(Nt);var vr=sibling(Nt,2),Xr=child(vr,!0);reset(vr);var _r=sibling(vr,2),Jr=child(_r,!0);reset(_r);var Qr=sibling(_r,2);reset(ft),template_effect(Ft=>{set_text(Xr,get(at).name),set_text(Jr,Ft)},[()=>Fe(get(at).size)]),delegated("click",Qr,()=>Te(ot)),append(nt,ft)}),reset(Ae),append(be,Ae)};if_block(Tr,be=>{get(V).length>0&&be(jr)})}var Rr=sibling(Tr,2);{var Wr=be=>{var Ae=root_22();each(Ae,21,()=>get(D),index,(nt,at,ot)=>{var ft=root_23(),Nt=child(ft),hr=child(Nt);reset(Nt);var Vn=sibling(Nt,2),gr=child(Vn,!0);reset(Vn);var mr=sibling(Vn,2);reset(ft),template_effect((bn,Gn)=>{set_text(hr,`<${bn??""}>`),set_text(gr,Gn)},[()=>get(at).tagName.toLowerCase(),()=>{var bn;return((bn=get(at).textContent)==null?void 0:bn.substring(0,40))||get(at).selector}]),delegated("click",mr,()=>{set(D,get(D).filter((bn,Gn)=>Gn!==ot),!0)}),append(nt,ft)}),reset(Ae),append(be,Ae)};if_block(Rr,be=>{get(D).length>0&&be(Wr)})}var Ar=sibling(Rr,2);ConsoleLogList(Ar,{get logs(){return get(H)}});var Nr=sibling(Ar,2);{var Vr=be=>{var Ae=root_24(),nt=child(Ae);reset(Ae),template_effect((at,ot)=>set_text(nt,`${at??""} attachment${ot??""} will be included`),[Zn,()=>Zn()>1?"s":""]),append(be,Ae)},Gr=user_derived(()=>Zn()>0);if_block(Nr,be=>{get(Gr)&&be(Vr)})}var $r=sibling(Nr,2),fr=child($r),Hr=child(fr);reset(fr);var pr=sibling(fr,2),or=sibling(pr,2),qr=child(or);{var Yr=be=>{var Ae=root_25();next(),append(be,Ae)},Kr=be=>{var Ae=text("Submit");append(be,Ae)};if_block(qr,be=>{get(Oe)?be(Yr):be(Kr,!1)})}reset(or),reset($r),reset(re),template_effect(be=>{ye.disabled=get(Oe),Ue.disabled=get(Oe),_t.disabled=get(Oe),st.disabled=get(Oe),Pe.disabled=get(te),At.disabled=get(Qe),Lt=set_class(Ct,1,"tool-btn svelte-nv4d5v",null,Lt,{"recording-active":get(F)}),Ct.disabled=get(Oe),Wn.disabled=get(Oe),set_text(Hr,`v${h}`),pr.disabled=get(Oe),or.disabled=be,set_attribute(or,"title",get(F)?"Stop recording first, or click Submit to auto-stop":"")},[()=>get(Oe)||!get(Ee).trim()]),event("submit",re,cr),bind_value(ye,()=>get(Ee),be=>set(Ee,be)),bind_value(Ue,()=>get(Me),be=>set(Me,be)),bind_select_value(_t,()=>get(Se),be=>set(Se,be)),bind_select_value(st,()=>get(We),be=>set(We,be)),delegated("click",Pe,Wt),delegated("click",At,Fn),delegated("click",Ct,Y),delegated("click",Wn,de),delegated("change",Ir,we),delegated("click",pr,function(...be){var Ae;(Ae=k())==null||Ae.apply(this,be)}),transition(3,re,()=>slide,()=>({duration:200})),append(Z,re)};if_block(ht,Z=>{get(N)==="new"&&Z(Ye)})}var Et=sibling(ht,2);{var Qt=Z=>{var re=root_27(),_e=child(re);{var ye=Ue=>{var ut=root_28(),gt=sibling(child(ut),4),_t=sibling(gt,2);reset(ut),template_effect(()=>set_attribute(gt,"href",`${g()??""}/feedback/replay.html?id=${get(wt)??""}`)),delegated("click",_t,()=>{set(wt,null),set(Ge,!1)}),append(Ue,ut)};if_block(_e,Ue=>{get(wt)&&get(Ge)&&Ue(ye)})}var De=sibling(_e,2);RequestList(De,{get endpoint(){return g()},get loading(){return get(B)},get error(){return get(K)},onreload:le,get reports(){return get(he)},set reports(Ue){set(he,Ue,!0)}}),reset(re),transition(3,re,()=>slide,()=>({duration:200})),append(Z,re)};if_block(Et,Z=>{get(N)==="requests"&&Z(Qt)})}var Xe=sibling(Et,2);{var sn=Z=>{var re=root_29(),_e=child(re);{let ye=user_derived(()=>{var De;return((De=get(P))==null?void 0:De.getMaxSteps())??20});AgentPanel(_e,{get messages(){return get(Ce)},get agentState(){return get(T)},get currentStep(){return get(z)},get maxSteps(){return get(ye)},get autoApprove(){return get(L)},onsend:ie,onstop:J,onapprove:ne,onskip:ge,onautoapprovechange:ee})}reset(re),transition(3,re,()=>slide,()=>({duration:200})),append(Z,re)};if_block(Xe,Z=>{get(N)==="agent"&&get($)&&Z(sn)})}var an=sibling(Xe,2);{var _n=Z=>{var re=root_30(),_e=child(re);NotesPanel(_e,{get endpoint(){return g()},get project(){return m()},onnoteschanged:W}),reset(re),transition(3,re,()=>slide,()=>({duration:200})),append(Z,re)};if_block(an,Z=>{get(N)==="notes"&&get(O)&&Z(_n)})}var Vt=sibling(an,2);{var Rn=Z=>{var re=root_31(),_e=child(re),ye=sibling(child(_e),2),De=child(ye);{var Ue=je=>{var Pe=root_32();delegated("click",Pe,ve),append(je,Pe)},ut=je=>{var Pe=root_33(),tt=first_child(Pe);next(2),delegated("click",tt,Re),append(je,Pe)},gt=je=>{var Pe=root_34(),tt=sibling(child(Pe),2),bt=child(tt,!0);reset(tt),reset(Pe),template_effect(()=>set_text(bt,get(ce))),append(je,Pe)},_t=je=>{var Pe=root_35(),tt=sibling(first_child(Pe),2),bt=child(tt,!0);reset(tt);var kt=sibling(tt,2);template_effect(()=>set_text(bt,get(ce))),delegated("click",kt,me),append(je,Pe)},Gt=je=>{var Pe=root_36(),tt=sibling(first_child(Pe),2),bt=child(tt,!0);reset(tt);var kt=sibling(tt,2);template_effect(()=>set_text(bt,get(ce))),delegated("click",kt,me),append(je,Pe)};if_block(De,je=>{get(oe)==="idle"?je(Ue):get(oe)==="recording"?je(ut,1):get(oe)==="processing"?je(gt,2):get(oe)==="done"?je(_t,3):get(oe)==="error"&&je(Gt,4)})}reset(ye);var st=sibling(ye,2);{var mt=je=>{var Pe=root_37();append(je,Pe)};if_block(st,je=>{get(oe)==="idle"&&je(mt)})}reset(_e),reset(re),transition(3,re,()=>slide,()=>({duration:200})),append(Z,re)};if_block(Vt,Z=>{get(N)==="voice"&&Z(Rn)})}var Dt=sibling(Vt,2);StatusToast(Dt,{get message(){return get(Be)},get type(){return get(He)},get visible(){return get(xt)}}),reset(rn);var An=sibling(rn,2);{var Un=Z=>{AnnotationEditor(Z,{get imageDataUrl(){return get(yt)},onsave:nn,oncancel:In})};if_block(An,Z=>{get(Ve)!==null&&Z(Un)})}return template_effect(()=>{nr=set_class(Bn,1,"tab svelte-nv4d5v",null,nr,{active:get(N)==="new"}),rr=set_class(vn,1,"tab svelte-nv4d5v",null,rr,{active:get(N)==="requests"}),Rt=set_class(pt,1,"tab svelte-nv4d5v",null,Rt,{active:get(N)==="notes"}),rt=set_class(it,1,"tab svelte-nv4d5v",null,rt,{active:get(N)==="voice"})}),delegated("keydown",rn,Pn),delegated("keyup",rn,Pn),event("keypress",rn,Pn),delegated("click",Bn,()=>set(N,"new")),delegated("click",vn,()=>set(N,"requests")),delegated("click",pt,()=>{set(N,"notes"),set(O,!0)}),delegated("click",it,()=>set(N,"voice")),delegated("click",qe,function(...Z){var re;(re=k())==null||re.apply(this,Z)}),append(d,Qn),pop(Jn)}delegate(["keydown","keyup","mousedown","click","change"]),create_custom_element(FeedbackPanel,{endpoint:{},project:{},isOpen:{},userId:{},userEmail:{},userName:{},userRole:{},orgId:{},orgName:{},onclose:{},ongrip:{},agentProxy:{},agentModel:{},agentContext:{},registeredTools:{}},[],[],{mode:"open"});var root_1=from_html("<div><!></div>"),root_2=from_html('<div class="jat-feedback-panel svelte-qpyrvv"><div class="no-endpoint svelte-qpyrvv"><p class="svelte-qpyrvv">No endpoint configured.</p> <p class="svelte-qpyrvv">Add the <code class="svelte-qpyrvv">endpoint</code> attribute:</p> <code class="example svelte-qpyrvv">&lt;jat-feedback endpoint="http://localhost:3333"&gt;</code></div></div>'),root=from_html('<div class="jat-feedback-root svelte-qpyrvv" data-page-agent-not-interactive=""><!> <!></div>');const $$css={hash:"svelte-qpyrvv",code:`.jat-feedback-root.svelte-qpyrvv {position:fixed;z-index:2147483647;font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;}.jat-feedback-panel.svelte-qpyrvv {position:absolute;
444
+ animation: svelte-nv4d5v-voice-spin 0.7s linear infinite;flex-shrink:0;}.voice-status-text.svelte-nv4d5v {font-size:12px;color:#9ca3af;margin:0;}.voice-done.svelte-nv4d5v {color:#22c55e;}.voice-done-text.svelte-nv4d5v {color:#22c55e !important;font-weight:500;}.voice-error-icon.svelte-nv4d5v {width:36px;height:36px;border-radius:50%;background:#991b1b;color:white;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;}.voice-error-text.svelte-nv4d5v {color:#f87171 !important;}.voice-reset.svelte-nv4d5v {font-size:12px;color:#60a5fa;background:transparent;border:none;cursor:pointer;text-decoration:underline;font-family:inherit;padding:0;}.voice-footer.svelte-nv4d5v {font-size:11px;color:#4b5563;margin:0;line-height:1.5;}.voice-footer.svelte-nv4d5v strong:where(.svelte-nv4d5v) {color:#6b7280;}`};function FeedbackPanel(d,p){push(p,!0),append_styles(d,$$css$1);const h="3.3.3";let g=prop(p,"endpoint",7),m=prop(p,"project",7),_=prop(p,"isOpen",7,!1),b=prop(p,"userId",7,""),y=prop(p,"userEmail",7,""),w=prop(p,"userName",7,""),x=prop(p,"userRole",7,""),E=prop(p,"orgId",7,""),S=prop(p,"orgName",7,""),k=prop(p,"onclose",7),I=prop(p,"ongrip",7),R=prop(p,"agentProxy",7,""),M=prop(p,"agentModel",7,""),A=prop(p,"agentContext",7,""),C=prop(p,"registeredTools",23,()=>[]),N=state("new"),$=state(!1),O=state(!1),F=state(!1),j=state(proxy([]));function Y(){if(get(F)){const Z=stopRecording();set(j,Z,!0),set(F,!1),dt(`Session recorded (${Z.length} events)`,"success")}else startRecording(),set(j,[],!0),set(F,!0),dt("Recording session...","info")}let q=state(!1),ue=state(!1),oe=state("idle"),ce=state(""),se=state(null),xe=[];async function ve(){var Z;try{const re=await navigator.mediaDevices.getUserMedia({audio:!0}),_e=MediaRecorder.isTypeSupported("audio/webm;codecs=opus")?"audio/webm;codecs=opus":MediaRecorder.isTypeSupported("audio/webm")?"audio/webm":"audio/ogg",ye=new MediaRecorder(re,{mimeType:_e});xe=[],ye.ondataavailable=De=>{De.data.size>0&&xe.push(De.data)},ye.onstop=()=>{re.getTracks().forEach(De=>De.stop()),ke(new Blob(xe,{type:_e}),_e)},ye.start(500),set(se,ye,!0),set(q,!0),set(oe,"recording"),set(ce,"Recording…")}catch(re){set(oe,"error"),set(ce,(Z=re.message)!=null&&Z.includes("Permission")?"Microphone permission denied":"Could not start recording",!0)}}function Re(){get(se)&&get(se).state!=="inactive"&&get(se).stop(),set(q,!1),set(oe,"processing"),set(ce,"Sending to JAT…")}async function ke(Z,re){set(ue,!0);try{const _e=re.includes("webm")?"webm":re.includes("ogg")?"ogg":"audio",ye=new FormData;ye.append("file",Z,`voice-note.${_e}`);const De=`${g()}/api/tasks/voice`,Ue=await fetch(De,{method:"POST",body:ye});if(Ue.ok)set(oe,"done"),set(ce,"Done! Tasks will appear in your Voice Inbox shortly.");else{const ut=await Ue.json().catch(()=>({}));set(oe,"error"),set(ce,ut.message||`Error ${Ue.status}`,!0)}}catch(_e){set(oe,"error"),set(ce,_e.message||"Failed to send recording",!0)}finally{set(ue,!1),xe=[]}}function me(){get(se)&&get(se).state!=="inactive"&&get(se).stop(),set(q,!1),set(ue,!1),set(oe,"idle"),set(ce,""),xe=[],set(se,null)}let Ce=state(proxy([])),T=state("idle"),z=state(0),L=state(!1),P=state(null);function G(){return get(P)||set(P,new AgentBridge({proxyUrl:R(),model:M()||void 0,maxSteps:20,appContext:A()||void 0,endpoint:g(),project:m(),registeredTools:C(),onMessagesChange:Z=>{set(Ce,Z,!0)},onStateChange:(Z,re)=>{set(T,Z,!0),set(z,re,!0)}}),!0),get(P)}function W(){var Z;(Z=get(P))==null||Z.invalidateNotesCache()}user_effect(()=>{get(N)==="agent"&&!get($)&&set($,!0)}),user_effect(()=>{get(N)==="notes"&&!get(O)&&set(O,!0)});function ie(Z){G().execute(Z)}function J(){var Z;(Z=get(P))==null||Z.stop()}function ne(Z){var re;(re=get(P))==null||re.approve(Z)}function ge(Z){var re;(re=get(P))==null||re.skip(Z)}function ee(Z){set(L,Z,!0),get(P)&&(get(P).autoApprove=Z)}onDestroy(()=>{var Z;(Z=get(P))==null||Z.dispose()});let he=state(proxy([])),B=state(!1),K=state(""),pe=user_derived(()=>get(he).filter(Z=>Z.status==="completed").length);async function le(){set(B,!0),set(K,"");const Z=await fetchReports(g());set(he,Z.reports,!0),Z.error&&set(K,Z.error,!0),set(B,!1)}user_effect(()=>{g()&&le()});let Ee=state(""),Me=state(""),Se=state("bug"),We=state("medium"),ae=state(proxy([])),V=state(proxy([])),D=state(proxy([])),H=state(proxy([])),X=state(proxy([])),fe=state(void 0);const Q=["image/png","image/jpeg","image/gif","image/webp","image/svg+xml"];function de(){var Z;(Z=get(fe))==null||Z.click()}async function we(Z){const re=Z.target,_e=re.files;if(!(!_e||_e.length===0)){for(const ye of _e)try{const De=await Ze(ye);Q.includes(ye.type)?(set(ae,[...get(ae),De],!0),dt(`Image added: ${ye.name}`,"success")):(set(V,[...get(V),{name:ye.name,type:ye.type||"application/octet-stream",data:De,size:ye.size}],!0),dt(`File attached: ${ye.name}`,"success"))}catch{dt(`Failed to read: ${ye.name}`,"error")}re.value=""}}function Ze(Z){return new Promise((re,_e)=>{const ye=new FileReader;ye.onload=()=>re(ye.result),ye.onerror=()=>_e(ye.error),ye.readAsDataURL(Z)})}function Te(Z){set(V,get(V).filter((re,_e)=>_e!==Z),!0)}function Fe(Z){return Z<1024?`${Z}B`:Z<1024*1024?`${(Z/1024).toFixed(1)}KB`:`${(Z/(1024*1024)).toFixed(1)}MB`}let Oe=state(!1),te=state(!1),Qe=state(!1),wt=state(null),Ge=state(!1),Ve=state(null),yt=state(""),Ot=state(void 0),Cn=!1;user_effect(()=>{_()&&!Cn&&(requestAnimationFrame(()=>{requestAnimationFrame(()=>{var Z;(Z=get(Ot))==null||Z.focus()})}),get(N)==="new"&&setTimeout(()=>{captureViewportQuick().then(Z=>{get(ae).length===0?set(ae,[Z],!0):set(ae,[Z,...get(ae).slice(1)],!0)}).catch(()=>{})},300)),Cn=_()});let Be=state(""),He=state("success"),xt=state(!1);function dt(Z,re){set(Be,Z,!0),set(He,re,!0),set(xt,!0),setTimeout(()=>{set(xt,!1)},3e3)}async function Wt(){set(te,!0);try{const Z=await captureViewport();set(yt,Z,!0),set(Ve,get(ae).length,!0)}catch(Z){console.error("[jat-feedback] Screenshot failed:",Z),dt("Screenshot failed: "+(Z instanceof Error?Z.message:"unknown error"),"error")}finally{set(te,!1)}}function lr(Z){set(ae,get(ae).filter((re,_e)=>_e!==Z),!0)}function hn(Z){set(yt,get(ae)[Z],!0),set(Ve,Z,!0)}function nn(Z){get(Ve)!==null&&(get(Ve)>=get(ae).length?(set(ae,[...get(ae),Z],!0),dt(`Screenshot captured (${get(ae).length})`,"success")):(set(ae,get(ae).map((re,_e)=>_e===get(Ve)?Z:re),!0),dt("Screenshot updated","success"))),set(Ve,null),set(yt,"")}function In(){get(Ve)!==null&&get(Ve)>=get(ae).length&&(set(ae,[...get(ae),get(yt)],!0),dt(`Screenshot captured (${get(ae).length})`,"success")),set(Ve,null),set(yt,"")}function Fn(){set(Qe,!0),startElementPicker(Z=>{set(D,[...get(D),Z],!0),set(Qe,!1),dt(`Element captured: <${Z.tagName.toLowerCase()}>`,"success")})}function gn(){set(H,getCapturedLogs(),!0),set(X,getCapturedRequests(),!0)}async function cr(Z){if(Z.preventDefault(),!get(Ee).trim())return;set(Oe,!0),gn();const re={};if((b()||y()||w()||x())&&(re.reporter={},b()&&(re.reporter.userId=b()),y()&&(re.reporter.email=y()),w()&&(re.reporter.name=w()),x()&&(re.reporter.role=x())),(E()||S())&&(re.organization={},E()&&(re.organization.id=E()),S()&&(re.organization.name=S())),get(F)){const De=stopRecording();set(j,De,!0),set(F,!1)}let _e;if(get(j).length>0){const De=crypto.randomUUID(),Ue=await uploadRecording(g(),get(j),De);Ue.ok&&Ue.recording_url&&(_e=Ue.recording_url)}const ye={title:get(Ee).trim(),description:get(Me).trim(),type:get(Se),priority:get(We),project:m()||"",page_url:window.location.href,user_agent:navigator.userAgent,console_logs:get(H).length>0?get(H):null,network_requests:get(X).length>0?get(X):null,selected_elements:get(D).length>0?get(D):null,recording_events:null,screenshots:get(ae).length>0?get(ae):null,attachments:get(V).length>0?get(V):null,metadata:Object.keys(re).length>0?re:null,recording_url:_e||null};try{const De=await submitReport(g(),ye);if(De.ok){if(ye.recording_url){const Ue={recording_url:ye.recording_url,console_logs:ye.console_logs,network_requests:ye.network_requests};G().setReportContext(Ue)}set(wt,De.id,!0),set(Ge,!!ye.recording_url),dt(`Report submitted (${De.id})`,"success"),Kn(),setTimeout(()=>{le(),set(N,"requests")},1200)}else enqueue(g(),ye),dt("Queued for retry (endpoint unreachable)","error")}catch{enqueue(g(),ye),dt("Queued for retry (endpoint unreachable)","error")}finally{set(Oe,!1)}}function Kn(){set(Ee,""),set(Me,""),set(Se,"bug"),set(We,"medium"),set(ae,[],!0),set(V,[],!0),set(D,[],!0),set(H,[],!0),set(X,[],!0),set(j,[],!0),get(F)&&(stopRecording(),set(F,!1))}user_effect(()=>{gn()});function Pn(Z){Z.stopPropagation()}const dr=[{value:"bug",label:"Bug"},{value:"enhancement",label:"Enhancement"},{value:"other",label:"Other"}],Xn=[{value:"low",label:"Low"},{value:"medium",label:"Medium"},{value:"high",label:"High"},{value:"critical",label:"Critical"}];function Zn(){return get(ae).length+get(V).length+get(D).length}var Jn={get endpoint(){return g()},set endpoint(Z){g(Z),flushSync()},get project(){return m()},set project(Z){m(Z),flushSync()},get isOpen(){return _()},set isOpen(Z=!1){_(Z),flushSync()},get userId(){return b()},set userId(Z=""){b(Z),flushSync()},get userEmail(){return y()},set userEmail(Z=""){y(Z),flushSync()},get userName(){return w()},set userName(Z=""){w(Z),flushSync()},get userRole(){return x()},set userRole(Z=""){x(Z),flushSync()},get orgId(){return E()},set orgId(Z=""){E(Z),flushSync()},get orgName(){return S()},set orgName(Z=""){S(Z),flushSync()},get onclose(){return k()},set onclose(Z){k(Z),flushSync()},get ongrip(){return I()},set ongrip(Z){I(Z),flushSync()},get agentProxy(){return R()},set agentProxy(Z=""){R(Z),flushSync()},get agentModel(){return M()},set agentModel(Z=""){M(Z),flushSync()},get agentContext(){return A()},set agentContext(Z=""){A(Z),flushSync()},get registeredTools(){return C()},set registeredTools(Z=[]){C(Z),flushSync()}},Qn=root$1(),rn=first_child(Qn),Tn=child(rn),er=child(Tn);{var tr=Z=>{var re=root_1$1();delegated("mousedown",re,function(..._e){var ye;(ye=I())==null||ye.apply(this,_e)}),append(Z,re)};if_block(er,Z=>{I()&&Z(tr)})}var mn=sibling(er,2),Bn=child(mn);let nr;var vn=sibling(Bn,2);let rr;var ur=sibling(child(vn),2);{var Ne=Z=>{var re=root_2$1(),_e=child(re,!0);reset(re),template_effect(()=>set_text(_e,get(pe))),append(Z,re)};if_block(ur,Z=>{get(pe)>0&&Z(Ne)})}reset(vn);var Le=sibling(vn,2);{var et=Z=>{var re=root_3();let _e;template_effect(()=>_e=set_class(re,1,"tab svelte-nv4d5v",null,_e,{active:get(N)==="agent"})),delegated("click",re,()=>{set(N,"agent"),set($,!0)}),append(Z,re)};if_block(Le,Z=>{R()&&Z(et)})}var pt=sibling(Le,2);let Rt;var it=sibling(pt,2);let rt;reset(mn);var qe=sibling(mn,2);reset(Tn);var ht=sibling(Tn,2);{var Ye=Z=>{var re=root_4(),_e=child(re),ye=sibling(child(_e),2);remove_input_defaults(ye),bind_this(ye,be=>set(Ot,be),()=>get(Ot)),reset(_e);var De=sibling(_e,2),Ue=sibling(child(De),2);remove_textarea_child(Ue),reset(De);var ut=sibling(De,2),gt=child(ut),_t=sibling(child(gt),2);each(_t,21,()=>dr,index,(be,Ae)=>{var nt=root_5(),at=child(nt,!0);reset(nt);var ot={};template_effect(()=>{set_text(at,get(Ae).label),ot!==(ot=get(Ae).value)&&(nt.value=(nt.__value=get(Ae).value)??"")}),append(be,nt)}),reset(_t),reset(gt);var Gt=sibling(gt,2),st=sibling(child(Gt),2);each(st,21,()=>Xn,index,(be,Ae)=>{var nt=root_6(),at=child(nt,!0);reset(nt);var ot={};template_effect(()=>{set_text(at,get(Ae).label),ot!==(ot=get(Ae).value)&&(nt.value=(nt.__value=get(Ae).value)??"")}),append(be,nt)}),reset(st),reset(Gt),reset(ut);var mt=sibling(ut,2),je=child(mt),Pe=child(je),tt=child(Pe);{var bt=be=>{var Ae=root_7();next(),append(be,Ae)},kt=be=>{var Ae=root_8(),nt=sibling(first_child(Ae),2);{var at=ot=>{var ft=root_9(),Nt=child(ft,!0);reset(ft),template_effect(()=>set_text(Nt,get(ae).length)),append(ot,ft)};if_block(nt,ot=>{get(ae).length>0&&ot(at)})}append(be,Ae)};if_block(tt,be=>{get(te)?be(bt):be(kt,!1)})}reset(Pe);var At=sibling(Pe,2),Nn=sibling(child(At),2);{var jn=be=>{var Ae=text("Click an element...");append(be,Ae)},en=be=>{var Ae=root_11(),nt=sibling(first_child(Ae));{var at=ot=>{var ft=root_12(),Nt=child(ft,!0);reset(ft),template_effect(()=>set_text(Nt,get(D).length)),append(ot,ft)};if_block(nt,ot=>{get(D).length>0&&ot(at)})}append(be,Ae)};if_block(Nn,be=>{get(Qe)?be(jn):be(en,!1)})}reset(At);var Ct=sibling(At,2);let Lt;var $n=child(Ct);{var Fr=be=>{var Ae=root_13();next(),append(be,Ae)},Pr=be=>{var Ae=root_14(),nt=sibling(first_child(Ae),2);{var at=ot=>{var ft=root_15(),Nt=child(ft,!0);reset(ft),template_effect(()=>set_text(Nt,get(j).length)),append(ot,ft)};if_block(nt,ot=>{get(j).length>0&&ot(at)})}append(be,Ae)};if_block($n,be=>{get(F)?be(Fr):be(Pr,!1)})}reset(Ct);var Wn=sibling(Ct,2),Zr=sibling(child(Wn),2);{var Br=be=>{var Ae=root_16(),nt=child(Ae,!0);reset(Ae),template_effect(()=>set_text(nt,get(V).length)),append(be,Ae)};if_block(Zr,be=>{get(V).length>0&&be(Br)})}reset(Wn);var Ir=sibling(Wn,2);bind_this(Ir,be=>set(fe,be),()=>get(fe)),reset(je);var Ur=sibling(je,2);ScreenshotPreview(Ur,{get screenshots(){return get(ae)},get capturing(){return get(te)},oncapture:Wt,onremove:lr,onedit:hn}),reset(mt);var Tr=sibling(mt,2);{var jr=be=>{var Ae=root_17();each(Ae,21,()=>get(V),index,(nt,at,ot)=>{var ft=root_18(),Nt=child(ft),hr=child(Nt);{var Vn=Ft=>{var Hn=root_19();append(Ft,Hn)},gr=user_derived(()=>get(at).type.includes("pdf")),mr=Ft=>{var Hn=root_20();append(Ft,Hn)},bn=user_derived(()=>get(at).type.includes("markdown")||get(at).name.endsWith(".md")),Gn=Ft=>{var Hn=root_21();append(Ft,Hn)};if_block(hr,Ft=>{get(gr)?Ft(Vn):get(bn)?Ft(mr,1):Ft(Gn,!1)})}reset(Nt);var vr=sibling(Nt,2),Xr=child(vr,!0);reset(vr);var _r=sibling(vr,2),Jr=child(_r,!0);reset(_r);var Qr=sibling(_r,2);reset(ft),template_effect(Ft=>{set_text(Xr,get(at).name),set_text(Jr,Ft)},[()=>Fe(get(at).size)]),delegated("click",Qr,()=>Te(ot)),append(nt,ft)}),reset(Ae),append(be,Ae)};if_block(Tr,be=>{get(V).length>0&&be(jr)})}var Rr=sibling(Tr,2);{var Wr=be=>{var Ae=root_22();each(Ae,21,()=>get(D),index,(nt,at,ot)=>{var ft=root_23(),Nt=child(ft),hr=child(Nt);reset(Nt);var Vn=sibling(Nt,2),gr=child(Vn,!0);reset(Vn);var mr=sibling(Vn,2);reset(ft),template_effect((bn,Gn)=>{set_text(hr,`<${bn??""}>`),set_text(gr,Gn)},[()=>get(at).tagName.toLowerCase(),()=>{var bn;return((bn=get(at).textContent)==null?void 0:bn.substring(0,40))||get(at).selector}]),delegated("click",mr,()=>{set(D,get(D).filter((bn,Gn)=>Gn!==ot),!0)}),append(nt,ft)}),reset(Ae),append(be,Ae)};if_block(Rr,be=>{get(D).length>0&&be(Wr)})}var Ar=sibling(Rr,2);ConsoleLogList(Ar,{get logs(){return get(H)}});var Nr=sibling(Ar,2);{var Vr=be=>{var Ae=root_24(),nt=child(Ae);reset(Ae),template_effect((at,ot)=>set_text(nt,`${at??""} attachment${ot??""} will be included`),[Zn,()=>Zn()>1?"s":""]),append(be,Ae)},Gr=user_derived(()=>Zn()>0);if_block(Nr,be=>{get(Gr)&&be(Vr)})}var $r=sibling(Nr,2),fr=child($r),Hr=child(fr);reset(fr);var pr=sibling(fr,2),or=sibling(pr,2),qr=child(or);{var Yr=be=>{var Ae=root_25();next(),append(be,Ae)},Kr=be=>{var Ae=text("Submit");append(be,Ae)};if_block(qr,be=>{get(Oe)?be(Yr):be(Kr,!1)})}reset(or),reset($r),reset(re),template_effect(be=>{ye.disabled=get(Oe),Ue.disabled=get(Oe),_t.disabled=get(Oe),st.disabled=get(Oe),Pe.disabled=get(te),At.disabled=get(Qe),Lt=set_class(Ct,1,"tool-btn svelte-nv4d5v",null,Lt,{"recording-active":get(F)}),Ct.disabled=get(Oe),Wn.disabled=get(Oe),set_text(Hr,`v${h}`),pr.disabled=get(Oe),or.disabled=be,set_attribute(or,"title",get(F)?"Stop recording first, or click Submit to auto-stop":"")},[()=>get(Oe)||!get(Ee).trim()]),event("submit",re,cr),bind_value(ye,()=>get(Ee),be=>set(Ee,be)),bind_value(Ue,()=>get(Me),be=>set(Me,be)),bind_select_value(_t,()=>get(Se),be=>set(Se,be)),bind_select_value(st,()=>get(We),be=>set(We,be)),delegated("click",Pe,Wt),delegated("click",At,Fn),delegated("click",Ct,Y),delegated("click",Wn,de),delegated("change",Ir,we),delegated("click",pr,function(...be){var Ae;(Ae=k())==null||Ae.apply(this,be)}),transition(3,re,()=>slide,()=>({duration:200})),append(Z,re)};if_block(ht,Z=>{get(N)==="new"&&Z(Ye)})}var Et=sibling(ht,2);{var Qt=Z=>{var re=root_27(),_e=child(re);{var ye=Ue=>{var ut=root_28(),gt=sibling(child(ut),4),_t=sibling(gt,2);reset(ut),template_effect(()=>set_attribute(gt,"href",`${g()??""}/feedback/replay?id=${get(wt)??""}`)),delegated("click",_t,()=>{set(wt,null),set(Ge,!1)}),append(Ue,ut)};if_block(_e,Ue=>{get(wt)&&get(Ge)&&Ue(ye)})}var De=sibling(_e,2);RequestList(De,{get endpoint(){return g()},get loading(){return get(B)},get error(){return get(K)},onreload:le,get reports(){return get(he)},set reports(Ue){set(he,Ue,!0)}}),reset(re),transition(3,re,()=>slide,()=>({duration:200})),append(Z,re)};if_block(Et,Z=>{get(N)==="requests"&&Z(Qt)})}var Xe=sibling(Et,2);{var sn=Z=>{var re=root_29(),_e=child(re);{let ye=user_derived(()=>{var De;return((De=get(P))==null?void 0:De.getMaxSteps())??20});AgentPanel(_e,{get messages(){return get(Ce)},get agentState(){return get(T)},get currentStep(){return get(z)},get maxSteps(){return get(ye)},get autoApprove(){return get(L)},onsend:ie,onstop:J,onapprove:ne,onskip:ge,onautoapprovechange:ee})}reset(re),transition(3,re,()=>slide,()=>({duration:200})),append(Z,re)};if_block(Xe,Z=>{get(N)==="agent"&&get($)&&Z(sn)})}var an=sibling(Xe,2);{var _n=Z=>{var re=root_30(),_e=child(re);NotesPanel(_e,{get endpoint(){return g()},get project(){return m()},onnoteschanged:W}),reset(re),transition(3,re,()=>slide,()=>({duration:200})),append(Z,re)};if_block(an,Z=>{get(N)==="notes"&&get(O)&&Z(_n)})}var Vt=sibling(an,2);{var Rn=Z=>{var re=root_31(),_e=child(re),ye=sibling(child(_e),2),De=child(ye);{var Ue=je=>{var Pe=root_32();delegated("click",Pe,ve),append(je,Pe)},ut=je=>{var Pe=root_33(),tt=first_child(Pe);next(2),delegated("click",tt,Re),append(je,Pe)},gt=je=>{var Pe=root_34(),tt=sibling(child(Pe),2),bt=child(tt,!0);reset(tt),reset(Pe),template_effect(()=>set_text(bt,get(ce))),append(je,Pe)},_t=je=>{var Pe=root_35(),tt=sibling(first_child(Pe),2),bt=child(tt,!0);reset(tt);var kt=sibling(tt,2);template_effect(()=>set_text(bt,get(ce))),delegated("click",kt,me),append(je,Pe)},Gt=je=>{var Pe=root_36(),tt=sibling(first_child(Pe),2),bt=child(tt,!0);reset(tt);var kt=sibling(tt,2);template_effect(()=>set_text(bt,get(ce))),delegated("click",kt,me),append(je,Pe)};if_block(De,je=>{get(oe)==="idle"?je(Ue):get(oe)==="recording"?je(ut,1):get(oe)==="processing"?je(gt,2):get(oe)==="done"?je(_t,3):get(oe)==="error"&&je(Gt,4)})}reset(ye);var st=sibling(ye,2);{var mt=je=>{var Pe=root_37();append(je,Pe)};if_block(st,je=>{get(oe)==="idle"&&je(mt)})}reset(_e),reset(re),transition(3,re,()=>slide,()=>({duration:200})),append(Z,re)};if_block(Vt,Z=>{get(N)==="voice"&&Z(Rn)})}var Dt=sibling(Vt,2);StatusToast(Dt,{get message(){return get(Be)},get type(){return get(He)},get visible(){return get(xt)}}),reset(rn);var An=sibling(rn,2);{var Un=Z=>{AnnotationEditor(Z,{get imageDataUrl(){return get(yt)},onsave:nn,oncancel:In})};if_block(An,Z=>{get(Ve)!==null&&Z(Un)})}return template_effect(()=>{nr=set_class(Bn,1,"tab svelte-nv4d5v",null,nr,{active:get(N)==="new"}),rr=set_class(vn,1,"tab svelte-nv4d5v",null,rr,{active:get(N)==="requests"}),Rt=set_class(pt,1,"tab svelte-nv4d5v",null,Rt,{active:get(N)==="notes"}),rt=set_class(it,1,"tab svelte-nv4d5v",null,rt,{active:get(N)==="voice"})}),delegated("keydown",rn,Pn),delegated("keyup",rn,Pn),event("keypress",rn,Pn),delegated("click",Bn,()=>set(N,"new")),delegated("click",vn,()=>set(N,"requests")),delegated("click",pt,()=>{set(N,"notes"),set(O,!0)}),delegated("click",it,()=>set(N,"voice")),delegated("click",qe,function(...Z){var re;(re=k())==null||re.apply(this,Z)}),append(d,Qn),pop(Jn)}delegate(["keydown","keyup","mousedown","click","change"]),create_custom_element(FeedbackPanel,{endpoint:{},project:{},isOpen:{},userId:{},userEmail:{},userName:{},userRole:{},orgId:{},orgName:{},onclose:{},ongrip:{},agentProxy:{},agentModel:{},agentContext:{},registeredTools:{}},[],[],{mode:"open"});var root_1=from_html("<div><!></div>"),root_2=from_html('<div class="jat-feedback-panel svelte-qpyrvv"><div class="no-endpoint svelte-qpyrvv"><p class="svelte-qpyrvv">No endpoint configured.</p> <p class="svelte-qpyrvv">Add the <code class="svelte-qpyrvv">endpoint</code> attribute:</p> <code class="example svelte-qpyrvv">&lt;jat-feedback endpoint="http://localhost:3333"&gt;</code></div></div>'),root=from_html('<div class="jat-feedback-root svelte-qpyrvv" data-page-agent-not-interactive=""><!> <!></div>');const $$css={hash:"svelte-qpyrvv",code:`.jat-feedback-root.svelte-qpyrvv {position:fixed;z-index:2147483647;font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;}.jat-feedback-panel.svelte-qpyrvv {position:absolute;
445
445
  animation: svelte-qpyrvv-panel-in 0.2s ease;}.jat-feedback-panel.hidden.svelte-qpyrvv {display:none;}.jat-feedback-panel.dragging.svelte-qpyrvv {pointer-events:none;opacity:0.9;}.no-endpoint.svelte-qpyrvv {width:320px;background:#111827;border:1px solid #374151;border-radius:12px;padding:20px;color:#d1d5db;font-size:13px;box-shadow:0 20px 60px rgba(0,0,0,0.4);}.no-endpoint.svelte-qpyrvv p:where(.svelte-qpyrvv) {margin:0 0 8px;}.no-endpoint.svelte-qpyrvv code:where(.svelte-qpyrvv) {font-family:'SF Mono', 'Fira Code', monospace;font-size:11px;color:#93c5fd;}.no-endpoint.svelte-qpyrvv code.example:where(.svelte-qpyrvv) {display:block;background:#1f2937;padding:8px 10px;border-radius:4px;margin-top:4px;}
446
446
  @keyframes svelte-qpyrvv-panel-in {
447
447
  from { opacity: 0; transform: translateY(8px) scale(0.96); }
@@ -11805,7 +11805,7 @@ function RequestList(d, p) {
11805
11805
  }
11806
11806
  });
11807
11807
  }
11808
- template_effect(() => set_attribute(ut, "href", `${h() ?? ""}/feedback/replay.html?id=${get(te).id ?? ""}`)), append(ot, tt);
11808
+ template_effect(() => set_attribute(ut, "href", `${h() ?? ""}/feedback/replay?id=${get(te).id ?? ""}`)), append(ot, tt);
11809
11809
  };
11810
11810
  if_block(dt, (ot) => {
11811
11811
  get(Le) && ot(St);
@@ -18315,7 +18315,7 @@ const $$css$1 = {
18315
18315
  };
18316
18316
  function FeedbackPanel(d, p) {
18317
18317
  push(p, !0), append_styles(d, $$css$1);
18318
- const h = "3.3.1";
18318
+ const h = "3.3.3";
18319
18319
  let g = prop(p, "endpoint", 7), m = prop(p, "project", 7), _ = prop(p, "isOpen", 7, !1), b = prop(p, "userId", 7, ""), y = prop(p, "userEmail", 7, ""), w = prop(p, "userName", 7, ""), x = prop(p, "userRole", 7, ""), E = prop(p, "orgId", 7, ""), S = prop(p, "orgName", 7, ""), k = prop(p, "onclose", 7), I = prop(p, "ongrip", 7), R = prop(p, "agentProxy", 7, ""), M = prop(p, "agentModel", 7, ""), A = prop(p, "agentContext", 7, ""), C = prop(p, "registeredTools", 23, () => []), N = /* @__PURE__ */ state("new"), $ = /* @__PURE__ */ state(!1), O = /* @__PURE__ */ state(!1), F = /* @__PURE__ */ state(!1), j = /* @__PURE__ */ state(proxy([]));
18320
18320
  function Y() {
18321
18321
  if (get(F)) {
@@ -18995,7 +18995,7 @@ function FeedbackPanel(d, p) {
18995
18995
  {
18996
18996
  var ye = (Ue) => {
18997
18997
  var lt = root_28(), ft = sibling(child(lt), 4), gt = sibling(ft, 2);
18998
- reset(lt), template_effect(() => set_attribute(ft, "href", `${g() ?? ""}/feedback/replay.html?id=${get(_t) ?? ""}`)), delegated("click", gt, () => {
18998
+ reset(lt), template_effect(() => set_attribute(ft, "href", `${g() ?? ""}/feedback/replay?id=${get(_t) ?? ""}`)), delegated("click", gt, () => {
18999
18999
  set(_t, null), set(Ge, !1);
19000
19000
  }), append(Ue, lt);
19001
19001
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jat-feedback",
3
- "version": "3.3.1",
3
+ "version": "3.3.3",
4
4
  "description": "Embeddable feedback widget for bug reports and feature requests. Captures screenshots, console logs, and user context as a web component.",
5
5
  "type": "module",
6
6
  "main": "dist/jat-feedback.js",
@@ -8,7 +8,8 @@
8
8
  "files": [
9
9
  "dist",
10
10
  "supabase",
11
- "routes"
11
+ "routes",
12
+ "static"
12
13
  ],
13
14
  "scripts": {
14
15
  "dev": "vite build --watch",
@@ -0,0 +1 @@
1
+ export const prerender = true