@marimo-team/frontend 0.23.4-dev1 → 0.23.4-dev7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{cell-editor-C6vZfKyj.js → cell-editor-87LAVsOR.js} +3 -3
- package/dist/assets/{edit-page-C-LIP5uT.js → edit-page-yF7xM43H.js} +3 -3
- package/dist/assets/{index-BFivsT-R.js → index-z8Uh9i5Z.js} +2 -2
- package/dist/assets/loro_wasm_bg-Bu4Ofw1K.js +2 -0
- package/dist/assets/{loro_wasm_bg-DXuHQ2hl.js → loro_wasm_bg-DWJCS9pK.js} +1 -1
- package/dist/assets/{scratchpad-panel-DpqODhZ3.js → scratchpad-panel-B8kRNql6.js} +1 -1
- package/dist/index.html +1 -1
- package/package.json +4 -4
- package/dist/assets/loro_wasm_bg-Ds40eH8K.js +0 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./loro_wasm_bg-
|
|
2
|
-
var nd=Object.defineProperty;var Ia=re=>{throw TypeError(re)};var rd=(re,z,pe)=>z in re?nd(re,z,{enumerable:!0,configurable:!0,writable:!0,value:pe}):re[z]=pe;var p=(re,z,pe)=>rd(re,typeof z!="symbol"?z+"":z,pe),od=(re,z,pe)=>z.has(re)||Ia("Cannot "+pe);var Fa=(re,z,pe)=>(od(re,z,"read from private field"),pe?pe.call(re):z.get(re)),La=(re,z,pe)=>z.has(re)?Ia("Cannot add the same private member more than once"):z instanceof WeakSet?z.add(re):z.set(re,pe);import{s as Oa}from"./chunk-LvLJmgfZ.js";import{d as Da,f as gr,i as ee,l as vn,n as le,p as Dt,s as En,u as se}from"./useEvent-D91BmmQi.js";import{t as ad}from"./react-Bj1aDYRI.js";import{An as id,At as sd,B as _a,Bn as Ua,Cn as hr,Ct as br,Di as Nn,Dt as _t,E as kn,Et as ld,F as cd,G as Ba,Gn as ud,H as Pa,In as dd,Kr as fd,Kt as md,Ln as pd,Qr as ja,Qt as Ma,Rn as gd,Rr as hd,Rt as bd,St as yd,Tt as wd,U as Ra,V as vd,Vn as Ed,Wr as yr,Xt as wr,Zr as Nd,Zt as Ga,a as Ja,an as Cn,b as tt,bn as kd,cn as Cd,d as Wa,en as Sd,fr as xd,gn as Ad,h as vr,hi as Va,it as Td,mt as Id,nn as Fd,ot as Ld,pn as Od,pt as Er,qr as Dd,qt as Nr,tn as _d,u as $a,vi as Ud,vn as Bd,wt as Sn,yn as Pd,zt as Ha,__tla as jd}from"./cells-A-ljPpuj.js";import{P as qa,R as Md,k as Rd,w as Gd}from"./zod-H_cgTO0M.js";import{t as Ge}from"./compiler-runtime-B3qBwwSJ.js";import{C as Jd,f as Wd,m as Vd,p as $d,t as Hd,v as qd,w as zd}from"./ai-model-dropdown-By4Ohb0R.js";import{_ as $e,c as za,h as kr,t as Kd,v as Yd}from"./useEventListener-BR0C1MaI.js";import{t as Ut}from"./invariant-BUdrueMv.js";import{S as Cr,h as Ka,m as Xd,o as Qd,p as Ya,s as Xa}from"./utils-DIGrmLDO.js";import{S as Zd,d as ef,h as ht,o as tf,r as Qa,x as Bt,y as Za}from"./config-ChCHm539.js";import{n as nf,t as rf}from"./switch-DlgpDZMk.js";import{n as of}from"./globals-xVhZei_S.js";import{t as af}from"./ErrorBoundary-DzYV_VeY.js";import{t as st}from"./cn-DCUzRj2J.js";import{t as sf}from"./jsx-runtime-BqBOg78p.js";import{l as lf,r as cf,t as uf}from"./popover-UExmgBsf.js";import{I as df,__tla as ff}from"./JsonOutput-BVAcY5xS.js";import{t as Sr}from"./label-DTR8T0AE.js";import{r as mf}from"./download-Iyng0xCz.js";import{t as xn}from"./tooltip-Gcwqb_SK.js";import{r as xr,t as lt}from"./button-D9nb17Rw.js";import{Bt as bt,Ct as ei,Dt as pf,E as gf,Ft as Ar,H as ti,Ht as Pt,I as hf,J as l,Jt as fe,Kt as bf,Lt as An,Mt as yf,P as wf,St as Je,V as ni,Vt as Tr,Wt as ct,Yt as He,Zt as jt,_ as vf,a as Ef,at as P,bt as Nf,ct as Xe,en as Tn,ft as kf,it as Cf,lt as In,m as Sf,pt as xf,rt as H,st as Af,vt as Tf,w as If,wt as Ff,yt as Lf,zt as Of}from"./dist-BrR4M-k3.js";import{E as Df,P as _f,S as Uf,a as Bf,b as Pf,c as jf,n as Ir,r as Mf,w as Rf,x as Gf}from"./dist-CHcznzB-.js";import{o as ri}from"./arrays-DYDL-3-i.js";import{n as Jf}from"./once-DRroIaBz.js";import{t as Fr}from"./createReducer-1ePoj7v6.js";import{a as Wf,c as Vf,f as Fn,h as $f,i as Hf,l as Mt,n as oi,o as qf,t as zf}from"./dist-HlsDto3K.js";import{t as Kf}from"./main-B0OX4z33.js";import{r as Ln,t as Yf}from"./requests-DIwGYs0l.js";import{t as Xf}from"./createLucideIcon-D5guW7EU.js";import{r as ai,t as Qf,__tla as Zf}from"./layout-DDh3d8oW.js";import{t as em}from"./x-C-6liIBr.js";import{t as tm}from"./circle-check-C17zXg7L.js";import{A as nm,E as ii,O as rm,T as om,a as si,d as am,n as im,o as sm,r as li,s as lm,x as cm}from"./add-cell-with-ai-DjfY8mF1.js";import{r as um,t as dm}from"./file-icons-DTNZv05h.js";import{n as fm}from"./spinner-Bhir8k53.js";import{t as ci}from"./save-Clg5dMoP.js";import{Y as mm,Z as ui}from"./input-DyPS_GiK.js";import{t as pm}from"./sparkles-CZ5WmLPA.js";import{t as gm}from"./preload-helper-D2MJg03u.js";import{t as yt}from"./use-toast-BDYuj3zG.js";import{n as Qe}from"./paths-CXng2XQv.js";import{t as hm}from"./session-nmTRerwF.js";import{r as bm}from"./useTheme-DEcgJENn.js";import{n as ym}from"./copy-B5qyZn5s.js";import{k as wm}from"./usePress-CtfZXGno.js";import{a as vm}from"./useRunCells-DU1tawR-.js";import{c as di,i as fi,n as mi,r as Em}from"./dialog-EekxpBBM.js";import{t as pi}from"./useHotkey-Bx4wWQCL.js";import{n as gi}from"./ImperativeModal-BBqcKmmk.js";import{r as Nm}from"./errors-CZb6hI2x.js";import{t as Y}from"./extends-Co37_JfG.js";import{t as Rt}from"./objectWithoutPropertiesLoose-smPWkHxB.js";import{t as km}from"./kbd-CGShmG7L.js";import{a as Lr}from"./useInstallPackage-afgh7PwB.js";import{i as Cm,n as hi}from"./state-Bsz477is.js";import{a as Sm,o as xm}from"./cell-link-d38hFEon.js";import{n as Am}from"./useAsyncData-dS4Ne6pU.js";import{a as Tm,o as bi,r as Im,s as yi,t as Fm}from"./command-CzIDL1VI.js";import{r as wi}from"./html-to-image-tbPEMBJg.js";import{a as Lm}from"./focus-Baz7rlo0.js";import{a as vi}from"./renderShortcut-CkNNAheg.js";import{n as Om,t as Dm}from"./icons-BRopQwI3.js";import{n as wt}from"./esm-G1JMtvxe.js";import{t as Ei}from"./dist-DCqWIRLq.js";import{n as Or,t as Ni}from"./useDeleteCell-C2Stbb6Q.js";import{t as _m}from"./useSplitCell-BZPuhd8z.js";import{co as Um,do as Dr,fo as Bm,ft as Pm,go as vt,ho as ki,lo as _r,mo as Ci,oo as jm,po as Mm,so as Si,uo as xi,__tla as Rm}from"./loro_wasm_bg-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./loro_wasm_bg-DWJCS9pK.js","./loro_wasm_bg-Bu4Ofw1K.js","./chunk-LvLJmgfZ.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
var nd=Object.defineProperty;var Ia=re=>{throw TypeError(re)};var rd=(re,z,pe)=>z in re?nd(re,z,{enumerable:!0,configurable:!0,writable:!0,value:pe}):re[z]=pe;var p=(re,z,pe)=>rd(re,typeof z!="symbol"?z+"":z,pe),od=(re,z,pe)=>z.has(re)||Ia("Cannot "+pe);var Fa=(re,z,pe)=>(od(re,z,"read from private field"),pe?pe.call(re):z.get(re)),La=(re,z,pe)=>z.has(re)?Ia("Cannot add the same private member more than once"):z instanceof WeakSet?z.add(re):z.set(re,pe);import{s as Oa}from"./chunk-LvLJmgfZ.js";import{d as Da,f as gr,i as ee,l as vn,n as le,p as Dt,s as En,u as se}from"./useEvent-D91BmmQi.js";import{t as ad}from"./react-Bj1aDYRI.js";import{An as id,At as sd,B as _a,Bn as Ua,Cn as hr,Ct as br,Di as Nn,Dt as _t,E as kn,Et as ld,F as cd,G as Ba,Gn as ud,H as Pa,In as dd,Kr as fd,Kt as md,Ln as pd,Qr as ja,Qt as Ma,Rn as gd,Rr as hd,Rt as bd,St as yd,Tt as wd,U as Ra,V as vd,Vn as Ed,Wr as yr,Xt as wr,Zr as Nd,Zt as Ga,a as Ja,an as Cn,b as tt,bn as kd,cn as Cd,d as Wa,en as Sd,fr as xd,gn as Ad,h as vr,hi as Va,it as Td,mt as Id,nn as Fd,ot as Ld,pn as Od,pt as Er,qr as Dd,qt as Nr,tn as _d,u as $a,vi as Ud,vn as Bd,wt as Sn,yn as Pd,zt as Ha,__tla as jd}from"./cells-A-ljPpuj.js";import{P as qa,R as Md,k as Rd,w as Gd}from"./zod-H_cgTO0M.js";import{t as Ge}from"./compiler-runtime-B3qBwwSJ.js";import{C as Jd,f as Wd,m as Vd,p as $d,t as Hd,v as qd,w as zd}from"./ai-model-dropdown-By4Ohb0R.js";import{_ as $e,c as za,h as kr,t as Kd,v as Yd}from"./useEventListener-BR0C1MaI.js";import{t as Ut}from"./invariant-BUdrueMv.js";import{S as Cr,h as Ka,m as Xd,o as Qd,p as Ya,s as Xa}from"./utils-DIGrmLDO.js";import{S as Zd,d as ef,h as ht,o as tf,r as Qa,x as Bt,y as Za}from"./config-ChCHm539.js";import{n as nf,t as rf}from"./switch-DlgpDZMk.js";import{n as of}from"./globals-xVhZei_S.js";import{t as af}from"./ErrorBoundary-DzYV_VeY.js";import{t as st}from"./cn-DCUzRj2J.js";import{t as sf}from"./jsx-runtime-BqBOg78p.js";import{l as lf,r as cf,t as uf}from"./popover-UExmgBsf.js";import{I as df,__tla as ff}from"./JsonOutput-BVAcY5xS.js";import{t as Sr}from"./label-DTR8T0AE.js";import{r as mf}from"./download-Iyng0xCz.js";import{t as xn}from"./tooltip-Gcwqb_SK.js";import{r as xr,t as lt}from"./button-D9nb17Rw.js";import{Bt as bt,Ct as ei,Dt as pf,E as gf,Ft as Ar,H as ti,Ht as Pt,I as hf,J as l,Jt as fe,Kt as bf,Lt as An,Mt as yf,P as wf,St as Je,V as ni,Vt as Tr,Wt as ct,Yt as He,Zt as jt,_ as vf,a as Ef,at as P,bt as Nf,ct as Xe,en as Tn,ft as kf,it as Cf,lt as In,m as Sf,pt as xf,rt as H,st as Af,vt as Tf,w as If,wt as Ff,yt as Lf,zt as Of}from"./dist-BrR4M-k3.js";import{E as Df,P as _f,S as Uf,a as Bf,b as Pf,c as jf,n as Ir,r as Mf,w as Rf,x as Gf}from"./dist-CHcznzB-.js";import{o as ri}from"./arrays-DYDL-3-i.js";import{n as Jf}from"./once-DRroIaBz.js";import{t as Fr}from"./createReducer-1ePoj7v6.js";import{a as Wf,c as Vf,f as Fn,h as $f,i as Hf,l as Mt,n as oi,o as qf,t as zf}from"./dist-HlsDto3K.js";import{t as Kf}from"./main-B0OX4z33.js";import{r as Ln,t as Yf}from"./requests-DIwGYs0l.js";import{t as Xf}from"./createLucideIcon-D5guW7EU.js";import{r as ai,t as Qf,__tla as Zf}from"./layout-DDh3d8oW.js";import{t as em}from"./x-C-6liIBr.js";import{t as tm}from"./circle-check-C17zXg7L.js";import{A as nm,E as ii,O as rm,T as om,a as si,d as am,n as im,o as sm,r as li,s as lm,x as cm}from"./add-cell-with-ai-DjfY8mF1.js";import{r as um,t as dm}from"./file-icons-DTNZv05h.js";import{n as fm}from"./spinner-Bhir8k53.js";import{t as ci}from"./save-Clg5dMoP.js";import{Y as mm,Z as ui}from"./input-DyPS_GiK.js";import{t as pm}from"./sparkles-CZ5WmLPA.js";import{t as gm}from"./preload-helper-D2MJg03u.js";import{t as yt}from"./use-toast-BDYuj3zG.js";import{n as Qe}from"./paths-CXng2XQv.js";import{t as hm}from"./session-nmTRerwF.js";import{r as bm}from"./useTheme-DEcgJENn.js";import{n as ym}from"./copy-B5qyZn5s.js";import{k as wm}from"./usePress-CtfZXGno.js";import{a as vm}from"./useRunCells-DU1tawR-.js";import{c as di,i as fi,n as mi,r as Em}from"./dialog-EekxpBBM.js";import{t as pi}from"./useHotkey-Bx4wWQCL.js";import{n as gi}from"./ImperativeModal-BBqcKmmk.js";import{r as Nm}from"./errors-CZb6hI2x.js";import{t as Y}from"./extends-Co37_JfG.js";import{t as Rt}from"./objectWithoutPropertiesLoose-smPWkHxB.js";import{t as km}from"./kbd-CGShmG7L.js";import{a as Lr}from"./useInstallPackage-afgh7PwB.js";import{i as Cm,n as hi}from"./state-Bsz477is.js";import{a as Sm,o as xm}from"./cell-link-d38hFEon.js";import{n as Am}from"./useAsyncData-dS4Ne6pU.js";import{a as Tm,o as bi,r as Im,s as yi,t as Fm}from"./command-CzIDL1VI.js";import{r as wi}from"./html-to-image-tbPEMBJg.js";import{a as Lm}from"./focus-Baz7rlo0.js";import{a as vi}from"./renderShortcut-CkNNAheg.js";import{n as Om,t as Dm}from"./icons-BRopQwI3.js";import{n as wt}from"./esm-G1JMtvxe.js";import{t as Ei}from"./dist-DCqWIRLq.js";import{n as Or,t as Ni}from"./useDeleteCell-C2Stbb6Q.js";import{t as _m}from"./useSplitCell-BZPuhd8z.js";import{co as Um,do as Dr,fo as Bm,ft as Pm,go as vt,ho as ki,lo as _r,mo as Ci,oo as jm,po as Mm,so as Si,uo as xi,__tla as Rm}from"./loro_wasm_bg-Bu4Ofw1K.js";import{t as Gm}from"./ws-CtTwmdal.js";import{t as Ai}from"./Inputs-BdyX096j.js";import{n as Jm}from"./hooks-CNPv5U-N.js";let On,Ur,Ti,Br,ut,Pr,he,Gt,Jt,Ii,Fi,Li,Oi,Di,Dn,_i,_n,Ui,Un,Wm=Promise.all([(()=>{try{return jd}catch{}})(),(()=>{try{return ff}catch{}})(),(()=>{try{return Zf}catch{}})(),(()=>{try{return Rm}catch{}})()]).then(async()=>{var wn,Ta,ye,we,ve,Ee,Ne,ke,Ce,Se,xe,Ae,Te,Ie,Fe,Le,Oe,De,_e,Ue,Be;var re=Xf("file-pen",[["path",{d:"M12.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 2v9.34",key:"o6klzx"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10.378 12.622a1 1 0 0 1 3 3.003L8.36 20.637a2 2 0 0 1-.854.506l-2.867.837a.5.5 0 0 1-.62-.62l.836-2.869a2 2 0 0 1 .506-.853z",key:"zhnas1"}]]);const z={showInput:"Mod-l",acceptEdit:"Mod-y",rejectEdit:"Mod-u"};var pe=300;const Nt=Pt.define({combine:e=>Tn(e,{onError:console.error,inputDebounceTime:pe,keymaps:z},{onError:(t,n)=>t&&n,inputDebounceTime:(t,n)=>t&&n,keymaps:(t,n)=>t&&n})}),nt=fe.define(),rt=He.define({create(){return{show:!1,lineFrom:0,lineTo:0}},update(e,t){for(let n of t.effects)if(n.is(nt))return n.value;return e}}),kt=fe.define(),Ct=fe.define(),Mr=He.define({create(){return{shouldFocus:!1,inputValue:""}},update(e,t){let n=e;for(let r of t.effects)r.is(kt)&&(n={...n,inputValue:r.value}),r.is(Ct)&&(n={...n,shouldFocus:r.value});return n}}),Wt=fe.define(),St=He.define({create(){return null},update(e,t){for(let n of t.effects)if(n.is(Wt))return n.value;return e}}),dt=fe.define(),Rr=He.define({create(){return!1},update(e,t){for(let n of t.effects)if(n.is(dt))return n.value;return e}});var Bi=1;const Gr=e=>{let{state:t}=e,n=t.selection.main;if(n.empty)return!1;let r=t.doc,o=r.lineAt(n.from),a=r.lineAt(n.to);if(t.sliceDoc(o.from,a.to).trim().length<Bi)return!1;let i=Math.max(1,Math.min(o.number,r.lines)),s=Math.max(1,Math.min(a.number,r.lines));return e.dispatch({effects:[nt.of({show:!0,lineFrom:i,lineTo:s}),Ct.of(!0),kt.of("")],selection:bt.cursor(o.from)}),!0},Jr=e=>e.state.field(St)?(e.dispatch({effects:[Wt.of(null),nt.of({show:!1,lineFrom:0,lineTo:0}),Ct.of(!1),kt.of(""),dt.of(!1)]}),!0):!1,Wr=e=>{let t=e.state.field(St);return t?(e.dispatch({changes:{from:t.from,to:t.to,insert:t.oldCode},effects:[Wt.of(null),nt.of({show:!1,lineFrom:0,lineTo:0}),Ct.of(!1),kt.of(""),dt.of(!1)]}),!0):!1};var Bn={mac:"\u2318",windows:"\u229E Win",default:"Ctrl"};function Pi(){return navigator.platform.startsWith("Mac")?Bn.mac:navigator.platform.startsWith("Win")?Bn.windows:Bn.default}function Pn(e){return e.replace("Mod",Pi()).replace("-"," ").toUpperCase()}function ue(e,t){let n=document.createElement(e);return n.className=t,n}function ji(e,t,n=void 0){let r=()=>{};return(...o)=>(r(),new Promise((a,i)=>{let s=setTimeout(()=>a(e(...o)),t);r=()=>{clearTimeout(s),n!==void 0&&i(n)}}))}var Vt=He.define({create(){return{suggestion:null}},update(e,t){let n=t.effects.find(r=>r.is($t));return!t.docChanged&&!n&&!t.selection?e:n&&t.state.doc===n.value.doc?{suggestion:n.value.text}:{suggestion:null}}}),$t=fe.define();function Mi(e,t){let n=e.state.selection.main.head,r=[],o=H.widget({widget:new Ri(t),side:1});return r.push(o.range(n)),H.set(r)}var Ri=class extends In{constructor(t){super();p(this,"suggestion");this.suggestion=t}toDOM(){let t=document.createElement("span");return t.style.opacity="0.4",t.className="cm-inline-suggestion",t.textContent=this.suggestion,t.setAttribute("role","suggestion"),t.setAttribute("aria-label",`Suggestion: ${this.suggestion}`),t}get lineBreaks(){return this.suggestion.split(`
|
|
3
3
|
`).length-1}},Gi=class{constructor(e){p(this,"cache",new Map);p(this,"timeout");this.timeout=e}get(e){let t=this.cache.get(e);return t?Date.now()-t.timestamp>this.timeout?(this.cache.delete(e),null):t.result:null}set(e,t){this.cache.set(e,{result:t,timestamp:Date.now()})}},Ji=(e,t)=>Xe.fromClass(class{constructor(){p(this,"abortController",null);p(this,"cache");this.cache=new Gi(t.cacheTimeout??1e3)}async update(n){var i,s,u,c,d;if(!n.docChanged||((s=(i=t.events)==null?void 0:i.beforeSuggestionFetch)==null?void 0:s.call(i,n.view))===!1)return;(u=this.abortController)==null||u.abort(),this.abortController=new AbortController;let r=n.state.doc,o=r.toString(),a=this.cache.get(o);if(a){n.view.dispatch({effects:$t.of({text:a,doc:r})});return}try{let f=await e(n.state,this.abortController.signal,n.view);if(this.abortController.signal.aborted||((d=(c=t.events)==null?void 0:c.shouldShowSuggestion)==null?void 0:d.call(c,n.view,f))===!1)return;this.cache.set(o,f),n.view.dispatch({effects:$t.of({text:f,doc:r})})}catch(f){f instanceof Error&&f.name!=="AbortError"&&console.error("Suggestion fetch error:",f)}}destroy(){var n;(n=this.abortController)==null||n.abort()}}),Wi=Xe.fromClass(class{constructor(){p(this,"decorations");this.decorations=H.none}update(e){var n;let t=(n=e.state.field(Vt))==null?void 0:n.suggestion;if(!t){this.decorations=H.none;return}this.decorations=Mi(e.view,t)}},{decorations:e=>e.decorations});function Vi(e,t,n,r){return{...e.changeByRange(o=>{if(o===e.selection.main)return{changes:{from:n,to:r,insert:t},range:bt.cursor(n+t.length)};let a=r-n;return!o.empty||a&&e.sliceDoc(o.from-a,o.from)!==e.sliceDoc(n,r)?{range:o}:{changes:{from:o.from-a,to:o.from,insert:t},range:bt.cursor(o.from-a+t.length)}}),userEvent:"input.complete"}}var $i=e=>{var r,o,a;let t=(r=e.state.field(Vt))==null?void 0:r.suggestion;if(!t)return!1;let n=e.state.facet(jn);return e.dispatch({...Vi(e.state,t,e.state.selection.main.head,e.state.selection.main.head)}),(a=(o=n.events)==null?void 0:o.onSuggestionAccepted)==null||a.call(o,e,t),!0},Vr=e=>{var r,o,a;let t=(r=e.state.field(Vt))==null?void 0:r.suggestion;if(!t)return!1;let n=e.state.facet(jn);return e.dispatch({effects:$t.of({text:null,doc:e.state.doc})}),(a=(o=n.events)==null?void 0:o.onSuggestionRejected)==null||a.call(o,e,t),!0},Hi=Je.of([{key:"Tab",run:$i},{key:"Escape",run:Vr}]),jn=Pt.define({combine:e=>e.at(-1)});function $r(e){let{delay:t=500,includeKeymap:n=!0}=e,r=ji(e.fetchFn,t);return[Vt,jn.of(e),Ji(r,e),Wi,n?Hi:[]]}const qi=P.baseTheme({".cm-ai-input-container":{display:"flex",flexDirection:"column",gap:"4px",width:"min(calc(100% + 7px), 500px)",padding:"5px 5px",margin:"0 -6px",backgroundColor:"light-dark(rgb(241, 243, 245), rgb(40, 40, 40))"},".cm-ai-input":{display:"block",width:"100%",padding:"3px 8px",border:"2px solid rgb(51, 154, 240)",borderRadius:"5px",fontSize:"12px"},".cm-ai-help-info-button":{fontSize:"10px",paddingLeft:"10px",height:"18px",color:"light-dark(rgb(109, 117, 125), rgb(170, 170, 170))",display:"block",marginRight:"auto"},".cm-ai-help-info-button:hover":{color:"light-dark(rgb(89, 97, 105), rgb(190, 190, 190))"},".cm-ai-generate-button":{background:"#0E639C",border:"none",padding:"2px 6px",color:"#ffffff",cursor:"pointer",font:"inherit",borderRadius:"4px","&:hover":{backgroundColor:"#1177bb"}},".cm-line.cm-ai-selection, .cm-line.cm-ai-selection.cm-active-line":{backgroundColor:"light-dark(color-mix(in srgb, rgb(223, 227, 232) 50%, transparent), color-mix(in srgb, rgb(50, 50, 50) 50%, transparent)) !important"},".cm-line:has(.cm-new-code-line)":{backgroundColor:"light-dark(color-mix(in srgb, rgb(183, 235, 143) 50%, transparent), color-mix(in srgb, rgb(40, 100, 40) 50%, transparent)) !important"},".cm-old-code-container":{backgroundColor:"light-dark(rgb(255, 205, 205), rgb(100, 40, 40))",position:"relative",display:"flex",paddingTop:"0",width:"100%",alignItems:"center"},".cm-code-button":{position:"absolute",right:"5px",top:"50%",transform:"translateY(-50%)",background:"none",border:"none",cursor:"pointer",fontSize:"16px"},".cm-floating-buttons":{fontFamily:"sans-serif",position:"absolute",top:"-20px",left:"5px",display:"flex"},".cm-floating-button":{fontFamily:"sans-serif",padding:"2px 5px",fontSize:"10px",cursor:"pointer",fontWeight:"700"},".cm-floating-accept":{backgroundColor:"light-dark(rgb(55, 125, 34), rgb(40, 80, 25))",borderTopLeftRadius:"5px",borderBottomLeftRadius:"5px",color:"white",filter:"brightness(90%)","&:hover":{filter:"brightness(100%)"}},".cm-floating-reject":{backgroundColor:"light-dark(rgb(220, 53, 69), rgb(180, 40, 50))",color:"white",borderTopRightRadius:"5px",borderBottomRightRadius:"5px",filter:"brightness(90%)","&:hover":{filter:"brightness(100%)"}},".hotkey":{display:"inline-block",padding:"0 4px",borderRadius:"3px",backgroundColor:"rgba(255, 255, 255, 0.1)",fontSize:"90%"},".cm-ai-loading-indicator":{fontStyle:"italic",fontSize:"10px",paddingLeft:"12px",color:"light-dark(rgb(109, 117, 125), rgb(170, 170, 170))",opacity:"0",transition:"opacity 0.3s ease-in-out","&::after":{content:'""',display:"inline-block",animation:"ellipsis-pulse 1.5s steps(4, end) infinite"},"&:not(:empty)":{opacity:"1"}},".cm-ai-input:disabled":{opacity:"0.5"},"@keyframes ellipsis-pulse":{"0%":{content:"'.'"},"25%":{content:"'..'"},"50%":{content:"'...'"},"75%":{content:"''"}},".cm-ai-loading-container":{display:"flex",alignItems:"center",padding:"0 8px"},".cm-ai-cancel-button":{padding:"2px 8px",fontSize:"10px",borderRadius:"4px",color:"light-dark(rgb(109, 117, 125), rgb(170, 170, 170))",cursor:"pointer","&:hover":{background:"light-dark(rgb(223, 227, 232), rgb(50, 50, 50))"}},".hidden":{display:"none"}});function zi(e){var s,u;let t=e.state.facet(Nt),n={...z,...t.keymaps},r=e.state.facet(Ht),o=ue("div","cm-ai-tooltip").appendChild(ue("div","cm-ai-tooltip-button")),a=o.appendChild(document.createElement("span"));a.textContent=`${r.label} `;let i=a.appendChild(document.createElement("span"));return i.className="hotkey",i.textContent=Pn(n.showInput),(s=o.querySelector("span"))==null||s.addEventListener("mousedown",c=>{c.stopPropagation(),c.button===0&&c.preventDefault()}),(u=o.querySelector("span"))==null||u.addEventListener("click",c=>{c.preventDefault(),Gr(e)}),o}const Ht=Pt.define({combine(e){return Tn(e,{render:zi,hideOnBlur:!1,label:"Edit with AI"})}}),Ki=Xe.fromClass((Ta=class{constructor(e){p(this,"view");p(this,"suppress");p(this,"dom");p(this,"mousedown",()=>{this.suppress=!0});p(this,"mouseup",()=>{this.suppress=!1,this.display(this.view)});p(this,"scroll",()=>{this.display(this.view)});p(this,"windowScroll",()=>{this.display(this.view)});La(this,wn,e=>{var n;let t=e.state.selection.ranges.find(r=>!r.empty);if(t&&!this.suppress){let r=e.coordsAtPos(t.from),o=e.coordsAtPos(t.to);if(!r||!o)return;let a=e.dom.getBoundingClientRect(),i=(n=e.dom.parentElement)==null?void 0:n.getBoundingClientRect(),s=v=>v.top>=a.top&&v.top<=a.bottom&&v.left>=a.left&&v.left<=a.right,u=v=>!i||v.top>=i.top&&v.top<=i.bottom&&v.left>=i.left&&v.left<=i.right,c=s(r)||s(o),d=u(r)||u(o);if(!c||!d){this.dom.style.display="none",this.dom.setAttribute("aria-hidden","true");return}this.dom.style.display="flex",this.dom.setAttribute("aria-hidden","false");let f=this.dom.getBoundingClientRect(),g=s(r)?r:o,m=a.right-f.width,h=Math.min(g.left,m),w=g.top-f.height,y=i?i.y:-1/0;w<y&&(w=o.bottom),this.dom.style.left=`${h}px`,this.dom.style.top=`${w}px`,requestAnimationFrame(()=>{this.dom&&this.dom.setAttribute("aria-hidden","false")})}else this.dom.style.display="none",this.dom.setAttribute("aria-hidden","true")});this.view=e;let t=e.state.facet(Ht);this.suppress=!1,document.addEventListener("mousedown",this.mousedown),document.addEventListener("mouseup",this.mouseup),e.scrollDOM.addEventListener("scroll",this.scroll),window.addEventListener("scroll",this.windowScroll,!0);let n=t.render(e);e.dom.appendChild(n),this.dom=n}update(e){this.display(e.view)}docViewUpdate(e){this.display(e)}display(e){if(e.state.field(rt).show){this.dom.style.display="none";return}if(e.state.facet(Ht).hideOnBlur&&!e.hasFocus){this.dom.style.display="none",this.dom.setAttribute("aria-hidden","true");return}e.requestMeasure({read:Fa(this,wn)})}destroy(){document.removeEventListener("mousedown",this.mousedown),document.removeEventListener("mouseup",this.mouseup),this.view.scrollDOM.removeEventListener("scroll",this.scroll),window.removeEventListener("scroll",this.windowScroll,!0),this.dom.remove()}},wn=new WeakMap,Ta));var Yi=P.baseTheme({".cm-ai-tooltip-button":{userSelect:"none",fontFamily:"system-ui, -apple-system, sans-serif",position:"fixed",display:"flex",boxSizing:"border-box",padding:"2px 6px",borderRadius:"4px",fontSize:"12px",backgroundColor:"#0E639C",color:"#ffffff",border:"1px solid transparent",boxShadow:"0 2px 4px rgba(0,0,0,0.1)",zIndex:"999",transition:"opacity 0.5s","&[aria-hidden='true']":{opacity:"0"},"&[aria-hidden='false']":{opacity:"1"},"& > span":{pointerEvents:"auto",cursor:"pointer",display:"inline-block",padding:"2px"},"&:hover":{backgroundColor:"#1177bb"}}});function Xi(){return[Ki,Yi]}var Qi=class extends In{constructor(t){super();p(this,"oldCode");this.oldCode=t}toDOM(t){let n=ue("div","cm-old-code-container");n.setAttribute("role","region"),n.setAttribute("aria-label","Previous code version");let r=ue("div","cm-old-code cm-line");r.textContent=this.oldCode;let o=ue("div","cm-floating-buttons"),a=t.state.facet(Nt),i={...z,...a.keymaps},s=ue("button","cm-floating-button cm-floating-accept");s.innerHTML=`<span class="hotkey">${Pn(i.acceptEdit)}</span> Accept`,s.setAttribute("aria-label","Accept changes"),s.addEventListener("click",c=>{c.preventDefault(),c.stopPropagation(),t.focus(),Jr(t)});let u=ue("button","cm-floating-button cm-floating-reject");return u.innerHTML=`<span class="hotkey">${Pn(i.rejectEdit)}</span> Reject`,u.setAttribute("aria-label","Reject changes"),u.addEventListener("click",c=>{c.preventDefault(),c.stopPropagation(),t.focus(),Wr(t)}),o.append(s,u),n.append(r,o),n}updateDOM(t,n){return!0}},Zi=class extends In{constructor(t){super();p(this,"complete");p(this,"abortController",null);p(this,"dom",null);p(this,"input",null);p(this,"loadingContainer",null);p(this,"helpInfo",null);p(this,"inputContainer",null);p(this,"form",null);p(this,"view",null);p(this,"onKeyDown",async t=>{t.key==="Enter"&&!t.shiftKey?(t.preventDefault(),await this.handleSubmit()):t.key==="Escape"&&this.onCancel()});p(this,"onCancel",()=>{this.cleanup();let t=this.view;t&&(t.dispatch({effects:[nt.of({show:!1,lineFrom:0,lineTo:0}),dt.of(!1)]}),t.focus())});p(this,"handleSubmit",async t=>{var h;let n=this.view;if(!n)return;let r=n.state.facet(Nt);t==null||t.stopPropagation();let o=n.state.field(rt),{input:a}=this;if(!a)return;let i=a.value.trim();if(!o.show||!i)return;let s=n.state.doc.line(o.lineFrom),u=n.state.doc.line(o.lineTo),c=s.from,d=u.to,f=n.state.sliceDoc(c,d),g=n.state.sliceDoc(0,c),m=n.state.sliceDoc(d);this.abortController=new AbortController,n.dispatch({effects:dt.of(!0)}),this.toggleLoading(!0);try{let w=await this.complete({prompt:i,selection:f,codeBefore:g,codeAfter:m,editorView:n,signal:this.abortController.signal});if(!n.state.field(rt).show)return;if(!w||typeof w!="string")throw Error("Invalid completion result");n.dispatch({changes:{from:c,to:d,insert:w},effects:[nt.of({show:!1,lineFrom:0,lineTo:0}),Wt.of({from:c,to:c+w.length,oldCode:f,newCode:w}),dt.of(!1)]})}catch(w){if(w instanceof DOMException&&w.name==="AbortError")return;(h=r.onError)==null||h.call(r,w)}finally{this.cleanup(),this.toggleLoading(!1),n.focus()}});this.complete=t}toDOM(t){if(this.dom)return this.dom;this.view=t;let n=t.state.field(Mr),r=t.state.field(Rr),o=ue("div","cm-ai-input-container");this.inputContainer=o,this.dom=o;let a=ue("form","cm-ai-input-form");this.form=a,a.setAttribute("role","search"),a.setAttribute("aria-label","AI editing instructions"),a.addEventListener("submit",y=>y.preventDefault());let i=ue("input","cm-ai-input");this.input=i,a.append(i),i.placeholder="Editing instructions...",i.setAttribute("aria-label","AI editing instructions"),i.setAttribute("autocomplete","off"),i.setAttribute("spellcheck","true"),i.value=n.inputValue;let s=ue("div","cm-ai-loading-container");this.loadingContainer=s;let u=ue("div","cm-ai-loading-indicator");u.setAttribute("role","status"),u.setAttribute("aria-live","polite"),u.textContent="Generating";let c=ue("button","cm-ai-cancel-button");c.textContent="Cancel",c.setAttribute("aria-label","Cancel code generation"),c.addEventListener("click",this.onCancel),s.append(c,u);let d=ue("div","cm-ai-help-info");this.helpInfo=d;let f=d.appendChild(document.createElement("button"));f.className="cm-ai-help-info-button",f.textContent="Esc to close",f.addEventListener("click",this.onCancel);let g=ue("button","cm-ai-generate-button");g.textContent="\u23CE Generate",g.setAttribute("aria-label","Generate code"),g.addEventListener("click",this.handleSubmit),this.toggleLoading(r),n.shouldFocus&&requestAnimationFrame(()=>{i.value=n.inputValue,i.focus(),t.dispatch({effects:Ct.of(!1)})}),m(i.value),i.addEventListener("input",w),i.addEventListener("keydown",this.onKeyDown);function m(y){d.replaceChildren(y?g:f)}let h="";function w(){t.dispatch({effects:kt.of(i.value)});let y=i.value.trim();y!==h&&(h=y,m(y))}return o}toggleLoading(t){var n;this.inputContainer&&this.form&&this.loadingContainer&&this.helpInfo&&((n=this.inputContainer)==null||n.replaceChildren(this.form,t?this.loadingContainer:this.helpInfo))}updateDOM(t,n){return this.dom=t,this.input=t.querySelector(".cm-ai-input"),!0}cleanup(){var t,n,r;(t=this.abortController)==null||t.abort(),this.abortController=null,(n=this.dom)==null||n.remove(),(r=this.input)==null||r.remove(),this.dom=null,this.input=null}destroy(){this.cleanup()}};function es(e){if(!e.prompt)throw Error("prompt function is required");let t={...z,...e.keymaps};return[Nt.of(e),rt,Mr,St,Rr,Xi(),qi,Je.of([{key:t.showInput,run:Gr}]),ct.highest([Je.of([{key:t.acceptEdit,run:Jr},{key:t.rejectEdit,run:Wr}])]),ts,ns,rs,os]}const ts=P.updateListener.of(e=>{let t=e.state.field(rt);if(!t.show||!e.docChanged)return;let{lineFrom:n,lineTo:r}=t,o=!1;e.changes.iterChanges((a,i,s,u)=>{let c=e.state.doc.lineAt(a).number;if(c<n){let d=e.state.doc.lineAt(u).number-e.state.doc.lineAt(s).number;n+=d,r+=d,o=!0}else if(c<=r){let d=e.state.doc.lineAt(u).number-e.state.doc.lineAt(s).number;r+=d,o=!0}}),o&&e.view.dispatch({effects:[nt.of({show:!0,lineFrom:n,lineTo:r})]})}),ns=P.decorations.of(e=>{let t=e.state.field(St);return t?H.set([H.mark({class:"cm-new-code-line"}).range(t.from,t.to)]):H.none}),rs=P.decorations.compute([rt],e=>{let t=e.field(rt),n=e.facet(Nt),r=[];if(t.show){let o=t.lineFrom,a=t.lineTo;for(let i=o;i<=a;i++){let s=e.doc.line(i).from;r.push(H.line({class:"cm-ai-selection"}).range(s)),i===o&&r.push(H.widget({widget:new Zi(n.prompt),side:-1}).range(s))}}return H.set(r)}),os=He.define({create(e){return H.none},update(e,t){let n=t.state.field(St);return n?H.set([H.widget({widget:new Qi(n.oldCode),block:!0}).range(n.from)]):H.none},provide:e=>P.decorations.from(e)});var as=Ge(),F=Oa(ad(),1),Mn=()=>({entries:new Map}),{valueAtom:Hr,useActions:qr}=Fr(Mn,{submit:(e,t)=>{let{cellIds:n,deleteCell:r,deleteManyCells:o,store:a}=t,i=a.get(tt),s=a.get(dd),u=new Set(i.cellIds.inOrderIds.filter(f=>i.cellData[f].code.trim()==="")),c=new Map;for(let f of n){if(u.has(f)){c.set(f,{cellId:f,type:"simple"});continue}let g=i.cellRuntime[f],m=new Map;for(let w of Object.values(s)){let y=w.declaredBy.includes(f),v=w.usedBy.some(C=>!u.has(C));y&&v&&m.set(w.name,w.usedBy)}let h;g!=null&&g.runElapsedTimeMs&&g.runElapsedTimeMs>2e3&&(h=g.runElapsedTimeMs),m.size===0&&h===void 0?c.set(f,{cellId:f,type:"simple"}):c.set(f,{cellId:f,type:"expensive",executionDurationMs:h,defs:m})}let d=[...c.values()].every(f=>f.type==="simple");return c.size>0&&d?(c.size===1?r({cellId:[...c.values()][0].cellId}):o({cellIds:[...c.values()].map(f=>f.cellId)}),Mn()):{...e,entries:c}},clear:()=>Mn()});Un=function(){let e=gr(),{submit:t,clear:n}=qr(),{entries:r}=se(Hr),o=Ni(),a=Or();return(0,F.useMemo)(()=>({submit:i=>{t({cellIds:i,deleteCell:o,deleteManyCells:a,store:e})},clear:n,get idle(){return r.size===0},get shouldConfirmDelete(){return r.size>1}}),[e,t,n,r,o,a])},Ui=function(e){let t=(0,as.c)(16),n=se(Hr),r=qr(),o=Or(),a;t[0]!==e||t[1]!==n.entries?(a=n.entries.get(e),t[0]=e,t[1]=n.entries,t[2]=a):a=t[2];let i=a;if(!i){let d;return t[3]===Symbol.for("react.memo_cache_sentinel")?(d={isPending:!1},t[3]=d):d=t[3],d}if(n.entries.size!==1){let d;return t[4]===i?d=t[5]:(d={isPending:!0,shouldConfirmDelete:!1,...i},t[4]=i,t[5]=d),d}let s;t[6]!==r||t[7]!==o||t[8]!==n.entries?(s=()=>{o({cellIds:[...n.entries.values()].map(is)}),r.clear()},t[6]=r,t[7]=o,t[8]=n.entries,t[9]=s):s=t[9];let u;t[10]===r?u=t[11]:(u=()=>r.clear(),t[10]=r,t[11]=u);let c;return t[12]!==i||t[13]!==s||t[14]!==u?(c={isPending:!0,...i,shouldConfirmDelete:!0,confirm:s,cancel:u},t[12]=i,t[13]=s,t[14]=u,t[15]=c):c=t[15],c};function is(e){return e.cellId}async function ss(e){var s,u;let t=`
|
|
4
4
|
${e.codeBefore}
|
|
5
5
|
<rewrite_this>
|
|
@@ -15,7 +15,7 @@ ${r.text}`:r.text,i={absoluteStartPos:n+o,absoluteEndPos:n+o+a.length,from:o,to:
|
|
|
15
15
|
`),r=[],o=!1,a=0,i=!1,s=!1,u=0,c=null,d=/\(/g,f=/\)/g,g=new Set(["@"]);function m(y){return(y.match(d)||[]).length-(y.match(f)||[]).length}function h(y){let v=y.match(/^\s*/);return v?v[0].length:0}function w(){r.length!==0&&(r.some(y=>y.trim()!=="")&&t.push(Dc(r.join(`
|
|
16
16
|
`))),r=[])}for(let y of n){let v=y.trim();if(!(!v&&!o)){if(v.startsWith("@app.cell")){w(),o=!0,a=1,c=null;continue}if(a>0){v.startsWith("def")&&v.includes("(")&&!v.includes("):")&&(i=!0,u=m(v)),a--;continue}if(i){u+=m(v),u===0&&(i=!1);continue}if(o){if(g.has(v[0])||v.startsWith("if __name__")){w(),o=v.startsWith("@");continue}if(c===null&&v&&(c=h(y)),v.startsWith("return")&&h(y)===c){v.includes("(")&&!v.endsWith(")")&&(s=!0,u=m(v));continue}if(s){u+=m(v),u===0&&(s=!1);continue}r.push(y)}}}return w(),t}function Dc(e){let t=e.split(`
|
|
17
17
|
`);if(t.length===0)return"";let n=t.filter(a=>a.trim().length>0);if(n.length===0)return"";let r=/^\s*/,o=Math.min(...n.map(a=>{var i;return((i=a.match(r))==null?void 0:i[0].length)??1/0}));return o===0?e.trim():t.map(a=>a.slice(o)).join(`
|
|
18
|
-
`).trim()}function _c(e,t,n,r){var o;return r!=="{"||t!==n||!((o=ti(e.state).resolveInner(t,-1))!=null&&o.type.name.includes("String"))?!1:(e.dispatch({changes:{from:t,to:n,insert:"{}"},selection:{anchor:t+1},userEvent:"input.type"}),!0)}function Uc(){return P.inputHandler.of(_c)}var oe=({variant:e,settings:t,styles:n})=>[P.theme({"&":{backgroundColor:t.background,color:t.foreground},".cm-content":{caretColor:t.caret},".cm-cursor, .cm-dropCursor":{borderLeftColor:t.caret},"&.cm-focused .cm-selectionBackgroundm .cm-selectionBackground, .cm-content ::selection":{backgroundColor:t.selection},".cm-activeLine":{backgroundColor:t.lineHighlight},".cm-gutters":{backgroundColor:t.gutterBackground,color:t.gutterForeground},".cm-activeLineGutter":{backgroundColor:t.lineHighlight}},{dark:e==="dark"}),ni(Ef.define(n))];oe({variant:"dark",settings:{background:"#200020",foreground:"#D0D0FF",caret:"#7070FF",selection:"#80000080",gutterBackground:"#200020",gutterForeground:"#C080C0",lineHighlight:"#80000040"},styles:[{tag:l.comment,color:"#404080"},{tag:[l.string,l.regexp],color:"#999999"},{tag:l.number,color:"#7090B0"},{tag:[l.bool,l.null],color:"#8080A0"},{tag:[l.punctuation,l.derefOperator],color:"#805080"},{tag:l.keyword,color:"#60B0FF"},{tag:l.definitionKeyword,color:"#B0FFF0"},{tag:l.moduleKeyword,color:"#60B0FF"},{tag:l.operator,color:"#A0A0FF"},{tag:[l.variableName,l.self],color:"#008080"},{tag:l.operatorKeyword,color:"#A0A0FF"},{tag:l.controlKeyword,color:"#80A0FF"},{tag:l.className,color:"#70E080"},{tag:[l.function(l.propertyName),l.propertyName],color:"#50A0A0"},{tag:l.tagName,color:"#009090"},{tag:l.modifier,color:"#B0FFF0"},{tag:[l.squareBracket,l.attributeName],color:"#D0D0FF"}]}),oe({variant:"light",settings:{background:"#fcfcfc",foreground:"#5c6166",caret:"#ffaa33",selection:"#036dd626",gutterBackground:"#fcfcfc",gutterForeground:"#8a919966",lineHighlight:"#8a91991a"},styles:[{tag:l.comment,color:"#787b8099"},{tag:l.string,color:"#86b300"},{tag:l.regexp,color:"#4cbf99"},{tag:[l.number,l.bool,l.null],color:"#ffaa33"},{tag:l.variableName,color:"#5c6166"},{tag:[l.definitionKeyword,l.modifier],color:"#fa8d3e"},{tag:[l.keyword,l.special(l.brace)],color:"#fa8d3e"},{tag:l.operator,color:"#ed9366"},{tag:l.separator,color:"#5c6166b3"},{tag:l.punctuation,color:"#5c6166"},{tag:[l.definition(l.propertyName),l.function(l.variableName)],color:"#f2ae49"},{tag:[l.className,l.definition(l.typeName)],color:"#22a4e6"},{tag:[l.tagName,l.typeName,l.self,l.labelName],color:"#55b4d4"},{tag:l.angleBracket,color:"#55b4d480"},{tag:l.attributeName,color:"#f2ae49"}]}),oe({variant:"dark",settings:{background:"#15191EFA",foreground:"#EEF2F7",caret:"#C4C4C4",selection:"#90B2D557",gutterBackground:"#15191EFA",gutterForeground:"#aaaaaa95",lineHighlight:"#57575712"},styles:[{tag:l.comment,color:"#6E6E6E"},{tag:[l.string,l.regexp,l.special(l.brace)],color:"#5C81B3"},{tag:l.number,color:"#C1E1B8"},{tag:l.bool,color:"#53667D"},{tag:[l.definitionKeyword,l.modifier,l.function(l.propertyName)],color:"#A3D295",fontWeight:"bold"},{tag:[l.keyword,l.moduleKeyword,l.operatorKeyword,l.operator],color:"#697A8E",fontWeight:"bold"},{tag:[l.variableName,l.attributeName],color:"#708E67"},{tag:[l.function(l.variableName),l.definition(l.propertyName),l.derefOperator],color:"#fff"},{tag:l.tagName,color:"#A3D295"}]}),oe({variant:"dark",settings:{background:"#2e241d",foreground:"#BAAE9E",caret:"#A7A7A7",selection:"#DDF0FF33",gutterBackground:"#28211C",gutterForeground:"#BAAE9E90",lineHighlight:"#FFFFFF08"},styles:[{tag:l.comment,color:"#666666"},{tag:[l.string,l.special(l.brace)],color:"#54BE0D"},{tag:l.regexp,color:"#E9C062"},{tag:l.number,color:"#CF6A4C"},{tag:[l.keyword,l.operator],color:"#5EA6EA"},{tag:l.variableName,color:"#7587A6"},{tag:[l.definitionKeyword,l.modifier],color:"#F9EE98"},{tag:[l.propertyName,l.function(l.variableName)],color:"#937121"},{tag:[l.typeName,l.angleBracket,l.tagName],color:"#9B859D"}]}),oe({variant:"dark",settings:{background:"#3b2627",foreground:"#E6E1C4",caret:"#E6E1C4",selection:"#16120E",gutterBackground:"#3b2627",gutterForeground:"#E6E1C490",lineHighlight:"#1F1611"},styles:[{tag:l.comment,color:"#6B4E32"},{tag:[l.keyword,l.operator,l.derefOperator],color:"#EF5D32"},{tag:l.className,color:"#EFAC32",fontWeight:"bold"},{tag:[l.typeName,l.propertyName,l.function(l.variableName),l.definition(l.variableName)],color:"#EFAC32"},{tag:l.definition(l.typeName),color:"#EFAC32",fontWeight:"bold"},{tag:l.labelName,color:"#EFAC32",fontWeight:"bold"},{tag:[l.number,l.bool],color:"#6C99BB"},{tag:[l.variableName,l.self],color:"#7DAF9C"},{tag:[l.string,l.special(l.brace),l.regexp],color:"#D9D762"},{tag:[l.angleBracket,l.tagName,l.attributeName],color:"#EFCB43"}]}),oe({variant:"dark",settings:{background:"#000205",foreground:"#FFFFFF",caret:"#E60065",selection:"#E60C6559",gutterBackground:"#000205",gutterForeground:"#ffffff90",lineHighlight:"#4DD7FC1A"},styles:[{tag:l.comment,color:"#404040"},{tag:[l.string,l.special(l.brace),l.regexp],color:"#00D8FF"},{tag:l.number,color:"#E62286"},{tag:[l.variableName,l.attributeName,l.self],color:"#E62286",fontWeight:"bold"},{tag:l.function(l.variableName),color:"#fff",fontWeight:"bold"}]}),oe({variant:"light",settings:{background:"#fff",foreground:"#000",caret:"#000",selection:"#BDD5FC",gutterBackground:"#fff",gutterForeground:"#00000070",lineHighlight:"#FFFBD1"},styles:[{tag:l.comment,color:"#BCC8BA"},{tag:[l.string,l.special(l.brace),l.regexp],color:"#5D90CD"},{tag:[l.number,l.bool,l.null],color:"#46A609"},{tag:l.keyword,color:"#AF956F"},{tag:[l.definitionKeyword,l.modifier],color:"#C52727"},{tag:[l.angleBracket,l.tagName,l.attributeName],color:"#606060"},{tag:l.self,color:"#000"}]}),oe({variant:"dark",settings:{background:"#00254b",foreground:"#FFFFFF",caret:"#FFFFFF",selection:"#B36539BF",gutterBackground:"#00254b",gutterForeground:"#FFFFFF70",lineHighlight:"#00000059"},styles:[{tag:l.comment,color:"#0088FF"},{tag:l.string,color:"#3AD900"},{tag:l.regexp,color:"#80FFC2"},{tag:[l.number,l.bool,l.null],color:"#FF628C"},{tag:[l.definitionKeyword,l.modifier],color:"#FFEE80"},{tag:l.variableName,color:"#CCCCCC"},{tag:l.self,color:"#FF80E1"},{tag:[l.className,l.definition(l.propertyName),l.function(l.variableName),l.definition(l.typeName),l.labelName],color:"#FFDD00"},{tag:[l.keyword,l.operator],color:"#FF9D00"},{tag:[l.propertyName,l.typeName],color:"#80FFBB"},{tag:l.special(l.brace),color:"#EDEF7D"},{tag:l.attributeName,color:"#9EFFFF"},{tag:l.derefOperator,color:"#fff"}]}),oe({variant:"dark",settings:{background:"#060521",foreground:"#E0E0E0",caret:"#FFFFFFA6",selection:"#122BBB",gutterBackground:"#060521",gutterForeground:"#E0E0E090",lineHighlight:"#FFFFFF0F"},styles:[{tag:l.comment,color:"#AEAEAE"},{tag:[l.string,l.special(l.brace),l.regexp],color:"#8DFF8E"},{tag:[l.className,l.definition(l.propertyName),l.function(l.variableName),l.function(l.definition(l.variableName)),l.definition(l.typeName)],color:"#A3EBFF"},{tag:[l.number,l.bool,l.null],color:"#62E9BD"},{tag:[l.keyword,l.operator],color:"#2BF1DC"},{tag:[l.definitionKeyword,l.modifier],color:"#F8FBB1"},{tag:[l.variableName,l.self],color:"#B683CA"},{tag:[l.angleBracket,l.tagName,l.typeName,l.propertyName],color:"#60A4F1"},{tag:l.derefOperator,color:"#E0E0E0"},{tag:l.attributeName,color:"#7BACCA"}]}),oe({variant:"dark",settings:{background:"#2d2f3f",foreground:"#f8f8f2",caret:"#f8f8f0",selection:"#44475a",gutterBackground:"#282a36",gutterForeground:"rgb(144, 145, 148)",lineHighlight:"#44475a"},styles:[{tag:l.comment,color:"#6272a4"},{tag:[l.string,l.special(l.brace)],color:"#f1fa8c"},{tag:[l.number,l.self,l.bool,l.null],color:"#bd93f9"},{tag:[l.keyword,l.operator],color:"#ff79c6"},{tag:[l.definitionKeyword,l.typeName],color:"#8be9fd"},{tag:l.definition(l.typeName),color:"#f8f8f2"},{tag:[l.className,l.definition(l.propertyName),l.function(l.variableName),l.attributeName],color:"#50fa7b"}]}),oe({variant:"light",settings:{background:"#FFFFFF",foreground:"#000000",caret:"#000000",selection:"#80C7FF",gutterBackground:"#FFFFFF",gutterForeground:"#00000070",lineHighlight:"#C1E2F8"},styles:[{tag:l.comment,color:"#AAAAAA"},{tag:[l.keyword,l.operator,l.typeName,l.tagName,l.propertyName],color:"#2F6F9F",fontWeight:"bold"},{tag:[l.attributeName,l.definition(l.propertyName)],color:"#4F9FD0"},{tag:[l.className,l.string,l.special(l.brace)],color:"#CF4F5F"},{tag:l.number,color:"#CF4F5F",fontWeight:"bold"},{tag:l.variableName,fontWeight:"bold"}]}),oe({variant:"light",settings:{background:"#f2f1f8",foreground:"#0c006b",caret:"#5c49e9",selection:"#d5d1f2",gutterBackground:"#f2f1f8",gutterForeground:"#0c006b70",lineHighlight:"#e1def3"},styles:[{tag:l.comment,color:"#9995b7"},{tag:l.keyword,color:"#ff5792",fontWeight:"bold"},{tag:[l.definitionKeyword,l.modifier],color:"#ff5792"},{tag:[l.className,l.tagName,l.definition(l.typeName)],color:"#0094f0"},{tag:[l.number,l.bool,l.null,l.special(l.brace)],color:"#5842ff"},{tag:[l.definition(l.propertyName),l.function(l.variableName)],color:"#0095a8"},{tag:l.typeName,color:"#b3694d"},{tag:[l.propertyName,l.variableName],color:"#fa8900"},{tag:l.operator,color:"#ff5792"},{tag:l.self,color:"#e64100"},{tag:[l.string,l.regexp],color:"#00b368"},{tag:[l.paren,l.bracket],color:"#0431fa"},{tag:l.labelName,color:"#00bdd6"},{tag:l.attributeName,color:"#e64100"},{tag:l.angleBracket,color:"#9995b7"}]}),oe({variant:"light",settings:{background:"#faf4ed",foreground:"#575279",caret:"#575279",selection:"#6e6a8614",gutterBackground:"#faf4ed",gutterForeground:"#57527970",lineHighlight:"#6e6a860d"},styles:[{tag:l.comment,color:"#9893a5"},{tag:[l.bool,l.null],color:"#286983"},{tag:l.number,color:"#d7827e"},{tag:l.className,color:"#d7827e"},{tag:[l.angleBracket,l.tagName,l.typeName],color:"#56949f"},{tag:l.attributeName,color:"#907aa9"},{tag:l.punctuation,color:"#797593"},{tag:[l.keyword,l.modifier],color:"#286983"},{tag:[l.string,l.regexp],color:"#ea9d34"},{tag:l.variableName,color:"#d7827e"}]}),oe({variant:"light",settings:{background:"#FFFFFF",foreground:"#000000",caret:"#000000",selection:"#FFFD0054",gutterBackground:"#FFFFFF",gutterForeground:"#00000070",lineHighlight:"#00000008"},styles:[{tag:l.comment,color:"#CFCFCF"},{tag:[l.number,l.bool,l.null],color:"#E66C29"},{tag:[l.className,l.definition(l.propertyName),l.function(l.variableName),l.labelName,l.definition(l.typeName)],color:"#2EB43B"},{tag:l.keyword,color:"#D8B229"},{tag:l.operator,color:"#4EA44E",fontWeight:"bold"},{tag:[l.definitionKeyword,l.modifier],color:"#925A47"},{tag:l.string,color:"#704D3D"},{tag:l.typeName,color:"#2F8996"},{tag:[l.variableName,l.propertyName],color:"#77ACB0"},{tag:l.self,color:"#77ACB0",fontWeight:"bold"},{tag:l.regexp,color:"#E3965E"},{tag:[l.tagName,l.angleBracket],color:"#BAA827"},{tag:l.attributeName,color:"#B06520"},{tag:l.derefOperator,color:"#000"}]}),oe({variant:"light",settings:{background:"#fef7e5",foreground:"#586E75",caret:"#000000",selection:"#073642",gutterBackground:"#fef7e5",gutterForeground:"#586E7580",lineHighlight:"#EEE8D5"},styles:[{tag:l.comment,color:"#93A1A1"},{tag:l.string,color:"#2AA198"},{tag:l.regexp,color:"#D30102"},{tag:l.number,color:"#D33682"},{tag:l.variableName,color:"#268BD2"},{tag:[l.keyword,l.operator,l.punctuation],color:"#859900"},{tag:[l.definitionKeyword,l.modifier],color:"#073642",fontWeight:"bold"},{tag:[l.className,l.self,l.definition(l.propertyName)],color:"#268BD2"},{tag:l.function(l.variableName),color:"#268BD2"},{tag:[l.bool,l.null],color:"#B58900"},{tag:l.tagName,color:"#268BD2",fontWeight:"bold"},{tag:l.angleBracket,color:"#93A1A1"},{tag:l.attributeName,color:"#93A1A1"},{tag:l.typeName,color:"#859900"}]}),oe({variant:"light",settings:{background:"#FFFFFF",foreground:"#4D4D4C",caret:"#AEAFAD",selection:"#D6D6D6",gutterBackground:"#FFFFFF",gutterForeground:"#4D4D4C80",lineHighlight:"#EFEFEF"},styles:[{tag:l.comment,color:"#8E908C"},{tag:[l.variableName,l.self,l.propertyName,l.attributeName,l.regexp],color:"#C82829"},{tag:[l.number,l.bool,l.null],color:"#F5871F"},{tag:[l.className,l.typeName,l.definition(l.typeName)],color:"#C99E00"},{tag:[l.string,l.special(l.brace)],color:"#718C00"},{tag:l.operator,color:"#3E999F"},{tag:[l.definition(l.propertyName),l.function(l.variableName)],color:"#4271AE"},{tag:l.keyword,color:"#8959A8"},{tag:l.derefOperator,color:"#4D4D4C"}]});const Bc=[oe({variant:"dark",settings:{background:"var(--cm-background)",foreground:"#abb2bf",caret:"#528bff",selection:"#3E4451",lineHighlight:"#2c313c",gutterBackground:"var(--color-background)",gutterForeground:"var(--gray-10)"},styles:[{tag:l.comment,color:"var(--cm-comment)"},{tag:l.variableName,color:"#abb2bf"},{tag:[l.string,l.special(l.brace)],color:"#98c379"},{tag:l.number,color:"#d19a66"},{tag:l.bool,color:"#d19a66"},{tag:l.null,color:"#d19a66"},{tag:l.keyword,color:"#c678dd",fontWeight:500},{tag:l.className,color:"#61afef"},{tag:l.definition(l.typeName),color:"#61afef"},{tag:l.typeName,color:"#56b6c2"},{tag:l.angleBracket,color:"#abb2bf"},{tag:l.tagName,color:"#e06c75"},{tag:l.attributeName,color:"#d19a66"},{tag:l.operator,color:"#56b6c2",fontWeight:500},{tag:[l.function(l.variableName)],color:"#61afef"},{tag:[l.propertyName],color:"#e5c07b"}]}),P.theme({".mo-cm-reactive-reference":{fontWeight:"400",color:"#2a7aa5",borderBottom:"2px solid #bad3de"},".mo-cm-reactive-reference-hover":{cursor:"pointer",borderBottomWidth:"3px",borderBottomColor:"#4a90a5"}})],Pc=[oe({variant:"light",settings:{background:"#ffffff",foreground:"#000000",caret:"#000000",selection:"#d7d4f0",lineHighlight:"#cceeff44",gutterBackground:"var(--color-background)",gutterForeground:"var(--gray-10)"},styles:[{tag:l.comment,color:"var(--cm-comment)"},{tag:l.variableName,color:"#000000"},{tag:[l.string,l.special(l.brace)],color:"#a11"},{tag:l.number,color:"#164"},{tag:l.bool,color:"#219"},{tag:l.null,color:"#219"},{tag:l.keyword,color:"#708",fontWeight:500},{tag:l.className,color:"#00f"},{tag:l.definition(l.typeName),color:"#00f"},{tag:l.typeName,color:"#085"},{tag:l.angleBracket,color:"#000000"},{tag:l.tagName,color:"#170"},{tag:l.attributeName,color:"#00c"},{tag:l.operator,color:"#a2f",fontWeight:500},{tag:[l.function(l.variableName)],color:"#00c"},{tag:[l.propertyName],color:"#05a"}]}),P.theme({".mo-cm-reactive-reference":{fontWeight:"400",color:"#005f87",borderBottom:"2px solid #bad3de"},".mo-cm-reactive-reference-hover":{cursor:"pointer",borderBottomWidth:"3px"}})];function ta(e){let{showPlaceholder:t,enableAI:n}=e;return t?"marimo-import":n?"ai":"none"}const jc=e=>{let{cellId:t,keymapConfig:n,hotkeys:r,enableAI:o,cellActions:a,completionConfig:i,lspConfig:s,diagnosticsConfig:u,displayConfig:c,inlineAiTooltip:d}=e,f=ta(e);return[Jd(n,r),Fc(),Lc(),cs(),Dd({cellId:t,completionConfig:i,hotkeys:r,placeholderType:f,lspConfig:s,diagnosticsConfig:u}),Fd({cellId:t,hotkeys:r,cellActions:a,keymapConfig:n}),Rc(e),Ic(),u!=null&&u.enabled?jf():[],o&&d?[es({prompt:g=>ss({prompt:g.prompt,selection:g.selection,codeBefore:g.codeBefore,codeAfter:g.codeAfter,language:gd(g.editorView)})}),Ht.of({hideOnBlur:!0})]:[],Pd(t,c.reference_highlighting??!0)]};var Mc=e=>{let{from:t,to:n}=e.state.selection.main;if(t!==n)return!1;let r=e.state.doc.lineAt(n);return r.text.slice(0,n-r.from).trim()===""?!1:$f(e)};const Rc=e=>{let{theme:t,hotkeys:n,completionConfig:r,acceptCompletionOnEnter:o,cellId:a,lspConfig:i,diagnosticsConfig:s}=e,u=ta(e);return[P.lineWrapping,kf(),xf(),Tf(),Lf(),Nf(),Ff(),pf(),yf({position:"fixed",parent:document.querySelector("#App")??void 0}),pd(),t==="dark"?Bc:Pc,Ad(i),pc(r),If(),Uc(),Hf(),ds(o),ct.high(Je.of(Wf)),Sf(),wf(),hf.of(" "),ni(vf,{fallback:!0}),Je.of(gf),yd({placeholderType:u,completionConfig:r,hotkeys:n,cellId:a,lspConfig:{...i,diagnostics:s}}),fd.of(Pf()),Tr.allowMultipleSelections.of(!0),Cc(n),Je.of([{key:"Tab",run:c=>oi(c)||Mc(c)||Rf(c),preventDefault:!0},{key:n.getHotkey("completion.moveDown").key,run:c=>Mt(c.state)===null?!1:(Fn(!0)(c),!0),preventDefault:!0},{key:n.getHotkey("completion.moveUp").key,run:c=>Mt(c.state)===null?!1:(Fn(!1)(c),!0),preventDefault:!0}]),Je.of([...Uf,Df])]};var et=(e=>!e||e instanceof WebAssembly.Module?e:typeof e=="object"&&"default"in e?e.default??e:e)(Pm),tr=e=>{Mm(e),typeof Ci=="function"&&Ci(),Gc(vt)};function Gc(e){typeof e.__wbindgen_start=="function"&&e.__wbindgen_start()}if(et&&et.__wbindgen_start)tr(et);else if("Bun"in globalThis){let e;if(et instanceof WebAssembly.Module)({instance:e}=await WebAssembly.instantiate(et,{"./loro_wasm_bg.js":vt}));else{let t=Bun.pathToFileURL(et);({instance:e}=await WebAssembly.instantiateStreaming(fetch(t),{"./loro_wasm_bg.js":vt}))}tr(e.exports)}else{let e=et instanceof WebAssembly.Module?et:await gm(()=>import("./loro_wasm_bg-DXuHQ2hl.js").then(async r=>(await r.__tla,r)),__vite__mapDeps([0,1,2]),import.meta.url),t=e instanceof WebAssembly.Module?e:e&&e.default||e,n;if(t instanceof WebAssembly.Instance)n=t;else if(t instanceof WebAssembly.Module)n=await WebAssembly.instantiate(t,{"./loro_wasm_bg.js":vt});else if(t instanceof ArrayBuffer||ArrayBuffer.isView(t)){let{instance:r}=await WebAssembly.instantiate(t,{"./loro_wasm_bg.js":vt});n=r}else if(typeof t=="string"||t instanceof URL){let r=await fetch(t),{instance:o}=await WebAssembly.instantiateStreaming(r,{"./loro_wasm_bg.js":vt});n=o}else throw console.error("Unsupported wasm import type:",t),Error("Unsupported wasm import type: "+typeof t);tr(n.exports??n)}var Jc=["Map","Text","List","Tree","MovableList","Counter"];function Wc(e){return e.startsWith("cid:")}function na(e){if(typeof e!="object"||!e)return!1;let t=Object.getPrototypeOf(e);return typeof t!="object"||!t||typeof t.kind!="function"?!1:Jc.includes(e.kind())}var Vc=class{constructor(e,t=3e4){this.listeners=new Set,this.inner=new jm(e,t),this.peer=e,this.timeout=t}apply(e,t="remote"){let{updated:n,added:r}=this.inner.apply(e);this.listeners.forEach(o=>{o({updated:n,added:r,removed:[]},t)}),this.startTimerIfNotEmpty()}setLocalState(e){let t=this.inner.getState(this.peer)==null;this.inner.setLocalState(e),t?this.listeners.forEach(n=>{n({updated:[],added:[this.inner.peer()],removed:[]},"local")}):this.listeners.forEach(n=>{n({updated:[this.inner.peer()],added:[],removed:[]},"local")}),this.startTimerIfNotEmpty()}getLocalState(){return this.inner.getState(this.peer)}getAllStates(){return this.inner.getAllStates()}encode(e){return this.inner.encode(e)}encodeAll(){return this.inner.encodeAll()}addListener(e){this.listeners.add(e)}removeListener(e){this.listeners.delete(e)}peers(){return this.inner.peers()}destroy(){clearInterval(this.timer),this.listeners.clear()}startTimerIfNotEmpty(){this.inner.isEmpty()||this.timer!=null||(this.timer=setInterval(()=>{let e=this.inner.removeOutdated();e.length>0&&this.listeners.forEach(t=>{t({updated:[],added:[],removed:e},"timeout")}),this.inner.isEmpty()&&(clearInterval(this.timer),this.timer=void 0)},this.timeout/2))}};_r.prototype.toJsonWithReplacer=function(e){let t=new Set,n=this,r=(a,i)=>{if(typeof i=="string"&&Wc(i)&&!t.has(i)){t.add(i);let u=n.getContainerById(i);if(u==null)throw Error(`ContainerID not found: ${i}`);let c=e(a,u);if(c===u){let d=u.getShallowValue();return typeof d=="object"?o(d):d}if(na(c))throw Error("Using new container is not allowed in toJsonWithReplacer");return typeof c=="object"&&c?o(c):c}if(typeof i=="object"&&i)return o(i);let s=e(a,i);if(na(s))throw Error("Using new container is not allowed in toJsonWithReplacer");return s},o=a=>{if(Array.isArray(a))return a.map((s,u)=>r(u,s)).filter(s=>s!==void 0);let i={};for(let[s,u]of Object.entries(a)){let c=r(s,u);c!==void 0&&(i[s]=c)}return i};return o(n.getShallowValue())};var ra=Symbol("loro.callPendingEventsWrapped");function $c(e,t){let n=Object.getOwnPropertyDescriptor(e,t);if(!n||typeof n.value!="function")return;let r=n.value;if(r[ra])return;let o=function(...a){let i;try{return i=r.apply(this,a),i}finally{i&&typeof i.then=="function"?i.finally(()=>{ki()}):ki()}};o[ra]=!0,Object.defineProperty(e,t,{...n,value:o})}function nr(e,t){for(let n of t)$c(e,n)}nr(_r.prototype,["setDetachedEditing","attach","detach","fork","forkAt","checkoutToLatest","checkout","commit","getCursorPos","revertTo","export","exportJsonUpdates","exportJsonInIdSpan","importJsonUpdates","import","importUpdateBatch","importBatch","travelChangeAncestors","getChangedContainersIn","diff","applyDiff","setPeerId"]),nr(Um.prototype,["set","delete","apply","removeOutdated"]),nr(Bm.prototype,["undo","redo"]);const Hc=P.baseTheme({".loro-cursor":{position:"absolute",width:"2px",display:"inline-block",height:"1.2em"},".loro-cursor::before":{position:"absolute",top:"1.3em",left:"0",content:"var(--rtc-name)",padding:"2px 6px",fontSize:"12px",borderRadius:"3px",whiteSpace:"nowrap",userSelect:"none",backgroundColor:"inherit",opacity:"0.7"},".loro-selection":{opacity:"0.5"}});Ar.define();const Lt=fe.define(),rr=He.define({create(){return{remoteCursors:new Map,isCheckout:!1}},update(e,t){for(let n of t.effects)if(n.is(Lt))switch(n.value.type){case"update":{let{peer:r,user:o,cursor:a}=n.value;e.remoteCursors.set(r,{uid:r,cursor:a,user:o});break}case"delete":e.remoteCursors.delete(n.value.peer);break;case"checkout":e.isCheckout=n.value.checkout}return e}});var oa=e=>{let t=e.transactions.flatMap(n=>n.effects).filter(n=>n.is(Lt));return e.docChanged||e.viewportChanged||t.length>0};const qc=()=>ei({above:!0,class:"loro-cursor-layer",update:oa,markers:e=>{let{remoteCursors:t,isCheckout:n}=e.state.field(rr);return n?[]:[...t.values()].flatMap(r=>{var a,i;let o=bt.cursor(r.cursor.anchor);return Kc.createCursor(e,o,((a=r.user)==null?void 0:a.name)||"unknown",((i=r.user)==null?void 0:i.colorClassName)||"")})}}),zc=()=>ei({above:!1,class:"loro-selection-layer",update:oa,markers:e=>{let{remoteCursors:t,isCheckout:n}=e.state.field(rr);return n?[]:[...t.entries()].filter(([,r])=>r.cursor.head!==void 0&&r.cursor.anchor!==r.cursor.head).flatMap(([,r])=>{var a;let o=bt.range(r.cursor.anchor,r.cursor.head);return Af.forRange(e,`loro-selection ${((a=r.user)==null?void 0:a.colorClassName)||""}`,o)})}});var Kc=class jr{constructor(t,n,r,o,a){this.left=t,this.top=n,this.height=r,this.name=o,this.colorClassName=a}draw(){let t=document.createElement("div");return this.adjust(t),t}update(t){return this.adjust(t),!0}adjust(t){t.style.left=`${this.left}px`,t.style.top=`${this.top}px`,t.style.height=`${this.height}px`,t.className=`loro-cursor ${this.colorClassName}`,t.style.setProperty("--rtc-name",`"${this.name}"`)}eq(t){return this.left===t.left&&this.top===t.top&&this.height===t.height&&this.name===t.name}static createCursor(t,n,r,o){let a=jr.calculateAbsoluteCursorPosition(n,t);if(!a)return[];let i=t.scrollDOM.getBoundingClientRect(),s=(t.textDirection===Cf.LTR?i.left:i.right-t.scrollDOM.clientWidth)-t.scrollDOM.scrollLeft,u=i.top-t.scrollDOM.scrollTop;return[new jr(a.left-s,a.top-u,a.bottom-a.top,r,o)]}static calculateAbsoluteCursorPosition(t,n){let r=Math.max(0,Math.min(n.state.doc.length,t.anchor));return n.coordsAtPos(r,t.assoc||1)}},Yc=(e,t,n,r)=>{let o=[],{updated:a,added:i}=n;for(let s of[...a,...i]){let u=aa(e,t,s,r);u&&o.push(u)}return o},aa=(e,t,n,r)=>{var u,c;let o=t.getAllStates()[n];if(!o||n===e.peerIdStr||o.scopeId!==r)return;if(o.type==="delete")return Lt.of({type:"delete",peer:o.uid,scopeId:o.scopeId});let a=Si.decode(o.cursor.anchor),i=((u=e.getCursorPos(a))==null?void 0:u.offset)??0,s=i;if(o.cursor.head){let d=Si.decode(o.cursor.head);s=((c=e.getCursorPos(d))==null?void 0:c.offset)??0}return Lt.of({type:"update",peer:o.uid,scopeId:o.scopeId,cursor:{anchor:i,head:s},user:o.user})},Xc=class{constructor(e,t,n,r,o,a,i){this.view=e,this.doc=t,this.user=n,this.awareness=r,this.getTextFromDoc=o,this.scopeId=a,this.getUserId=i,this.sub=this.doc.subscribe(s=>{if(s.by==="local"){let u=[];for(let c of this.awareness.peers()){let d=aa(this.doc,this.awareness,c,this.scopeId);d&&u.push(d)}this.view.dispatch({effects:u})}else s.by==="checkout"&&this.view.dispatch({effects:[Lt.of({type:"checkout",checkout:this.doc.isDetached()})]})})}update(e){if(!e.selectionSet&&!e.focusChanged&&!e.docChanged)return;let t=e.state.selection.main;if(this.view.hasFocus&&!this.doc.isDetached()){let n=Zc({doc:this.doc,getTextFromDoc:this.getTextFromDoc,anchor:t.anchor,head:t.head});this.awareness.setLocalState({type:"update",uid:this.getUserId?this.getUserId():this.doc.peerIdStr,scopeId:this.scopeId,cursor:n,user:this.user})}else this.awareness.setLocalState({type:"delete",uid:this.getUserId?this.getUserId():this.doc.peerIdStr,scopeId:this.scopeId})}destroy(){var e;(e=this.sub)==null||e.call(this),this.awareness.setLocalState({type:"delete",uid:this.getUserId?this.getUserId():this.doc.peerIdStr,scopeId:this.scopeId})}},Qc=class{constructor(e,t,n,r){this.view=e,this.doc=t,this.awareness=n,this.scopeId=r;let o=async(a,i)=>{i!=="local"&&this.view.dispatch({effects:Yc(this.doc,this.awareness,a,this.scopeId)})};this._awarenessListener=o,this.awareness.addListener(o)}destroy(){this._awarenessListener&&this.awareness.removeListener(this._awarenessListener)}},Zc=({doc:e,getTextFromDoc:t,anchor:n,head:r})=>{var i,s;n===r&&(r=void 0);let o=(i=t(e).getCursor(n))==null?void 0:i.encode();if(!o)throw Error("cursor head not found");let a;return r!==void 0&&(a=(s=t(e).getCursor(r))==null?void 0:s.encode()),{anchor:o,head:a}};const gn=["bg-(--amber-6)","bg-(--blue-6)","bg-(--crimson-6)","bg-(--cyan-6)","bg-(--grass-6)","bg-(--gray-6)","bg-(--green-6)","bg-(--lime-6)","bg-(--orange-6)","bg-(--purple-6)","bg-(--red-6)","bg-(--sage-6)","bg-(--sky-6)","bg-(--slate-6)"],eu=e=>{if(typeof e=="string"){let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n),t=Math.trunc(t);return gn[Math.abs(t)%gn.length]}return gn[e%gn.length]};var de=$e.get("rtc"),ia=de.get("awareness").disabled(),or="awareness:";function tu(e,t){let n=new TextEncoder().encode(e);return new Uint8Array([...n,...t])}function nu(e,t){return new TextDecoder().decode(e.slice(0,t.length))===t}function ru(e,t){return e.slice(t.length)}ut=Dt(void 0);var ae=new _r,hn=new Vc(ae.peerIdStr),ar=Jf(()=>{de.debug("creating websocket");let e=new Gm(Qa().getWsSyncURL(hm()).toString(),void 0,{maxRetries:10,debug:!1,startClosed:!0,connectionTimeout:1e4});return Promise.resolve().then(async()=>{await Za(),Td()==="edit"&&e.reconnect()}),e.addEventListener("message",async t=>{let n=await t.data.arrayBuffer(),r=new Uint8Array(n);if(nu(r,or)){let o=ru(r,or);hn.apply(o),ia.debug("applied awareness update");return}ae.import(r),de.debug("imported doc change. new doc:",ae.toJSON()),ee.get(ut)!==ae&&ee.set(ut,ae)}),e.addEventListener("open",()=>{de.debug("websocket open")}),e.addEventListener("close",t=>{de.warn("websocket close",t),ee.get(ut)===ae&&ee.set(ut,void 0)}),e});Er()&&ar(),ae.subscribeLocalUpdates(e=>{de.debug("local update, sending to server"),ar().send(e)}),hn.addListener((e,t)=>{let n=[...e.added,...e.removed,...e.updated];t==="local"&&(ia.debug("awareness changes",n),ar().send(tu(or,hn.encode(n))))});function ir(e,t,n=""){if(Zd())return{extension:[],code:n};let r=ae.getByPath(`codes/${e}`)!==void 0,o=ae.getMap("codes").getOrCreateContainer(e,new Dr);return r||(de.log("initializing code for new cell",n),o.insert(0,n)),{code:n.toString(),extension:[ou(e),au(e),iu(ae,hn,{get name(){return ee.get(Id)||"Anonymous"},get colorClassName(){return eu(this.name)}},()=>o,e),Ed(ae,["codes",e],()=>o)]}}function ou(e){let t=(r,o)=>{let a=r.state.field(Sn).type,i=o.toString();i&&i!==a&&(de.debug(`[incoming] setting language type: ${a} -> ${i}`),_t(r,{language:i,keepCodeAsIs:!0}))},n=(r,o)=>{let a=r.state.field(wr),i=o.toJSON();En(a,i)||r.dispatch({effects:[Ma.of(i)],annotations:[Ua.of(!0)]})};return Xe.define(r=>{let o;return Promise.resolve().then(()=>{let a=ae.getByPath(`languages/${e}`);if(!a){de.error("no language container found for cell",e);return}Ut(a instanceof Dr,"language type is not a LoroText");let i=ae.getByPath(`language_metadata/${e}`);if(!i){de.error("no language metadata container found for cell",e);return}Ut(i instanceof xi,"language metadata is not a LoroMap"),t(r,a),n(r,i),o=ae.subscribe(s=>{if(s.origin==="local")return;let u=s.events.some(d=>d.target===a.id),c=s.events.some(d=>d.target===i.id);u&&t(r,a),c&&n(r,i)})}),{destroy(){o()}}})}function au(e){let t=ae.getMap("languages").getOrCreateContainer(e,new Dr),n=ae.getMap("language_metadata").getOrCreateContainer(e,new xi);return P.updateListener.of(r=>{let o=t.toString()!=="";if(!r.docChanged&&o)return;if(!o){let i=br(r.state).type;_t(r.view,{language:i}),de.debug("no initial language, setting default to",i),t.delete(0,t.length),t.insert(0,i),de.debug("no initial language metadata, setting default to",r.state.field(wr));let s=r.state.field(wr);for(let u of Object.keys(s))n.set(u,s[u]);ae.commit();return}let a=!1;for(let i of r.transactions)if(!i.annotation(Ua)){for(let s of i.effects)if(s.is(ld)&&t.toString()!==s.value.type&&(de.debug(`[outgoing] language change: ${t} -> ${s.value.type}`),t.delete(0,t.length),t.insert(0,s.value.type),a=!0),s.is(Ma)||s.is(Ga)){let u=s.value;s.is(Ga)?(de.debug("[outgoing] setting language metadata: ",u),n.clear()):de.debug("[outgoing] updating language metadata: ",u);for(let c of Object.keys(u))n.set(c,u[c]);a=!0}}a&&ae.commit()})}function iu(e,t,n,r,o,a){let i=`loro:cell:${o}`;return[rr,qc(),zc(),Xe.define(s=>new Xc(s,e,n,t,r,i,a)),Xe.define(s=>new Qc(s,e,t,i)),Hc]}var su=Ge(),lu=lf;Br=e=>{let t=(0,su.c)(41),{resetOnBlur:n,placeholderText:r,initialValue:o,flexibleWidth:a,onNameChange:i,className:s}=e,u=n===void 0?!1:n,c=o===void 0?null:o,d=a===void 0?!1:a,{sendListFiles:f}=Ln(),[g,m]=(0,F.useState)(c),h;t[0]===Symbol.for("react.memo_cache_sentinel")?(h=[],t[0]=h):h=t[0];let[w,y]=(0,F.useState)(h),[v,C]=(0,F.useState)(!1),T=(0,F.useRef)(null),D=(0,F.useRef)(!1),B,x;t[1]===c?(B=t[2],x=t[3]):(B=()=>{m(c)},x=[c],t[1]=c,t[2]=B,t[3]=x),(0,F.useEffect)(B,x);let S;t[4]===Symbol.for("react.memo_cache_sentinel")?(S=()=>{C(!0)},t[4]=S):S=t[4];let J=S,ne;t[5]!==c||t[6]!==u?(ne=U=>{var Z;(Z=U.relatedTarget)!=null&&Z.closest(".filename-input")||(C(!1),u&&m(c))},t[5]=c,t[6]=u,t[7]=ne):ne=t[7];let M=ne,O;t[8]===g?O=t[9]:(O=Qe.dirname(g||""),t[8]=g,t[9]=O);let j=O,ie=Qe.basename(g||""),_=w.filter(U=>Qe.basename(U.path).startsWith(ie)),R;t[10]!==j||t[11]!==v||t[12]!==f?(R=async()=>{if(!v){y([]);return}y((await f({path:j})).files)},t[10]=j,t[11]=v,t[12]=f,t[13]=R):R=t[13];let ce;t[14]!==j||t[15]!==v?(ce=[j,v],t[14]=j,t[15]=v,t[16]=ce):ce=t[16];let{isPending:Q}=Am(R,ce),N=cu(g,w,c),A=(N||_.length>0)&&(0,b.jsxs)(yi,{className:"font-mono",children:[!Q&&(0,b.jsx)(Im,{children:"No files"}),N&&(0,b.jsxs)(bi,{variant:"success",className:"py-2 px-3",onSelect:()=>{var U;N&&(D.current=!0,i(N),(U=T.current)==null||U.blur())},children:[(0,b.jsx)(re,{className:"w-4 h-4 mr-2"})," ",(0,b.jsxs)("span",{className:"text-sm",children:[c?"Rename to: ":"Save as: ",(0,b.jsx)("span",{className:"font-medium text-sm",children:Qe.basename(N)})]})]},"_rename_"),_.map(U=>{let Z=dm[U.isDirectory?"directory":um(U.path)];return(0,b.jsxs)(bi,{variant:U.isDirectory?"default":"muted",className:"py-2 px-3",onSelect:()=>{U.isDirectory?m(`${U.path}/`):m(U.path)},children:[(0,b.jsx)(Z,{className:"w-4 h-4 mr-2"})," ",Qe.basename(U.path)]},U.path)})]}),$=Math.max(20,(g==null?void 0:g.length)||(r==null?void 0:r.length)||0)*10,L=v?g||"":c||"",q;t[17]!==d||t[18]!==$?(q=d?{maxWidth:$}:void 0,t[17]=d,t[18]=$,t[19]=q):q=t[19];let je;t[20]===s?je=t[21]:(je=st(s,"w-full px-4 py-1 my-1 h-9 font-mono text-foreground/60"),t[20]=s,t[21]=je);let ge;t[22]!==r||t[23]!==L||t[24]!==q||t[25]!==je?(ge=(0,b.jsx)(lu,{children:(0,b.jsx)(Tm,{"data-testid":"dir-completion-input",tabIndex:-1,rootClassName:"border-none justify-center px-1",spellCheck:"false",value:L,onKeyDown:uu,icon:null,ref:T,onValueChange:m,placeholder:r,autoComplete:"off",style:q,className:je})}),t[22]=r,t[23]=L,t[24]=q,t[25]=je,t[26]=ge):ge=t[26];let Ye=A&&"group-focus-within:block",Me;t[27]===Ye?Me=t[28]:(Me=st("p-0 w-full min-w-80 max-w-80vw hidden",Ye),t[27]=Ye,t[28]=Me);let Pe;t[29]!==A||t[30]!==Me?(Pe=(0,b.jsx)(cf,{side:"bottom",className:Me,portal:!1,children:A}),t[29]=A,t[30]=Me,t[31]=Pe):Pe=t[31];let Re;t[32]!==ge||t[33]!==Pe?(Re=(0,b.jsxs)(yi,{children:[ge,Pe]}),t[32]=ge,t[33]=Pe,t[34]=Re):Re=t[34];let V;t[35]!==M||t[36]!==Re?(V=(0,b.jsx)(Fm,{onFocus:J,onBlur:M,shouldFilter:!1,id:"filename-input",className:"bg-transparent group filename-input",children:Re}),t[35]=M,t[36]=Re,t[37]=V):V=t[37];let I;return t[38]!==v||t[39]!==V?(I=(0,b.jsx)(af,{children:(0,b.jsx)(uf,{open:v,modal:!1,children:V})}),t[38]=v,t[39]=V,t[40]=I):I=t[40],I};function cu(e,t,n){if(e&&!e.endsWith("/")&&((id("markdown")?new Set(["py","md","markdown","qmd"]):new Set(["py"])).has(Qe.extension(e))||(e=e.endsWith(".")?`${e}py`:e.endsWith(".p")?`${e}y`:`${e}.py`),!t.some(r=>r.path===e||Qe.basename(r.path)===e)&&!(n&&(n===e||Qe.basename(n)===e))))return e}function uu(e){e.key==="Escape"&&e.currentTarget.blur()}var sa=Ge(),du=e=>{let t=(0,sa.c)(33),n=()=>{mf(new Blob([r()],{type:"text/plain"}),`${e.proposedName}.json`)},r=le(pu),o;t[0]!==n||t[1]!==e?(o=B=>{B.preventDefault(),n(),e.closeModal()},t[0]=n,t[1]=e,t[2]=o):o=t[2];let a;t[3]===e?a=t[4]:(a=B=>{B.key==="Escape"&&e.closeModal()},t[3]=e,t[4]=a);let i;t[5]===Symbol.for("react.memo_cache_sentinel")?(i=(0,b.jsx)(di,{className:"text-accent-foreground mb-6",children:"Download unsaved changes?"}),t[5]=i):i=t[5];let s;t[6]===Symbol.for("react.memo_cache_sentinel")?(s={wordBreak:"break-word"},t[6]=s):s=t[6];let u,c;t[7]===Symbol.for("react.memo_cache_sentinel")?(u=(0,b.jsx)("p",{children:"This app has unsaved changes. To recover:"}),c={paddingBottom:"10px"},t[7]=u,t[8]=c):(u=t[7],c=t[8]);let d;t[9]===e.proposedName?d=t[10]:(d=(0,b.jsxs)("li",{style:c,children:['Click the "Download" button. This will download a file called\xA0',(0,b.jsxs)("code",{children:[e.proposedName,".json"]}),". This file contains your code."]}),t[9]=e.proposedName,t[10]=d);let f;t[11]===Symbol.for("react.memo_cache_sentinel")?(f={paddingBottom:"10px"},t[11]=f):f=t[11];let g;t[12]===Symbol.for("react.memo_cache_sentinel")?(g={display:"block",padding:"10px"},t[12]=g):g=t[12];let m;t[13]===e.proposedName?m=t[14]:(m=(0,b.jsxs)("code",{style:g,children:["marimo recover ",e.proposedName,".json ",">"," ",e.proposedName,".py"]}),t[13]=e.proposedName,t[14]=m);let h;t[15]===e.proposedName?h=t[16]:(h=(0,b.jsxs)("code",{children:[e.proposedName,".py"]}),t[15]=e.proposedName,t[16]=h);let w;t[17]!==h||t[18]!==m?(w=(0,b.jsxs)("li",{style:f,children:["In your terminal, type",m,"to overwrite ",h," with the recovered changes."]}),t[17]=h,t[18]=m,t[19]=w):w=t[19];let y;t[20]!==w||t[21]!==d?(y=(0,b.jsx)(Em,{className:"markdown break-words",style:s,children:(0,b.jsxs)("div",{className:"prose dark:prose-invert",children:[u,(0,b.jsxs)("ol",{children:[d,w]})]})}),t[20]=w,t[21]=d,t[22]=y):y=t[22];let v;t[23]===e.closeModal?v=t[24]:(v=(0,b.jsx)(lt,{"aria-label":"Cancel",variant:"secondary","data-testid":"cancel-recovery-button",onClick:e.closeModal,children:"Cancel"}),t[23]=e.closeModal,t[24]=v);let C;t[25]===Symbol.for("react.memo_cache_sentinel")?(C=(0,b.jsx)(lt,{"data-testid":"download-recovery-button","aria-label":"Download",variant:"default",type:"submit",children:"Download"}),t[25]=C):C=t[25];let T;t[26]===v?T=t[27]:(T=(0,b.jsxs)(fi,{children:[v,C]}),t[26]=v,t[27]=T);let D;return t[28]!==o||t[29]!==a||t[30]!==y||t[31]!==T?(D=(0,b.jsx)(mi,{className:"w-fit",children:(0,b.jsxs)("form",{onSubmit:o,onKeyDown:a,children:[i,y,T]})}),t[28]=o,t[29]=a,t[30]=y,t[31]=T,t[32]=D):D=t[32],D};const fu=e=>{let t=(0,sa.c)(12),{filename:n,needsSave:r}=e,{openModal:o,closeModal:a}=gi(),i;t[0]===n?i=t[1]:(i=n===null?"app":Qe.basename(n).split(".")[0],t[0]=n,t[1]=i);let s=i,u;t[2]!==a||t[3]!==r||t[4]!==o||t[5]!==s?(u=()=>{r&&o((0,b.jsx)(du,{proposedName:s,closeModal:a}))},t[2]=a,t[3]=r,t[4]=o,t[5]=s,t[6]=u):u=t[6];let c=u;pi("global.save",c);let d;t[7]===Symbol.for("react.memo_cache_sentinel")?(d=vi("global.save"),t[7]=d):d=t[7];let f=r?"yellow":"gray",g;t[8]===Symbol.for("react.memo_cache_sentinel")?(g=(0,b.jsx)(ci,{strokeWidth:1.5,size:18}),t[8]=g):g=t[8];let m;return t[9]!==c||t[10]!==f?(m=(0,b.jsx)(xn,{content:d,children:(0,b.jsx)(Ai,{onClick:c,id:"save-button","aria-label":"Save",className:"rectangle",color:f,children:g})}),t[9]=c,t[10]=f,t[11]=m):m=t[11],m};function mu(e){return{id:e.id,name:e.name,code:e.code,code_hash:null,config:{column:0,...e.config}}}function pu(){let e=yr(vr()),t={version:"1",metadata:{marimo_version:of()},cells:e.map(mu)};return JSON.stringify(t,null,2)}let sr;_n=Dt(void 0),sr=Dt(e=>{let t=e(_n);return gu({state:e(tt),layout:e(ai),lastSavedNotebook:t})});function gu({state:e,layout:t,lastSavedNotebook:n}){if(!n)return!1;let{cellIds:r,cellData:o}=e,a=r.inOrderIds.map(c=>o[c]),i=a.map(c=>c.code),s=a.map(c=>c.config),u=a.map(c=>c.name);return!ri(i,n.codes)||!ri(u,n.names)||!En(s,n.configs)||!En(t.selectedLayout,n.layout.selectedLayout)||!En(t.layoutData,n.layout.layoutData)}var hu=Ge();function bu(e){let t=(0,hu.c)(21),{codes:n,cellConfigs:r,config:o,connStatus:a,cellNames:i,needsSave:s,kioskMode:u,onSave:c}=e,d=(0,F.useRef)(null),f;t[0]===n?f=t[1]:(f=n.join(":"),t[0]=n,t[1]=f);let g=f,m;t[2]===r?m=t[3]:(m=r.map(yu).join(":"),t[2]=r,t[3]=m);let h=m,w;t[4]===i?w=t[5]:(w=i.join(":"),t[4]=i,t[5]=w);let y=w,v;t[6]!==o||t[7]!==a.state||t[8]!==u||t[9]!==s||t[10]!==c?(v=()=>{if(!u)return o.autosave==="after_delay"&&(d.current!==null&&clearTimeout(d.current),s&&a.state===Bt.OPEN&&(d.current=setTimeout(c,o.autosave_delay))),()=>{d.current!==null&&clearTimeout(d.current)}},t[6]=o,t[7]=a.state,t[8]=u,t[9]=s,t[10]=c,t[11]=v):v=t[11];let C;t[12]!==h||t[13]!==y||t[14]!==g||t[15]!==o||t[16]!==a.state||t[17]!==u||t[18]!==s||t[19]!==c?(C=[g,h,y,o,a.state,c,u,s],t[12]=h,t[13]=y,t[14]=g,t[15]=o,t[16]=a.state,t[17]=u,t[18]=s,t[19]=c,t[20]=C):C=t[20],(0,F.useEffect)(v,C)}function yu(e){return JSON.stringify(e)}var bn=Ge();Ti=e=>{let t=(0,bn.c)(15),{kioskMode:n}=e,r=Sm(),o=se(sr),a=se(ht).state===Bt.CLOSED,{saveOrNameNotebook:i,saveIfNotebookIsPersistent:s}=Jt(),u;t[0]!==n||t[1]!==s?(u={onSave:s,kioskMode:n},t[0]=n,t[1]=s,t[2]=u):u=t[2],Nu(u),Jm();let c;t[3]===o?c=t[4]:(c=y=>{if(o)return y.preventDefault(),y.returnValue="You have unsaved changes. Are you sure you want to leave?",y.returnValue},t[3]=o,t[4]=c),Kd(window,"beforeunload",c);let d;t[5]===i?d=t[6]:(d=y=>{y.preventDefault(),y.stopPropagation(),i()},t[5]=i,t[6]=d);let f=d;if(pi("global.save",i),a){let y;return t[7]!==r||t[8]!==o?(y=(0,b.jsx)(fu,{filename:r,needsSave:o}),t[7]=r,t[8]=o,t[9]=y):y=t[9],y}let g;t[10]===Symbol.for("react.memo_cache_sentinel")?(g=vi("global.save"),t[10]=g):g=t[10];let m=o?"yellow":"hint-green",h;t[11]===Symbol.for("react.memo_cache_sentinel")?(h=(0,b.jsx)(ci,{strokeWidth:1.5,size:18}),t[11]=h):h=t[11];let w;return t[12]!==f||t[13]!==m?(w=(0,b.jsx)(xn,{content:g,children:(0,b.jsx)(Ai,{"data-testid":"save-button",id:"save-button",shape:"rectangle",color:m,onClick:f,children:h})}),t[12]=f,t[13]=m,t[14]=w):w=t[14],w},Jt=function(){let e=(0,bn.c)(21),{sendSave:t}=Ln(),{openModal:n,closeModal:r,openAlert:o}=gi(),a=Da(_n),i=xm(),s=gr(),u;e[0]!==o||e[1]!==t||e[2]!==a||e[3]!==s?(u=async(v,C)=>{let T=s.get(ht),D=s.get(Xa);if(s.get(Ld))return;if(T.state!==Bt.OPEN){o("Failed to save notebook: not connected to a kernel.");return}$e.log("saving to ",v),C&&D.format_on_save&&($e.log("formatting notebook (onSave)"),await ud());let B=vr(),x=yr(B),S=x.map(Eu),J=x.map(vu),ne=x.map(wu),M=Wa(B),O=s.get(ai);J.length!==0&&(await t({cellIds:S,codes:J,names:ne,filename:v,configs:M,layout:Qf(),persist:!0}),a({names:ne,codes:J,configs:M,layout:O}))},e[0]=o,e[1]=t,e[2]=a,e[3]=s,e[4]=u):u=e[4];let c=le(u),d;e[5]!==c||e[6]!==s?(d=v=>{let C=v===void 0?!1:v,T=s.get(Va),D=s.get(ht);la(T)&&D.state===Bt.OPEN&&c(T,C)},e[5]=c,e[6]=s,e[7]=d):d=e[7];let f=le(d),g;e[8]!==c||e[9]!==i?(g=v=>{i(v).then(C=>{C!==null&&c(C,!0)})},e[8]=c,e[9]=i,e[10]=g):g=e[10];let m=g,h;e[11]!==r||e[12]!==m||e[13]!==n||e[14]!==f||e[15]!==s?(h=()=>{let v=s.get(Va),C=s.get(ht);f(!0),!la(v)&&C.state!==Bt.CLOSED&&n((0,b.jsx)(Su,{onClose:r,onSave:m}))},e[11]=r,e[12]=m,e[13]=n,e[14]=f,e[15]=s,e[16]=h):h=e[16];let w=le(h),y;return e[17]!==f||e[18]!==c||e[19]!==w?(y={saveOrNameNotebook:w,saveIfNotebookIsPersistent:f,saveNotebook:c},e[17]=f,e[18]=c,e[19]=w,e[20]=y):y=e[20],y};function wu(e){return e.name}function vu(e){return e.code}function Eu(e){return e.id}function la(e){return e!==null&&!e.startsWith("/tmp/")&&!e.startsWith("/var/folders")&&!e.includes("AppData\\Local\\Temp")}function Nu(e){let t=(0,bn.c)(14),n=se(Xa),r=cd(),[o]=vn(ht),a=se(sr),i,s;if(t[0]!==r){let g=yr(r);i=g.map(Cu),s=g.map(ku),t[0]=r,t[1]=i,t[2]=s}else i=t[1],s=t[2];let u=s,c;t[3]===r?c=t[4]:(c=Wa(r),t[3]=r,t[4]=c);let d=c,f;t[5]!==n||t[6]!==u||t[7]!==i||t[8]!==d||t[9]!==o||t[10]!==a||t[11]!==e.kioskMode||t[12]!==e.onSave?(f={onSave:e.onSave,needsSave:a,codes:i,cellConfigs:d,cellNames:u,connStatus:o,config:n,kioskMode:e.kioskMode},t[5]=n,t[6]=u,t[7]=i,t[8]=d,t[9]=o,t[10]=a,t[11]=e.kioskMode,t[12]=e.onSave,t[13]=f):f=t[13],bu(f)}function ku(e){return e.name}function Cu(e){return e.code}var Su=e=>{let t=(0,bn.c)(17),{onClose:n,onSave:r}=e,[o,a]=(0,F.useState)(),i;t[0]!==n||t[1]!==r?(i=y=>{a(y),y.trim()&&(r(y),n())},t[0]=n,t[1]=r,t[2]=i):i=t[2];let s=i,u;t[3]===Symbol.for("react.memo_cache_sentinel")?(u=(0,b.jsx)(di,{children:"Save notebook"}),t[3]=u):u=t[3];let c;t[4]===Symbol.for("react.memo_cache_sentinel")?(c=(0,b.jsx)(Sr,{className:"text-md pt-6 px-1",children:"Save as"}),t[4]=c):c=t[4];let d;t[5]===s?d=t[6]:(d=(0,b.jsxs)("div",{className:"flex flex-col",children:[c,(0,b.jsx)(Br,{onNameChange:s,placeholderText:"filename",className:"missing-filename"})]}),t[5]=s,t[6]=d);let f;t[7]===n?f=t[8]:(f=(0,b.jsx)(lt,{"data-testid":"cancel-save-dialog-button","aria-label":"Cancel",variant:"secondary",onClick:n,children:"Cancel"}),t[7]=n,t[8]=f);let g=!o,m;t[9]===g?m=t[10]:(m=(0,b.jsx)(lt,{"data-testid":"submit-save-dialog-button","aria-label":"Save",variant:"default",disabled:g,type:"submit",children:"Save"}),t[9]=g,t[10]=m);let h;t[11]!==f||t[12]!==m?(h=(0,b.jsxs)(fi,{children:[f,m]}),t[11]=f,t[12]=m,t[13]=h):h=t[13];let w;return t[14]!==d||t[15]!==h?(w=(0,b.jsxs)(mi,{children:[u,d,h]}),t[14]=d,t[15]=h,t[16]=w):w=t[16],w};Dn=function(...e){return t=>{e.forEach(n=>{typeof n=="function"?n(t):n!=null&&(n.current=t)})}};var ca={modified:{doc:""},original:{doc:""}},ua=(0,F.createContext)(ca);function xu(e,t){return Y({},e,t,{modified:Y({},e.modified,t.modified),original:Y({},e.original,t.original)})}var lr=()=>(0,F.useContext)(ua),Au=e=>{var{children:t,theme:n}=e,[r,o]=(0,F.useReducer)(xu,Y({},ca,{theme:n}));return(0,F.useEffect)(()=>o({theme:n}),[n]),(0,b.jsx)(ua.Provider,{value:Y({},r,{dispatch:o}),children:t})},Tu=["extensions","value","selection","onChange"],da=e=>{var{extensions:t=[],value:n,selection:r,onChange:o}=e,a=Rt(e,Tu),{theme:i,dispatch:s}=lr(),u=wt(Y({},a,{theme:i}));return(0,F.useEffect)(()=>s({original:{doc:n,selection:r,extensions:[...u,...t]},originalExtension:{onChange:o,option:a,extension:[t]}}),[e]),null};da.displayName="CodeMirrorMerge.Original";var Iu=["extensions","value","selection","onChange"],fa=e=>{var{extensions:t=[],value:n,selection:r,onChange:o}=e,a=Rt(e,Iu),{theme:i,dispatch:s}=lr(),u=wt(Y({},a,{theme:i}));return(0,F.useEffect)(()=>{s({modified:{doc:n,selection:r,extensions:[...u,...t]},modifiedExtension:{onChange:o,option:a,extension:[t]}})},[e]),null};fa.displayName="CodeMirrorMerge.Modified";var Fu=["className","children","orientation","revertControls","highlightChanges","gutter","collapseUnchanged","destroyRerender","renderRevertControl","diffConfig","root"],Lu=["modified","modifiedExtension","original","originalExtension","theme","dispatch"],ma=F.forwardRef((e,t)=>{var{className:n,children:r,orientation:o,revertControls:a,highlightChanges:i,gutter:s,collapseUnchanged:u,destroyRerender:c=!0,renderRevertControl:d,diffConfig:f,root:g}=e,m=Rt(e,Fu),h=lr(),{modified:w,modifiedExtension:y,original:v,originalExtension:C,theme:T,dispatch:D}=h,B=Rt(h,Lu),x=(0,F.useRef)(null),S=(0,F.useRef)(),J={orientation:o,revertControls:a,highlightChanges:i,gutter:s,collapseUnchanged:u,renderRevertControl:d,diffConfig:f,root:g};(0,F.useImperativeHandle)(t,()=>({container:x.current,view:S.current,modified:w,original:v,config:Y({a:v,b:w,parent:x.current},J)}),[x,S,w,v,J]);var ne=P.updateListener.of(O=>{if(O.docChanged&&typeof(C==null?void 0:C.onChange)=="function"){var j=O.state.doc.toString();C==null||C.onChange(j,O)}}),M=P.updateListener.of(O=>{if(O.docChanged&&typeof(y==null?void 0:y.onChange)=="function"){var j=O.state.doc.toString();y==null||y.onChange(j,O)}});return(0,F.useEffect)(()=>{!S.current&&x.current&&C&&y&&(S.current=new Ei(Y({a:Y({},v,{extensions:[...(C==null?void 0:C.extension)||[],...wt(Y({},C==null?void 0:C.option,{theme:T})),ne]}),b:Y({},w,{extensions:[...(y==null?void 0:y.extension)||[],...wt(Y({},y==null?void 0:y.option,{theme:T})),M]}),parent:x.current},J)),D({view:S.current}))},[S,x,C,y]),(0,F.useEffect)(()=>{var Q,N;if(v&&v.doc&&S.current){var O=(Q=S.current)==null?void 0:Q.a.state.doc.toString();if(O!==v.doc){var j;(j=S.current)==null||j.a.dispatch({changes:{from:0,to:O.length,insert:v.doc||""}})}}if(w&&w.doc&&S.current){var ie=(N=S.current)==null?void 0:N.b.state.doc.toString();if(ie!==w.doc){var _;(_=S.current)==null||_.b.dispatch({changes:{from:0,to:ie.length,insert:w.doc||""}})}}if(c&&S.current){var R=S.current.a.state.selection.ranges[0].from,ce=S.current.b.state.selection.ranges[0].from;S.current.destroy(),S.current=new Ei(Y({a:Y({},v,{extensions:[...(C==null?void 0:C.extension)||[],...wt(Y({},C==null?void 0:C.option,{theme:T}))]}),b:Y({},w,{extensions:[...(y==null?void 0:y.extension)||[],...wt(Y({},y==null?void 0:y.option,{theme:T}))]}),parent:x.current},J)),R&&(S.current.a.focus(),S.current.a.dispatch({selection:{anchor:R,head:R}})),ce&&(S.current.b.focus(),S.current.b.dispatch({selection:{anchor:ce,head:ce}}))}},[S,T,x.current,v,w,C,y,c]),(0,F.useEffect)(()=>()=>S.current&&S.current.destroy(),[]),(0,F.useEffect)(()=>{if(S.current){var O={};B.orientation!==o&&(O.orientation=o),B.revertControls!==a&&(O.revertControls=a),B.highlightChanges!==i&&(O.highlightChanges=i),B.gutter!==s&&(O.gutter=s),B.collapseUnchanged!==u&&(O.collapseUnchanged=u),B.renderRevertControl!==d&&(O.collapseUnchanged=u),Object.keys(O).length&&D&&S.current&&(S.current.reconfigure(Y({},O)),D(Y({},O)))}},[D,S,o,a,i,s,u,d]),(0,b.jsx)("div",Y({ref:x,className:"cm-merge-theme"+(n?" "+n:"")},m,{children:r}))});ma.displayName="CodeMirrorMerge.Internal";var Ou=["theme"],yn=F.forwardRef((e,t)=>{var{theme:n}=e;return(0,b.jsx)(Au,{theme:n,children:(0,b.jsx)(ma,Y({},Rt(e,Ou),{ref:t}))})});yn.Original=da,yn.Modified=fa,yn.displayName="CodeMirrorMerge";var cr=yn,Du=Ge(),_u=cr.Original,Uu=cr.Modified,pa=[md(),P.lineWrapping];const Bu=({cellId:e,aiCompletionCell:t,className:n,onChange:r,currentLanguageAdapter:o,currentCode:a,declineChange:i,acceptChange:s,runCell:u,outputArea:c,children:d})=>{let[f,g]=(0,F.useState)(!1),[m,h]=(0,F.useState)({}),[w,y]=vn(Cm),v=(0,F.useId)(),C=tf(),{initialPrompt:T,triggerImmediately:D,cellId:B}=t??{},x=B===e,S=se(cm).get(e),J;(S==null?void 0:S.type)==="update_cell"&&(J=S.previousCode);let{completion:ne,input:M,stop:O,isLoading:j,setCompletion:ie,setInput:_,handleSubmit:R,complete:ce}=nm({api:C.getAiURL("completion").toString(),headers:C.headers(),initialInput:T,streamProtocol:"text",experimental_throttle:100,body:{...Object.keys(m).length>0?m:T?ii({input:T}):{},includeOtherCode:w?Nr(a):"",code:a,language:o},onError:V=>{yt({title:"Completion failed",description:Nm(V)})},onFinish:(V,I)=>{ie(I.trimEnd())}}),Q=F.useRef(null),N=ne.trimEnd(),A=(0,F.useCallback)(()=>{D&&!j&&T&&ce(T)},[D]);(0,F.useEffect)(()=>{var V;x&&(vd(()=>{let I=Q.current;return I!=null&&I.view?(I.view.focus(),A(),!0):!1},{retries:3,delay:100,initialDelay:100}),Cd((V=Q.current)==null?void 0:V.view))},[x,A]),(0,F.useEffect)(()=>{x&&_(T||"")},[x,T,_]);let{theme:$}=bm(),L=()=>{s(N),ie("")},q=()=>{i(),ie("")},je=x&&D&&(N||j);c??(c="below");let ge=x&&(!D||f),Ye=(0,b.jsx)("div",{className:st("w-full bg-(--cm-background) flex justify-center transition-all duration-300 ease-in-out overflow-hidden",je?"max-h-20 opacity-100 translate-y-0":"max-h-0 opacity-0 -translate-y-2"),children:(0,b.jsx)(Pu,{status:j?"loading":"generated",onAccept:L,onReject:q,showInputPrompt:f,setShowInputPrompt:g,runCell:u,className:"mt-4 mb-3 w-128"})}),Me=(V,I)=>(0,b.jsxs)(cr,{className:"cm",theme:$,children:[(0,b.jsx)(_u,{onChange:r,value:V,extensions:pa}),(0,b.jsx)(Uu,{value:I,editable:!1,readOnly:!0,extensions:pa})]}),Pe=()=>{if(N&&x)return Me(a,N);if(!N&&J)return Me(J,a)},Re=(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(li,{isLoading:j,onAccept:L,size:"xs",multipleCompletions:!1,acceptShortcut:"Mod-\u21B5",runCell:u,borderless:!0,buttonStyles:"hover:shadow-none",playButtonStyles:"hover:shadow-none"}),(0,b.jsx)(si,{onDecline:q,size:"xs",multipleCompletions:!1,declineShortcut:"Shift-Mod-Delete",borderless:!0,className:"hover:shadow-none"})]});return(0,b.jsxs)("div",{"data-ai-input-open":ge,className:st("flex flex-col w-full rounded-[inherit]",n),children:[(0,b.jsx)("div",{className:st("flex items-center gap-2 px-3 transition-all rounded-[inherit] rounded-b-none duration-300",ge&&"max-h-[400px] border-b min-h-11 visible",!ge&&"max-h-0 min-h-0 invisible"),children:x&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(pm,{className:"text-(--blue-10) shrink-0",size:16}),(0,b.jsx)(im,{inputRef:Q,className:"h-full my-0 py-2 flex items-center",onClose:()=>{i(),ie("")},value:M,onChange:V=>{_(V),h(ii({input:V}))},onSubmit:()=>{var V;j||((V=Q.current)!=null&&V.view&&rm(Q.current.view),R())},onKeyDown:sm({handleAcceptCompletion:L,handleDeclineCompletion:q,isLoading:j,hasCompletion:N.trim().length>0})}),(0,b.jsxs)("div",{className:"-mr-1.5 py-1.5",children:[(0,b.jsxs)("div",{className:"flex flex-row items-center justify-end gap-0.5",children:[(0,b.jsx)(am,{isLoading:j,onStop:O,onSendClick:R,isEmpty:!M.trim(),showStopLabel:!0}),(0,b.jsx)(lm,{handleAddContext:()=>om(Q),isLoading:j}),(0,b.jsx)(Hd,{triggerClassName:"h-7 text-xs",iconSize:"small",forRole:"edit",displayIconOnly:!0,placeholder:"Edit model"})]}),N&&(0,b.jsx)("div",{className:"mt-1 flex items-center gap-1",children:Re})]}),(0,b.jsx)("div",{className:"h-full w-px bg-border mx-2"}),(0,b.jsx)(xn,{content:"Include code from other cells",children:(0,b.jsxs)("div",{className:"flex flex-row items-start gap-1 overflow-hidden",children:[(0,b.jsx)(bd,{"data-testid":"include-other-cells-checkbox",id:v,checked:w,onCheckedChange:V=>y(!!V)}),(0,b.jsx)(Sr,{htmlFor:v,className:"text-muted-foreground text-xs whitespace-nowrap ellipsis",children:"All code"})]})}),(0,b.jsx)(lt,{"data-testid":"decline-completion-button",variant:"text",size:"icon",disabled:j,onClick:()=>{O(),i(),ie("")},children:(0,b.jsx)(em,{className:"text-(--red-10)",size:16})})]})}),c==="above"&&Ye,Pe(),(!N||!x)&&!J&&d,c==="below"&&Ye]})};var Pu=e=>{let t=(0,Du.c)(27),{status:n,onAccept:r,onReject:o,className:a,showInputPrompt:i,setShowInputPrompt:s,runCell:u}=e,c=n==="loading",d;t[0]===a?d=t[1]:(d=st("flex flex-row items-center gap-6 rounded-md py-2 px-2.5 text-sm border border-border","shadow-[0_0_6px_1px_rgba(34,197,94,0.15)]",a),t[0]=a,t[1]=d);let f;t[2]===c?f=t[3]:(f=c?(0,b.jsx)(fm,{className:"animate-spin text-blue-600 mb-px",size:15,strokeWidth:2,"aria-label":"Generating fix"}):(0,b.jsx)(tm,{className:"text-green-600 mb-px",size:15,strokeWidth:2,"aria-label":"Fix generated"}),t[2]=c,t[3]=f);let g=c?"Generating fix...":"Showing fix",m;t[4]===g?m=t[5]:(m=(0,b.jsx)("p",{className:"transition-opacity duration-200 text-muted-foreground",children:g}),t[4]=g,t[5]=m);let h;t[6]!==f||t[7]!==m?(h=(0,b.jsxs)("div",{className:"flex flex-row items-center gap-2",children:[f,m]}),t[6]=f,t[7]=m,t[8]=h):h=t[8];let w;t[9]===Symbol.for("react.memo_cache_sentinel")?(w=(0,b.jsx)(Sr,{htmlFor:"show-input-prompt",className:"text-muted-foreground text-xs whitespace-nowrap ellipsis",children:"Show prompt"}),t[9]=w):w=t[9];let y;t[10]!==s||t[11]!==i?(y=(0,b.jsxs)("div",{className:"flex flex-row items-center gap-1",children:[w,(0,b.jsx)(rf,{checked:i,onCheckedChange:s,size:"xs"})]}),t[10]=s,t[11]=i,t[12]=y):y=t[12];let v;t[13]!==c||t[14]!==r||t[15]!==u?(v=(0,b.jsx)(li,{isLoading:c,onAccept:r,size:"xs",borderless:!0,runCell:u}),t[13]=c,t[14]=r,t[15]=u,t[16]=v):v=t[16];let C;t[17]===o?C=t[18]:(C=(0,b.jsx)(si,{onDecline:o,size:"xs",borderless:!0}),t[17]=o,t[18]=C);let T;t[19]!==v||t[20]!==C?(T=(0,b.jsxs)("div",{className:"flex flex-row items-center gap-2 ml-auto",children:[v,C]}),t[19]=v,t[20]=C,t[21]=T):T=t[21];let D;return t[22]!==d||t[23]!==T||t[24]!==h||t[25]!==y?(D=(0,b.jsxs)("div",{className:d,children:[h,y,T]}),t[22]=d,t[23]=T,t[24]=h,t[25]=y,t[26]=D):D=t[26],D},ur="web application/x-marimo-cell",ju=qa({cells:Gd(qa({code:Md()})),version:Rd("1.0")});function Mu(){let e=kn();return{copyCells:le(async t=>{let n=vr(),r=t.map(o=>n.cellData[o]).filter(Boolean);if(r.length!==0)try{let o={cells:r.map(s=>({code:s.code})),version:"1.0"},a=r.map(s=>s.code).join(`
|
|
18
|
+
`).trim()}function _c(e,t,n,r){var o;return r!=="{"||t!==n||!((o=ti(e.state).resolveInner(t,-1))!=null&&o.type.name.includes("String"))?!1:(e.dispatch({changes:{from:t,to:n,insert:"{}"},selection:{anchor:t+1},userEvent:"input.type"}),!0)}function Uc(){return P.inputHandler.of(_c)}var oe=({variant:e,settings:t,styles:n})=>[P.theme({"&":{backgroundColor:t.background,color:t.foreground},".cm-content":{caretColor:t.caret},".cm-cursor, .cm-dropCursor":{borderLeftColor:t.caret},"&.cm-focused .cm-selectionBackgroundm .cm-selectionBackground, .cm-content ::selection":{backgroundColor:t.selection},".cm-activeLine":{backgroundColor:t.lineHighlight},".cm-gutters":{backgroundColor:t.gutterBackground,color:t.gutterForeground},".cm-activeLineGutter":{backgroundColor:t.lineHighlight}},{dark:e==="dark"}),ni(Ef.define(n))];oe({variant:"dark",settings:{background:"#200020",foreground:"#D0D0FF",caret:"#7070FF",selection:"#80000080",gutterBackground:"#200020",gutterForeground:"#C080C0",lineHighlight:"#80000040"},styles:[{tag:l.comment,color:"#404080"},{tag:[l.string,l.regexp],color:"#999999"},{tag:l.number,color:"#7090B0"},{tag:[l.bool,l.null],color:"#8080A0"},{tag:[l.punctuation,l.derefOperator],color:"#805080"},{tag:l.keyword,color:"#60B0FF"},{tag:l.definitionKeyword,color:"#B0FFF0"},{tag:l.moduleKeyword,color:"#60B0FF"},{tag:l.operator,color:"#A0A0FF"},{tag:[l.variableName,l.self],color:"#008080"},{tag:l.operatorKeyword,color:"#A0A0FF"},{tag:l.controlKeyword,color:"#80A0FF"},{tag:l.className,color:"#70E080"},{tag:[l.function(l.propertyName),l.propertyName],color:"#50A0A0"},{tag:l.tagName,color:"#009090"},{tag:l.modifier,color:"#B0FFF0"},{tag:[l.squareBracket,l.attributeName],color:"#D0D0FF"}]}),oe({variant:"light",settings:{background:"#fcfcfc",foreground:"#5c6166",caret:"#ffaa33",selection:"#036dd626",gutterBackground:"#fcfcfc",gutterForeground:"#8a919966",lineHighlight:"#8a91991a"},styles:[{tag:l.comment,color:"#787b8099"},{tag:l.string,color:"#86b300"},{tag:l.regexp,color:"#4cbf99"},{tag:[l.number,l.bool,l.null],color:"#ffaa33"},{tag:l.variableName,color:"#5c6166"},{tag:[l.definitionKeyword,l.modifier],color:"#fa8d3e"},{tag:[l.keyword,l.special(l.brace)],color:"#fa8d3e"},{tag:l.operator,color:"#ed9366"},{tag:l.separator,color:"#5c6166b3"},{tag:l.punctuation,color:"#5c6166"},{tag:[l.definition(l.propertyName),l.function(l.variableName)],color:"#f2ae49"},{tag:[l.className,l.definition(l.typeName)],color:"#22a4e6"},{tag:[l.tagName,l.typeName,l.self,l.labelName],color:"#55b4d4"},{tag:l.angleBracket,color:"#55b4d480"},{tag:l.attributeName,color:"#f2ae49"}]}),oe({variant:"dark",settings:{background:"#15191EFA",foreground:"#EEF2F7",caret:"#C4C4C4",selection:"#90B2D557",gutterBackground:"#15191EFA",gutterForeground:"#aaaaaa95",lineHighlight:"#57575712"},styles:[{tag:l.comment,color:"#6E6E6E"},{tag:[l.string,l.regexp,l.special(l.brace)],color:"#5C81B3"},{tag:l.number,color:"#C1E1B8"},{tag:l.bool,color:"#53667D"},{tag:[l.definitionKeyword,l.modifier,l.function(l.propertyName)],color:"#A3D295",fontWeight:"bold"},{tag:[l.keyword,l.moduleKeyword,l.operatorKeyword,l.operator],color:"#697A8E",fontWeight:"bold"},{tag:[l.variableName,l.attributeName],color:"#708E67"},{tag:[l.function(l.variableName),l.definition(l.propertyName),l.derefOperator],color:"#fff"},{tag:l.tagName,color:"#A3D295"}]}),oe({variant:"dark",settings:{background:"#2e241d",foreground:"#BAAE9E",caret:"#A7A7A7",selection:"#DDF0FF33",gutterBackground:"#28211C",gutterForeground:"#BAAE9E90",lineHighlight:"#FFFFFF08"},styles:[{tag:l.comment,color:"#666666"},{tag:[l.string,l.special(l.brace)],color:"#54BE0D"},{tag:l.regexp,color:"#E9C062"},{tag:l.number,color:"#CF6A4C"},{tag:[l.keyword,l.operator],color:"#5EA6EA"},{tag:l.variableName,color:"#7587A6"},{tag:[l.definitionKeyword,l.modifier],color:"#F9EE98"},{tag:[l.propertyName,l.function(l.variableName)],color:"#937121"},{tag:[l.typeName,l.angleBracket,l.tagName],color:"#9B859D"}]}),oe({variant:"dark",settings:{background:"#3b2627",foreground:"#E6E1C4",caret:"#E6E1C4",selection:"#16120E",gutterBackground:"#3b2627",gutterForeground:"#E6E1C490",lineHighlight:"#1F1611"},styles:[{tag:l.comment,color:"#6B4E32"},{tag:[l.keyword,l.operator,l.derefOperator],color:"#EF5D32"},{tag:l.className,color:"#EFAC32",fontWeight:"bold"},{tag:[l.typeName,l.propertyName,l.function(l.variableName),l.definition(l.variableName)],color:"#EFAC32"},{tag:l.definition(l.typeName),color:"#EFAC32",fontWeight:"bold"},{tag:l.labelName,color:"#EFAC32",fontWeight:"bold"},{tag:[l.number,l.bool],color:"#6C99BB"},{tag:[l.variableName,l.self],color:"#7DAF9C"},{tag:[l.string,l.special(l.brace),l.regexp],color:"#D9D762"},{tag:[l.angleBracket,l.tagName,l.attributeName],color:"#EFCB43"}]}),oe({variant:"dark",settings:{background:"#000205",foreground:"#FFFFFF",caret:"#E60065",selection:"#E60C6559",gutterBackground:"#000205",gutterForeground:"#ffffff90",lineHighlight:"#4DD7FC1A"},styles:[{tag:l.comment,color:"#404040"},{tag:[l.string,l.special(l.brace),l.regexp],color:"#00D8FF"},{tag:l.number,color:"#E62286"},{tag:[l.variableName,l.attributeName,l.self],color:"#E62286",fontWeight:"bold"},{tag:l.function(l.variableName),color:"#fff",fontWeight:"bold"}]}),oe({variant:"light",settings:{background:"#fff",foreground:"#000",caret:"#000",selection:"#BDD5FC",gutterBackground:"#fff",gutterForeground:"#00000070",lineHighlight:"#FFFBD1"},styles:[{tag:l.comment,color:"#BCC8BA"},{tag:[l.string,l.special(l.brace),l.regexp],color:"#5D90CD"},{tag:[l.number,l.bool,l.null],color:"#46A609"},{tag:l.keyword,color:"#AF956F"},{tag:[l.definitionKeyword,l.modifier],color:"#C52727"},{tag:[l.angleBracket,l.tagName,l.attributeName],color:"#606060"},{tag:l.self,color:"#000"}]}),oe({variant:"dark",settings:{background:"#00254b",foreground:"#FFFFFF",caret:"#FFFFFF",selection:"#B36539BF",gutterBackground:"#00254b",gutterForeground:"#FFFFFF70",lineHighlight:"#00000059"},styles:[{tag:l.comment,color:"#0088FF"},{tag:l.string,color:"#3AD900"},{tag:l.regexp,color:"#80FFC2"},{tag:[l.number,l.bool,l.null],color:"#FF628C"},{tag:[l.definitionKeyword,l.modifier],color:"#FFEE80"},{tag:l.variableName,color:"#CCCCCC"},{tag:l.self,color:"#FF80E1"},{tag:[l.className,l.definition(l.propertyName),l.function(l.variableName),l.definition(l.typeName),l.labelName],color:"#FFDD00"},{tag:[l.keyword,l.operator],color:"#FF9D00"},{tag:[l.propertyName,l.typeName],color:"#80FFBB"},{tag:l.special(l.brace),color:"#EDEF7D"},{tag:l.attributeName,color:"#9EFFFF"},{tag:l.derefOperator,color:"#fff"}]}),oe({variant:"dark",settings:{background:"#060521",foreground:"#E0E0E0",caret:"#FFFFFFA6",selection:"#122BBB",gutterBackground:"#060521",gutterForeground:"#E0E0E090",lineHighlight:"#FFFFFF0F"},styles:[{tag:l.comment,color:"#AEAEAE"},{tag:[l.string,l.special(l.brace),l.regexp],color:"#8DFF8E"},{tag:[l.className,l.definition(l.propertyName),l.function(l.variableName),l.function(l.definition(l.variableName)),l.definition(l.typeName)],color:"#A3EBFF"},{tag:[l.number,l.bool,l.null],color:"#62E9BD"},{tag:[l.keyword,l.operator],color:"#2BF1DC"},{tag:[l.definitionKeyword,l.modifier],color:"#F8FBB1"},{tag:[l.variableName,l.self],color:"#B683CA"},{tag:[l.angleBracket,l.tagName,l.typeName,l.propertyName],color:"#60A4F1"},{tag:l.derefOperator,color:"#E0E0E0"},{tag:l.attributeName,color:"#7BACCA"}]}),oe({variant:"dark",settings:{background:"#2d2f3f",foreground:"#f8f8f2",caret:"#f8f8f0",selection:"#44475a",gutterBackground:"#282a36",gutterForeground:"rgb(144, 145, 148)",lineHighlight:"#44475a"},styles:[{tag:l.comment,color:"#6272a4"},{tag:[l.string,l.special(l.brace)],color:"#f1fa8c"},{tag:[l.number,l.self,l.bool,l.null],color:"#bd93f9"},{tag:[l.keyword,l.operator],color:"#ff79c6"},{tag:[l.definitionKeyword,l.typeName],color:"#8be9fd"},{tag:l.definition(l.typeName),color:"#f8f8f2"},{tag:[l.className,l.definition(l.propertyName),l.function(l.variableName),l.attributeName],color:"#50fa7b"}]}),oe({variant:"light",settings:{background:"#FFFFFF",foreground:"#000000",caret:"#000000",selection:"#80C7FF",gutterBackground:"#FFFFFF",gutterForeground:"#00000070",lineHighlight:"#C1E2F8"},styles:[{tag:l.comment,color:"#AAAAAA"},{tag:[l.keyword,l.operator,l.typeName,l.tagName,l.propertyName],color:"#2F6F9F",fontWeight:"bold"},{tag:[l.attributeName,l.definition(l.propertyName)],color:"#4F9FD0"},{tag:[l.className,l.string,l.special(l.brace)],color:"#CF4F5F"},{tag:l.number,color:"#CF4F5F",fontWeight:"bold"},{tag:l.variableName,fontWeight:"bold"}]}),oe({variant:"light",settings:{background:"#f2f1f8",foreground:"#0c006b",caret:"#5c49e9",selection:"#d5d1f2",gutterBackground:"#f2f1f8",gutterForeground:"#0c006b70",lineHighlight:"#e1def3"},styles:[{tag:l.comment,color:"#9995b7"},{tag:l.keyword,color:"#ff5792",fontWeight:"bold"},{tag:[l.definitionKeyword,l.modifier],color:"#ff5792"},{tag:[l.className,l.tagName,l.definition(l.typeName)],color:"#0094f0"},{tag:[l.number,l.bool,l.null,l.special(l.brace)],color:"#5842ff"},{tag:[l.definition(l.propertyName),l.function(l.variableName)],color:"#0095a8"},{tag:l.typeName,color:"#b3694d"},{tag:[l.propertyName,l.variableName],color:"#fa8900"},{tag:l.operator,color:"#ff5792"},{tag:l.self,color:"#e64100"},{tag:[l.string,l.regexp],color:"#00b368"},{tag:[l.paren,l.bracket],color:"#0431fa"},{tag:l.labelName,color:"#00bdd6"},{tag:l.attributeName,color:"#e64100"},{tag:l.angleBracket,color:"#9995b7"}]}),oe({variant:"light",settings:{background:"#faf4ed",foreground:"#575279",caret:"#575279",selection:"#6e6a8614",gutterBackground:"#faf4ed",gutterForeground:"#57527970",lineHighlight:"#6e6a860d"},styles:[{tag:l.comment,color:"#9893a5"},{tag:[l.bool,l.null],color:"#286983"},{tag:l.number,color:"#d7827e"},{tag:l.className,color:"#d7827e"},{tag:[l.angleBracket,l.tagName,l.typeName],color:"#56949f"},{tag:l.attributeName,color:"#907aa9"},{tag:l.punctuation,color:"#797593"},{tag:[l.keyword,l.modifier],color:"#286983"},{tag:[l.string,l.regexp],color:"#ea9d34"},{tag:l.variableName,color:"#d7827e"}]}),oe({variant:"light",settings:{background:"#FFFFFF",foreground:"#000000",caret:"#000000",selection:"#FFFD0054",gutterBackground:"#FFFFFF",gutterForeground:"#00000070",lineHighlight:"#00000008"},styles:[{tag:l.comment,color:"#CFCFCF"},{tag:[l.number,l.bool,l.null],color:"#E66C29"},{tag:[l.className,l.definition(l.propertyName),l.function(l.variableName),l.labelName,l.definition(l.typeName)],color:"#2EB43B"},{tag:l.keyword,color:"#D8B229"},{tag:l.operator,color:"#4EA44E",fontWeight:"bold"},{tag:[l.definitionKeyword,l.modifier],color:"#925A47"},{tag:l.string,color:"#704D3D"},{tag:l.typeName,color:"#2F8996"},{tag:[l.variableName,l.propertyName],color:"#77ACB0"},{tag:l.self,color:"#77ACB0",fontWeight:"bold"},{tag:l.regexp,color:"#E3965E"},{tag:[l.tagName,l.angleBracket],color:"#BAA827"},{tag:l.attributeName,color:"#B06520"},{tag:l.derefOperator,color:"#000"}]}),oe({variant:"light",settings:{background:"#fef7e5",foreground:"#586E75",caret:"#000000",selection:"#073642",gutterBackground:"#fef7e5",gutterForeground:"#586E7580",lineHighlight:"#EEE8D5"},styles:[{tag:l.comment,color:"#93A1A1"},{tag:l.string,color:"#2AA198"},{tag:l.regexp,color:"#D30102"},{tag:l.number,color:"#D33682"},{tag:l.variableName,color:"#268BD2"},{tag:[l.keyword,l.operator,l.punctuation],color:"#859900"},{tag:[l.definitionKeyword,l.modifier],color:"#073642",fontWeight:"bold"},{tag:[l.className,l.self,l.definition(l.propertyName)],color:"#268BD2"},{tag:l.function(l.variableName),color:"#268BD2"},{tag:[l.bool,l.null],color:"#B58900"},{tag:l.tagName,color:"#268BD2",fontWeight:"bold"},{tag:l.angleBracket,color:"#93A1A1"},{tag:l.attributeName,color:"#93A1A1"},{tag:l.typeName,color:"#859900"}]}),oe({variant:"light",settings:{background:"#FFFFFF",foreground:"#4D4D4C",caret:"#AEAFAD",selection:"#D6D6D6",gutterBackground:"#FFFFFF",gutterForeground:"#4D4D4C80",lineHighlight:"#EFEFEF"},styles:[{tag:l.comment,color:"#8E908C"},{tag:[l.variableName,l.self,l.propertyName,l.attributeName,l.regexp],color:"#C82829"},{tag:[l.number,l.bool,l.null],color:"#F5871F"},{tag:[l.className,l.typeName,l.definition(l.typeName)],color:"#C99E00"},{tag:[l.string,l.special(l.brace)],color:"#718C00"},{tag:l.operator,color:"#3E999F"},{tag:[l.definition(l.propertyName),l.function(l.variableName)],color:"#4271AE"},{tag:l.keyword,color:"#8959A8"},{tag:l.derefOperator,color:"#4D4D4C"}]});const Bc=[oe({variant:"dark",settings:{background:"var(--cm-background)",foreground:"#abb2bf",caret:"#528bff",selection:"#3E4451",lineHighlight:"#2c313c",gutterBackground:"var(--color-background)",gutterForeground:"var(--gray-10)"},styles:[{tag:l.comment,color:"var(--cm-comment)"},{tag:l.variableName,color:"#abb2bf"},{tag:[l.string,l.special(l.brace)],color:"#98c379"},{tag:l.number,color:"#d19a66"},{tag:l.bool,color:"#d19a66"},{tag:l.null,color:"#d19a66"},{tag:l.keyword,color:"#c678dd",fontWeight:500},{tag:l.className,color:"#61afef"},{tag:l.definition(l.typeName),color:"#61afef"},{tag:l.typeName,color:"#56b6c2"},{tag:l.angleBracket,color:"#abb2bf"},{tag:l.tagName,color:"#e06c75"},{tag:l.attributeName,color:"#d19a66"},{tag:l.operator,color:"#56b6c2",fontWeight:500},{tag:[l.function(l.variableName)],color:"#61afef"},{tag:[l.propertyName],color:"#e5c07b"}]}),P.theme({".mo-cm-reactive-reference":{fontWeight:"400",color:"#2a7aa5",borderBottom:"2px solid #bad3de"},".mo-cm-reactive-reference-hover":{cursor:"pointer",borderBottomWidth:"3px",borderBottomColor:"#4a90a5"}})],Pc=[oe({variant:"light",settings:{background:"#ffffff",foreground:"#000000",caret:"#000000",selection:"#d7d4f0",lineHighlight:"#cceeff44",gutterBackground:"var(--color-background)",gutterForeground:"var(--gray-10)"},styles:[{tag:l.comment,color:"var(--cm-comment)"},{tag:l.variableName,color:"#000000"},{tag:[l.string,l.special(l.brace)],color:"#a11"},{tag:l.number,color:"#164"},{tag:l.bool,color:"#219"},{tag:l.null,color:"#219"},{tag:l.keyword,color:"#708",fontWeight:500},{tag:l.className,color:"#00f"},{tag:l.definition(l.typeName),color:"#00f"},{tag:l.typeName,color:"#085"},{tag:l.angleBracket,color:"#000000"},{tag:l.tagName,color:"#170"},{tag:l.attributeName,color:"#00c"},{tag:l.operator,color:"#a2f",fontWeight:500},{tag:[l.function(l.variableName)],color:"#00c"},{tag:[l.propertyName],color:"#05a"}]}),P.theme({".mo-cm-reactive-reference":{fontWeight:"400",color:"#005f87",borderBottom:"2px solid #bad3de"},".mo-cm-reactive-reference-hover":{cursor:"pointer",borderBottomWidth:"3px"}})];function ta(e){let{showPlaceholder:t,enableAI:n}=e;return t?"marimo-import":n?"ai":"none"}const jc=e=>{let{cellId:t,keymapConfig:n,hotkeys:r,enableAI:o,cellActions:a,completionConfig:i,lspConfig:s,diagnosticsConfig:u,displayConfig:c,inlineAiTooltip:d}=e,f=ta(e);return[Jd(n,r),Fc(),Lc(),cs(),Dd({cellId:t,completionConfig:i,hotkeys:r,placeholderType:f,lspConfig:s,diagnosticsConfig:u}),Fd({cellId:t,hotkeys:r,cellActions:a,keymapConfig:n}),Rc(e),Ic(),u!=null&&u.enabled?jf():[],o&&d?[es({prompt:g=>ss({prompt:g.prompt,selection:g.selection,codeBefore:g.codeBefore,codeAfter:g.codeAfter,language:gd(g.editorView)})}),Ht.of({hideOnBlur:!0})]:[],Pd(t,c.reference_highlighting??!0)]};var Mc=e=>{let{from:t,to:n}=e.state.selection.main;if(t!==n)return!1;let r=e.state.doc.lineAt(n);return r.text.slice(0,n-r.from).trim()===""?!1:$f(e)};const Rc=e=>{let{theme:t,hotkeys:n,completionConfig:r,acceptCompletionOnEnter:o,cellId:a,lspConfig:i,diagnosticsConfig:s}=e,u=ta(e);return[P.lineWrapping,kf(),xf(),Tf(),Lf(),Nf(),Ff(),pf(),yf({position:"fixed",parent:document.querySelector("#App")??void 0}),pd(),t==="dark"?Bc:Pc,Ad(i),pc(r),If(),Uc(),Hf(),ds(o),ct.high(Je.of(Wf)),Sf(),wf(),hf.of(" "),ni(vf,{fallback:!0}),Je.of(gf),yd({placeholderType:u,completionConfig:r,hotkeys:n,cellId:a,lspConfig:{...i,diagnostics:s}}),fd.of(Pf()),Tr.allowMultipleSelections.of(!0),Cc(n),Je.of([{key:"Tab",run:c=>oi(c)||Mc(c)||Rf(c),preventDefault:!0},{key:n.getHotkey("completion.moveDown").key,run:c=>Mt(c.state)===null?!1:(Fn(!0)(c),!0),preventDefault:!0},{key:n.getHotkey("completion.moveUp").key,run:c=>Mt(c.state)===null?!1:(Fn(!1)(c),!0),preventDefault:!0}]),Je.of([...Uf,Df])]};var et=(e=>!e||e instanceof WebAssembly.Module?e:typeof e=="object"&&"default"in e?e.default??e:e)(Pm),tr=e=>{Mm(e),typeof Ci=="function"&&Ci(),Gc(vt)};function Gc(e){typeof e.__wbindgen_start=="function"&&e.__wbindgen_start()}if(et&&et.__wbindgen_start)tr(et);else if("Bun"in globalThis){let e;if(et instanceof WebAssembly.Module)({instance:e}=await WebAssembly.instantiate(et,{"./loro_wasm_bg.js":vt}));else{let t=Bun.pathToFileURL(et);({instance:e}=await WebAssembly.instantiateStreaming(fetch(t),{"./loro_wasm_bg.js":vt}))}tr(e.exports)}else{let e=et instanceof WebAssembly.Module?et:await gm(()=>import("./loro_wasm_bg-DWJCS9pK.js").then(async r=>(await r.__tla,r)),__vite__mapDeps([0,1,2]),import.meta.url),t=e instanceof WebAssembly.Module?e:e&&e.default||e,n;if(t instanceof WebAssembly.Instance)n=t;else if(t instanceof WebAssembly.Module)n=await WebAssembly.instantiate(t,{"./loro_wasm_bg.js":vt});else if(t instanceof ArrayBuffer||ArrayBuffer.isView(t)){let{instance:r}=await WebAssembly.instantiate(t,{"./loro_wasm_bg.js":vt});n=r}else if(typeof t=="string"||t instanceof URL){let r=await fetch(t),{instance:o}=await WebAssembly.instantiateStreaming(r,{"./loro_wasm_bg.js":vt});n=o}else throw console.error("Unsupported wasm import type:",t),Error("Unsupported wasm import type: "+typeof t);tr(n.exports??n)}var Jc=["Map","Text","List","Tree","MovableList","Counter"];function Wc(e){return e.startsWith("cid:")}function na(e){if(typeof e!="object"||!e)return!1;let t=Object.getPrototypeOf(e);return typeof t!="object"||!t||typeof t.kind!="function"?!1:Jc.includes(e.kind())}var Vc=class{constructor(e,t=3e4){this.listeners=new Set,this.inner=new jm(e,t),this.peer=e,this.timeout=t}apply(e,t="remote"){let{updated:n,added:r}=this.inner.apply(e);this.listeners.forEach(o=>{o({updated:n,added:r,removed:[]},t)}),this.startTimerIfNotEmpty()}setLocalState(e){let t=this.inner.getState(this.peer)==null;this.inner.setLocalState(e),t?this.listeners.forEach(n=>{n({updated:[],added:[this.inner.peer()],removed:[]},"local")}):this.listeners.forEach(n=>{n({updated:[this.inner.peer()],added:[],removed:[]},"local")}),this.startTimerIfNotEmpty()}getLocalState(){return this.inner.getState(this.peer)}getAllStates(){return this.inner.getAllStates()}encode(e){return this.inner.encode(e)}encodeAll(){return this.inner.encodeAll()}addListener(e){this.listeners.add(e)}removeListener(e){this.listeners.delete(e)}peers(){return this.inner.peers()}destroy(){clearInterval(this.timer),this.listeners.clear()}startTimerIfNotEmpty(){this.inner.isEmpty()||this.timer!=null||(this.timer=setInterval(()=>{let e=this.inner.removeOutdated();e.length>0&&this.listeners.forEach(t=>{t({updated:[],added:[],removed:e},"timeout")}),this.inner.isEmpty()&&(clearInterval(this.timer),this.timer=void 0)},this.timeout/2))}};_r.prototype.toJsonWithReplacer=function(e){let t=new Set,n=this,r=(a,i)=>{if(typeof i=="string"&&Wc(i)&&!t.has(i)){t.add(i);let u=n.getContainerById(i);if(u==null)throw Error(`ContainerID not found: ${i}`);let c=e(a,u);if(c===u){let d=u.getShallowValue();return typeof d=="object"?o(d):d}if(na(c))throw Error("Using new container is not allowed in toJsonWithReplacer");return typeof c=="object"&&c?o(c):c}if(typeof i=="object"&&i)return o(i);let s=e(a,i);if(na(s))throw Error("Using new container is not allowed in toJsonWithReplacer");return s},o=a=>{if(Array.isArray(a))return a.map((s,u)=>r(u,s)).filter(s=>s!==void 0);let i={};for(let[s,u]of Object.entries(a)){let c=r(s,u);c!==void 0&&(i[s]=c)}return i};return o(n.getShallowValue())};var ra=Symbol("loro.callPendingEventsWrapped");function $c(e,t){let n=Object.getOwnPropertyDescriptor(e,t);if(!n||typeof n.value!="function")return;let r=n.value;if(r[ra])return;let o=function(...a){let i;try{return i=r.apply(this,a),i}finally{i&&typeof i.then=="function"?i.finally(()=>{ki()}):ki()}};o[ra]=!0,Object.defineProperty(e,t,{...n,value:o})}function nr(e,t){for(let n of t)$c(e,n)}nr(_r.prototype,["setDetachedEditing","attach","detach","fork","forkAt","checkoutToLatest","checkout","commit","getCursorPos","revertTo","export","exportJsonUpdates","exportJsonInIdSpan","importJsonUpdates","import","importUpdateBatch","importBatch","travelChangeAncestors","getChangedContainersIn","diff","applyDiff","setPeerId"]),nr(Um.prototype,["set","delete","apply","removeOutdated"]),nr(Bm.prototype,["undo","redo"]);const Hc=P.baseTheme({".loro-cursor":{position:"absolute",width:"2px",display:"inline-block",height:"1.2em"},".loro-cursor::before":{position:"absolute",top:"1.3em",left:"0",content:"var(--rtc-name)",padding:"2px 6px",fontSize:"12px",borderRadius:"3px",whiteSpace:"nowrap",userSelect:"none",backgroundColor:"inherit",opacity:"0.7"},".loro-selection":{opacity:"0.5"}});Ar.define();const Lt=fe.define(),rr=He.define({create(){return{remoteCursors:new Map,isCheckout:!1}},update(e,t){for(let n of t.effects)if(n.is(Lt))switch(n.value.type){case"update":{let{peer:r,user:o,cursor:a}=n.value;e.remoteCursors.set(r,{uid:r,cursor:a,user:o});break}case"delete":e.remoteCursors.delete(n.value.peer);break;case"checkout":e.isCheckout=n.value.checkout}return e}});var oa=e=>{let t=e.transactions.flatMap(n=>n.effects).filter(n=>n.is(Lt));return e.docChanged||e.viewportChanged||t.length>0};const qc=()=>ei({above:!0,class:"loro-cursor-layer",update:oa,markers:e=>{let{remoteCursors:t,isCheckout:n}=e.state.field(rr);return n?[]:[...t.values()].flatMap(r=>{var a,i;let o=bt.cursor(r.cursor.anchor);return Kc.createCursor(e,o,((a=r.user)==null?void 0:a.name)||"unknown",((i=r.user)==null?void 0:i.colorClassName)||"")})}}),zc=()=>ei({above:!1,class:"loro-selection-layer",update:oa,markers:e=>{let{remoteCursors:t,isCheckout:n}=e.state.field(rr);return n?[]:[...t.entries()].filter(([,r])=>r.cursor.head!==void 0&&r.cursor.anchor!==r.cursor.head).flatMap(([,r])=>{var a;let o=bt.range(r.cursor.anchor,r.cursor.head);return Af.forRange(e,`loro-selection ${((a=r.user)==null?void 0:a.colorClassName)||""}`,o)})}});var Kc=class jr{constructor(t,n,r,o,a){this.left=t,this.top=n,this.height=r,this.name=o,this.colorClassName=a}draw(){let t=document.createElement("div");return this.adjust(t),t}update(t){return this.adjust(t),!0}adjust(t){t.style.left=`${this.left}px`,t.style.top=`${this.top}px`,t.style.height=`${this.height}px`,t.className=`loro-cursor ${this.colorClassName}`,t.style.setProperty("--rtc-name",`"${this.name}"`)}eq(t){return this.left===t.left&&this.top===t.top&&this.height===t.height&&this.name===t.name}static createCursor(t,n,r,o){let a=jr.calculateAbsoluteCursorPosition(n,t);if(!a)return[];let i=t.scrollDOM.getBoundingClientRect(),s=(t.textDirection===Cf.LTR?i.left:i.right-t.scrollDOM.clientWidth)-t.scrollDOM.scrollLeft,u=i.top-t.scrollDOM.scrollTop;return[new jr(a.left-s,a.top-u,a.bottom-a.top,r,o)]}static calculateAbsoluteCursorPosition(t,n){let r=Math.max(0,Math.min(n.state.doc.length,t.anchor));return n.coordsAtPos(r,t.assoc||1)}},Yc=(e,t,n,r)=>{let o=[],{updated:a,added:i}=n;for(let s of[...a,...i]){let u=aa(e,t,s,r);u&&o.push(u)}return o},aa=(e,t,n,r)=>{var u,c;let o=t.getAllStates()[n];if(!o||n===e.peerIdStr||o.scopeId!==r)return;if(o.type==="delete")return Lt.of({type:"delete",peer:o.uid,scopeId:o.scopeId});let a=Si.decode(o.cursor.anchor),i=((u=e.getCursorPos(a))==null?void 0:u.offset)??0,s=i;if(o.cursor.head){let d=Si.decode(o.cursor.head);s=((c=e.getCursorPos(d))==null?void 0:c.offset)??0}return Lt.of({type:"update",peer:o.uid,scopeId:o.scopeId,cursor:{anchor:i,head:s},user:o.user})},Xc=class{constructor(e,t,n,r,o,a,i){this.view=e,this.doc=t,this.user=n,this.awareness=r,this.getTextFromDoc=o,this.scopeId=a,this.getUserId=i,this.sub=this.doc.subscribe(s=>{if(s.by==="local"){let u=[];for(let c of this.awareness.peers()){let d=aa(this.doc,this.awareness,c,this.scopeId);d&&u.push(d)}this.view.dispatch({effects:u})}else s.by==="checkout"&&this.view.dispatch({effects:[Lt.of({type:"checkout",checkout:this.doc.isDetached()})]})})}update(e){if(!e.selectionSet&&!e.focusChanged&&!e.docChanged)return;let t=e.state.selection.main;if(this.view.hasFocus&&!this.doc.isDetached()){let n=Zc({doc:this.doc,getTextFromDoc:this.getTextFromDoc,anchor:t.anchor,head:t.head});this.awareness.setLocalState({type:"update",uid:this.getUserId?this.getUserId():this.doc.peerIdStr,scopeId:this.scopeId,cursor:n,user:this.user})}else this.awareness.setLocalState({type:"delete",uid:this.getUserId?this.getUserId():this.doc.peerIdStr,scopeId:this.scopeId})}destroy(){var e;(e=this.sub)==null||e.call(this),this.awareness.setLocalState({type:"delete",uid:this.getUserId?this.getUserId():this.doc.peerIdStr,scopeId:this.scopeId})}},Qc=class{constructor(e,t,n,r){this.view=e,this.doc=t,this.awareness=n,this.scopeId=r;let o=async(a,i)=>{i!=="local"&&this.view.dispatch({effects:Yc(this.doc,this.awareness,a,this.scopeId)})};this._awarenessListener=o,this.awareness.addListener(o)}destroy(){this._awarenessListener&&this.awareness.removeListener(this._awarenessListener)}},Zc=({doc:e,getTextFromDoc:t,anchor:n,head:r})=>{var i,s;n===r&&(r=void 0);let o=(i=t(e).getCursor(n))==null?void 0:i.encode();if(!o)throw Error("cursor head not found");let a;return r!==void 0&&(a=(s=t(e).getCursor(r))==null?void 0:s.encode()),{anchor:o,head:a}};const gn=["bg-(--amber-6)","bg-(--blue-6)","bg-(--crimson-6)","bg-(--cyan-6)","bg-(--grass-6)","bg-(--gray-6)","bg-(--green-6)","bg-(--lime-6)","bg-(--orange-6)","bg-(--purple-6)","bg-(--red-6)","bg-(--sage-6)","bg-(--sky-6)","bg-(--slate-6)"],eu=e=>{if(typeof e=="string"){let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n),t=Math.trunc(t);return gn[Math.abs(t)%gn.length]}return gn[e%gn.length]};var de=$e.get("rtc"),ia=de.get("awareness").disabled(),or="awareness:";function tu(e,t){let n=new TextEncoder().encode(e);return new Uint8Array([...n,...t])}function nu(e,t){return new TextDecoder().decode(e.slice(0,t.length))===t}function ru(e,t){return e.slice(t.length)}ut=Dt(void 0);var ae=new _r,hn=new Vc(ae.peerIdStr),ar=Jf(()=>{de.debug("creating websocket");let e=new Gm(Qa().getWsSyncURL(hm()).toString(),void 0,{maxRetries:10,debug:!1,startClosed:!0,connectionTimeout:1e4});return Promise.resolve().then(async()=>{await Za(),Td()==="edit"&&e.reconnect()}),e.addEventListener("message",async t=>{let n=await t.data.arrayBuffer(),r=new Uint8Array(n);if(nu(r,or)){let o=ru(r,or);hn.apply(o),ia.debug("applied awareness update");return}ae.import(r),de.debug("imported doc change. new doc:",ae.toJSON()),ee.get(ut)!==ae&&ee.set(ut,ae)}),e.addEventListener("open",()=>{de.debug("websocket open")}),e.addEventListener("close",t=>{de.warn("websocket close",t),ee.get(ut)===ae&&ee.set(ut,void 0)}),e});Er()&&ar(),ae.subscribeLocalUpdates(e=>{de.debug("local update, sending to server"),ar().send(e)}),hn.addListener((e,t)=>{let n=[...e.added,...e.removed,...e.updated];t==="local"&&(ia.debug("awareness changes",n),ar().send(tu(or,hn.encode(n))))});function ir(e,t,n=""){if(Zd())return{extension:[],code:n};let r=ae.getByPath(`codes/${e}`)!==void 0,o=ae.getMap("codes").getOrCreateContainer(e,new Dr);return r||(de.log("initializing code for new cell",n),o.insert(0,n)),{code:n.toString(),extension:[ou(e),au(e),iu(ae,hn,{get name(){return ee.get(Id)||"Anonymous"},get colorClassName(){return eu(this.name)}},()=>o,e),Ed(ae,["codes",e],()=>o)]}}function ou(e){let t=(r,o)=>{let a=r.state.field(Sn).type,i=o.toString();i&&i!==a&&(de.debug(`[incoming] setting language type: ${a} -> ${i}`),_t(r,{language:i,keepCodeAsIs:!0}))},n=(r,o)=>{let a=r.state.field(wr),i=o.toJSON();En(a,i)||r.dispatch({effects:[Ma.of(i)],annotations:[Ua.of(!0)]})};return Xe.define(r=>{let o;return Promise.resolve().then(()=>{let a=ae.getByPath(`languages/${e}`);if(!a){de.error("no language container found for cell",e);return}Ut(a instanceof Dr,"language type is not a LoroText");let i=ae.getByPath(`language_metadata/${e}`);if(!i){de.error("no language metadata container found for cell",e);return}Ut(i instanceof xi,"language metadata is not a LoroMap"),t(r,a),n(r,i),o=ae.subscribe(s=>{if(s.origin==="local")return;let u=s.events.some(d=>d.target===a.id),c=s.events.some(d=>d.target===i.id);u&&t(r,a),c&&n(r,i)})}),{destroy(){o()}}})}function au(e){let t=ae.getMap("languages").getOrCreateContainer(e,new Dr),n=ae.getMap("language_metadata").getOrCreateContainer(e,new xi);return P.updateListener.of(r=>{let o=t.toString()!=="";if(!r.docChanged&&o)return;if(!o){let i=br(r.state).type;_t(r.view,{language:i}),de.debug("no initial language, setting default to",i),t.delete(0,t.length),t.insert(0,i),de.debug("no initial language metadata, setting default to",r.state.field(wr));let s=r.state.field(wr);for(let u of Object.keys(s))n.set(u,s[u]);ae.commit();return}let a=!1;for(let i of r.transactions)if(!i.annotation(Ua)){for(let s of i.effects)if(s.is(ld)&&t.toString()!==s.value.type&&(de.debug(`[outgoing] language change: ${t} -> ${s.value.type}`),t.delete(0,t.length),t.insert(0,s.value.type),a=!0),s.is(Ma)||s.is(Ga)){let u=s.value;s.is(Ga)?(de.debug("[outgoing] setting language metadata: ",u),n.clear()):de.debug("[outgoing] updating language metadata: ",u);for(let c of Object.keys(u))n.set(c,u[c]);a=!0}}a&&ae.commit()})}function iu(e,t,n,r,o,a){let i=`loro:cell:${o}`;return[rr,qc(),zc(),Xe.define(s=>new Xc(s,e,n,t,r,i,a)),Xe.define(s=>new Qc(s,e,t,i)),Hc]}var su=Ge(),lu=lf;Br=e=>{let t=(0,su.c)(41),{resetOnBlur:n,placeholderText:r,initialValue:o,flexibleWidth:a,onNameChange:i,className:s}=e,u=n===void 0?!1:n,c=o===void 0?null:o,d=a===void 0?!1:a,{sendListFiles:f}=Ln(),[g,m]=(0,F.useState)(c),h;t[0]===Symbol.for("react.memo_cache_sentinel")?(h=[],t[0]=h):h=t[0];let[w,y]=(0,F.useState)(h),[v,C]=(0,F.useState)(!1),T=(0,F.useRef)(null),D=(0,F.useRef)(!1),B,x;t[1]===c?(B=t[2],x=t[3]):(B=()=>{m(c)},x=[c],t[1]=c,t[2]=B,t[3]=x),(0,F.useEffect)(B,x);let S;t[4]===Symbol.for("react.memo_cache_sentinel")?(S=()=>{C(!0)},t[4]=S):S=t[4];let J=S,ne;t[5]!==c||t[6]!==u?(ne=U=>{var Z;(Z=U.relatedTarget)!=null&&Z.closest(".filename-input")||(C(!1),u&&m(c))},t[5]=c,t[6]=u,t[7]=ne):ne=t[7];let M=ne,O;t[8]===g?O=t[9]:(O=Qe.dirname(g||""),t[8]=g,t[9]=O);let j=O,ie=Qe.basename(g||""),_=w.filter(U=>Qe.basename(U.path).startsWith(ie)),R;t[10]!==j||t[11]!==v||t[12]!==f?(R=async()=>{if(!v){y([]);return}y((await f({path:j})).files)},t[10]=j,t[11]=v,t[12]=f,t[13]=R):R=t[13];let ce;t[14]!==j||t[15]!==v?(ce=[j,v],t[14]=j,t[15]=v,t[16]=ce):ce=t[16];let{isPending:Q}=Am(R,ce),N=cu(g,w,c),A=(N||_.length>0)&&(0,b.jsxs)(yi,{className:"font-mono",children:[!Q&&(0,b.jsx)(Im,{children:"No files"}),N&&(0,b.jsxs)(bi,{variant:"success",className:"py-2 px-3",onSelect:()=>{var U;N&&(D.current=!0,i(N),(U=T.current)==null||U.blur())},children:[(0,b.jsx)(re,{className:"w-4 h-4 mr-2"})," ",(0,b.jsxs)("span",{className:"text-sm",children:[c?"Rename to: ":"Save as: ",(0,b.jsx)("span",{className:"font-medium text-sm",children:Qe.basename(N)})]})]},"_rename_"),_.map(U=>{let Z=dm[U.isDirectory?"directory":um(U.path)];return(0,b.jsxs)(bi,{variant:U.isDirectory?"default":"muted",className:"py-2 px-3",onSelect:()=>{U.isDirectory?m(`${U.path}/`):m(U.path)},children:[(0,b.jsx)(Z,{className:"w-4 h-4 mr-2"})," ",Qe.basename(U.path)]},U.path)})]}),$=Math.max(20,(g==null?void 0:g.length)||(r==null?void 0:r.length)||0)*10,L=v?g||"":c||"",q;t[17]!==d||t[18]!==$?(q=d?{maxWidth:$}:void 0,t[17]=d,t[18]=$,t[19]=q):q=t[19];let je;t[20]===s?je=t[21]:(je=st(s,"w-full px-4 py-1 my-1 h-9 font-mono text-foreground/60"),t[20]=s,t[21]=je);let ge;t[22]!==r||t[23]!==L||t[24]!==q||t[25]!==je?(ge=(0,b.jsx)(lu,{children:(0,b.jsx)(Tm,{"data-testid":"dir-completion-input",tabIndex:-1,rootClassName:"border-none justify-center px-1",spellCheck:"false",value:L,onKeyDown:uu,icon:null,ref:T,onValueChange:m,placeholder:r,autoComplete:"off",style:q,className:je})}),t[22]=r,t[23]=L,t[24]=q,t[25]=je,t[26]=ge):ge=t[26];let Ye=A&&"group-focus-within:block",Me;t[27]===Ye?Me=t[28]:(Me=st("p-0 w-full min-w-80 max-w-80vw hidden",Ye),t[27]=Ye,t[28]=Me);let Pe;t[29]!==A||t[30]!==Me?(Pe=(0,b.jsx)(cf,{side:"bottom",className:Me,portal:!1,children:A}),t[29]=A,t[30]=Me,t[31]=Pe):Pe=t[31];let Re;t[32]!==ge||t[33]!==Pe?(Re=(0,b.jsxs)(yi,{children:[ge,Pe]}),t[32]=ge,t[33]=Pe,t[34]=Re):Re=t[34];let V;t[35]!==M||t[36]!==Re?(V=(0,b.jsx)(Fm,{onFocus:J,onBlur:M,shouldFilter:!1,id:"filename-input",className:"bg-transparent group filename-input",children:Re}),t[35]=M,t[36]=Re,t[37]=V):V=t[37];let I;return t[38]!==v||t[39]!==V?(I=(0,b.jsx)(af,{children:(0,b.jsx)(uf,{open:v,modal:!1,children:V})}),t[38]=v,t[39]=V,t[40]=I):I=t[40],I};function cu(e,t,n){if(e&&!e.endsWith("/")&&((id("markdown")?new Set(["py","md","markdown","qmd"]):new Set(["py"])).has(Qe.extension(e))||(e=e.endsWith(".")?`${e}py`:e.endsWith(".p")?`${e}y`:`${e}.py`),!t.some(r=>r.path===e||Qe.basename(r.path)===e)&&!(n&&(n===e||Qe.basename(n)===e))))return e}function uu(e){e.key==="Escape"&&e.currentTarget.blur()}var sa=Ge(),du=e=>{let t=(0,sa.c)(33),n=()=>{mf(new Blob([r()],{type:"text/plain"}),`${e.proposedName}.json`)},r=le(pu),o;t[0]!==n||t[1]!==e?(o=B=>{B.preventDefault(),n(),e.closeModal()},t[0]=n,t[1]=e,t[2]=o):o=t[2];let a;t[3]===e?a=t[4]:(a=B=>{B.key==="Escape"&&e.closeModal()},t[3]=e,t[4]=a);let i;t[5]===Symbol.for("react.memo_cache_sentinel")?(i=(0,b.jsx)(di,{className:"text-accent-foreground mb-6",children:"Download unsaved changes?"}),t[5]=i):i=t[5];let s;t[6]===Symbol.for("react.memo_cache_sentinel")?(s={wordBreak:"break-word"},t[6]=s):s=t[6];let u,c;t[7]===Symbol.for("react.memo_cache_sentinel")?(u=(0,b.jsx)("p",{children:"This app has unsaved changes. To recover:"}),c={paddingBottom:"10px"},t[7]=u,t[8]=c):(u=t[7],c=t[8]);let d;t[9]===e.proposedName?d=t[10]:(d=(0,b.jsxs)("li",{style:c,children:['Click the "Download" button. This will download a file called\xA0',(0,b.jsxs)("code",{children:[e.proposedName,".json"]}),". This file contains your code."]}),t[9]=e.proposedName,t[10]=d);let f;t[11]===Symbol.for("react.memo_cache_sentinel")?(f={paddingBottom:"10px"},t[11]=f):f=t[11];let g;t[12]===Symbol.for("react.memo_cache_sentinel")?(g={display:"block",padding:"10px"},t[12]=g):g=t[12];let m;t[13]===e.proposedName?m=t[14]:(m=(0,b.jsxs)("code",{style:g,children:["marimo recover ",e.proposedName,".json ",">"," ",e.proposedName,".py"]}),t[13]=e.proposedName,t[14]=m);let h;t[15]===e.proposedName?h=t[16]:(h=(0,b.jsxs)("code",{children:[e.proposedName,".py"]}),t[15]=e.proposedName,t[16]=h);let w;t[17]!==h||t[18]!==m?(w=(0,b.jsxs)("li",{style:f,children:["In your terminal, type",m,"to overwrite ",h," with the recovered changes."]}),t[17]=h,t[18]=m,t[19]=w):w=t[19];let y;t[20]!==w||t[21]!==d?(y=(0,b.jsx)(Em,{className:"markdown break-words",style:s,children:(0,b.jsxs)("div",{className:"prose dark:prose-invert",children:[u,(0,b.jsxs)("ol",{children:[d,w]})]})}),t[20]=w,t[21]=d,t[22]=y):y=t[22];let v;t[23]===e.closeModal?v=t[24]:(v=(0,b.jsx)(lt,{"aria-label":"Cancel",variant:"secondary","data-testid":"cancel-recovery-button",onClick:e.closeModal,children:"Cancel"}),t[23]=e.closeModal,t[24]=v);let C;t[25]===Symbol.for("react.memo_cache_sentinel")?(C=(0,b.jsx)(lt,{"data-testid":"download-recovery-button","aria-label":"Download",variant:"default",type:"submit",children:"Download"}),t[25]=C):C=t[25];let T;t[26]===v?T=t[27]:(T=(0,b.jsxs)(fi,{children:[v,C]}),t[26]=v,t[27]=T);let D;return t[28]!==o||t[29]!==a||t[30]!==y||t[31]!==T?(D=(0,b.jsx)(mi,{className:"w-fit",children:(0,b.jsxs)("form",{onSubmit:o,onKeyDown:a,children:[i,y,T]})}),t[28]=o,t[29]=a,t[30]=y,t[31]=T,t[32]=D):D=t[32],D};const fu=e=>{let t=(0,sa.c)(12),{filename:n,needsSave:r}=e,{openModal:o,closeModal:a}=gi(),i;t[0]===n?i=t[1]:(i=n===null?"app":Qe.basename(n).split(".")[0],t[0]=n,t[1]=i);let s=i,u;t[2]!==a||t[3]!==r||t[4]!==o||t[5]!==s?(u=()=>{r&&o((0,b.jsx)(du,{proposedName:s,closeModal:a}))},t[2]=a,t[3]=r,t[4]=o,t[5]=s,t[6]=u):u=t[6];let c=u;pi("global.save",c);let d;t[7]===Symbol.for("react.memo_cache_sentinel")?(d=vi("global.save"),t[7]=d):d=t[7];let f=r?"yellow":"gray",g;t[8]===Symbol.for("react.memo_cache_sentinel")?(g=(0,b.jsx)(ci,{strokeWidth:1.5,size:18}),t[8]=g):g=t[8];let m;return t[9]!==c||t[10]!==f?(m=(0,b.jsx)(xn,{content:d,children:(0,b.jsx)(Ai,{onClick:c,id:"save-button","aria-label":"Save",className:"rectangle",color:f,children:g})}),t[9]=c,t[10]=f,t[11]=m):m=t[11],m};function mu(e){return{id:e.id,name:e.name,code:e.code,code_hash:null,config:{column:0,...e.config}}}function pu(){let e=yr(vr()),t={version:"1",metadata:{marimo_version:of()},cells:e.map(mu)};return JSON.stringify(t,null,2)}let sr;_n=Dt(void 0),sr=Dt(e=>{let t=e(_n);return gu({state:e(tt),layout:e(ai),lastSavedNotebook:t})});function gu({state:e,layout:t,lastSavedNotebook:n}){if(!n)return!1;let{cellIds:r,cellData:o}=e,a=r.inOrderIds.map(c=>o[c]),i=a.map(c=>c.code),s=a.map(c=>c.config),u=a.map(c=>c.name);return!ri(i,n.codes)||!ri(u,n.names)||!En(s,n.configs)||!En(t.selectedLayout,n.layout.selectedLayout)||!En(t.layoutData,n.layout.layoutData)}var hu=Ge();function bu(e){let t=(0,hu.c)(21),{codes:n,cellConfigs:r,config:o,connStatus:a,cellNames:i,needsSave:s,kioskMode:u,onSave:c}=e,d=(0,F.useRef)(null),f;t[0]===n?f=t[1]:(f=n.join(":"),t[0]=n,t[1]=f);let g=f,m;t[2]===r?m=t[3]:(m=r.map(yu).join(":"),t[2]=r,t[3]=m);let h=m,w;t[4]===i?w=t[5]:(w=i.join(":"),t[4]=i,t[5]=w);let y=w,v;t[6]!==o||t[7]!==a.state||t[8]!==u||t[9]!==s||t[10]!==c?(v=()=>{if(!u)return o.autosave==="after_delay"&&(d.current!==null&&clearTimeout(d.current),s&&a.state===Bt.OPEN&&(d.current=setTimeout(c,o.autosave_delay))),()=>{d.current!==null&&clearTimeout(d.current)}},t[6]=o,t[7]=a.state,t[8]=u,t[9]=s,t[10]=c,t[11]=v):v=t[11];let C;t[12]!==h||t[13]!==y||t[14]!==g||t[15]!==o||t[16]!==a.state||t[17]!==u||t[18]!==s||t[19]!==c?(C=[g,h,y,o,a.state,c,u,s],t[12]=h,t[13]=y,t[14]=g,t[15]=o,t[16]=a.state,t[17]=u,t[18]=s,t[19]=c,t[20]=C):C=t[20],(0,F.useEffect)(v,C)}function yu(e){return JSON.stringify(e)}var bn=Ge();Ti=e=>{let t=(0,bn.c)(15),{kioskMode:n}=e,r=Sm(),o=se(sr),a=se(ht).state===Bt.CLOSED,{saveOrNameNotebook:i,saveIfNotebookIsPersistent:s}=Jt(),u;t[0]!==n||t[1]!==s?(u={onSave:s,kioskMode:n},t[0]=n,t[1]=s,t[2]=u):u=t[2],Nu(u),Jm();let c;t[3]===o?c=t[4]:(c=y=>{if(o)return y.preventDefault(),y.returnValue="You have unsaved changes. Are you sure you want to leave?",y.returnValue},t[3]=o,t[4]=c),Kd(window,"beforeunload",c);let d;t[5]===i?d=t[6]:(d=y=>{y.preventDefault(),y.stopPropagation(),i()},t[5]=i,t[6]=d);let f=d;if(pi("global.save",i),a){let y;return t[7]!==r||t[8]!==o?(y=(0,b.jsx)(fu,{filename:r,needsSave:o}),t[7]=r,t[8]=o,t[9]=y):y=t[9],y}let g;t[10]===Symbol.for("react.memo_cache_sentinel")?(g=vi("global.save"),t[10]=g):g=t[10];let m=o?"yellow":"hint-green",h;t[11]===Symbol.for("react.memo_cache_sentinel")?(h=(0,b.jsx)(ci,{strokeWidth:1.5,size:18}),t[11]=h):h=t[11];let w;return t[12]!==f||t[13]!==m?(w=(0,b.jsx)(xn,{content:g,children:(0,b.jsx)(Ai,{"data-testid":"save-button",id:"save-button",shape:"rectangle",color:m,onClick:f,children:h})}),t[12]=f,t[13]=m,t[14]=w):w=t[14],w},Jt=function(){let e=(0,bn.c)(21),{sendSave:t}=Ln(),{openModal:n,closeModal:r,openAlert:o}=gi(),a=Da(_n),i=xm(),s=gr(),u;e[0]!==o||e[1]!==t||e[2]!==a||e[3]!==s?(u=async(v,C)=>{let T=s.get(ht),D=s.get(Xa);if(s.get(Ld))return;if(T.state!==Bt.OPEN){o("Failed to save notebook: not connected to a kernel.");return}$e.log("saving to ",v),C&&D.format_on_save&&($e.log("formatting notebook (onSave)"),await ud());let B=vr(),x=yr(B),S=x.map(Eu),J=x.map(vu),ne=x.map(wu),M=Wa(B),O=s.get(ai);J.length!==0&&(await t({cellIds:S,codes:J,names:ne,filename:v,configs:M,layout:Qf(),persist:!0}),a({names:ne,codes:J,configs:M,layout:O}))},e[0]=o,e[1]=t,e[2]=a,e[3]=s,e[4]=u):u=e[4];let c=le(u),d;e[5]!==c||e[6]!==s?(d=v=>{let C=v===void 0?!1:v,T=s.get(Va),D=s.get(ht);la(T)&&D.state===Bt.OPEN&&c(T,C)},e[5]=c,e[6]=s,e[7]=d):d=e[7];let f=le(d),g;e[8]!==c||e[9]!==i?(g=v=>{i(v).then(C=>{C!==null&&c(C,!0)})},e[8]=c,e[9]=i,e[10]=g):g=e[10];let m=g,h;e[11]!==r||e[12]!==m||e[13]!==n||e[14]!==f||e[15]!==s?(h=()=>{let v=s.get(Va),C=s.get(ht);f(!0),!la(v)&&C.state!==Bt.CLOSED&&n((0,b.jsx)(Su,{onClose:r,onSave:m}))},e[11]=r,e[12]=m,e[13]=n,e[14]=f,e[15]=s,e[16]=h):h=e[16];let w=le(h),y;return e[17]!==f||e[18]!==c||e[19]!==w?(y={saveOrNameNotebook:w,saveIfNotebookIsPersistent:f,saveNotebook:c},e[17]=f,e[18]=c,e[19]=w,e[20]=y):y=e[20],y};function wu(e){return e.name}function vu(e){return e.code}function Eu(e){return e.id}function la(e){return e!==null&&!e.startsWith("/tmp/")&&!e.startsWith("/var/folders")&&!e.includes("AppData\\Local\\Temp")}function Nu(e){let t=(0,bn.c)(14),n=se(Xa),r=cd(),[o]=vn(ht),a=se(sr),i,s;if(t[0]!==r){let g=yr(r);i=g.map(Cu),s=g.map(ku),t[0]=r,t[1]=i,t[2]=s}else i=t[1],s=t[2];let u=s,c;t[3]===r?c=t[4]:(c=Wa(r),t[3]=r,t[4]=c);let d=c,f;t[5]!==n||t[6]!==u||t[7]!==i||t[8]!==d||t[9]!==o||t[10]!==a||t[11]!==e.kioskMode||t[12]!==e.onSave?(f={onSave:e.onSave,needsSave:a,codes:i,cellConfigs:d,cellNames:u,connStatus:o,config:n,kioskMode:e.kioskMode},t[5]=n,t[6]=u,t[7]=i,t[8]=d,t[9]=o,t[10]=a,t[11]=e.kioskMode,t[12]=e.onSave,t[13]=f):f=t[13],bu(f)}function ku(e){return e.name}function Cu(e){return e.code}var Su=e=>{let t=(0,bn.c)(17),{onClose:n,onSave:r}=e,[o,a]=(0,F.useState)(),i;t[0]!==n||t[1]!==r?(i=y=>{a(y),y.trim()&&(r(y),n())},t[0]=n,t[1]=r,t[2]=i):i=t[2];let s=i,u;t[3]===Symbol.for("react.memo_cache_sentinel")?(u=(0,b.jsx)(di,{children:"Save notebook"}),t[3]=u):u=t[3];let c;t[4]===Symbol.for("react.memo_cache_sentinel")?(c=(0,b.jsx)(Sr,{className:"text-md pt-6 px-1",children:"Save as"}),t[4]=c):c=t[4];let d;t[5]===s?d=t[6]:(d=(0,b.jsxs)("div",{className:"flex flex-col",children:[c,(0,b.jsx)(Br,{onNameChange:s,placeholderText:"filename",className:"missing-filename"})]}),t[5]=s,t[6]=d);let f;t[7]===n?f=t[8]:(f=(0,b.jsx)(lt,{"data-testid":"cancel-save-dialog-button","aria-label":"Cancel",variant:"secondary",onClick:n,children:"Cancel"}),t[7]=n,t[8]=f);let g=!o,m;t[9]===g?m=t[10]:(m=(0,b.jsx)(lt,{"data-testid":"submit-save-dialog-button","aria-label":"Save",variant:"default",disabled:g,type:"submit",children:"Save"}),t[9]=g,t[10]=m);let h;t[11]!==f||t[12]!==m?(h=(0,b.jsxs)(fi,{children:[f,m]}),t[11]=f,t[12]=m,t[13]=h):h=t[13];let w;return t[14]!==d||t[15]!==h?(w=(0,b.jsxs)(mi,{children:[u,d,h]}),t[14]=d,t[15]=h,t[16]=w):w=t[16],w};Dn=function(...e){return t=>{e.forEach(n=>{typeof n=="function"?n(t):n!=null&&(n.current=t)})}};var ca={modified:{doc:""},original:{doc:""}},ua=(0,F.createContext)(ca);function xu(e,t){return Y({},e,t,{modified:Y({},e.modified,t.modified),original:Y({},e.original,t.original)})}var lr=()=>(0,F.useContext)(ua),Au=e=>{var{children:t,theme:n}=e,[r,o]=(0,F.useReducer)(xu,Y({},ca,{theme:n}));return(0,F.useEffect)(()=>o({theme:n}),[n]),(0,b.jsx)(ua.Provider,{value:Y({},r,{dispatch:o}),children:t})},Tu=["extensions","value","selection","onChange"],da=e=>{var{extensions:t=[],value:n,selection:r,onChange:o}=e,a=Rt(e,Tu),{theme:i,dispatch:s}=lr(),u=wt(Y({},a,{theme:i}));return(0,F.useEffect)(()=>s({original:{doc:n,selection:r,extensions:[...u,...t]},originalExtension:{onChange:o,option:a,extension:[t]}}),[e]),null};da.displayName="CodeMirrorMerge.Original";var Iu=["extensions","value","selection","onChange"],fa=e=>{var{extensions:t=[],value:n,selection:r,onChange:o}=e,a=Rt(e,Iu),{theme:i,dispatch:s}=lr(),u=wt(Y({},a,{theme:i}));return(0,F.useEffect)(()=>{s({modified:{doc:n,selection:r,extensions:[...u,...t]},modifiedExtension:{onChange:o,option:a,extension:[t]}})},[e]),null};fa.displayName="CodeMirrorMerge.Modified";var Fu=["className","children","orientation","revertControls","highlightChanges","gutter","collapseUnchanged","destroyRerender","renderRevertControl","diffConfig","root"],Lu=["modified","modifiedExtension","original","originalExtension","theme","dispatch"],ma=F.forwardRef((e,t)=>{var{className:n,children:r,orientation:o,revertControls:a,highlightChanges:i,gutter:s,collapseUnchanged:u,destroyRerender:c=!0,renderRevertControl:d,diffConfig:f,root:g}=e,m=Rt(e,Fu),h=lr(),{modified:w,modifiedExtension:y,original:v,originalExtension:C,theme:T,dispatch:D}=h,B=Rt(h,Lu),x=(0,F.useRef)(null),S=(0,F.useRef)(),J={orientation:o,revertControls:a,highlightChanges:i,gutter:s,collapseUnchanged:u,renderRevertControl:d,diffConfig:f,root:g};(0,F.useImperativeHandle)(t,()=>({container:x.current,view:S.current,modified:w,original:v,config:Y({a:v,b:w,parent:x.current},J)}),[x,S,w,v,J]);var ne=P.updateListener.of(O=>{if(O.docChanged&&typeof(C==null?void 0:C.onChange)=="function"){var j=O.state.doc.toString();C==null||C.onChange(j,O)}}),M=P.updateListener.of(O=>{if(O.docChanged&&typeof(y==null?void 0:y.onChange)=="function"){var j=O.state.doc.toString();y==null||y.onChange(j,O)}});return(0,F.useEffect)(()=>{!S.current&&x.current&&C&&y&&(S.current=new Ei(Y({a:Y({},v,{extensions:[...(C==null?void 0:C.extension)||[],...wt(Y({},C==null?void 0:C.option,{theme:T})),ne]}),b:Y({},w,{extensions:[...(y==null?void 0:y.extension)||[],...wt(Y({},y==null?void 0:y.option,{theme:T})),M]}),parent:x.current},J)),D({view:S.current}))},[S,x,C,y]),(0,F.useEffect)(()=>{var Q,N;if(v&&v.doc&&S.current){var O=(Q=S.current)==null?void 0:Q.a.state.doc.toString();if(O!==v.doc){var j;(j=S.current)==null||j.a.dispatch({changes:{from:0,to:O.length,insert:v.doc||""}})}}if(w&&w.doc&&S.current){var ie=(N=S.current)==null?void 0:N.b.state.doc.toString();if(ie!==w.doc){var _;(_=S.current)==null||_.b.dispatch({changes:{from:0,to:ie.length,insert:w.doc||""}})}}if(c&&S.current){var R=S.current.a.state.selection.ranges[0].from,ce=S.current.b.state.selection.ranges[0].from;S.current.destroy(),S.current=new Ei(Y({a:Y({},v,{extensions:[...(C==null?void 0:C.extension)||[],...wt(Y({},C==null?void 0:C.option,{theme:T}))]}),b:Y({},w,{extensions:[...(y==null?void 0:y.extension)||[],...wt(Y({},y==null?void 0:y.option,{theme:T}))]}),parent:x.current},J)),R&&(S.current.a.focus(),S.current.a.dispatch({selection:{anchor:R,head:R}})),ce&&(S.current.b.focus(),S.current.b.dispatch({selection:{anchor:ce,head:ce}}))}},[S,T,x.current,v,w,C,y,c]),(0,F.useEffect)(()=>()=>S.current&&S.current.destroy(),[]),(0,F.useEffect)(()=>{if(S.current){var O={};B.orientation!==o&&(O.orientation=o),B.revertControls!==a&&(O.revertControls=a),B.highlightChanges!==i&&(O.highlightChanges=i),B.gutter!==s&&(O.gutter=s),B.collapseUnchanged!==u&&(O.collapseUnchanged=u),B.renderRevertControl!==d&&(O.collapseUnchanged=u),Object.keys(O).length&&D&&S.current&&(S.current.reconfigure(Y({},O)),D(Y({},O)))}},[D,S,o,a,i,s,u,d]),(0,b.jsx)("div",Y({ref:x,className:"cm-merge-theme"+(n?" "+n:"")},m,{children:r}))});ma.displayName="CodeMirrorMerge.Internal";var Ou=["theme"],yn=F.forwardRef((e,t)=>{var{theme:n}=e;return(0,b.jsx)(Au,{theme:n,children:(0,b.jsx)(ma,Y({},Rt(e,Ou),{ref:t}))})});yn.Original=da,yn.Modified=fa,yn.displayName="CodeMirrorMerge";var cr=yn,Du=Ge(),_u=cr.Original,Uu=cr.Modified,pa=[md(),P.lineWrapping];const Bu=({cellId:e,aiCompletionCell:t,className:n,onChange:r,currentLanguageAdapter:o,currentCode:a,declineChange:i,acceptChange:s,runCell:u,outputArea:c,children:d})=>{let[f,g]=(0,F.useState)(!1),[m,h]=(0,F.useState)({}),[w,y]=vn(Cm),v=(0,F.useId)(),C=tf(),{initialPrompt:T,triggerImmediately:D,cellId:B}=t??{},x=B===e,S=se(cm).get(e),J;(S==null?void 0:S.type)==="update_cell"&&(J=S.previousCode);let{completion:ne,input:M,stop:O,isLoading:j,setCompletion:ie,setInput:_,handleSubmit:R,complete:ce}=nm({api:C.getAiURL("completion").toString(),headers:C.headers(),initialInput:T,streamProtocol:"text",experimental_throttle:100,body:{...Object.keys(m).length>0?m:T?ii({input:T}):{},includeOtherCode:w?Nr(a):"",code:a,language:o},onError:V=>{yt({title:"Completion failed",description:Nm(V)})},onFinish:(V,I)=>{ie(I.trimEnd())}}),Q=F.useRef(null),N=ne.trimEnd(),A=(0,F.useCallback)(()=>{D&&!j&&T&&ce(T)},[D]);(0,F.useEffect)(()=>{var V;x&&(vd(()=>{let I=Q.current;return I!=null&&I.view?(I.view.focus(),A(),!0):!1},{retries:3,delay:100,initialDelay:100}),Cd((V=Q.current)==null?void 0:V.view))},[x,A]),(0,F.useEffect)(()=>{x&&_(T||"")},[x,T,_]);let{theme:$}=bm(),L=()=>{s(N),ie("")},q=()=>{i(),ie("")},je=x&&D&&(N||j);c??(c="below");let ge=x&&(!D||f),Ye=(0,b.jsx)("div",{className:st("w-full bg-(--cm-background) flex justify-center transition-all duration-300 ease-in-out overflow-hidden",je?"max-h-20 opacity-100 translate-y-0":"max-h-0 opacity-0 -translate-y-2"),children:(0,b.jsx)(Pu,{status:j?"loading":"generated",onAccept:L,onReject:q,showInputPrompt:f,setShowInputPrompt:g,runCell:u,className:"mt-4 mb-3 w-128"})}),Me=(V,I)=>(0,b.jsxs)(cr,{className:"cm",theme:$,children:[(0,b.jsx)(_u,{onChange:r,value:V,extensions:pa}),(0,b.jsx)(Uu,{value:I,editable:!1,readOnly:!0,extensions:pa})]}),Pe=()=>{if(N&&x)return Me(a,N);if(!N&&J)return Me(J,a)},Re=(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(li,{isLoading:j,onAccept:L,size:"xs",multipleCompletions:!1,acceptShortcut:"Mod-\u21B5",runCell:u,borderless:!0,buttonStyles:"hover:shadow-none",playButtonStyles:"hover:shadow-none"}),(0,b.jsx)(si,{onDecline:q,size:"xs",multipleCompletions:!1,declineShortcut:"Shift-Mod-Delete",borderless:!0,className:"hover:shadow-none"})]});return(0,b.jsxs)("div",{"data-ai-input-open":ge,className:st("flex flex-col w-full rounded-[inherit]",n),children:[(0,b.jsx)("div",{className:st("flex items-center gap-2 px-3 transition-all rounded-[inherit] rounded-b-none duration-300",ge&&"max-h-[400px] border-b min-h-11 visible",!ge&&"max-h-0 min-h-0 invisible"),children:x&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(pm,{className:"text-(--blue-10) shrink-0",size:16}),(0,b.jsx)(im,{inputRef:Q,className:"h-full my-0 py-2 flex items-center",onClose:()=>{i(),ie("")},value:M,onChange:V=>{_(V),h(ii({input:V}))},onSubmit:()=>{var V;j||((V=Q.current)!=null&&V.view&&rm(Q.current.view),R())},onKeyDown:sm({handleAcceptCompletion:L,handleDeclineCompletion:q,isLoading:j,hasCompletion:N.trim().length>0})}),(0,b.jsxs)("div",{className:"-mr-1.5 py-1.5",children:[(0,b.jsxs)("div",{className:"flex flex-row items-center justify-end gap-0.5",children:[(0,b.jsx)(am,{isLoading:j,onStop:O,onSendClick:R,isEmpty:!M.trim(),showStopLabel:!0}),(0,b.jsx)(lm,{handleAddContext:()=>om(Q),isLoading:j}),(0,b.jsx)(Hd,{triggerClassName:"h-7 text-xs",iconSize:"small",forRole:"edit",displayIconOnly:!0,placeholder:"Edit model"})]}),N&&(0,b.jsx)("div",{className:"mt-1 flex items-center gap-1",children:Re})]}),(0,b.jsx)("div",{className:"h-full w-px bg-border mx-2"}),(0,b.jsx)(xn,{content:"Include code from other cells",children:(0,b.jsxs)("div",{className:"flex flex-row items-start gap-1 overflow-hidden",children:[(0,b.jsx)(bd,{"data-testid":"include-other-cells-checkbox",id:v,checked:w,onCheckedChange:V=>y(!!V)}),(0,b.jsx)(Sr,{htmlFor:v,className:"text-muted-foreground text-xs whitespace-nowrap ellipsis",children:"All code"})]})}),(0,b.jsx)(lt,{"data-testid":"decline-completion-button",variant:"text",size:"icon",disabled:j,onClick:()=>{O(),i(),ie("")},children:(0,b.jsx)(em,{className:"text-(--red-10)",size:16})})]})}),c==="above"&&Ye,Pe(),(!N||!x)&&!J&&d,c==="below"&&Ye]})};var Pu=e=>{let t=(0,Du.c)(27),{status:n,onAccept:r,onReject:o,className:a,showInputPrompt:i,setShowInputPrompt:s,runCell:u}=e,c=n==="loading",d;t[0]===a?d=t[1]:(d=st("flex flex-row items-center gap-6 rounded-md py-2 px-2.5 text-sm border border-border","shadow-[0_0_6px_1px_rgba(34,197,94,0.15)]",a),t[0]=a,t[1]=d);let f;t[2]===c?f=t[3]:(f=c?(0,b.jsx)(fm,{className:"animate-spin text-blue-600 mb-px",size:15,strokeWidth:2,"aria-label":"Generating fix"}):(0,b.jsx)(tm,{className:"text-green-600 mb-px",size:15,strokeWidth:2,"aria-label":"Fix generated"}),t[2]=c,t[3]=f);let g=c?"Generating fix...":"Showing fix",m;t[4]===g?m=t[5]:(m=(0,b.jsx)("p",{className:"transition-opacity duration-200 text-muted-foreground",children:g}),t[4]=g,t[5]=m);let h;t[6]!==f||t[7]!==m?(h=(0,b.jsxs)("div",{className:"flex flex-row items-center gap-2",children:[f,m]}),t[6]=f,t[7]=m,t[8]=h):h=t[8];let w;t[9]===Symbol.for("react.memo_cache_sentinel")?(w=(0,b.jsx)(Sr,{htmlFor:"show-input-prompt",className:"text-muted-foreground text-xs whitespace-nowrap ellipsis",children:"Show prompt"}),t[9]=w):w=t[9];let y;t[10]!==s||t[11]!==i?(y=(0,b.jsxs)("div",{className:"flex flex-row items-center gap-1",children:[w,(0,b.jsx)(rf,{checked:i,onCheckedChange:s,size:"xs"})]}),t[10]=s,t[11]=i,t[12]=y):y=t[12];let v;t[13]!==c||t[14]!==r||t[15]!==u?(v=(0,b.jsx)(li,{isLoading:c,onAccept:r,size:"xs",borderless:!0,runCell:u}),t[13]=c,t[14]=r,t[15]=u,t[16]=v):v=t[16];let C;t[17]===o?C=t[18]:(C=(0,b.jsx)(si,{onDecline:o,size:"xs",borderless:!0}),t[17]=o,t[18]=C);let T;t[19]!==v||t[20]!==C?(T=(0,b.jsxs)("div",{className:"flex flex-row items-center gap-2 ml-auto",children:[v,C]}),t[19]=v,t[20]=C,t[21]=T):T=t[21];let D;return t[22]!==d||t[23]!==T||t[24]!==h||t[25]!==y?(D=(0,b.jsxs)("div",{className:d,children:[h,y,T]}),t[22]=d,t[23]=T,t[24]=h,t[25]=y,t[26]=D):D=t[26],D},ur="web application/x-marimo-cell",ju=qa({cells:Gd(qa({code:Md()})),version:Rd("1.0")});function Mu(){let e=kn();return{copyCells:le(async t=>{let n=vr(),r=t.map(o=>n.cellData[o]).filter(Boolean);if(r.length!==0)try{let o={cells:r.map(s=>({code:s.code})),version:"1.0"},a=r.map(s=>s.code).join(`
|
|
19
19
|
|
|
20
20
|
`),i=new Wu().add(ur,o).add("text/plain",a).build();await navigator.clipboard.write([i]),ga(r.length)}catch(o){$e.error("Failed to copy cells to clipboard",o);try{await ym(r.map(a=>a.code).join(`
|
|
21
21
|
|