@hyperpuncher/pi-ui 0.42.1 → 0.42.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/static/build/main.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{gc as Pe,hc as Fe}from"./chunks/main-pq3eh5fy.js";import{ic as ut}from"./chunks/main-b1kpnx3v.js";import{oc as Ce,pc as W}from"./chunks/main-jgbmmpjx.js";function q(e,t){let n=e.toLowerCase(),o=t.toLowerCase(),r=(d)=>{if(d.length===0)return{matches:!0,score:0};if(d.length>o.length)return{matches:!1,score:0};let f=0,y=0,U=-1,oe=0;for(let b=0;b<o.length&&f<d.length;b++)if(o[b]===d[f]){let $t=b===0||/[\s\-_./:]/.test(o[b-1]);if(U===b-1)oe++,y-=oe*5;else if(oe=0,U>=0)y+=(b-U-1)*2;if($t)y-=10;y+=b*0.1,U=b,f++}if(f<d.length)return{matches:!1,score:0};if(d===o)y-=100;return{matches:!0,score:y}},i=r(n);if(i.matches)return i;let s=n.match(/^(?<letters>[a-z]+)(?<digits>[0-9]+)$/),c=n.match(/^(?<digits>[0-9]+)(?<letters>[a-z]+)$/),a=s?`${s.groups?.digits??""}${s.groups?.letters??""}`:c?`${c.groups?.letters??""}${c.groups?.digits??""}`:"";if(!a)return i;let u=r(a);if(!u.matches)return i;return{matches:!0,score:u.score+5}}function k(e,t,n){if(!t.trim())return e;let o=t.trim().split(/[\s/]+/).filter((i)=>i.length>0);if(o.length===0)return e;let r=[];for(let i of e){let s=n(i),c=0,a=!0;for(let u of o){let d=q(u,s);if(d.matches)c+=d.score;else{a=!1;break}}if(a)r.push({item:i,totalScore:c})}return r.sort((i,s)=>i.totalScore-s.totalScore),r.map((i)=>i.item)}function Me(){document.addEventListener("click",async(e)=>{let t=e.target;if(!(t instanceof Element))return;let n=t.closest("[data-copy-code]");if(!(n instanceof HTMLButtonElement))return;let o=n.closest("[data-code-block]"),r=o?.querySelector("[data-code-source]"),i=o?.querySelector("code"),s=r?.textContent?Ut(r.textContent):i?.textContent;if(!s)return;try{await navigator.clipboard.writeText(s),n.dataset.copyState="copied",n.setAttribute("aria-label","Copied"),setTimeout(()=>{delete n.dataset.copyState,n.setAttribute("aria-label","Copy code")},1200)}catch{n.setAttribute("aria-label","Copy failed")}})}function Ut(e){let t=document.createElement("textarea");return t.innerHTML=e,t.value}function xe(){document.addEventListener("input",Kt),document.addEventListener("keydown",Wt),document.addEventListener("mousemove",Vt),document.addEventListener("click",jt),w()}function w(e=document){for(let t of Te(e,".command"))Nt(t);for(let t of Te(e,".sidebar"))qt(t)}function Ae(e){if(!(e instanceof HTMLElement)||!e.matches(".sidebar"))return!1;let t=e.getAttribute("aria-hidden")==="true";return Le(e,t),t}function Te(e,t){let n=[];if(!e)return n;if(e instanceof Element&&e.matches(t))n.push(e);for(let o of e.querySelectorAll?.(t)??[])n.push(o);return n}function N(e){return{input:e.querySelector("header input"),menu:e.querySelector('[role="menu"]')}}function Se(e){return[...e.querySelectorAll('[role="menuitem"]')].filter((t)=>t instanceof HTMLElement&&!ke(t))}function _(e){let{menu:t}=N(e);if(!(t instanceof HTMLElement))return[];return Se(t).filter((n)=>!n.hidden)}function qt(e){if(e.hasAttribute("aria-hidden"))return;let t=Number.parseInt(e.dataset.breakpoint||"768",10),n=e.dataset.initialOpen!=="false",o=e.dataset.initialMobileOpen==="true";Le(e,window.innerWidth>=t?n:o)}function Le(e,t){if(e.setAttribute("aria-hidden",String(!t)),t)e.removeAttribute("inert");else e.setAttribute("inert","")}function Nt(e){let{input:t,menu:n}=N(e);if(!(t instanceof HTMLInputElement)||!(n instanceof HTMLElement))return;if(e.dataset.filter!=="manual")He(e);else n.scrollTop=0,z(e,_(e)[0])}function He(e){let{input:t,menu:n}=N(e);if(!(t instanceof HTMLInputElement)||!(n instanceof HTMLElement))return;let o=t.value.trim().toLowerCase();for(let i of Se(n)){let s=(i.dataset.filter||i.textContent||"").trim().toLowerCase(),c=(i.dataset.keywords||"").toLowerCase().split(/[\s,]+/),a=i.hasAttribute("data-force")||s.includes(o)||c.some((u)=>u.includes(o));i.hidden=!a}let r=_(e)[0];if(z(e,r),o==="")n.scrollTop=0;else r?.scrollIntoView({block:"nearest"})}function z(e,t){let{input:n,menu:o}=N(e);if(!(n instanceof HTMLInputElement)||!(o instanceof HTMLElement))return;for(let r of o.querySelectorAll('[role="menuitem"].active'))r.classList.remove("active");if(t instanceof HTMLElement)if(t.classList.add("active"),t.id)n.setAttribute("aria-activedescendant",t.id);else n.removeAttribute("aria-activedescendant");else n.removeAttribute("aria-activedescendant")}function _t(e,t){let n=_(e);if(n.length===0)return;let o=n.findIndex((s)=>s.classList.contains("active")),r=o;if(t==="ArrowDown")r=Math.min(o+1,n.length-1);if(t==="ArrowUp")r=Math.max(o<0?0:o-1,0);if(t==="Home")r=0;if(t==="End")r=n.length-1;let i=n[r];z(e,i),i?.scrollIntoView({block:"nearest"})}function Ie(e){return[...e.querySelectorAll('[role^="menuitem"]')].filter((t)=>t instanceof HTMLElement&&!ke(t))}function zt(e,t){let n=Ie(e);if(n.length===0)return;let o=n.indexOf(document.activeElement),r=o;if(t==="ArrowDown")r=Math.min(o+1,n.length-1);if(t==="ArrowUp")r=o<0?n.length-1:Math.max(o-1,0);if(t==="Home")r=0;if(t==="End")r=n.length-1;n[r]?.focus({preventScroll:!0})}function Kt(e){if(!(e.target instanceof HTMLInputElement))return;let t=e.target.closest(".command");if(t instanceof HTMLElement&&t.dataset.filter!=="manual")He(t)}function Wt(e){if(!(e.target instanceof Element))return;let t=e.target.closest(".command");if(t instanceof HTMLElement&&e.target.matches("header input")){if(e.key==="Enter"){let r=_(t).find((i)=>i.classList.contains("active"));if(r)e.preventDefault(),r.click();return}if(["ArrowDown","ArrowUp","Home","End"].includes(e.key)){e.preventDefault(),_t(t,e.key);return}}let n=e.target.closest("[popover][role='menu']");if(n instanceof HTMLElement){if(e.key==="Tab")n.hidePopover();if(["ArrowDown","ArrowUp","Home","End"].includes(e.key))e.preventDefault(),zt(n,e.key);return}if(!(e.target instanceof HTMLButtonElement))return;let o=e.target.popoverTargetElement;if(o?.matches("[popover][role='menu']")&&["ArrowDown","ArrowUp"].includes(e.key)){e.preventDefault(),e.target.click();let r=Ie(o);(e.key==="ArrowUp"?r.at(-1):r[0])?.focus({preventScroll:!0})}}function Vt(e){if(!(e.target instanceof Element))return;let t=e.target.closest('[role="menuitem"]'),n=t?.closest(".command");if(n instanceof HTMLElement&&t instanceof HTMLElement&&!t.hidden)z(n,t)}function jt(e){if(!(e.target instanceof Element))return;let t=e.target.closest('.command [role="menuitem"]');if(t instanceof HTMLElement&&!t.hasAttribute("data-keep-command-open"))t.closest("dialog")?.close()}function ke(e){return e.hasAttribute("disabled")||e.getAttribute("aria-disabled")==="true"||e.getAttribute("data-disabled")==="true"}function Be(e){let t=new Date(e.dateTime);if(Number.isNaN(t.getTime()))return;e.textContent=Pe(t),e.title=Fe(t)}var re={};Ce(re,{openCommand:()=>Re,openTree:()=>Jt,openWorkspace:()=>Oe,openWorkspaceBrowser:()=>Xt,toggleCommand:()=>Zt,toggleSession:()=>Gt,toggleWorkspace:()=>Qt});function K(e,t,n={}){let o=document.getElementById(e);if(!(o instanceof HTMLDialogElement))return;if(!o.open)De(o,document.activeElement),en(document.getElementById(t)),o.showModal();w(o),requestAnimationFrame(()=>{let r=n.activeSelector?o.querySelector(n.activeSelector):void 0;r?.dispatchEvent(new MouseEvent("mousemove",{bubbles:!0})),r?.scrollIntoView({block:"center"})})}function De(e,t){e.addEventListener("close",()=>{setTimeout(()=>Yt(t),0)},{once:!0})}function Yt(e){if(!(e instanceof HTMLElement))return;let t=e.isConnected?e:e.id?document.getElementById(e.id):void 0;if(!(t instanceof HTMLElement))return;if(document.activeElement===t)t.blur();t.focus({preventScroll:!0})}function Gt(){let e=document.getElementById("session-dialog");if(!(e instanceof HTMLDialogElement))return!1;if(e.open)return e.close(),!1;return K("session-dialog","session-input"),!0}function Jt(){$e(document.getElementById("tree-selected-id")),K("tree-dialog","tree-input",{activeSelector:"[data-active-tree-row]"})}function Re(){K("command-dialog","command-input")}function Zt(){let e=document.getElementById("command-dialog");if(!(e instanceof HTMLDialogElement))return!1;if(e.open)return e.close(),!1;return Re(),!0}function Oe(){K("workspace-dialog","workspace-input")}function Xt(){let e=document.getElementById("workspace-browser-dialog");if(!(e instanceof HTMLDialogElement))return;if(!e.open)document.getElementById("workspace-dialog")?.close(),De(e,document.getElementById("workspace-picker")),e.showModal();w(e)}function Qt(){let e=document.getElementById("workspace-dialog");if(!(e instanceof HTMLDialogElement))return!1;if(e.open)return e.close(),!1;return Oe(),!0}function $e(e){if(!(e instanceof HTMLInputElement))return;e.value="",e.dispatchEvent(new Event("input",{bubbles:!0}))}function en(e){if(!(e instanceof HTMLInputElement))return;$e(e);let t=e.getAttribute("aria-controls"),n=t?document.getElementById(t):void 0;if(n instanceof HTMLElement)n.scrollTop=0}var tn=[60,75,90,100,120,144,165,240];function nn(e){if(e.length<9)return;let t=e.slice(6),n=[];for(let a=1;a<t.length;a+=1){let u=t[a]-t[a-1];if(u>=3.666666666666667&&u<=33.333333333333336)n.push(u)}if(n.length<3)return;let o=ie(n,0.5),r=n.map((a)=>Math.abs(a-o)),s=ie(r,0.5)/o>0.06?ie(n,0.25):o,c=qe(1000/s,30,240);return on(c)}function on(e){let t=tn.reduce((n,o)=>Math.abs(o-e)<Math.abs(n-e)?o:n);return Math.abs(t-e)/t<=0.08?t:Math.round(qe(e,30,240))}function rn(e){let t=e.sampleFrames??48,n,o,r=[],i,s,c=(f)=>{if(n=void 0,!e.isEligible())return;if(r.push(f),r.length>=t){let y=nn(r);if(r=[],y!==void 0)a(y);return}n=e.requestFrame(c)},a=(f)=>{if(i!==void 0&&(Math.abs(i-f)<1||Math.abs(i-f)/i<0.02))return;if(s=f,o!==void 0)e.clearTimer(o);o=e.setTimer(()=>{if(o=void 0,!e.isEligible()||s===void 0)return;i=s,e.send(s),s=void 0},250)};return{restart:()=>{if(n!==void 0)e.cancelFrame(n);if(n=void 0,r=[],e.isEligible())n=e.requestFrame(c)},stop:()=>{if(n!==void 0)e.cancelFrame(n);if(o!==void 0)e.clearTimer(o);n=void 0,o=void 0,r=[],s=void 0}}}function Ue(){let e=rn({requestFrame:(t)=>requestAnimationFrame(t),cancelFrame:(t)=>cancelAnimationFrame(t),isEligible:()=>document.visibilityState==="visible"&&document.hasFocus(),setTimer:(t,n)=>setTimeout(t,n),clearTimer:(t)=>clearTimeout(t),send:(t)=>{document.body.dispatchEvent(new CustomEvent("pi-ui-display-refresh",{detail:{hz:t}}))}});e.restart(),document.addEventListener("visibilitychange",e.restart),window.addEventListener("focus",e.restart),window.addEventListener("pagehide",e.stop,{once:!0})}function ie(e,t){let n=[...e].sort((o,r)=>o-r);return n[Math.min(n.length-1,Math.floor((n.length-1)*t))]}function qe(e,t,n){return Math.min(n,Math.max(t,e))}function Ne(e){let t=se(e);return t!==void 0&&/\.html?$/i.test(t)}function se(e){try{let t=new URL(e);if(t.protocol!=="file:")return;let n=decodeURIComponent(t.pathname);if(t.hostname&&t.hostname.toLowerCase()!=="localhost")return`//${t.hostname}${n}`;if(/^\/[A-Za-z]:(?:\/|$)/.test(n))return n.slice(1);return n}catch{return}}function ze(){document.addEventListener("click",(e)=>{if(e.button!==0)return;let t=e.target instanceof Element?e.target.closest("a[href]"):null;if(!(t instanceof HTMLAnchorElement))return;let n=t.getAttribute("data-pi-file-link")??"",o=_e(n)?n:t.href;if(!_e(o))return;if(e.preventDefault(),Ne(o)){let r=document.body.dataset.filesOpenEndpoint;if(r)window.open(`${r}?uri=${encodeURIComponent(o)}`,"_blank","noopener,noreferrer")}else sn(o)},{capture:!0})}function _e(e){try{return new URL(e).protocol==="file:"}catch{return!1}}async function sn(e){let t=document.body.dataset.filesOpenEndpoint;if(!t)return;try{let n=await fetch(t,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({uri:e})});if(!n.ok)throw Error(await an(n));let{path:o,workspacePath:r}=await n.json(),{openLinkedWorkspaceFile:i}=await import("./chunks/workspace-review-5wk13hym.js");await i(o,r)}catch(n){alert(n instanceof Error?n.message:"Could not open the file.")}}async function an(e){try{let t=await e.json();return t.error||t.message||"Could not open the file."}catch{return"Could not open the file."}}var we={};Ce(we,{canSubmit:()=>ge,composePrompt:()=>bt,convertAvifToJpeg:()=>Et,enterDrag:()=>Tn,extractTransferredFilePaths:()=>mt,fileWithDetectedMimeType:()=>gt,formatFileReferences:()=>yt,hasAttachments:()=>ft,hasFiles:()=>vn,insert:()=>dt,isAvifImageFile:()=>Ee,isHeicImageFile:()=>ye,jpegFileName:()=>ht,leaveDrag:()=>xn,pick:()=>Mn,resetDrag:()=>An,submit:()=>Sn});var ae={archive:{paths:["M13.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v11.5","M14 2v5a1 1 0 0 0 1 1h5M8 12v-1m0 7v-2m0-9V6"],circle:{cx:8,cy:20,r:2}},audio:{paths:["M17.5 22h.5a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v3","M14 2v4a2 2 0 0 0 2 2h4M2 19a2 2 0 1 1 4 0v1a2 2 0 1 1-4 0v-4a6 6 0 0 1 12 0v4a2 2 0 1 1-4 0v-1a2 2 0 1 1 4 0"]},code:{paths:["M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4","M14 2v4a2 2 0 0 0 2 2h4M5 12l-3 3l3 3m4 0l3-3l-3-3"]},file:{paths:["M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z","M14 2v5a1 1 0 0 0 1 1h5"]},pdf:{paths:["M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4","M14 2v4a2 2 0 0 0 2 2h4M2 13v-1h6v1m-3-1v6m-1 0h2"]},text:{paths:["M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z","M14 2v5a1 1 0 0 0 1 1h5M10 9H8m8 4H8m8 4H8"]},video:{paths:["M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z","M14 2v5a1 1 0 0 0 1 1h5m-4.967 5.44a.647.647 0 0 1 0 1.12l-4.065 2.352a.645.645 0 0 1-.968-.56v-4.704a.645.645 0 0 1 .967-.56z"]}};function Ke(e){return(e.includes(".")?e.split(".").at(-1):"").slice(0,4).toLowerCase()}function We(e,t){let n=e.split(".").at(-1)?.toLowerCase()??"";if(t==="application/pdf"||n==="pdf")return"pdf";if(t?.startsWith("audio/")||["aac","flac","m4a","mp3","ogg","wav"].includes(n))return"audio";if(t?.startsWith("video/")||["avi","m4v","mkv","mov","mp4","webm"].includes(n))return"video";if(t?.includes("zip")||["7z","bz2","gz","rar","tar","xz","zip"].includes(n))return"archive";if(["c","cpp","css","go","h","html","java","js","json","jsx","py","rs","sh","sql","toml","ts","tsx","xml","yaml","yml"].includes(n)||t==="application/json"||t?.includes("javascript")||t?.includes("xml"))return"code";if(t?.startsWith("text/")||["csv","log","md","rst","txt"].includes(n))return"text";return"file"}function m(){let e=document.getElementById("prompt-input");return e instanceof HTMLTextAreaElement?e:void 0}function le(){return m()?.value??""}function x(e){let t=m();if(!t)return;t.value=e,t.dispatchEvent(new Event("input",{bubbles:!0}))}function P(){let e=m();if(!e)return;e.focus({preventScroll:!0}),e.selectionStart=e.value.length,e.selectionEnd=e.value.length}function je(e){let t=m();if(!t)return;let n=t.selectionStart??t.value.length,o=t.selectionEnd??n;t.value=`${t.value.slice(0,n)}${e}${t.value.slice(o)}`;let r=n+e.length;t.selectionStart=r,t.selectionEnd=r,t.dispatchEvent(new Event("input",{bubbles:!0}))}function Ye(){let e=m();if(!e)return;let t=e.selectionStart??e.value.length,n=e.selectionEnd??t;if(t!==n)e.value=`${e.value.slice(0,t)}${e.value.slice(n)}`,e.selectionStart=t,e.selectionEnd=t;else if(t>0)e.value=`${e.value.slice(0,t-1)}${e.value.slice(t)}`,e.selectionStart=t-1,e.selectionEnd=t-1;e.dispatchEvent(new Event("input",{bubbles:!0}))}var Ve,ce;function Ge(){let e=document.getElementById("prompt-footer");if(!(e instanceof HTMLElement))return;Je(e),e.removeAttribute("data-prompt-initial"),ce??=new ResizeObserver(cn),ce.disconnect(),ce.observe(e)}function cn(){cancelAnimationFrame(Ve),Ve=requestAnimationFrame(()=>{let e=document.getElementById("prompt-footer");if(e instanceof HTMLElement)Je(e)})}function Je(e){if(e.removeAttribute("data-toolbar-compact"),e.removeAttribute("data-context-compact"),e.setAttribute("data-measuring",""),e.scrollWidth>e.clientWidth){if(e.setAttribute("data-toolbar-compact",""),e.scrollWidth>e.clientWidth)e.setAttribute("data-context-compact","")}e.removeAttribute("data-measuring")}function Ze(){document.addEventListener("pointerdown",(e)=>{let t=e.target;if(!(t instanceof Element))return;let n=t.closest("[data-tooltip]");if(!(n instanceof HTMLElement))return;n.setAttribute("data-tooltip-suppressed",""),n.addEventListener("pointerleave",()=>n.removeAttribute("data-tooltip-suppressed"),{once:!0})})}var F,B=!1,de,et;function ln(e,t){let n=e.slice(0,t),o=/(?:^|[\s"'=])(@(?:"[^"]*|[^\s"'=]*))$/.exec(n)?.[1];if(!o)return;return{start:t-o.length,end:t,query:o.slice(1)}}function un(e,t,n){let o=n.endsWith("/")||n.endsWith('/"'),r=o?"":" ",i=e.slice(t.end),s=t.query.startsWith('"')&&n.endsWith('"')&&i.startsWith('"')?i.slice(1):i,c=`${e.slice(0,t.start)}${n}${r}${s}`,a=o&&n.endsWith('"')?1:0;return{text:c,cursor:t.start+n.length+r.length-a}}function C(){return nt("prompt-file-popover")}function V(){return C()||fe()}function tt(e){et=e.fuzzyFilter,document.addEventListener("input",Xe),document.addEventListener("keyup",Xe),document.addEventListener("click",dn),document.addEventListener("keydown",fn),rt(le())}function Xe(e){if(!(e.target instanceof HTMLTextAreaElement)||e.target.id!=="prompt-input")return;if(B&&e.type==="keyup")return;if(e.type==="input")B=!1;if(j(e.target),rt(e.target.value),e.target.value.startsWith("/"))ot("slash-picker-list","[data-slash-row]")}function j(e){if(B)return;let t=ln(e.value,e.selectionStart??e.value.length);if(!t){me();return}F=t,clearTimeout(de),de=setTimeout(()=>{if(F!==t)return;e.dispatchEvent(new CustomEvent("pi-ui-file-query",{bubbles:!0,detail:{query:t.query}}))},50)}function dn(e){let t=e.target;if(!(t instanceof Element))return;let n=t.closest('[data-picker-kind="slash"]'),o=t.closest('[data-picker-kind="file"]');if(t.closest("[data-file-trigger]"))e.preventDefault(),pn();else if(t.closest("[data-send-trigger]"))A(!0);else if(n instanceof HTMLElement)e.preventDefault();else if(o instanceof HTMLElement)e.preventDefault(),mn(o.dataset.pickerValue??"");else if(t instanceof HTMLTextAreaElement&&t.id==="prompt-input")j(t)}function fn(e){if(e.isComposing)return;if(e.ctrlKey||e.metaKey||e.altKey)return;if(e.code==="Escape"){let n=document.activeElement?.closest?.("[data-picker-kind]");if(V())e.preventDefault();if(A(!0),le()==="/")x("");if(n)m()?.focus({preventScroll:!0});return}if(document.activeElement?.closest?.("[data-file-row]")){if(e.code==="Backspace"){e.preventDefault(),P(),Ye();return}if(e.key.length===1){e.preventDefault(),P(),je(e.key);return}}let t=document.activeElement;if(t?.id==="prompt-input"){if((e.code==="ArrowDown"||e.code==="ArrowUp")&&fe()){e.preventDefault(),ue("[data-slash-row]",e.code==="ArrowDown"?1:-1);return}if((e.code==="ArrowDown"||e.code==="ArrowUp")&&C()){e.preventDefault(),ue("[data-file-row]",e.code==="ArrowDown"?1:-1);return}if(e.code==="Enter"&&!e.shiftKey&&C()){e.preventDefault(),Qe("[data-file-row]")?.querySelector("button")?.click();return}if(e.code==="Enter"&&!e.shiftKey&&fe()){e.preventDefault(),Qe("[data-slash-row]")?.querySelector("button")?.click();return}}for(let n of["[data-slash-row]","[data-file-row]"]){if(!t?.closest?.(n))continue;if(e.code==="ArrowDown"||e.code==="ArrowUp")e.preventDefault(),ue(n,e.code==="ArrowDown"?1:-1);else if(e.code==="Enter")e.preventDefault(),t.click();return}}function mn(e){let t=m();if(!t||!F)return;let n=un(t.value,F,e);if(t.value=n.text,t.selectionStart=n.cursor,t.selectionEnd=n.cursor,t.dispatchEvent(new Event("input",{bubbles:!0})),t.focus(),e.endsWith("/")||e.endsWith('/"'))j(t);else me()}function pn(){let e=m();if(!e)return;B=!1;let t=e.selectionStart??e.value.length,o=`${t>0&&!/\s/.test(e.value[t-1]??"")?" ":""}@`;e.value=`${e.value.slice(0,t)}${o}${e.value.slice(e.selectionEnd??t)}`;let r=t+o.length;e.selectionStart=r,e.selectionEnd=r,e.dispatchEvent(new Event("input",{bubbles:!0})),e.focus(),j(e)}function A(e=!1){me(e),m()?.dispatchEvent(new CustomEvent("pi-ui-picker-close",{bubbles:!0}))}function me(e=!1){if(clearTimeout(de),e)B=!0;F=void 0,m()?.dispatchEvent(new CustomEvent("pi-ui-file-close",{bubbles:!0}))}function fe(){return nt("prompt-slash-popover")}function nt(e){let t=document.getElementById(e);return t instanceof HTMLElement&&t.style.display!=="none"}function pe(e){return[...document.querySelectorAll(e)].filter((t)=>t instanceof HTMLElement&&getComputedStyle(t).display!=="none")}function Qe(e){let t=pe(e);return t.find((n)=>n.getAttribute("aria-selected")==="true")??t[0]}function hn(e){let t=pe(e);for(let[n,o]of t.entries())o.setAttribute("aria-selected",n===0?"true":"false")}function ot(e,t){let n=document.getElementById(e);if(n instanceof HTMLElement)n.scrollTop=0;hn(t)}function rt(e){if(!e.startsWith("/")||e.includes(" "))return;let t=document.getElementById("slash-picker-list");if(!(t instanceof HTMLElement))return;let n=[...t.querySelectorAll("[data-slash-row]")].sort((i,s)=>Number(i.dataset.slashOrder)-Number(s.dataset.slashOrder)),o=et(n,e.slice(1),(i)=>i.dataset.slashName??""),r=new Set(o);t.append(...o,...n.filter((i)=>!r.has(i)))}function it(){ot("file-picker-list","[data-file-row]")}function gn(e,t,n){if(e<=0)return-1;if(t===-1)return 0;return Math.max(0,Math.min(e-1,t-n))}function ue(e,t){let n=pe(e);if(n.length===0)return;let o=document.activeElement?.closest?.(e),r=n.findIndex((s)=>s===o);if(r===-1)r=n.findIndex((s)=>s.getAttribute("aria-selected")==="true");let i=gn(n.length,r,t);for(let s of n)s.setAttribute("aria-selected","false");n[i]?.setAttribute("aria-selected","true"),n[i]?.querySelector("button")?.focus()}var En=["text/uri-list","x-special/gnome-copied-files","text/plain"],st=10,yn=20971520,bn=52428800,wn=0.85,D=0,he=!1,g=[];function vn(e){if(!e)return!1;if(e.files?.length)return!0;return[...e.types].some((t)=>t==="Files"||t==="text/uri-list")}function Mn(){h("");let e=document.createElement("input");e.type="file",e.multiple=!0,e.addEventListener("change",()=>{if(e.files?.length)dt(e.files)},{once:!0}),e.click()}function Tn(){return D+=1,!0}function xn(){return D=Math.max(0,D-1),D>0}function An(){D=0}async function dt(e){if(!e)return;h("");let t=pt(e),n=t.some((a)=>Ee(a)||ye(a)),o=mt(e);if(o.length>0&&!n){let a=Hn(o);if(a){h(a);return}Pn(o);return}if(t.length===0)return;let r=at(t);if(r){h(r);return}let i;try{i=await Ln(t)}catch(a){console.error(a),h(a?.message||"Could not prepare the selected images.");return}let s=at(i);if(s){h(s);return}let c=await kn(i);for(let a=0;a<c.length;a+=1)wt({path:c[a].path,file:gt(i[a],c[a].mimeType)})}function ft(){return g.length>0}function ge(e){return!he&&(e.trim()!==""||ft())}async function Sn(e,t,n){if(!ge(t))return!1;let o=[...g],r=bt(t,o.map(({path:s})=>s)),i=new FormData;if(i.set("prompt",r),n)i.set("streamingBehavior",n);for(let{file:s}of o)if(s?.type.startsWith("image/"))i.append("image",s,s.name||"pasted-image");he=!0;try{let s=await fetch(e,{method:"POST",body:i});if(await s.text(),!s.ok)throw Error(`Prompt was not accepted (${s.status}).`);return Bn(o),h(""),!0}catch(s){return Fn(t),h(s?.message||"Could not send the prompt."),!1}finally{he=!1,document.getElementById("prompt-box")?.dispatchEvent(new CustomEvent("pi-ui-prompt-submit-finished",{bubbles:!0})),be()}}function mt(e){let t="getData"in e?En.flatMap((n)=>e.getData(n).split(/\r?\n/)):[];for(let n of pt(e))t.push(n.path??"",n.webkitRelativePath??"");return[...new Set(t.map(In).filter(Boolean))]}function pt(e){if(e.files)return[...e.files];return Array.from(e)}function Ee(e){return e.type?.toLowerCase()==="image/avif"||/\.avif$/i.test(e.name??"")}function ye(e){return/^(?:image\/)?hei[cf]$/i.test(e.type??"")||/\.hei[cf]$/i.test(e.name??"")}function ht(e){return/\.avif$/i.test(e)?e.replace(/\.avif$/i,".jpg"):`${e||"image"}.jpg`}function gt(e,t){if(t===void 0||e.type===t)return e;return new File([e],e.name,{type:t??"",lastModified:e.lastModified})}async function Ln(e){let t=[];for(let n of e){if(ye(n))throw Error("HEIC and HEIF images are not supported. Convert them to JPEG or PNG first.");t.push(Ee(n)?await Et(n):n)}return t}async function Et(e){let t;try{t=await createImageBitmap(e);let n=document.createElement("canvas");n.width=t.width,n.height=t.height;let o=n.getContext("2d");if(!o)throw Error("Canvas image conversion is unavailable.");o.fillStyle="white",o.fillRect(0,0,n.width,n.height),o.drawImage(t,0,0,n.width,n.height);let r=await new Promise((i,s)=>{n.toBlob((c)=>c?i(c):s(Error("JPEG encoding failed.")),"image/jpeg",wn)});return new File([r],ht(e.name),{type:"image/jpeg",lastModified:e.lastModified})}catch(n){throw Error(`Could not convert ${e.name||"the AVIF image"} to JPEG.`,{cause:n})}finally{t?.close()}}function Hn(e){if(e.some((t)=>/\.hei[cf]$/i.test(t)))return"HEIC and HEIF images are not supported. Convert them to JPEG or PNG first.";if(e.some((t)=>/\.avif$/i.test(t)))return"AVIF images must be dropped, pasted, or selected with the browser file picker so they can be converted."}function In(e){let t=e.trim();if(!t||t.startsWith("#")||t==="copy"||t==="cut")return;let n=se(t);if(n)return n;if(t.startsWith("/")||/^[A-Za-z]:[\\/]/.test(t))return t;return}function at(e){if(e.length>st)return`Attach at most ${st} files at a time.`;if(e.some((n)=>n.size>yn))return"Dropped or pasted files must be 20 MiB or smaller; use the Files button for larger files.";if(e.reduce((n,o)=>n+o.size,0)>bn)return"Dropped or pasted files must total 50 MiB or less."}async function kn(e){let t=new FormData;for(let n of e)t.append("file",n,n.name||"pasted-file");try{let n=document.body.dataset.filesImportEndpoint,o=await fetch(n,{method:"POST",body:t}),r=await o.json().catch(()=>({}));if(!o.ok)return h(ut(r.message)?r.message:"Could not transfer the selected files."),[];return h(""),Array.isArray(r.imports)?r.imports:[]}catch{return h("Could not transfer the selected files."),[]}}function h(e){let t=m();if(!t)return;let n=document.getElementById("file-transfer-error");if(!(n instanceof HTMLParagraphElement))n=document.createElement("p"),n.id="file-transfer-error",n.className="file-transfer-error",n.setAttribute("role","alert"),n.setAttribute("aria-live","polite"),t.before(n);n.textContent=e,n.hidden=!e}function yt(e){return`${e.map((t)=>`@${t}`).join(`
|
|
1
|
+
import{gc as Pe,hc as Fe}from"./chunks/main-pq3eh5fy.js";import{ic as ut}from"./chunks/main-b1kpnx3v.js";import{oc as Ce,pc as W}from"./chunks/main-jgbmmpjx.js";function q(e,t){let n=e.toLowerCase(),r=t.toLowerCase(),o=(d)=>{if(d.length===0)return{matches:!0,score:0};if(d.length>r.length)return{matches:!1,score:0};let f=0,b=0,U=-1,re=0;for(let y=0;y<r.length&&f<d.length;y++)if(r[y]===d[f]){let $t=y===0||/[\s\-_./:]/.test(r[y-1]);if(U===y-1)re++,b-=re*5;else if(re=0,U>=0)b+=(y-U-1)*2;if($t)b-=10;b+=y*0.1,U=y,f++}if(f<d.length)return{matches:!1,score:0};if(d===r)b-=100;return{matches:!0,score:b}},i=o(n);if(i.matches)return i;let s=n.match(/^(?<letters>[a-z]+)(?<digits>[0-9]+)$/),c=n.match(/^(?<digits>[0-9]+)(?<letters>[a-z]+)$/),a=s?`${s.groups?.digits??""}${s.groups?.letters??""}`:c?`${c.groups?.letters??""}${c.groups?.digits??""}`:"";if(!a)return i;let u=o(a);if(!u.matches)return i;return{matches:!0,score:u.score+5}}function k(e,t,n){if(!t.trim())return e;let r=t.trim().split(/[\s/]+/).filter((i)=>i.length>0);if(r.length===0)return e;let o=[];for(let i of e){let s=n(i),c=0,a=!0;for(let u of r){let d=q(u,s);if(d.matches)c+=d.score;else{a=!1;break}}if(a)o.push({item:i,totalScore:c})}return o.sort((i,s)=>i.totalScore-s.totalScore),o.map((i)=>i.item)}function Me(){document.addEventListener("click",async(e)=>{let t=e.target;if(!(t instanceof Element))return;let n=t.closest("[data-copy-code]");if(!(n instanceof HTMLButtonElement))return;let r=n.closest("[data-code-block]"),o=r?.querySelector("[data-code-source]"),i=r?.querySelector("code"),s=o?.textContent?Ut(o.textContent):i?.textContent;if(!s)return;try{await navigator.clipboard.writeText(s),n.dataset.copyState="copied",n.setAttribute("aria-label","Copied"),setTimeout(()=>{delete n.dataset.copyState,n.setAttribute("aria-label","Copy code")},1200)}catch{n.setAttribute("aria-label","Copy failed")}})}function Ut(e){let t=document.createElement("textarea");return t.innerHTML=e,t.value}function xe(){document.addEventListener("input",Kt),document.addEventListener("keydown",Wt),document.addEventListener("mousemove",Vt),document.addEventListener("click",jt),w()}function w(e=document){for(let t of Te(e,".command"))Nt(t);for(let t of Te(e,".sidebar"))qt(t)}function Ae(e){if(!(e instanceof HTMLElement)||!e.matches(".sidebar"))return!1;let t=e.getAttribute("aria-hidden")==="true";return Le(e,t),t}function Te(e,t){let n=[];if(!e)return n;if(e instanceof Element&&e.matches(t))n.push(e);for(let r of e.querySelectorAll?.(t)??[])n.push(r);return n}function N(e){return{input:e.querySelector("header input"),menu:e.querySelector('[role="menu"]')}}function Se(e){return[...e.querySelectorAll('[role="menuitem"]')].filter((t)=>t instanceof HTMLElement&&!ke(t))}function _(e){let{menu:t}=N(e);if(!(t instanceof HTMLElement))return[];return Se(t).filter((n)=>!n.hidden)}function qt(e){if(e.hasAttribute("aria-hidden"))return;let t=Number.parseInt(e.dataset.breakpoint||"768",10),n=e.dataset.initialOpen!=="false",r=e.dataset.initialMobileOpen==="true";Le(e,window.innerWidth>=t?n:r)}function Le(e,t){if(e.setAttribute("aria-hidden",String(!t)),t)e.removeAttribute("inert");else e.setAttribute("inert","")}function Nt(e){let{input:t,menu:n}=N(e);if(!(t instanceof HTMLInputElement)||!(n instanceof HTMLElement))return;if(e.dataset.filter!=="manual")He(e);else n.scrollTop=0,z(e,_(e)[0])}function He(e){let{input:t,menu:n}=N(e);if(!(t instanceof HTMLInputElement)||!(n instanceof HTMLElement))return;let r=t.value.trim().toLowerCase();for(let i of Se(n)){let s=(i.dataset.filter||i.textContent||"").trim().toLowerCase(),c=(i.dataset.keywords||"").toLowerCase().split(/[\s,]+/),a=i.hasAttribute("data-force")||s.includes(r)||c.some((u)=>u.includes(r));i.hidden=!a}let o=_(e)[0];if(z(e,o),r==="")n.scrollTop=0;else o?.scrollIntoView({block:"nearest"})}function z(e,t){let{input:n,menu:r}=N(e);if(!(n instanceof HTMLInputElement)||!(r instanceof HTMLElement))return;for(let o of r.querySelectorAll('[role="menuitem"].active'))o.classList.remove("active");if(t instanceof HTMLElement)if(t.classList.add("active"),t.id)n.setAttribute("aria-activedescendant",t.id);else n.removeAttribute("aria-activedescendant");else n.removeAttribute("aria-activedescendant")}function _t(e,t){let n=_(e);if(n.length===0)return;let r=n.findIndex((s)=>s.classList.contains("active")),o=r;if(t==="ArrowDown")o=Math.min(r+1,n.length-1);if(t==="ArrowUp")o=Math.max(r<0?0:r-1,0);if(t==="Home")o=0;if(t==="End")o=n.length-1;let i=n[o];z(e,i),i?.scrollIntoView({block:"nearest"})}function Ie(e){return[...e.querySelectorAll('[role^="menuitem"]')].filter((t)=>t instanceof HTMLElement&&!ke(t))}function zt(e,t){let n=Ie(e);if(n.length===0)return;let r=n.indexOf(document.activeElement),o=r;if(t==="ArrowDown")o=Math.min(r+1,n.length-1);if(t==="ArrowUp")o=r<0?n.length-1:Math.max(r-1,0);if(t==="Home")o=0;if(t==="End")o=n.length-1;n[o]?.focus({preventScroll:!0})}function Kt(e){if(!(e.target instanceof HTMLInputElement))return;let t=e.target.closest(".command");if(t instanceof HTMLElement&&t.dataset.filter!=="manual")He(t)}function Wt(e){if(!(e.target instanceof Element))return;let t=e.target.closest(".command");if(t instanceof HTMLElement&&e.target.matches("header input")){if(e.key==="Enter"){let o=_(t).find((i)=>i.classList.contains("active"));if(o)e.preventDefault(),o.click();return}if(["ArrowDown","ArrowUp","Home","End"].includes(e.key)){e.preventDefault(),_t(t,e.key);return}}let n=e.target.closest("[popover][role='menu']");if(n instanceof HTMLElement){if(e.key==="Tab")n.hidePopover();if(["ArrowDown","ArrowUp","Home","End"].includes(e.key))e.preventDefault(),zt(n,e.key);return}if(!(e.target instanceof HTMLButtonElement))return;let r=e.target.popoverTargetElement;if(r?.matches("[popover][role='menu']")&&["ArrowDown","ArrowUp"].includes(e.key)){e.preventDefault(),e.target.click();let o=Ie(r);(e.key==="ArrowUp"?o.at(-1):o[0])?.focus({preventScroll:!0})}}function Vt(e){if(!(e.target instanceof Element))return;let t=e.target.closest('[role="menuitem"]'),n=t?.closest(".command");if(n instanceof HTMLElement&&t instanceof HTMLElement&&!t.hidden)z(n,t)}function jt(e){if(!(e.target instanceof Element))return;let t=e.target.closest('.command [role="menuitem"]');if(t instanceof HTMLElement&&!t.hasAttribute("data-keep-command-open"))t.closest("dialog")?.close()}function ke(e){return e.hasAttribute("disabled")||e.getAttribute("aria-disabled")==="true"||e.getAttribute("data-disabled")==="true"}function Be(e){let t=new Date(e.dateTime);if(Number.isNaN(t.getTime()))return;e.textContent=Pe(t),e.title=Fe(t)}var oe={};Ce(oe,{openCommand:()=>Re,openTree:()=>Jt,openWorkspace:()=>Oe,openWorkspaceBrowser:()=>Xt,toggleCommand:()=>Zt,toggleSession:()=>Gt,toggleWorkspace:()=>Qt});function K(e,t,n={}){let r=document.getElementById(e);if(!(r instanceof HTMLDialogElement))return;if(!r.open)De(r,document.activeElement),en(document.getElementById(t)),r.showModal();w(r),requestAnimationFrame(()=>{let o=n.activeSelector?r.querySelector(n.activeSelector):void 0;o?.dispatchEvent(new MouseEvent("mousemove",{bubbles:!0})),o?.scrollIntoView({block:"center"})})}function De(e,t){e.addEventListener("close",()=>{setTimeout(()=>Yt(t),0)},{once:!0})}function Yt(e){if(!(e instanceof HTMLElement))return;let t=e.isConnected?e:e.id?document.getElementById(e.id):void 0;if(!(t instanceof HTMLElement))return;if(document.activeElement===t)t.blur();t.focus({preventScroll:!0})}function Gt(){let e=document.getElementById("session-dialog");if(!(e instanceof HTMLDialogElement))return!1;if(e.open)return e.close(),!1;return K("session-dialog","session-input"),!0}function Jt(){$e(document.getElementById("tree-selected-id")),K("tree-dialog","tree-input",{activeSelector:"[data-active-tree-row]"})}function Re(){K("command-dialog","command-input")}function Zt(){let e=document.getElementById("command-dialog");if(!(e instanceof HTMLDialogElement))return!1;if(e.open)return e.close(),!1;return Re(),!0}function Oe(){K("workspace-dialog","workspace-input")}function Xt(){let e=document.getElementById("workspace-browser-dialog");if(!(e instanceof HTMLDialogElement))return;if(!e.open)document.getElementById("workspace-dialog")?.close(),De(e,document.getElementById("workspace-picker")),e.showModal();w(e)}function Qt(){let e=document.getElementById("workspace-dialog");if(!(e instanceof HTMLDialogElement))return!1;if(e.open)return e.close(),!1;return Oe(),!0}function $e(e){if(!(e instanceof HTMLInputElement))return;e.value="",e.dispatchEvent(new Event("input",{bubbles:!0}))}function en(e){if(!(e instanceof HTMLInputElement))return;$e(e);let t=e.getAttribute("aria-controls"),n=t?document.getElementById(t):void 0;if(n instanceof HTMLElement)n.scrollTop=0}var tn=[60,75,90,100,120,144,165,240];function nn(e){if(e.length<9)return;let t=e.slice(6),n=[];for(let a=1;a<t.length;a+=1){let u=t[a]-t[a-1];if(u>=3.666666666666667&&u<=33.333333333333336)n.push(u)}if(n.length<3)return;let r=ie(n,0.5),o=n.map((a)=>Math.abs(a-r)),s=ie(o,0.5)/r>0.06?ie(n,0.25):r,c=qe(1000/s,30,240);return rn(c)}function rn(e){let t=tn.reduce((n,r)=>Math.abs(r-e)<Math.abs(n-e)?r:n);return Math.abs(t-e)/t<=0.08?t:Math.round(qe(e,30,240))}function on(e){let t=e.sampleFrames??48,n,r,o=[],i,s,c=(f)=>{if(n=void 0,!e.isEligible())return;if(o.push(f),o.length>=t){let b=nn(o);if(o=[],b!==void 0)a(b);return}n=e.requestFrame(c)},a=(f)=>{if(i!==void 0&&(Math.abs(i-f)<1||Math.abs(i-f)/i<0.02))return;if(s=f,r!==void 0)e.clearTimer(r);r=e.setTimer(()=>{if(r=void 0,!e.isEligible()||s===void 0)return;i=s,e.send(s),s=void 0},250)};return{restart:()=>{if(n!==void 0)e.cancelFrame(n);if(n=void 0,o=[],e.isEligible())n=e.requestFrame(c)},stop:()=>{if(n!==void 0)e.cancelFrame(n);if(r!==void 0)e.clearTimer(r);n=void 0,r=void 0,o=[],s=void 0}}}function Ue(){let e=on({requestFrame:(t)=>requestAnimationFrame(t),cancelFrame:(t)=>cancelAnimationFrame(t),isEligible:()=>document.visibilityState==="visible"&&document.hasFocus(),setTimer:(t,n)=>setTimeout(t,n),clearTimer:(t)=>clearTimeout(t),send:(t)=>{document.body.dispatchEvent(new CustomEvent("pi-ui-display-refresh",{detail:{hz:t}}))}});e.restart(),document.addEventListener("visibilitychange",e.restart),window.addEventListener("focus",e.restart),window.addEventListener("pagehide",e.stop,{once:!0})}function ie(e,t){let n=[...e].sort((r,o)=>r-o);return n[Math.min(n.length-1,Math.floor((n.length-1)*t))]}function qe(e,t,n){return Math.min(n,Math.max(t,e))}function Ne(e){let t=se(e);return t!==void 0&&/\.html?$/i.test(t)}function se(e){try{let t=new URL(e);if(t.protocol!=="file:")return;let n=decodeURIComponent(t.pathname);if(t.hostname&&t.hostname.toLowerCase()!=="localhost")return`//${t.hostname}${n}`;if(/^\/[A-Za-z]:(?:\/|$)/.test(n))return n.slice(1);return n}catch{return}}function ze(){document.addEventListener("click",(e)=>{if(e.button!==0)return;let t=e.target instanceof Element?e.target.closest("a[href]"):null;if(!(t instanceof HTMLAnchorElement))return;let n=t.getAttribute("data-pi-file-link")??"",r=_e(n)?n:t.href;if(!_e(r))return;if(e.preventDefault(),Ne(r)){let o=document.body.dataset.filesOpenEndpoint;if(o)window.open(`${o}?uri=${encodeURIComponent(r)}`,"_blank","noopener,noreferrer")}else sn(r)},{capture:!0})}function _e(e){try{return new URL(e).protocol==="file:"}catch{return!1}}async function sn(e){let t=document.body.dataset.filesOpenEndpoint;if(!t)return;try{let n=await fetch(t,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({uri:e})});if(!n.ok)throw Error(await an(n));let{path:r,workspacePath:o}=await n.json(),{openLinkedWorkspaceFile:i}=await import("./chunks/workspace-review-8q1fkv5z.js");await i(r,o)}catch(n){alert(n instanceof Error?n.message:"Could not open the file.")}}async function an(e){try{let t=await e.json();return t.error||t.message||"Could not open the file."}catch{return"Could not open the file."}}var we={};Ce(we,{canSubmit:()=>ge,composePrompt:()=>yt,convertAvifToJpeg:()=>Et,enterDrag:()=>Tn,extractTransferredFilePaths:()=>mt,fileWithDetectedMimeType:()=>gt,formatFileReferences:()=>bt,hasAttachments:()=>ft,hasFiles:()=>vn,insert:()=>dt,isAvifImageFile:()=>Ee,isHeicImageFile:()=>be,jpegFileName:()=>ht,leaveDrag:()=>xn,pick:()=>Mn,resetDrag:()=>An,submit:()=>Sn});var ae={archive:{paths:["M13.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v11.5","M14 2v5a1 1 0 0 0 1 1h5M8 12v-1m0 7v-2m0-9V6"],circle:{cx:8,cy:20,r:2}},audio:{paths:["M17.5 22h.5a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v3","M14 2v4a2 2 0 0 0 2 2h4M2 19a2 2 0 1 1 4 0v1a2 2 0 1 1-4 0v-4a6 6 0 0 1 12 0v4a2 2 0 1 1-4 0v-1a2 2 0 1 1 4 0"]},code:{paths:["M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4","M14 2v4a2 2 0 0 0 2 2h4M5 12l-3 3l3 3m4 0l3-3l-3-3"]},file:{paths:["M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z","M14 2v5a1 1 0 0 0 1 1h5"]},pdf:{paths:["M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4","M14 2v4a2 2 0 0 0 2 2h4M2 13v-1h6v1m-3-1v6m-1 0h2"]},text:{paths:["M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z","M14 2v5a1 1 0 0 0 1 1h5M10 9H8m8 4H8m8 4H8"]},video:{paths:["M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z","M14 2v5a1 1 0 0 0 1 1h5m-4.967 5.44a.647.647 0 0 1 0 1.12l-4.065 2.352a.645.645 0 0 1-.968-.56v-4.704a.645.645 0 0 1 .967-.56z"]}};function Ke(e){return(e.includes(".")?e.split(".").at(-1):"").slice(0,4).toLowerCase()}function We(e,t){let n=e.split(".").at(-1)?.toLowerCase()??"";if(t==="application/pdf"||n==="pdf")return"pdf";if(t?.startsWith("audio/")||["aac","flac","m4a","mp3","ogg","wav"].includes(n))return"audio";if(t?.startsWith("video/")||["avi","m4v","mkv","mov","mp4","webm"].includes(n))return"video";if(t?.includes("zip")||["7z","bz2","gz","rar","tar","xz","zip"].includes(n))return"archive";if(["c","cpp","css","go","h","html","java","js","json","jsx","py","rs","sh","sql","toml","ts","tsx","xml","yaml","yml"].includes(n)||t==="application/json"||t?.includes("javascript")||t?.includes("xml"))return"code";if(t?.startsWith("text/")||["csv","log","md","rst","txt"].includes(n))return"text";return"file"}function m(){let e=document.getElementById("prompt-input");return e instanceof HTMLTextAreaElement?e:void 0}function le(){return m()?.value??""}function x(e){let t=m();if(!t)return;t.value=e,t.dispatchEvent(new Event("input",{bubbles:!0}))}function P(){let e=m();if(!e)return;e.focus({preventScroll:!0}),e.selectionStart=e.value.length,e.selectionEnd=e.value.length}function je(e){let t=m();if(!t)return;let n=t.selectionStart??t.value.length,r=t.selectionEnd??n;t.value=`${t.value.slice(0,n)}${e}${t.value.slice(r)}`;let o=n+e.length;t.selectionStart=o,t.selectionEnd=o,t.dispatchEvent(new Event("input",{bubbles:!0}))}function Ye(){let e=m();if(!e)return;let t=e.selectionStart??e.value.length,n=e.selectionEnd??t;if(t!==n)e.value=`${e.value.slice(0,t)}${e.value.slice(n)}`,e.selectionStart=t,e.selectionEnd=t;else if(t>0)e.value=`${e.value.slice(0,t-1)}${e.value.slice(t)}`,e.selectionStart=t-1,e.selectionEnd=t-1;e.dispatchEvent(new Event("input",{bubbles:!0}))}var Ve,ce;function Ge(){let e=document.getElementById("prompt-footer");if(!(e instanceof HTMLElement))return;Je(e),e.removeAttribute("data-prompt-initial"),ce??=new ResizeObserver(cn),ce.disconnect(),ce.observe(e)}function cn(){cancelAnimationFrame(Ve),Ve=requestAnimationFrame(()=>{let e=document.getElementById("prompt-footer");if(e instanceof HTMLElement)Je(e)})}function Je(e){if(matchMedia("(max-width: 639px)").matches){e.setAttribute("data-toolbar-compact",""),e.setAttribute("data-context-compact","");return}if(e.removeAttribute("data-toolbar-compact"),e.removeAttribute("data-context-compact"),e.setAttribute("data-measuring",""),e.scrollWidth>e.clientWidth){if(e.setAttribute("data-toolbar-compact",""),e.scrollWidth>e.clientWidth)e.setAttribute("data-context-compact","")}e.removeAttribute("data-measuring")}function Ze(){document.addEventListener("pointerdown",(e)=>{let t=e.target;if(!(t instanceof Element))return;let n=t.closest("[data-tooltip]");if(!(n instanceof HTMLElement))return;n.setAttribute("data-tooltip-suppressed",""),n.addEventListener("pointerleave",()=>n.removeAttribute("data-tooltip-suppressed"),{once:!0})})}var F,B=!1,de,et;function ln(e,t){let n=e.slice(0,t),r=/(?:^|[\s"'=])(@(?:"[^"]*|[^\s"'=]*))$/.exec(n)?.[1];if(!r)return;return{start:t-r.length,end:t,query:r.slice(1)}}function un(e,t,n){let r=n.endsWith("/")||n.endsWith('/"'),o=r?"":" ",i=e.slice(t.end),s=t.query.startsWith('"')&&n.endsWith('"')&&i.startsWith('"')?i.slice(1):i,c=`${e.slice(0,t.start)}${n}${o}${s}`,a=r&&n.endsWith('"')?1:0;return{text:c,cursor:t.start+n.length+o.length-a}}function C(){return nt("prompt-file-popover")}function V(){return C()||fe()}function tt(e){et=e.fuzzyFilter,document.addEventListener("input",Xe),document.addEventListener("keyup",Xe),document.addEventListener("click",dn),document.addEventListener("keydown",fn),ot(le())}function Xe(e){if(!(e.target instanceof HTMLTextAreaElement)||e.target.id!=="prompt-input")return;if(B&&e.type==="keyup")return;if(e.type==="input")B=!1;if(j(e.target),ot(e.target.value),e.target.value.startsWith("/"))rt("slash-picker-list","[data-slash-row]")}function j(e){if(B)return;let t=ln(e.value,e.selectionStart??e.value.length);if(!t){me();return}F=t,clearTimeout(de),de=setTimeout(()=>{if(F!==t)return;e.dispatchEvent(new CustomEvent("pi-ui-file-query",{bubbles:!0,detail:{query:t.query}}))},50)}function dn(e){let t=e.target;if(!(t instanceof Element))return;let n=t.closest('[data-picker-kind="slash"]'),r=t.closest('[data-picker-kind="file"]');if(t.closest("[data-file-trigger]"))e.preventDefault(),pn();else if(t.closest("[data-send-trigger]"))A(!0);else if(n instanceof HTMLElement)e.preventDefault();else if(r instanceof HTMLElement)e.preventDefault(),mn(r.dataset.pickerValue??"");else if(t instanceof HTMLTextAreaElement&&t.id==="prompt-input")j(t)}function fn(e){if(e.isComposing)return;if(e.ctrlKey||e.metaKey||e.altKey)return;if(e.code==="Escape"){let n=document.activeElement?.closest?.("[data-picker-kind]");if(V())e.preventDefault();if(A(!0),le()==="/")x("");if(n)m()?.focus({preventScroll:!0});return}if(document.activeElement?.closest?.("[data-file-row]")){if(e.code==="Backspace"){e.preventDefault(),P(),Ye();return}if(e.key.length===1){e.preventDefault(),P(),je(e.key);return}}let t=document.activeElement;if(t?.id==="prompt-input"){if((e.code==="ArrowDown"||e.code==="ArrowUp")&&fe()){e.preventDefault(),ue("[data-slash-row]",e.code==="ArrowDown"?1:-1);return}if((e.code==="ArrowDown"||e.code==="ArrowUp")&&C()){e.preventDefault(),ue("[data-file-row]",e.code==="ArrowDown"?1:-1);return}if(e.code==="Enter"&&!e.shiftKey&&C()){e.preventDefault(),Qe("[data-file-row]")?.querySelector("button")?.click();return}if(e.code==="Enter"&&!e.shiftKey&&fe()){e.preventDefault(),Qe("[data-slash-row]")?.querySelector("button")?.click();return}}for(let n of["[data-slash-row]","[data-file-row]"]){if(!t?.closest?.(n))continue;if(e.code==="ArrowDown"||e.code==="ArrowUp")e.preventDefault(),ue(n,e.code==="ArrowDown"?1:-1);else if(e.code==="Enter")e.preventDefault(),t.click();return}}function mn(e){let t=m();if(!t||!F)return;let n=un(t.value,F,e);if(t.value=n.text,t.selectionStart=n.cursor,t.selectionEnd=n.cursor,t.dispatchEvent(new Event("input",{bubbles:!0})),t.focus(),e.endsWith("/")||e.endsWith('/"'))j(t);else me()}function pn(){let e=m();if(!e)return;B=!1;let t=e.selectionStart??e.value.length,r=`${t>0&&!/\s/.test(e.value[t-1]??"")?" ":""}@`;e.value=`${e.value.slice(0,t)}${r}${e.value.slice(e.selectionEnd??t)}`;let o=t+r.length;e.selectionStart=o,e.selectionEnd=o,e.dispatchEvent(new Event("input",{bubbles:!0})),e.focus(),j(e)}function A(e=!1){me(e),m()?.dispatchEvent(new CustomEvent("pi-ui-picker-close",{bubbles:!0}))}function me(e=!1){if(clearTimeout(de),e)B=!0;F=void 0,m()?.dispatchEvent(new CustomEvent("pi-ui-file-close",{bubbles:!0}))}function fe(){return nt("prompt-slash-popover")}function nt(e){let t=document.getElementById(e);return t instanceof HTMLElement&&t.style.display!=="none"}function pe(e){return[...document.querySelectorAll(e)].filter((t)=>t instanceof HTMLElement&&getComputedStyle(t).display!=="none")}function Qe(e){let t=pe(e);return t.find((n)=>n.getAttribute("aria-selected")==="true")??t[0]}function hn(e){let t=pe(e);for(let[n,r]of t.entries())r.setAttribute("aria-selected",n===0?"true":"false")}function rt(e,t){let n=document.getElementById(e);if(n instanceof HTMLElement)n.scrollTop=0;hn(t)}function ot(e){if(!e.startsWith("/")||e.includes(" "))return;let t=document.getElementById("slash-picker-list");if(!(t instanceof HTMLElement))return;let n=[...t.querySelectorAll("[data-slash-row]")].sort((i,s)=>Number(i.dataset.slashOrder)-Number(s.dataset.slashOrder)),r=et(n,e.slice(1),(i)=>i.dataset.slashName??""),o=new Set(r);t.append(...r,...n.filter((i)=>!o.has(i)))}function it(){rt("file-picker-list","[data-file-row]")}function gn(e,t,n){if(e<=0)return-1;if(t===-1)return 0;return Math.max(0,Math.min(e-1,t-n))}function ue(e,t){let n=pe(e);if(n.length===0)return;let r=document.activeElement?.closest?.(e),o=n.findIndex((s)=>s===r);if(o===-1)o=n.findIndex((s)=>s.getAttribute("aria-selected")==="true");let i=gn(n.length,o,t);for(let s of n)s.setAttribute("aria-selected","false");n[i]?.setAttribute("aria-selected","true"),n[i]?.querySelector("button")?.focus()}var En=["text/uri-list","x-special/gnome-copied-files","text/plain"],st=10,bn=20971520,yn=52428800,wn=0.85,D=0,he=!1,g=[];function vn(e){if(!e)return!1;if(e.files?.length)return!0;return[...e.types].some((t)=>t==="Files"||t==="text/uri-list")}function Mn(){h("");let e=document.createElement("input");e.type="file",e.multiple=!0,e.addEventListener("change",()=>{if(e.files?.length)dt(e.files)},{once:!0}),e.click()}function Tn(){return D+=1,!0}function xn(){return D=Math.max(0,D-1),D>0}function An(){D=0}async function dt(e){if(!e)return;h("");let t=pt(e),n=t.some((a)=>Ee(a)||be(a)),r=mt(e);if(r.length>0&&!n){let a=Hn(r);if(a){h(a);return}Pn(r);return}if(t.length===0)return;let o=at(t);if(o){h(o);return}let i;try{i=await Ln(t)}catch(a){console.error(a),h(a?.message||"Could not prepare the selected images.");return}let s=at(i);if(s){h(s);return}let c=await kn(i);for(let a=0;a<c.length;a+=1)wt({path:c[a].path,file:gt(i[a],c[a].mimeType)})}function ft(){return g.length>0}function ge(e){return!he&&(e.trim()!==""||ft())}async function Sn(e,t,n){if(!ge(t))return!1;let r=[...g],o=yt(t,r.map(({path:s})=>s)),i=new FormData;if(i.set("prompt",o),n)i.set("streamingBehavior",n);for(let{file:s}of r)if(s?.type.startsWith("image/"))i.append("image",s,s.name||"pasted-image");he=!0;try{let s=await fetch(e,{method:"POST",body:i});if(await s.text(),!s.ok)throw Error(`Prompt was not accepted (${s.status}).`);return Bn(r),h(""),!0}catch(s){return Fn(t),h(s?.message||"Could not send the prompt."),!1}finally{he=!1,document.getElementById("prompt-box")?.dispatchEvent(new CustomEvent("pi-ui-prompt-submit-finished",{bubbles:!0})),ye()}}function mt(e){let t="getData"in e?En.flatMap((n)=>e.getData(n).split(/\r?\n/)):[];for(let n of pt(e))t.push(n.path??"",n.webkitRelativePath??"");return[...new Set(t.map(In).filter(Boolean))]}function pt(e){if(e.files)return[...e.files];return Array.from(e)}function Ee(e){return e.type?.toLowerCase()==="image/avif"||/\.avif$/i.test(e.name??"")}function be(e){return/^(?:image\/)?hei[cf]$/i.test(e.type??"")||/\.hei[cf]$/i.test(e.name??"")}function ht(e){return/\.avif$/i.test(e)?e.replace(/\.avif$/i,".jpg"):`${e||"image"}.jpg`}function gt(e,t){if(t===void 0||e.type===t)return e;return new File([e],e.name,{type:t??"",lastModified:e.lastModified})}async function Ln(e){let t=[];for(let n of e){if(be(n))throw Error("HEIC and HEIF images are not supported. Convert them to JPEG or PNG first.");t.push(Ee(n)?await Et(n):n)}return t}async function Et(e){let t;try{t=await createImageBitmap(e);let n=document.createElement("canvas");n.width=t.width,n.height=t.height;let r=n.getContext("2d");if(!r)throw Error("Canvas image conversion is unavailable.");r.fillStyle="white",r.fillRect(0,0,n.width,n.height),r.drawImage(t,0,0,n.width,n.height);let o=await new Promise((i,s)=>{n.toBlob((c)=>c?i(c):s(Error("JPEG encoding failed.")),"image/jpeg",wn)});return new File([o],ht(e.name),{type:"image/jpeg",lastModified:e.lastModified})}catch(n){throw Error(`Could not convert ${e.name||"the AVIF image"} to JPEG.`,{cause:n})}finally{t?.close()}}function Hn(e){if(e.some((t)=>/\.hei[cf]$/i.test(t)))return"HEIC and HEIF images are not supported. Convert them to JPEG or PNG first.";if(e.some((t)=>/\.avif$/i.test(t)))return"AVIF images must be dropped, pasted, or selected with the browser file picker so they can be converted."}function In(e){let t=e.trim();if(!t||t.startsWith("#")||t==="copy"||t==="cut")return;let n=se(t);if(n)return n;if(t.startsWith("/")||/^[A-Za-z]:[\\/]/.test(t))return t;return}function at(e){if(e.length>st)return`Attach at most ${st} files at a time.`;if(e.some((n)=>n.size>bn))return"Dropped or pasted files must be 20 MiB or smaller; use the Files button for larger files.";if(e.reduce((n,r)=>n+r.size,0)>yn)return"Dropped or pasted files must total 50 MiB or less."}async function kn(e){let t=new FormData;for(let n of e)t.append("file",n,n.name||"pasted-file");try{let n=document.body.dataset.filesImportEndpoint,r=await fetch(n,{method:"POST",body:t}),o=await r.json().catch(()=>({}));if(!r.ok)return h(ut(o.message)?o.message:"Could not transfer the selected files."),[];return h(""),Array.isArray(o.imports)?o.imports:[]}catch{return h("Could not transfer the selected files."),[]}}function h(e){let t=m();if(!t)return;let n=document.getElementById("file-transfer-error");if(!(n instanceof HTMLParagraphElement))n=document.createElement("p"),n.id="file-transfer-error",n.className="file-transfer-error",n.setAttribute("role","alert"),n.setAttribute("aria-live","polite"),t.before(n);n.textContent=e,n.hidden=!e}function bt(e){return`${e.map((t)=>`@${t}`).join(`
|
|
2
2
|
`)}
|
|
3
|
-
`}function bt(e,t){let n=yt(t);return e.trim()?`${n}${e}`:n.trimEnd()}function Pn(e){for(let t of e)wt({path:t})}function wt({path:e,file:t}){if(!e||g.some((n)=>n.path===e))return;g.push({path:e,file:t,previewUrl:t?.type.startsWith("image/")?URL.createObjectURL(t):void 0}),be(),m()?.focus(),A(!0)}function Fn(e){let t=m();if(!t||t.value!==""||!e)return;t.value=e,t.dispatchEvent(new Event("input",{bubbles:!0}))}function Bn(e){for(let t of e){let n=g.indexOf(t);if(n<0)continue;if(g.splice(n,1),t.previewUrl)URL.revokeObjectURL(t.previewUrl)}}function ct(e){let t=g.findIndex((o)=>o.path===e);if(t<0)return;let[n]=g.splice(t,1);if(n.previewUrl)URL.revokeObjectURL(n.previewUrl);be()}function be(){let e=document.getElementById("prompt-attachments");if(!(e instanceof HTMLElement))return;e.replaceChildren(...g.map(Cn)),e.hidden=g.length===0;let t=document.querySelector("[data-send-trigger]");if(t instanceof HTMLButtonElement)t.disabled=!ge(m()?.value??"")}function Cn(e){let t=e.file?.name||Dn(e.path);if(e.previewUrl){let u=document.createElement("button");u.type="button",u.className="prompt-attachment prompt-attachment-image",u.setAttribute("aria-label",`Remove ${t}`),u.addEventListener("click",()=>ct(e.path));let d=document.createElement("span");d.className="prompt-attachment-preview";let f=document.createElement("img");return f.className="prompt-attachment-image-content",f.style.overflowClipMargin="unset",f.src=e.previewUrl,f.alt=t,d.append(f),u.append(d,lt()),u}let n=document.createElement("button");n.type="button",n.className="prompt-attachment prompt-attachment-file",n.setAttribute("aria-label",`Remove ${t}`),n.addEventListener("click",()=>ct(e.path));let o=Ke(t),r=We(t,e.file?.type),i=document.createElement("span");if(i.className="prompt-attachment-file-icon",i.dataset.fileKind=r,i.append(Rn(r)),o){let u=document.createElement("span");u.className="prompt-attachment-extension",u.textContent=o,i.append(u)}n.append(i);let s=document.createElement("span");s.className="prompt-attachment-details";let c=document.createElement("span");c.className="prompt-attachment-name",c.textContent=t,s.append(c);let a=document.createElement("span");return a.className="prompt-attachment-meta",a.textContent=e.file?On(e.file.size):"local file",s.append(a),n.append(s,lt()),n}function lt(){let e=document.createElement("span");return e.className="prompt-attachment-remove",e.textContent="×",e.setAttribute("aria-hidden","true"),e}function Dn(e){return e.split(/[\\/]/).filter(Boolean).at(-1)||e}function Rn(e){let n=ae[e]??ae.file,o=document.createElementNS("http://www.w3.org/2000/svg","svg");o.setAttribute("class","size-5"),o.setAttribute("viewBox","0 0 24 24"),o.setAttribute("fill","none"),o.setAttribute("stroke","currentColor"),o.setAttribute("stroke-linecap","round"),o.setAttribute("stroke-linejoin","round"),o.setAttribute("stroke-width","2"),o.setAttribute("aria-hidden","true");for(let r of n.paths){let i=document.createElementNS("http://www.w3.org/2000/svg","path");i.setAttribute("d",r),o.append(i)}if(n.circle){let r=document.createElementNS("http://www.w3.org/2000/svg","circle");for(let[i,s]of Object.entries(n.circle))r.setAttribute(i,String(s));o.append(r)}return o}function On(e){if(e<1024)return`${e} B`;if(e<1048576)return`${(e/1024).toFixed(1)} KiB`;return`${(e/1048576).toFixed(1)} MiB`}var l={middleScrolling:!1,pinnedToBottom:!0,pointerScrolling:!1,rearmOnBottom:!1,scrollTop:0},Z=new Set,v,O=!1,Y,G,R,S;function vt(){document.addEventListener("scroll",(t)=>{let n=document.getElementById("messages");if(!(n instanceof HTMLElement)||t.target!==n)return;if((l.middleScrolling||l.pointerScrolling)&&n.scrollTop<l.scrollTop)E();let o=n.scrollHeight-n.scrollTop-n.clientHeight;if(_n(l.pinnedToBottom,l.scrollTop,n.scrollTop,o,l.middleScrolling||l.rearmOnBottom||l.pointerScrolling))l.pinnedToBottom=!0;if(O&&v)v.userScrollDelta+=n.scrollTop-v.lastScrollTop,v.lastScrollTop=n.scrollTop;l.scrollTop=n.scrollTop,l.rearmOnBottom=!1,H()},!0);let e=(t)=>{if(t.button===1)l.middleScrolling=!0,E();else if(t.button===0&&J(t.target)){l.middleScrolling=!1,l.pointerScrolling=!0,S={x:t.clientX,y:t.clientY};let n=document.getElementById("messages");if(n instanceof HTMLElement)l.scrollTop=n.scrollTop}};document.addEventListener("pointerdown",e,{capture:!0,passive:!0}),document.addEventListener("pointermove",(t)=>{if(l.pointerScrolling&&S&&Nn(S.x,S.y,t.clientX,t.clientY))S=void 0,E()},{capture:!0,passive:!0});for(let t of["pointerup","pointercancel"])document.addEventListener(t,()=>{l.pointerScrolling=!1,S=void 0},{capture:!0,passive:!0});for(let t of["mousedown","auxclick"])document.addEventListener(t,(n)=>{if(n.button===1)l.middleScrolling=!0,E()},{capture:!0,passive:!0});document.addEventListener("wheel",(t)=>{if(!J(t.target))return;if(l.middleScrolling=!1,t.deltaY<0)E();else if(t.deltaY>0)l.rearmOnBottom=!0},{capture:!0,passive:!0}),document.addEventListener("touchmove",(t)=>{if(J(t.target))E()},{capture:!0,passive:!0}),document.addEventListener("keydown",(t)=>{if(zn(t)&&J(t.target))E()},!0),ve(),L()}function Mt(){if(O)return!1;let e=document.getElementById("messages");if(!(e instanceof HTMLElement))return!1;let t=e.getBoundingClientRect(),n=qn(e,t);return v={lastScrollTop:e.scrollTop,message:n,offset:n?n.getBoundingClientRect().top-t.top:void 0,pinnedToBottom:l.pinnedToBottom,scrollHeight:e.scrollHeight,scrollTop:e.scrollTop,userScrollDelta:0},O=!0,e.style.overflowAnchor="none",H(),!0}function Tt(){let e=v;v=void 0,O=!1;let t=document.getElementById("messages");if(!(t instanceof HTMLElement))return;if(!e){t.style.removeProperty("overflow-anchor");return}if(e.pinnedToBottom&&l.pinnedToBottom){t.style.removeProperty("overflow-anchor"),L();return}let n=e.message;if(n instanceof HTMLElement&&t.contains(n)&&e.offset!==void 0){let o=n.getBoundingClientRect().top-t.getBoundingClientRect().top,r=e.offset-e.userScrollDelta;t.scrollTop=$n(t.scrollTop,o,r)}else t.scrollTop=e.scrollTop+e.userScrollDelta+t.scrollHeight-e.scrollHeight;t.style.removeProperty("overflow-anchor"),l.scrollTop=t.scrollTop,H()}function xt(){if(!l.pinnedToBottom)return;let e=document.getElementById("messages"),t=document.getElementById("messages-trim");if(!(e instanceof HTMLElement)||!(t instanceof HTMLButtonElement))return;let n=[...document.querySelectorAll("#message-list > [data-message-id]")],o=n.length-100,r=n[o-1];if(!r||!Un(l.pinnedToBottom,o,r.getBoundingClientRect().bottom,e.getBoundingClientRect().top))return;t.click()}function $n(e,t,n){return e+t-n}function Un(e,t,n,o){return e&&t>0&&n<=o}function qn(e,t){for(let n of[8,32,64,128])for(let o of[0.25,0.5,0.75]){let r=document.elementFromPoint(t.left+t.width*o,t.top+n)?.closest("[data-message-id]");if(r instanceof HTMLElement&&e.contains(r))return r}return[...e.querySelectorAll("[data-message-id]")].find((n)=>n.getBoundingClientRect().bottom>t.top)}function Nn(e,t,n,o){return Math.hypot(n-e,o-t)>=8}function _n(e,t,n,o,r){return!e&&r&&n>t&&o<=8}function L(e="auto"){At(),v=void 0,O=!1,l.middleScrolling=!1,l.pinnedToBottom=!0,l.pointerScrolling=!1,l.rearmOnBottom=!1;let t=()=>{let n=document.getElementById("messages");if(!(n instanceof HTMLElement)||!l.pinnedToBottom)return;n.style.removeProperty("overflow-anchor"),n.scrollTo({top:n.scrollHeight,behavior:e}),H()};if(t(),e==="auto")for(let n of[16,80,180]){let o=setTimeout(()=>{Z.delete(o),t()},n);Z.add(o)}}function E(){At(),l.pinnedToBottom=!1,l.rearmOnBottom=!1;let e=document.getElementById("messages");if(e instanceof HTMLElement)l.scrollTop=e.scrollTop;H()}function At(){for(let e of Z)clearTimeout(e);Z.clear()}function J(e){let t=document.getElementById("messages");return t instanceof HTMLElement&&e instanceof Node&&t.contains(e)}function zn(e){return e.key==="ArrowUp"||e.key==="PageUp"||e.key==="Home"||e.key===" "&&e.shiftKey}function ve(){let e=document.querySelector("#messages > .messages-stack"),t=document.getElementById("prompt-box");if(!(e instanceof HTMLElement)||!(t instanceof HTMLElement))return;if(e===Y&&t===G)return;if(R??=new ResizeObserver(()=>{Kn();let n=document.getElementById("messages");if(n instanceof HTMLElement&&l.pinnedToBottom)n.scrollTop=n.scrollHeight;H()}),Y)R.unobserve(Y);if(G)R.unobserve(G);Y=e,G=t,R.observe(e),R.observe(t)}function Kn(){let e=document.getElementById("prompt-box"),t=document.getElementById("messages-prompt-spacer");if(!(e instanceof HTMLElement)||!(t instanceof HTMLElement))return;let n=`${e.offsetHeight+48}px`;if(t.style.height!==n)t.style.height=n}function H(){let e=document.getElementById("messages"),t=document.getElementById("messages-latest");if(!(e instanceof HTMLElement)||!(t instanceof HTMLButtonElement))return;let n=e.scrollHeight-e.scrollTop-e.clientHeight,o=!l.pinnedToBottom&&n>=48;t.hidden=!o,t.inert=!o,t.tabIndex=o?0:-1}function St(e){if(!(e instanceof HTMLElement))return;let t=e.querySelector('template[shadowrootmode="open"]');if(!(t instanceof HTMLTemplateElement))return;(e.shadowRoot??e.attachShadow({mode:"open"})).append(t.content.cloneNode(!0)),t.remove()}function Lt(e,t){if(!(e instanceof HTMLInputElement))return;let n=e.closest(".command");if(!(n instanceof HTMLElement))return;let r=[...n.querySelectorAll('[role="menuitem"]')].filter((a)=>a instanceof HTMLElement).toSorted((a,u)=>Number(a.dataset.modelSearchOrder)-Number(u.dataset.modelSearchOrder)),i=k(r,t,(a)=>Wn(a.dataset.filter??"",a.dataset.keywords??"")),s=new Set(i),c=t.trim()?[...i,...r.filter((a)=>!s.has(a))]:r;for(let a of c)a.classList.remove("active"),a.hidden=!s.has(a),a.parentElement?.append(a);w(n)}function Wn(e,t){return`${t.replace(/([\p{Ll}\d])(\p{Lu})/gu,"$1 $2")} ${e} ${t}`}class Ht{#t=[];#e=-1;#n="";#o="";sync(e){let t=JSON.stringify(e);if(t===this.#o)return;this.#o=t,this.#t=e,this.reset()}get browsing(){return this.#e>=0}reset(){this.#e=-1,this.#n=""}navigate(e,t){if(t==="up"){if(!this.browsing){if(e!==""||this.#t.length===0)return;this.#n=e,this.#e=0}else if(this.#e<this.#t.length-1)this.#e+=1;return{value:this.#t[this.#e],cursor:"start"}}if(!this.browsing)return;if(this.#e>0)return this.#e-=1,{value:this.#t[this.#e],cursor:"end"};let n=this.#n;return this.reset(),{value:n,cursor:"end"}}}function It(){let e=new Ht,t=!1;function n(r,i){if(r.isComposing||r.defaultPrevented||r.altKey||r.ctrlKey||r.metaKey||r.shiftKey||r.code!=="ArrowUp"&&r.code!=="ArrowDown")return!1;let s=m();if(r.target!==s||window.piUi.pickers.isOpen())return!1;if(e.sync(Array.isArray(i)?i:[]),e.browsing&&!Vn(s,r.code))return!1;let c=e.navigate(s.value,r.code==="ArrowUp"?"up":"down");if(!c)return!1;r.preventDefault(),t=!0,x(c.value),t=!1;let a=c.cursor==="start"?0:s.value.length;return s.selectionStart=a,s.selectionEnd=a,!0}function o(){if(!t)e.reset()}return{handleInput:o,handleKeydown:n}}function Vn(e,t){if(e.selectionStart!==e.selectionEnd)return!1;if(t==="ArrowUp"){let o=e.value.indexOf(`
|
|
4
|
-
`);return
|
|
5
|
-
`)+1;return e.selectionEnd>=n}var M;function kt(){if(!document.getElementById("session-transition")?.hasAttribute("data-session-performance-enabled"))return;M={startedAt:performance.now()}}function Pt(e,t){if(!M)return;let n=performance.now();if(e==="loading"){M.generation=Number(t),M.loadingAt??=n;return}if(e!=="idle"||M.generation!==Number(t)||M.loadingAt===void 0)return;let
|
|
3
|
+
`}function yt(e,t){let n=bt(t);return e.trim()?`${n}${e}`:n.trimEnd()}function Pn(e){for(let t of e)wt({path:t})}function wt({path:e,file:t}){if(!e||g.some((n)=>n.path===e))return;g.push({path:e,file:t,previewUrl:t?.type.startsWith("image/")?URL.createObjectURL(t):void 0}),ye(),m()?.focus(),A(!0)}function Fn(e){let t=m();if(!t||t.value!==""||!e)return;t.value=e,t.dispatchEvent(new Event("input",{bubbles:!0}))}function Bn(e){for(let t of e){let n=g.indexOf(t);if(n<0)continue;if(g.splice(n,1),t.previewUrl)URL.revokeObjectURL(t.previewUrl)}}function ct(e){let t=g.findIndex((r)=>r.path===e);if(t<0)return;let[n]=g.splice(t,1);if(n.previewUrl)URL.revokeObjectURL(n.previewUrl);ye()}function ye(){let e=document.getElementById("prompt-attachments");if(!(e instanceof HTMLElement))return;e.replaceChildren(...g.map(Cn)),e.hidden=g.length===0;let t=document.querySelector("[data-send-trigger]");if(t instanceof HTMLButtonElement)t.disabled=!ge(m()?.value??"")}function Cn(e){let t=e.file?.name||Dn(e.path);if(e.previewUrl){let u=document.createElement("button");u.type="button",u.className="prompt-attachment prompt-attachment-image",u.setAttribute("aria-label",`Remove ${t}`),u.addEventListener("click",()=>ct(e.path));let d=document.createElement("span");d.className="prompt-attachment-preview";let f=document.createElement("img");return f.className="prompt-attachment-image-content",f.style.overflowClipMargin="unset",f.src=e.previewUrl,f.alt=t,d.append(f),u.append(d,lt()),u}let n=document.createElement("button");n.type="button",n.className="prompt-attachment prompt-attachment-file",n.setAttribute("aria-label",`Remove ${t}`),n.addEventListener("click",()=>ct(e.path));let r=Ke(t),o=We(t,e.file?.type),i=document.createElement("span");if(i.className="prompt-attachment-file-icon",i.dataset.fileKind=o,i.append(Rn(o)),r){let u=document.createElement("span");u.className="prompt-attachment-extension",u.textContent=r,i.append(u)}n.append(i);let s=document.createElement("span");s.className="prompt-attachment-details";let c=document.createElement("span");c.className="prompt-attachment-name",c.textContent=t,s.append(c);let a=document.createElement("span");return a.className="prompt-attachment-meta",a.textContent=e.file?On(e.file.size):"local file",s.append(a),n.append(s,lt()),n}function lt(){let e=document.createElement("span");return e.className="prompt-attachment-remove",e.textContent="×",e.setAttribute("aria-hidden","true"),e}function Dn(e){return e.split(/[\\/]/).filter(Boolean).at(-1)||e}function Rn(e){let n=ae[e]??ae.file,r=document.createElementNS("http://www.w3.org/2000/svg","svg");r.setAttribute("class","size-5"),r.setAttribute("viewBox","0 0 24 24"),r.setAttribute("fill","none"),r.setAttribute("stroke","currentColor"),r.setAttribute("stroke-linecap","round"),r.setAttribute("stroke-linejoin","round"),r.setAttribute("stroke-width","2"),r.setAttribute("aria-hidden","true");for(let o of n.paths){let i=document.createElementNS("http://www.w3.org/2000/svg","path");i.setAttribute("d",o),r.append(i)}if(n.circle){let o=document.createElementNS("http://www.w3.org/2000/svg","circle");for(let[i,s]of Object.entries(n.circle))o.setAttribute(i,String(s));r.append(o)}return r}function On(e){if(e<1024)return`${e} B`;if(e<1048576)return`${(e/1024).toFixed(1)} KiB`;return`${(e/1048576).toFixed(1)} MiB`}var l={middleScrolling:!1,pinnedToBottom:!0,pointerScrolling:!1,rearmOnBottom:!1,scrollTop:0},Z=new Set,v,O=!1,Y,G,R,S;function vt(){document.addEventListener("scroll",(t)=>{let n=document.getElementById("messages");if(!(n instanceof HTMLElement)||t.target!==n)return;if((l.middleScrolling||l.pointerScrolling)&&n.scrollTop<l.scrollTop)E();let r=n.scrollHeight-n.scrollTop-n.clientHeight;if(_n(l.pinnedToBottom,l.scrollTop,n.scrollTop,r,l.middleScrolling||l.rearmOnBottom||l.pointerScrolling))l.pinnedToBottom=!0;if(O&&v)v.userScrollDelta+=n.scrollTop-v.lastScrollTop,v.lastScrollTop=n.scrollTop;l.scrollTop=n.scrollTop,l.rearmOnBottom=!1,H()},!0);let e=(t)=>{if(t.button===1)l.middleScrolling=!0,E();else if(t.button===0&&J(t.target)){l.middleScrolling=!1,l.pointerScrolling=!0,S={x:t.clientX,y:t.clientY};let n=document.getElementById("messages");if(n instanceof HTMLElement)l.scrollTop=n.scrollTop}};document.addEventListener("pointerdown",e,{capture:!0,passive:!0}),document.addEventListener("pointermove",(t)=>{if(l.pointerScrolling&&S&&Nn(S.x,S.y,t.clientX,t.clientY))S=void 0,E()},{capture:!0,passive:!0});for(let t of["pointerup","pointercancel"])document.addEventListener(t,()=>{l.pointerScrolling=!1,S=void 0},{capture:!0,passive:!0});for(let t of["mousedown","auxclick"])document.addEventListener(t,(n)=>{if(n.button===1)l.middleScrolling=!0,E()},{capture:!0,passive:!0});document.addEventListener("wheel",(t)=>{if(!J(t.target))return;if(l.middleScrolling=!1,t.deltaY<0)E();else if(t.deltaY>0)l.rearmOnBottom=!0},{capture:!0,passive:!0}),document.addEventListener("touchmove",(t)=>{if(J(t.target))E()},{capture:!0,passive:!0}),document.addEventListener("keydown",(t)=>{if(zn(t)&&J(t.target))E()},!0),ve(),L()}function Mt(){if(O)return!1;let e=document.getElementById("messages");if(!(e instanceof HTMLElement))return!1;let t=e.getBoundingClientRect(),n=qn(e,t);return v={lastScrollTop:e.scrollTop,message:n,offset:n?n.getBoundingClientRect().top-t.top:void 0,pinnedToBottom:l.pinnedToBottom,scrollHeight:e.scrollHeight,scrollTop:e.scrollTop,userScrollDelta:0},O=!0,e.style.overflowAnchor="none",H(),!0}function Tt(){let e=v;v=void 0,O=!1;let t=document.getElementById("messages");if(!(t instanceof HTMLElement))return;if(!e){t.style.removeProperty("overflow-anchor");return}if(e.pinnedToBottom&&l.pinnedToBottom){t.style.removeProperty("overflow-anchor"),L();return}let n=e.message;if(n instanceof HTMLElement&&t.contains(n)&&e.offset!==void 0){let r=n.getBoundingClientRect().top-t.getBoundingClientRect().top,o=e.offset-e.userScrollDelta;t.scrollTop=$n(t.scrollTop,r,o)}else t.scrollTop=e.scrollTop+e.userScrollDelta+t.scrollHeight-e.scrollHeight;t.style.removeProperty("overflow-anchor"),l.scrollTop=t.scrollTop,H()}function xt(){if(!l.pinnedToBottom)return;let e=document.getElementById("messages"),t=document.getElementById("messages-trim");if(!(e instanceof HTMLElement)||!(t instanceof HTMLButtonElement))return;let n=[...document.querySelectorAll("#message-list > [data-message-id]")],r=n.length-100,o=n[r-1];if(!o||!Un(l.pinnedToBottom,r,o.getBoundingClientRect().bottom,e.getBoundingClientRect().top))return;t.click()}function $n(e,t,n){return e+t-n}function Un(e,t,n,r){return e&&t>0&&n<=r}function qn(e,t){for(let n of[8,32,64,128])for(let r of[0.25,0.5,0.75]){let o=document.elementFromPoint(t.left+t.width*r,t.top+n)?.closest("[data-message-id]");if(o instanceof HTMLElement&&e.contains(o))return o}return[...e.querySelectorAll("[data-message-id]")].find((n)=>n.getBoundingClientRect().bottom>t.top)}function Nn(e,t,n,r){return Math.hypot(n-e,r-t)>=8}function _n(e,t,n,r,o){return!e&&o&&n>t&&r<=8}function L(e="auto"){At(),v=void 0,O=!1,l.middleScrolling=!1,l.pinnedToBottom=!0,l.pointerScrolling=!1,l.rearmOnBottom=!1;let t=()=>{let n=document.getElementById("messages");if(!(n instanceof HTMLElement)||!l.pinnedToBottom)return;n.style.removeProperty("overflow-anchor"),n.scrollTo({top:n.scrollHeight,behavior:e}),H()};if(t(),e==="auto")for(let n of[16,80,180]){let r=setTimeout(()=>{Z.delete(r),t()},n);Z.add(r)}}function E(){At(),l.pinnedToBottom=!1,l.rearmOnBottom=!1;let e=document.getElementById("messages");if(e instanceof HTMLElement)l.scrollTop=e.scrollTop;H()}function At(){for(let e of Z)clearTimeout(e);Z.clear()}function J(e){let t=document.getElementById("messages");return t instanceof HTMLElement&&e instanceof Node&&t.contains(e)}function zn(e){return e.key==="ArrowUp"||e.key==="PageUp"||e.key==="Home"||e.key===" "&&e.shiftKey}function ve(){let e=document.querySelector("#messages > .messages-stack"),t=document.getElementById("prompt-box");if(!(e instanceof HTMLElement)||!(t instanceof HTMLElement))return;if(e===Y&&t===G)return;if(R??=new ResizeObserver(()=>{Kn();let n=document.getElementById("messages");if(n instanceof HTMLElement&&l.pinnedToBottom)n.scrollTop=n.scrollHeight;H()}),Y)R.unobserve(Y);if(G)R.unobserve(G);Y=e,G=t,R.observe(e),R.observe(t)}function Kn(){let e=document.getElementById("prompt-box"),t=document.getElementById("messages-prompt-spacer");if(!(e instanceof HTMLElement)||!(t instanceof HTMLElement))return;let n=`${e.offsetHeight+48}px`;if(t.style.height!==n)t.style.height=n}function H(){let e=document.getElementById("messages"),t=document.getElementById("messages-latest");if(!(e instanceof HTMLElement)||!(t instanceof HTMLButtonElement))return;let n=e.scrollHeight-e.scrollTop-e.clientHeight,r=!l.pinnedToBottom&&n>=48;t.hidden=!r,t.inert=!r,t.tabIndex=r?0:-1}function St(e){if(!(e instanceof HTMLElement))return;let t=e.querySelector('template[shadowrootmode="open"]');if(!(t instanceof HTMLTemplateElement))return;(e.shadowRoot??e.attachShadow({mode:"open"})).append(t.content.cloneNode(!0)),t.remove()}function Lt(e,t){if(!(e instanceof HTMLInputElement))return;let n=e.closest(".command");if(!(n instanceof HTMLElement))return;let o=[...n.querySelectorAll('[role="menuitem"]')].filter((a)=>a instanceof HTMLElement).toSorted((a,u)=>Number(a.dataset.modelSearchOrder)-Number(u.dataset.modelSearchOrder)),i=k(o,t,(a)=>Wn(a.dataset.filter??"",a.dataset.keywords??"")),s=new Set(i),c=t.trim()?[...i,...o.filter((a)=>!s.has(a))]:o;for(let a of c)a.classList.remove("active"),a.hidden=!s.has(a),a.parentElement?.append(a);w(n)}function Wn(e,t){return`${t.replace(/([\p{Ll}\d])(\p{Lu})/gu,"$1 $2")} ${e} ${t}`}class Ht{#t=[];#e=-1;#n="";#r="";sync(e){let t=JSON.stringify(e);if(t===this.#r)return;this.#r=t,this.#t=e,this.reset()}get browsing(){return this.#e>=0}reset(){this.#e=-1,this.#n=""}navigate(e,t){if(t==="up"){if(!this.browsing){if(e!==""||this.#t.length===0)return;this.#n=e,this.#e=0}else if(this.#e<this.#t.length-1)this.#e+=1;return{value:this.#t[this.#e],cursor:"start"}}if(!this.browsing)return;if(this.#e>0)return this.#e-=1,{value:this.#t[this.#e],cursor:"end"};let n=this.#n;return this.reset(),{value:n,cursor:"end"}}}function It(){let e=new Ht,t=!1;function n(o,i){if(o.isComposing||o.defaultPrevented||o.altKey||o.ctrlKey||o.metaKey||o.shiftKey||o.code!=="ArrowUp"&&o.code!=="ArrowDown")return!1;let s=m();if(o.target!==s||window.piUi.pickers.isOpen())return!1;if(e.sync(Array.isArray(i)?i:[]),e.browsing&&!Vn(s,o.code))return!1;let c=e.navigate(s.value,o.code==="ArrowUp"?"up":"down");if(!c)return!1;o.preventDefault(),t=!0,x(c.value),t=!1;let a=c.cursor==="start"?0:s.value.length;return s.selectionStart=a,s.selectionEnd=a,!0}function r(){if(!t)e.reset()}return{handleInput:r,handleKeydown:n}}function Vn(e,t){if(e.selectionStart!==e.selectionEnd)return!1;if(t==="ArrowUp"){let r=e.value.indexOf(`
|
|
4
|
+
`);return r<0||e.selectionStart<=r}let n=e.value.lastIndexOf(`
|
|
5
|
+
`)+1;return e.selectionEnd>=n}var M;function kt(){if(!document.getElementById("session-transition")?.hasAttribute("data-session-performance-enabled"))return;M={startedAt:performance.now()}}function Pt(e,t){if(!M)return;let n=performance.now();if(e==="loading"){M.generation=Number(t),M.loadingAt??=n;return}if(e!=="idle"||M.generation!==Number(t)||M.loadingAt===void 0)return;let r=M;M=void 0,Ft(r,Number(t),n)}function Ft(e,t,n){requestAnimationFrame(()=>{let r=document.getElementById("session-transition"),o=document.getElementById("messages");if(r&&o&&getComputedStyle(r).display==="none"&&getComputedStyle(o).display!=="none"){requestAnimationFrame(()=>{let i={generation:t,clickToLoadingMs:e.loadingAt-e.startedAt,clickToMorphMs:n-e.startedAt,clickToPaintMs:performance.now()-e.startedAt};document.body.dispatchEvent(new CustomEvent("pi-ui-session-performance",{detail:i}))});return}if(performance.now()-e.startedAt<60000)Ft(e,t,n)})}var te=100,Ct=120,jn=17,Yn=33.333333333333336,p,T,X=0,I=0,ne=!1,Q=0,ee=0;function Dt(){let e=!1;document.addEventListener("keydown",(t)=>{if(t.defaultPrevented||t.ctrlKey||t.metaKey||t.altKey||Gn(t)){e=!1;return}if(document.querySelector("dialog[open]"))return;if(e){if(e=!1,t.code==="KeyG"&&!t.shiftKey){t.preventDefault(),Bt("top");return}}if(t.code==="KeyG"&&!t.shiftKey)t.preventDefault(),e=!0;else if(t.code==="KeyG"&&t.shiftKey)t.preventDefault(),Bt("bottom");else if(t.code==="KeyJ"||t.code==="KeyK")t.preventDefault(),Zn(t.code==="KeyJ"?te:-te)}),document.addEventListener("keyup",(t)=>{if(t.code==="KeyJ"||t.code==="KeyK")ne=!1})}function Gn(e){return Jn(e.composedPath()[0])}function Jn(e){return e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement||e instanceof HTMLElement&&e.isContentEditable}function Zn(e){if(p&&T!==void 0)cancelAnimationFrame(p),p=void 0,T=void 0;let t=Math.sign(e);if(!p||I!==t)I=t,Q=0,ee=0,X=0;ne=!0,Xn(),E()}function Bt(e){let t=document.getElementById("messages");if(!(t instanceof HTMLElement))return;if(I=0,ne=!1,T=e==="top"?0:t.scrollHeight-t.clientHeight,Qn(e),e==="top")E()}function Xn(){if(p)return;let e=(t)=>{let n=document.getElementById("messages");if(!(n instanceof HTMLElement)||!I){p=void 0;return}let r=X?Math.min(Math.max(t-X,0),Yn):jn;X=t;let o=n.scrollHeight-n.clientHeight,i=I*(te*r/Ct)+ee,s=n.scrollTop,c=Math.max(0,Math.min(s+i,o));n.scrollTop=c;let a=c-s;if(ee=i-a,Q+=Math.abs(a),c===0||c===o||!ne&&Q>=te){I=0,Q=0,ee=0,p=void 0;return}p=requestAnimationFrame(e)};p=requestAnimationFrame(e)}function Qn(e){if(p)cancelAnimationFrame(p);let t=document.getElementById("messages");if(!(t instanceof HTMLElement)||T===void 0)return;let n=t.scrollTop,r=Math.max(0,Math.min(T,t.scrollHeight-t.clientHeight)),o=Math.max(Ct,20*Math.log(Math.max(Math.abs(r-n),1))),i=0,s=0,c=(a)=>{let u=document.getElementById("messages");if(!(u instanceof HTMLElement)||T===void 0){p=void 0;return}let d=s?a-s:16.7;s=a,i+=d;let f=Math.min(1,i/o);if(u.scrollTop=n+(r-n)*f,f>=1){if(T=void 0,p=void 0,e==="bottom")L();return}p=requestAnimationFrame(c)};p=requestAnimationFrame(c)}function er(e={}){let t=e.activeElement??(()=>document.activeElement),n=e.body??(()=>document.body),r=e.requestFrame??((a)=>requestAnimationFrame(a)),o,i=0;function s(){i+=1;let a=t();if(!Rt(a)||a===n()){o=void 0;return}o=a,a.blur()}function c(){let a=o;if(o=void 0,!Rt(a)||!a.isConnected)return;let u=i;r(()=>{if(i!==u||!a.isConnected)return;let d=t();if(d===a)return;if(d&&d!==n())return;a.focus({preventScroll:!0})})}return{restore:c,suspend:s}}function Rt(e){return Boolean(e&&e.blur instanceof Function&&e.focus instanceof Function)}var Ot=er();var tr=It();window.piUi={controls:{refresh:w,toggleSidebar:Ae},codeTheme:{loadPreviews(){}},dateTime:{hydrate:Be},fonts:{apply(){}},dialogs:oe,fileTransfer:we,messageScroll:{bindResize:ve,captureAnchor:Mt,hydratePierreDiff:St,restoreAnchor:Tt,scrollBottom:L,trimOldMessages:xt},modelSearch:{filter:Lt},pickers:{close:A,fuzzyMatch:q,isFileOpen:C,isOpen:V,resetFile:it},prompt:{bindLayout:Ge,clear:()=>x("")},promptHistory:tr,sessionPerformance:{observe:Pt,start:kt},windowFocus:Ot,workspaceReview:{applyOpen:()=>{}},shouldAbortOnEscape(e){return!e.defaultPrevented&&!nr()}};function nr(){if(V()||document.querySelector("dialog[open]"))return!0;return Boolean(document.querySelector("[popover]:popover-open"))}ze();window.addEventListener("DOMContentLoaded",async()=>{xe(),P(),Ze(),tt({fuzzyFilter:k}),vt(),Me(),Dt(),Ue(),rr(),await Promise.all([import("./chunks/fonts-9524b54h.js"),import("./chunks/code-theme-qja4zbsx.js"),import("./chunks/workspace-review-8q1fkv5z.js")])});function rr(){let e=document.getElementById("debug-fps");if(!(e instanceof HTMLElement))return;let t=0,n=performance.now(),r=(o)=>{t+=1;let i=o-n;if(i>=500)e.textContent=String(Math.round(t*1000/i)),t=0,n=o;requestAnimationFrame(r)};requestAnimationFrame(r)}
|
package/static/theme.js
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
window.addEventListener("pi-ui-theme-mode-changed", () => {
|
|
2
|
+
const dark = document.documentElement.classList.contains("dark");
|
|
3
|
+
// Match --surface-canvas in tokens.css (light: --gray-1, dark: black).
|
|
4
|
+
document.querySelector('meta[name="theme-color"]').content = dark
|
|
5
|
+
? "black"
|
|
6
|
+
: "oklch(95% 0 none)";
|
|
7
|
+
});
|
|
8
|
+
|
|
1
9
|
try {
|
|
2
10
|
const media = matchMedia("(prefers-color-scheme: dark)");
|
|
3
11
|
const apply = () => {
|