@marimo-team/frontend 0.23.11-dev1 → 0.23.11-dev10
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/{CellStatus-e0ex7Iei.js → CellStatus-CLGvVxcw.js} +1 -1
- package/dist/assets/{JsonOutput-DRNPZOvX.js → JsonOutput-uEJijGXp.js} +5 -5
- package/dist/assets/{MarimoErrorOutput-BH6hs0Ir.js → MarimoErrorOutput-DzoKyXWR.js} +2 -2
- package/dist/assets/{RenderHTML-BQ1PO4Wd.js → RenderHTML-DAt48X-F.js} +1 -1
- package/dist/assets/{RunButton-F8pLIvFp.js → RunButton-B7msyyYi.js} +1 -1
- package/dist/assets/{add-cell-with-ai-C2OtCghK.js → add-cell-with-ai-CAkcousR.js} +8 -8
- package/dist/assets/{add-connection-dialog-AhwxOztN.js → add-connection-dialog-ZyXXfAVG.js} +32 -32
- package/dist/assets/{agent-panel-D6ryE8xb.js → agent-panel-BfIguQXh.js} +3 -3
- package/dist/assets/{ai-model-dropdown-CG4B4rqH.js → ai-model-dropdown-rE64ytSX.js} +3 -3
- package/dist/assets/{app-config-button-D_sFrSql.js → app-config-button-DLRZ5d9c.js} +1 -1
- package/dist/assets/{cell-editor-XNa3wJ3P.js → cell-editor-2JIpvFn4.js} +5 -5
- package/dist/assets/{cell-link-Bj4-yOIx.js → cell-link-DY95GSb7.js} +1 -1
- package/dist/assets/{cells-DOA0Gew8.js → cells-D-v2lBet.js} +67 -67
- package/dist/assets/{chat-display-CezkHLLR.js → chat-display-DO-tqsbY.js} +1 -1
- package/dist/assets/{chat-panel-DEBTPtwE.js → chat-panel-BT5gLfs6.js} +1 -1
- package/dist/assets/{chat-ui-CIr1o1hq.js → chat-ui-Be4yDBZS.js} +1 -1
- package/dist/assets/column-preview-BzvFdLI5.js +1 -0
- package/dist/assets/{command-palette-_VEEjmkI.js → command-palette-CKKzfpGt.js} +1 -1
- package/dist/assets/{common-fDFYY_sv.js → common-Do4N1uVK.js} +1 -1
- package/dist/assets/{components--C6N-DXq.js → components-DUC0f1XD.js} +1 -1
- package/dist/assets/{datasource-CR6RRpTi.js → datasource-BQGI7c_u.js} +2 -2
- package/dist/assets/{dependency-graph-panel-BEgkvdX0.js → dependency-graph-panel-Czoya7c2.js} +1 -1
- package/dist/assets/{documentation-panel-HvbKykbI.js → documentation-panel-LokVYDIZ.js} +1 -1
- package/dist/assets/{download-DhxnAw14.js → download-WGU5w_3m.js} +3 -3
- package/dist/assets/{edit-page-D-02q6iz.js → edit-page-BPQO1Uuz.js} +6 -6
- package/dist/assets/{error-panel-WLBQ3q9p.js → error-panel-BCm_e4eM.js} +1 -1
- package/dist/assets/{file-explorer-panel-DtzGlnzT.js → file-explorer-panel-D1NN-z8x.js} +3 -3
- package/dist/assets/{file-icons-D2f3nfbq.js → file-icons-CF-YT4hq.js} +1 -1
- package/dist/assets/{file-name-input-BNYf9WWM.js → file-name-input-BRVXQ3OU.js} +1 -1
- package/dist/assets/{floating-outline-BvHFWRoz.js → floating-outline-D33Zu-Ad.js} +1 -1
- package/dist/assets/{focus-Ldqh99xE.js → focus-BfFAxl9X.js} +1 -1
- package/dist/assets/{form-CxBAInfg.js → form-CVBFx2z3.js} +1 -1
- package/dist/assets/{home-page-DwFpLpXK.js → home-page-CL9Hv1Hg.js} +2 -2
- package/dist/assets/{hooks-5gNQitDd.js → hooks-83y0XCiC.js} +1 -1
- package/dist/assets/{html-to-image-CyAtzePO.js → html-to-image-IPNqWX7V.js} +2 -2
- package/dist/assets/index-BNWrEIlp.css +2 -0
- package/dist/assets/{index-CGCBsDqs.js → index-CuhY66ZR.js} +14 -14
- package/dist/assets/{kiosk-mode-CTWHjzXs.js → kiosk-mode-BSufcIZH.js} +1 -1
- package/dist/assets/{layout-D3pd3R21.js → layout-ks0WJ2vR.js} +5 -5
- package/dist/assets/{logs-panel-BVLYycQb.js → logs-panel-DXN6sUaA.js} +1 -1
- package/dist/assets/{markdown-renderer-C9Ujvj0b.js → markdown-renderer-DWRPo52L.js} +1 -1
- package/dist/assets/{name-cell-input-DabvuruX.js → name-cell-input-BiDIx6YQ.js} +1 -1
- package/dist/assets/{outline-panel-B-ncbNWI.js → outline-panel-DVSGNRgP.js} +1 -1
- package/dist/assets/{packages-panel-CESeW_3T.js → packages-panel-DTX6CBnm.js} +1 -1
- package/dist/assets/{panels-CTy3hq0L.js → panels-NhGV0SBq.js} +1 -1
- package/dist/assets/{process-output-pPgH0ANl.js → process-output-BiWV34b7.js} +1 -1
- package/dist/assets/{radio-group-D7rh6Zek.js → radio-group-DV-lQvil.js} +1 -1
- package/dist/assets/{readonly-python-code-CvPx4CU_.js → readonly-python-code-B0glFTKW.js} +1 -1
- package/dist/assets/{reveal-component-lTtEZQh1.js → reveal-component-C2M2FixA.js} +12 -12
- package/dist/assets/{run-page-BB6ghGfO.js → run-page-B6I-Lshx.js} +1 -1
- package/dist/assets/{scratchpad-panel-Bvb8RxUv.js → scratchpad-panel-DU7perVk.js} +1 -1
- package/dist/assets/session-panel-B4UTmf-j.js +1 -0
- package/dist/assets/{snippets-panel-BSgcoo-M.js → snippets-panel-KRdl4bVk.js} +1 -1
- package/dist/assets/{state-BWM3qRkR.js → state-BSm0OM93.js} +1 -1
- package/dist/assets/{state-C8yHPSLN.js → state-CbkvENzk.js} +2 -2
- package/dist/assets/{textarea-bBuxbFm7.js → textarea-CBbixTxi.js} +1 -1
- package/dist/assets/{tracing-pt7eDHWc.js → tracing-D8LGpuXa.js} +1 -1
- package/dist/assets/{tracing-panel-BveZ5DZw.js → tracing-panel-TUP6kAd5.js} +2 -2
- package/dist/assets/{tree-actions-1KQDSu1H.js → tree-actions-BvrKFU0g.js} +1 -1
- package/dist/assets/{useCellActionButton-C4V7J6PS.js → useCellActionButton-CtOZIXD0.js} +1 -1
- package/dist/assets/{useDeleteCell-BvnurAZ9.js → useDeleteCell-BLvzLWAT.js} +1 -1
- package/dist/assets/{useDependencyPanelTab-DNlXaxbt.js → useDependencyPanelTab-BP0sNfUz.js} +1 -1
- package/dist/assets/{useNotebookActions-BIQkawja.js → useNotebookActions-BI5dWutQ.js} +1 -1
- package/dist/assets/{useRunCells-cSZpNqnR.js → useRunCells-BClkx9Pq.js} +1 -1
- package/dist/assets/{useSplitCell-s7dSiBUa.js → useSplitCell-CpddCX_u.js} +1 -1
- package/dist/index.html +23 -23
- package/package.json +1 -1
- package/src/components/datasources/__tests__/column-preview.test.tsx +97 -0
- package/src/components/datasources/__tests__/filter-empty.test.ts +81 -0
- package/src/components/datasources/__tests__/utils.test.ts +62 -1
- package/src/components/datasources/column-preview.tsx +2 -4
- package/src/components/datasources/components.tsx +15 -7
- package/src/components/datasources/datasources.tsx +311 -178
- package/src/components/datasources/utils.ts +40 -1
- package/src/components/editor/connections/components.tsx +13 -0
- package/src/components/editor/connections/storage/__tests__/__snapshots__/as-code.test.ts.snap +4 -4
- package/src/components/editor/connections/storage/as-code.ts +11 -4
- package/src/core/cells/__tests__/cells.test.ts +33 -0
- package/src/core/cells/cells.ts +1 -1
- package/src/core/datasets/__tests__/data-source.test.ts +226 -0
- package/src/core/datasets/data-source-connections.ts +88 -24
- package/dist/assets/column-preview-nu3Qo2OW.js +0 -1
- package/dist/assets/index-BAYF7dcV.css +0 -2
- package/dist/assets/session-panel-CTJPYbAa.js +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./loro_wasm_bg-Drxc4adW.js","./loro_wasm_bg-DYsTic7p.js","./chunk-LvLJmgfZ.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
var Fd=Object.defineProperty;var Va=Z=>{throw TypeError(Z)};var Ld=(Z,H,ye)=>H in Z?Fd(Z,H,{enumerable:!0,configurable:!0,writable:!0,value:ye}):Z[H]=ye;var p=(Z,H,ye)=>Ld(Z,typeof H!="symbol"?H+"":H,ye),Od=(Z,H,ye)=>H.has(Z)||Va("Cannot "+ye);var $a=(Z,H,ye)=>(Od(Z,H,"read from private field"),ye?ye.call(Z):H.get(Z)),Ha=(Z,H,ye)=>H.has(Z)?Va("Cannot add the same private member more than once"):H instanceof WeakSet?H.add(Z):H.set(Z,ye);import{s as qa}from"./chunk-LvLJmgfZ.js";import{d as za,f as kr,i as Y,l as xn,n as ae,p as Bt,s as In,u as ie}from"./useEvent-D91BmmQi.js";import{t as _d}from"./react-Bj1aDYRI.js";import{$n as Dd,$t as Cr,At as Pt,Bn as Ud,Cn as Bd,D as An,Dt as Tn,En as Sr,G as Ka,Gn as Pd,H as Fn,Ht as Xa,I as jd,Jn as Md,Kn as Rd,
|
|
2
|
+
var Fd=Object.defineProperty;var Va=Z=>{throw TypeError(Z)};var Ld=(Z,H,ye)=>H in Z?Fd(Z,H,{enumerable:!0,configurable:!0,writable:!0,value:ye}):Z[H]=ye;var p=(Z,H,ye)=>Ld(Z,typeof H!="symbol"?H+"":H,ye),Od=(Z,H,ye)=>H.has(Z)||Va("Cannot "+ye);var $a=(Z,H,ye)=>(Od(Z,H,"read from private field"),ye?ye.call(Z):H.get(Z)),Ha=(Z,H,ye)=>H.has(Z)?Va("Cannot add the same private member more than once"):H instanceof WeakSet?H.add(Z):H.set(Z,ye);import{s as qa}from"./chunk-LvLJmgfZ.js";import{d as za,f as kr,i as Y,l as xn,n as ae,p as Bt,s as In,u as ie}from"./useEvent-D91BmmQi.js";import{t as _d}from"./react-Bj1aDYRI.js";import{$n as Dd,$t as Cr,At as Pt,Bn as Ud,Cn as Bd,D as An,Dt as Tn,En as Sr,G as Ka,Gn as Pd,H as Fn,Ht as Xa,I as jd,Jn as Md,Kn as Rd,Mi as Gd,Nn as Jd,Nt as Wd,Ot as Vd,Sn as $d,Tt as xr,U as Hd,Un as Ya,V as Qa,Vi as Ln,Vn as qd,Vt as zd,W as Za,Wn as Kd,Xr as Xd,Xt as Ir,Yn as Yd,Yt as Qd,a as ei,an as Zd,b as ot,br as ef,cn as On,ct as tf,d as ti,di as nf,dn as rf,en as ni,fi as ri,gn as of,gt as af,h as jt,ht as Ar,ii as Tr,in as sf,ki as oi,kt as lf,oi as cf,ot as uf,q as ai,rn as df,si as ff,tn as ii,u as si,wt as mf,xn as pf,yn as gf,zn as hf,__tla as bf}from"./cells-D-v2lBet.js";import{B as yf,N as wf,P as Fr,R as li,S as vf,T as ci,k as Ef,w as Nf}from"./zod-H_cgTO0M.js";import{t as ve}from"./compiler-runtime-B3qBwwSJ.js";import{C as kf,f as Cf,m as Sf,p as xf,t as If,v as Af,w as Tf}from"./ai-model-dropdown-rE64ytSX.js";import{_ as $e,c as ui,h as Lr,t as Ff,v as Lf}from"./useEventListener-DvoEXWke.js";import{t as Mt}from"./invariant-BUdrueMv.js";import{_ as di,c as Of,g as fi,h as mi,l as pi,w as Or}from"./utils-CvI-39U6.js";import{S as gi,T as _f,m as Df,o as Uf,r as hi,v as wt,w as Rt}from"./config-ClMcu_sV.js";import{n as Bf,t as Pf}from"./switch-Ac7CgLgh.js";import{n as jf}from"./globals-BivClSmn.js";import{t as Mf}from"./ErrorBoundary-DyYDV0HI.js";import{t as Ze}from"./cn-DCUzRj2J.js";import{t as Rf}from"./jsx-runtime-BqBOg78p.js";import{l as Gf,r as Jf,t as Wf}from"./popover-CNCYAwbC.js";import{X as Vf,Y as $f,__tla as Hf}from"./JsonOutput-uEJijGXp.js";import{t as _r}from"./label-C2_YQRio.js";import{r as qf}from"./download-WGU5w_3m.js";import{t as _n}from"./tooltip-B_PkSKN3.js";import{r as Dr,t as ut}from"./button-BbCh-29a.js";import{$t as Gt,E as zf,Et as Kf,H as bi,Ht as vt,I as Xf,Jt as Yf,Kt as dt,Lt as Ur,P as Qf,Pt as Zf,St as em,Tt as yi,Ut as Br,V as wi,Vt as tm,Wt as Jt,X as l,Xt as he,Zt as Xe,_ as nm,a as rm,at as $,bt as om,dt as Dn,ht as am,kt as im,lt as sm,m as lm,mt as cm,nn as Un,ot as um,st as M,ut as et,w as dm,wt as He,xt as fm,zt as Bn}from"./dist-D0HyMpgV.js";import{E as mm,P as pm,S as gm,a as hm,b as bm,c as ym,n as Pr,r as wm,w as vm,x as Em}from"./dist-DVkC-Qmw.js";import{o as vi}from"./arrays-DYDL-3-i.js";import{n as Nm}from"./once-DRroIaBz.js";import{t as jr}from"./createReducer-CI9qeK_X.js";import{a as km,c as Cm,f as Pn,h as Sm,i as xm,l as Wt,n as Ei,o as Im,t as Am}from"./dist-Bo13cFwO.js";import{t as Tm}from"./main-B0OX4z33.js";import{r as jn,t as Fm}from"./requests-DIwGYs0l.js";import{t as Lm}from"./createLucideIcon-D5guW7EU.js";import{r as Ni,t as Om,__tla as _m}from"./layout-ks0WJ2vR.js";import{t as Dm}from"./x-C-6liIBr.js";import{t as Um}from"./circle-check-C17zXg7L.js";import{D as ki,E as Bm,I as Pm,L as jm,N as Mm,S as Rm,a as Ci,d as Gm,j as Jm,k as Wm,n as Vm,o as $m,r as Si,s as Hm}from"./add-cell-with-ai-CAkcousR.js";import{r as qm,t as zm}from"./file-icons-CF-YT4hq.js";import{n as Km}from"./spinner-Bhir8k53.js";import{n as Mr,t as xi}from"./useDeleteCell-BLvzLWAT.js";import{t as Ii}from"./save-Clg5dMoP.js";import{Y as Xm,Z as Ai}from"./input-DA8xlX70.js";import{t as Ym}from"./sparkles-lWUAsPhp.js";import{t as Qm}from"./preload-helper-BPPi7vOr.js";import{t as Et}from"./use-toast-CJ1Tj2eC.js";import{n as tt}from"./paths-D5zczhUD.js";import{t as Zm}from"./session-0B5NBztP.js";import{r as ep}from"./useTheme-CI2eq4XN.js";import{n as Ti}from"./copy-LK56fFow.js";import{k as tp}from"./usePress-DQ_tAz5W.js";import{a as np}from"./useRunCells-BClkx9Pq.js";import{c as Fi,i as Li,n as Oi,r as rp}from"./dialog-DRnNAWYl.js";import{t as _i}from"./useHotkey-TKvjHf1m.js";import{n as Di}from"./ImperativeModal-BW1dmntO.js";import{i as op}from"./errors-D3F5g1xA.js";import{t as K}from"./extends-BiFDv3jB.js";import{t as Vt}from"./objectWithoutPropertiesLoose-DfWeGRFv.js";import{t as ap}from"./kbd-CTUAEnEx.js";import{a as Rr}from"./useInstallPackage-GI6gu7_S.js";import{i as ip,n as Ui}from"./state-BSm0OM93.js";import{a as sp,o as lp}from"./cell-link-DY95GSb7.js";import{r as Bi}from"./html-to-image-IPNqWX7V.js";import{a as cp}from"./focus-BfFAxl9X.js";import{n as up}from"./useAsyncData-bgszE9F0.js";import{a as dp,o as Pi,r as fp,s as ji,t as mp}from"./command-BmOGG6-2.js";import{a as Mi}from"./renderShortcut--ku7VECI.js";import{n as pp,t as gp}from"./icons-Ol38nIbL.js";import{n as Nt}from"./esm-xaw4Vy8N.js";import{t as Ri}from"./dist-PHrL7abE.js";import{t as hp}from"./useSplitCell-CpddCX_u.js";import{co as bp,do as Gr,fo as yp,ft as wp,go as kt,ho as Gi,lo as Jr,mo as Ji,oo as vp,po as Ep,so as Wi,uo as Vi,__tla as Np}from"./loro_wasm_bg-DYsTic7p.js";import{t as kp}from"./ws-K6nioC-Z.js";import{t as $i}from"./Inputs-CdyQ7nLC.js";import{n as Cp}from"./hooks-83y0XCiC.js";let Wr,$t,Mn,Rn,Gn,Vr,Ee,Hi,qi,zi,Ki,$r,Hr,ft,Xi,Yi,Qi,Ht,Jn,Zi,Sp=Promise.all([(()=>{try{return bf}catch{}})(),(()=>{try{return Hf}catch{}})(),(()=>{try{return _m}catch{}})(),(()=>{try{return Np}catch{}})()]).then(async()=>{var Cn,Ga,ke,Ce,Se,xe,Ie,Ae,Te,Fe,Le,Oe,_e,De,Ue,Be,Pe,je,Me,Re,Ge;var Z=Lm("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 H={showInput:"Mod-l",acceptEdit:"Mod-y",rejectEdit:"Mod-u"};var ye=300;const St=Jt.define({combine:e=>Un(e,{onError:console.error,inputDebounceTime:ye,keymaps:H},{onError:(t,n)=>t&&n,inputDebounceTime:(t,n)=>t&&n,keymaps:(t,n)=>t&&n})}),at=he.define(),it=Xe.define({create(){return{show:!1,lineFrom:0,lineTo:0}},update(e,t){for(let n of t.effects)if(n.is(at))return n.value;return e}}),xt=he.define(),It=he.define(),zr=Xe.define({create(){return{shouldFocus:!1,inputValue:""}},update(e,t){let n=e;for(let r of t.effects)r.is(xt)&&(n={...n,inputValue:r.value}),r.is(It)&&(n={...n,shouldFocus:r.value});return n}}),qt=he.define(),At=Xe.define({create(){return null},update(e,t){for(let n of t.effects)if(n.is(qt))return n.value;return e}}),mt=he.define(),Kr=Xe.define({create(){return!1},update(e,t){for(let n of t.effects)if(n.is(mt))return n.value;return e}});var es=1;const Xr=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<es)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:[at.of({show:!0,lineFrom:i,lineTo:s}),It.of(!0),xt.of("")],selection:vt.cursor(o.from)}),!0},Yr=e=>e.state.field(At)?(e.dispatch({effects:[qt.of(null),at.of({show:!1,lineFrom:0,lineTo:0}),It.of(!1),xt.of(""),mt.of(!1)]}),!0):!1,Qr=e=>{let t=e.state.field(At);return t?(e.dispatch({changes:{from:t.from,to:t.to,insert:t.oldCode},effects:[qt.of(null),at.of({show:!1,lineFrom:0,lineTo:0}),It.of(!1),xt.of(""),mt.of(!1)]}),!0):!1};var Wn={mac:"\u2318",windows:"\u229E Win",default:"Ctrl"};function ts(){return navigator.platform.startsWith("Mac")?Wn.mac:navigator.platform.startsWith("Win")?Wn.windows:Wn.default}function Vn(e){return e.replace("Mod",ts()).replace("-"," ").toUpperCase()}function me(e,t){let n=document.createElement(e);return n.className=t,n}function ns(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 zt=Xe.define({create(){return{suggestion:null}},update(e,t){let n=t.effects.find(r=>r.is(Kt));return!t.docChanged&&!n&&!t.selection?e:n&&t.state.doc===n.value.doc?{suggestion:n.value.text}:{suggestion:null}}}),Kt=he.define();function rs(e,t){let n=e.state.selection.main.head,r=[],o=$.widget({widget:new os(t),side:1});return r.push(o.range(n)),$.set(r)}var os=class extends Dn{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}},as=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()})}},is=(e,t)=>et.fromClass(class{constructor(){p(this,"abortController",null);p(this,"cache");this.cache=new as(t.cacheTimeout??1e3)}async update(n){var i,s,c,u,d;if(!n.docChanged||((s=(i=t.events)==null?void 0:i.beforeSuggestionFetch)==null?void 0:s.call(i,n.view))===!1)return;(c=this.abortController)==null||c.abort(),this.abortController=new AbortController;let r=n.state.doc,o=r.toString(),a=this.cache.get(o);if(a){n.view.dispatch({effects:Kt.of({text:a,doc:r})});return}try{let f=await e(n.state,this.abortController.signal,n.view);if(this.abortController.signal.aborted||((d=(u=t.events)==null?void 0:u.shouldShowSuggestion)==null?void 0:d.call(u,n.view,f))===!1)return;this.cache.set(o,f),n.view.dispatch({effects:Kt.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()}}),ss=et.fromClass(class{constructor(){p(this,"decorations");this.decorations=$.none}update(e){var n;let t=(n=e.state.field(zt))==null?void 0:n.suggestion;if(!t){this.decorations=$.none;return}this.decorations=rs(e.view,t)}},{decorations:e=>e.decorations});function ls(e,t,n,r){return{...e.changeByRange(o=>{if(o===e.selection.main)return{changes:{from:n,to:r,insert:t},range:vt.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:vt.cursor(o.from-a+t.length)}}),userEvent:"input.complete"}}var cs=e=>{var r,o,a;let t=(r=e.state.field(zt))==null?void 0:r.suggestion;if(!t)return!1;let n=e.state.facet($n);return e.dispatch({...ls(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},Zr=e=>{var r,o,a;let t=(r=e.state.field(zt))==null?void 0:r.suggestion;if(!t)return!1;let n=e.state.facet($n);return e.dispatch({effects:Kt.of({text:null,doc:e.state.doc})}),(a=(o=n.events)==null?void 0:o.onSuggestionRejected)==null||a.call(o,e,t),!0},us=He.of([{key:"Tab",run:cs},{key:"Escape",run:Zr}]),$n=Jt.define({combine:e=>e.at(-1)});function eo(e){let{delay:t=500,includeKeymap:n=!0}=e,r=ns(e.fetchFn,t);return[zt,$n.of(e),is(r,e),ss,n?us:[]]}const ds=M.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 fs(e){var s,c;let t=e.state.facet(St),n={...H,...t.keymaps},r=e.state.facet(Xt),o=me("div","cm-ai-tooltip").appendChild(me("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=Vn(n.showInput),(s=o.querySelector("span"))==null||s.addEventListener("mousedown",u=>{u.stopPropagation(),u.button===0&&u.preventDefault()}),(c=o.querySelector("span"))==null||c.addEventListener("click",u=>{u.preventDefault(),Xr(e)}),o}const Xt=Jt.define({combine(e){return Un(e,{render:fs,hideOnBlur:!1,label:"Edit with AI"})}}),ms=et.fromClass((Ga=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)});Ha(this,Cn,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,c=v=>!i||v.top>=i.top&&v.top<=i.bottom&&v.left>=i.left&&v.left<=i.right,u=s(r)||s(o),d=c(r)||c(o);if(!u||!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(Xt);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(it).show){this.dom.style.display="none";return}if(e.state.facet(Xt).hideOnBlur&&!e.hasFocus){this.dom.style.display="none",this.dom.setAttribute("aria-hidden","true");return}e.requestMeasure({read:$a(this,Cn)})}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()}},Cn=new WeakMap,Ga));var ps=M.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 gs(){return[ms,ps]}var hs=class extends Dn{constructor(t){super();p(this,"oldCode");this.oldCode=t}toDOM(t){let n=me("div","cm-old-code-container");n.setAttribute("role","region"),n.setAttribute("aria-label","Previous code version");let r=me("div","cm-old-code cm-line");r.textContent=this.oldCode;let o=me("div","cm-floating-buttons"),a=t.state.facet(St),i={...H,...a.keymaps},s=me("button","cm-floating-button cm-floating-accept");s.innerHTML=`<span class="hotkey">${Vn(i.acceptEdit)}</span> Accept`,s.setAttribute("aria-label","Accept changes"),s.addEventListener("click",u=>{u.preventDefault(),u.stopPropagation(),t.focus(),Yr(t)});let c=me("button","cm-floating-button cm-floating-reject");return c.innerHTML=`<span class="hotkey">${Vn(i.rejectEdit)}</span> Reject`,c.setAttribute("aria-label","Reject changes"),c.addEventListener("click",u=>{u.preventDefault(),u.stopPropagation(),t.focus(),Qr(t)}),o.append(s,c),n.append(r,o),n}updateDOM(t,n){return!0}},bs=class extends Dn{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:[at.of({show:!1,lineFrom:0,lineTo:0}),mt.of(!1)]}),t.focus())});p(this,"handleSubmit",async t=>{var h;let n=this.view;if(!n)return;let r=n.state.facet(St);t==null||t.stopPropagation();let o=n.state.field(it),{input:a}=this;if(!a)return;let i=a.value.trim();if(!o.show||!i)return;let s=n.state.doc.line(o.lineFrom),c=n.state.doc.line(o.lineTo),u=s.from,d=c.to,f=n.state.sliceDoc(u,d),g=n.state.sliceDoc(0,u),m=n.state.sliceDoc(d);this.abortController=new AbortController,n.dispatch({effects:mt.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(it).show)return;if(!w||typeof w!="string")throw Error("Invalid completion result");n.dispatch({changes:{from:u,to:d,insert:w},effects:[at.of({show:!1,lineFrom:0,lineTo:0}),qt.of({from:u,to:u+w.length,oldCode:f,newCode:w}),mt.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(zr),r=t.state.field(Kr),o=me("div","cm-ai-input-container");this.inputContainer=o,this.dom=o;let a=me("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=me("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=me("div","cm-ai-loading-container");this.loadingContainer=s;let c=me("div","cm-ai-loading-indicator");c.setAttribute("role","status"),c.setAttribute("aria-live","polite"),c.textContent="Generating";let u=me("button","cm-ai-cancel-button");u.textContent="Cancel",u.setAttribute("aria-label","Cancel code generation"),u.addEventListener("click",this.onCancel),s.append(u,c);let d=me("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=me("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:It.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:xt.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 ys(e){if(!e.prompt)throw Error("prompt function is required");let t={...H,...e.keymaps};return[St.of(e),it,zr,At,Kr,gs(),ds,He.of([{key:t.showInput,run:Xr}]),dt.highest([He.of([{key:t.acceptEdit,run:Yr},{key:t.rejectEdit,run:Qr}])]),ws,vs,Es,Ns]}const ws=M.updateListener.of(e=>{let t=e.state.field(it);if(!t.show||!e.docChanged)return;let{lineFrom:n,lineTo:r}=t,o=!1;e.changes.iterChanges((a,i,s,c)=>{let u=e.state.doc.lineAt(a).number;if(u<n){let d=e.state.doc.lineAt(c).number-e.state.doc.lineAt(s).number;n+=d,r+=d,o=!0}else if(u<=r){let d=e.state.doc.lineAt(c).number-e.state.doc.lineAt(s).number;r+=d,o=!0}}),o&&e.view.dispatch({effects:[at.of({show:!0,lineFrom:n,lineTo:r})]})}),vs=M.decorations.of(e=>{let t=e.state.field(At);return t?$.set([$.mark({class:"cm-new-code-line"}).range(t.from,t.to)]):$.none}),Es=M.decorations.compute([it],e=>{let t=e.field(it),n=e.facet(St),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($.line({class:"cm-ai-selection"}).range(s)),i===o&&r.push($.widget({widget:new bs(n.prompt),side:-1}).range(s))}}return $.set(r)}),Ns=Xe.define({create(e){return $.none},update(e,t){let n=t.state.field(At);return n?$.set([$.widget({widget:new hs(n.oldCode),block:!0}).range(n.from)]):$.none},provide:e=>M.decorations.from(e)});var ks=ve(),A=qa(_d(),1),Hn=()=>({entries:new Map}),{valueAtom:to,useActions:no}=jr(Hn,{submit:(e,t)=>{let{cellIds:n,deleteCell:r,deleteManyCells:o,store:a}=t,i=a.get(ot),s=a.get(hf),c=new Set(i.cellIds.inOrderIds.filter(f=>i.cellData[f].code.trim()==="")),u=new Map;for(let f of n){if(c.has(f)){u.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=>!c.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?u.set(f,{cellId:f,type:"simple"}):u.set(f,{cellId:f,type:"expensive",executionDurationMs:h,defs:m})}let d=[...u.values()].every(f=>f.type==="simple");return u.size>0&&d?(u.size===1?r({cellId:[...u.values()][0].cellId}):o({cellIds:[...u.values()].map(f=>f.cellId)}),Hn()):{...e,entries:u}},clear:()=>Hn()});Mn=function(){let e=kr(),{submit:t,clear:n}=no(),{entries:r}=ie(to),o=xi(),a=Mr();return(0,A.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])},Zi=function(e){let t=(0,ks.c)(16),n=ie(to),r=no(),o=Mr(),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(Cs)}),r.clear()},t[6]=r,t[7]=o,t[8]=n.entries,t[9]=s):s=t[9];let c;t[10]===r?c=t[11]:(c=()=>r.clear(),t[10]=r,t[11]=c);let u;return t[12]!==i||t[13]!==s||t[14]!==c?(u={isPending:!0,...i,shouldConfirmDelete:!0,confirm:s,cancel:c},t[12]=i,t[13]=s,t[14]=c,t[15]=u):u=t[15],u};function Cs(e){return e.cellId}var ro=["python","sql","markdown"];function qn(e,t={}){var u;let{streaming:n=!1}=t,r=((u=e.match(/^\s*/))==null?void 0:u[0])??"",o=e.slice(r.length),a=null,i=!1;for(let d of ro)if(o.startsWith(`\`\`\`${d}`)){i=!0,a=o.slice(3+d.length),a.startsWith(`
|
|
4
4
|
`)&&(a=a.slice(1));break}if(!i&&o.startsWith("```")){let d=o.slice(3);if(n&&Ss(d))return e;i=!0,a=d,a.startsWith(`
|
|
5
5
|
`)&&(a=a.slice(1))}if(!i||a===null)return e;if(n)return a;let s=a.trimEnd(),c=a.slice(s.length);return s.endsWith("\n```")?s.slice(0,-4)+c:s.endsWith("```")?s.slice(0,-3)+c:a}function Ss(e){return e.includes(`
|
|
@@ -14,11 +14,11 @@ ${e.codeAfter}
|
|
|
14
14
|
`},editorOptions:{tabSize:2n,insertSpaces:!0},otherDocuments:r,multilineConfig:void 0},{headers:{Authorization:`Basic ${n.apiKey}-${bn}`}})}function vc(e){return e.completionItems.map(t=>{let n=0;return t.completionParts.filter(r=>r.type!==3).map(r=>{let o=Number(r.offset),a=r.type===2?`
|
|
15
15
|
${r.text}`:r.text,i={absoluteStartPos:n+o,absoluteEndPos:n+o+a.length,from:o,to:o,insert:a};return n+=a.length,i})})}async function Ec(e,t){let n=e.state.facet(dn),{override:r}=e.state.facet(jo),o=await r(),a=e.state,i=a.selection.main.head,s=a.doc.toString();try{let c=await wc({text:s,cursorOffset:i,config:n,otherDocuments:o});if(!c||c.completionItems.length===0||!((t===void 0||i===t)&&Wt(e.state)!=="active"&&e.hasFocus))return;let u=vc(c),d=u.at(0);if(!d)return;let f=Bn.of(d,a.doc.length),g=f.invert(a.doc);e.dispatch({changes:f,effects:Kn.of({index:0,reverseChangeSet:g,changeSpecs:u}),annotations:[fn.of(null),ht.of(null),Gt.addToHistory.of(!1)]})}catch(c){console.warn("copilot completion failed",c),await new Promise(u=>setTimeout(u,300))}}function Nc(e){return e.docChanged&&!e.transactions.some(t=>t.effects.some(n=>n.is(Xn)||n.is(Yn)))}function kc(e){if(!e.view.hasFocus||e.state.field(ct)||Wt(e.state)==="active")return!0;for(let t of e.transactions)if(t.annotation(ht)!==void 0)return!0}function Cc(){let e=null,t=0;return M.updateListener.of(n=>{let r=n.view.state.facet(dn);if(!r.alwaysOn||!Nc(n)||(e&&clearTimeout(e),kc(n)))return;let o=n.state.selection.main.head;r.shouldComplete&&!r.shouldComplete(new Am(n.view.state,o,!1))||(e=setTimeout(async()=>{o===t&&await Ec(n.view,t)},r.timeout),t=o)})}function aa(e){var o;let t=e.state.field(ct);if(!t)return!1;let n=(o=t.reverseChangeSet)==null?void 0:o.invert(e.state.doc);e.dispatch({changes:t.reverseChangeSet,effects:Xn.of(null),annotations:[fn.of(null),ht.of(null),Gt.addToHistory.of(!1)]});let r=0;return n==null||n.iterChangedRanges((a,i,s,c)=>{r=c}),e.dispatch({changes:n,selection:vt.cursor(r),annotations:[ht.of(null),Gt.addToHistory.of(!0)]}),!0}const ia=e=>{let{state:t}=e,n=t.field(ct);if(!n)return!1;let{changeSpecs:r}=n;if(r.length<2)return!1;let o=(n.index+1)%r.length,a=r.at(o);if(!a)return!1;let i=n.reverseChangeSet.apply(t.doc),s=Bn.of(n.reverseChangeSet,t.doc.length).compose(Bn.of(a,i.length)),c=Bn.of(a,i.length).invert(i);return e.dispatch({changes:s,effects:Kn.of({index:o,reverseChangeSet:c,changeSpecs:r}),annotations:[fn.of(null),ht.of(null),Gt.addToHistory.of(!1)]}),!0};function ir(e){let t=e.state.field(ct);return t&&e.dispatch({changes:t.reverseChangeSet,effects:Yn.of(null),annotations:[fn.of(null),ht.of(null),Gt.addToHistory.of(!1)]}),!1}function Sc(e,t){return e.state.field(ct)?t==="Tab"?aa(e):ir(e):!1}function xc(e){var o,a;let t=!1,n=(o=e.state.selection.asSingle().ranges.at(0))==null?void 0:o.head,r=e.state.field(ct);return n!==void 0&&r?((a=r.decorations)==null||a.between(n,n,()=>{t=!0}),t):!1}function Ic(){return M.domEventHandlers({keydown(e,t){return e.key==="]"&&e.ctrlKey?!1:e.key!=="Shift"&&e.key!=="Control"&&e.key!=="Alt"&&e.key!=="Meta"?Sc(t,e.key):!1},mouseup(e,t){let n=e.target;return n.nodeName==="BUTTON"&&n.dataset.action==="codeium-cycle"?(ia(t),e.stopPropagation(),e.preventDefault(),!0):xc(t)?aa(t):ir(t)}})}function Ac(){return He.of([{key:"Ctrl-]",run:ia}])}function Tc(){return M.updateListener.of(e=>{e.focusChanged&&ir(e.view)})}function Fc(e){return[dn.of(e),ct,dt.highest(Ac()),dt.highest(Tc()),dt.high(Ic()),Cc()]}function Lc({response:e,prefix:t,suffix:n}){if(!e)return e;let r=e;return t&&r.startsWith(t)&&(r=r.slice(t.length)),n&&r.endsWith(n)&&(r=r.slice(0,-n.length)),r}var Oc=Tm(),_c=new tm,sr=$e.get("@github/copilot-language-server"),sa={delay:300,includeKeymap:!0,events:{shouldShowSuggestion:e=>e.hasFocus,beforeSuggestionFetch:e=>e.hasFocus}};const Dc=e=>{let t=[];return e.copilot==="codeium"&&e.codeium_api_key&&t.push(Fc({apiKey:e.codeium_api_key,language:lt.PYTHON}),jo.of({override:async()=>[{text:Ir(""),language:lt.PYTHON,editorLanguage:"python"}]})),e.copilot==="github"&&t.push(eo({...sa,fetchFn:async(n,r,o)=>{let a=n.selection.main.head;if(!Af()||!o.hasFocus||n.doc.length===0)return"";await new Promise(c=>setTimeout(c,20));let i=Uc(n,Ir(n.doc.toString())),s=await Sf().getCompletion(i);return a===o.state.selection.main.head?Bc(s,i.position,n):($e.debug("ignoring response because of new position"),"")}})),e.copilot==="custom"&&t.push(eo({...sa,fetchFn:async(n,r,o)=>{let a=n.selection.main.head;if(n.doc.length===0||!o.hasFocus)return"";let i=n.doc.sliceString(0,n.selection.main.head),s=n.doc.sliceString(n.selection.main.head,n.doc.length);if(i.length===0)return"";let c=n.field(Tn).type,u=await Bf.post("/ai/inline_completion",{prefix:i,suffix:s,language:c});return a===o.state.selection.main.head?(u=Lc({response:u,prefix:i,suffix:s}),u):($e.debug("ignoring response because of new position"),"")}})),[...t,dt.highest(He.of([{key:"Escape",run:n=>{let r=Zr(n);return On(n)?!1:r}}])),_c.of(xf())]};function Uc(e,t){let n=e.doc.toString(),r=t.split(`
|
|
16
16
|
`).length-n.split(`
|
|
17
|
-
`).length,o=Pc(e.doc,e.selection.main.head);return o.line+=r,{textDocument:{uri:`file://${Cf}`,version:"replace_me"},position:o,context:{triggerKind:Oc.InlineCompletionTriggerKind.Automatic},formattingOptions:{tabSize:e.tabSize,insertSpaces:!0}}}function Bc(e,t,n){if(!e)return sr.debug("No response from copilot"),"";let r=Array.isArray(e)?e[0]:e.items[0];if(!r)return sr.debug("No response from copilot"),"";let{insertText:o,range:a}=r,i=String(o);if(!a)return sr.error("No range from copilot"),i;let s=a.start.character-t.character,c=s<0?i.slice(-s):i,u=n.doc.sliceString(n.selection.main.head,n.doc.length);for(let d=0;d<c.length;d++){let f=c.slice(d);if(u.startsWith(f))return c.slice(0,d)}return c}function Pc(e,t){let n=e.lineAt(t);return{line:n.number-1,character:t-n.from}}Jn=function(e){return Mt("create"in e,'Expected query to have a "create" method'),e},Ee=
|
|
17
|
+
`).length,o=Pc(e.doc,e.selection.main.head);return o.line+=r,{textDocument:{uri:`file://${Cf}`,version:"replace_me"},position:o,context:{triggerKind:Oc.InlineCompletionTriggerKind.Automatic},formattingOptions:{tabSize:e.tabSize,insertSpaces:!0}}}function Bc(e,t,n){if(!e)return sr.debug("No response from copilot"),"";let r=Array.isArray(e)?e[0]:e.items[0];if(!r)return sr.debug("No response from copilot"),"";let{insertText:o,range:a}=r,i=String(o);if(!a)return sr.error("No range from copilot"),i;let s=a.start.character-t.character,c=s<0?i.slice(-s):i,u=n.doc.sliceString(n.selection.main.head,n.doc.length);for(let d=0;d<c.length;d++){let f=c.slice(d);if(u.startsWith(f))return c.slice(0,d)}return c}function Pc(e,t){let n=e.lineAt(t);return{line:n.number-1,character:t-n.from}}Jn=function(e){return Mt("create"in e,'Expected query to have a "create" method'),e},Ee=Gd({findText:"",replaceText:"",caseSensitive:!1,wholeWord:!1,regexp:!1,isOpen:!1,currentView:void 0},(e,t)=>{if(t===void 0)return e;switch(t.type){case"setFind":return{...e,findText:t.find};case"setReplace":return{...e,replaceText:t.replace};case"setCaseSensitive":return{...e,caseSensitive:t.caseSensitive};case"setWholeWord":return{...e,wholeWord:t.wholeWord};case"setRegex":return{...e,regexp:t.regexp};case"setIsOpen":return{...e,isOpen:t.isOpen};case"setCurrentView":return{...e,currentView:{view:t.view,range:t.range}};case"clearCurrentView":return{...e,currentView:void 0}}}),Wr=function(e){if([...document.querySelectorAll('[role="dialog"][data-state="open"]')].some(t=>t instanceof HTMLElement&&t.childNodes.length>0))return!1;if(e){let t=e.state.selection.main,n=e.state.sliceDoc(t.from,t.to);n?(Y.set(Ee,{type:"setFind",find:n}),Y.set(Ee,{type:"setCurrentView",view:e,range:{from:t.from,to:t.to}})):Y.set(Ee,{type:"setCurrentView",view:e,range:{from:0,to:0}})}return Y.get(Ee).isOpen?(Y.set(Ee,{type:"setIsOpen",isOpen:!1}),requestAnimationFrame(()=>{Y.set(Ee,{type:"setIsOpen",isOpen:!0})}),!0):(Y.set(Ee,{type:"setIsOpen",isOpen:!0}),!0)};function jc(){return Y.get(Ee).isOpen?(Y.set(Ee,{type:"setIsOpen",isOpen:!1}),!0):!1}var lr=he.define();Hi=function(){let e=Y.get(Ee),t=si();for(let n of t)n.state.readOnly||n.dispatch({effects:lr.of(new Pr({search:e.findText,caseSensitive:e.caseSensitive,regexp:e.regexp,replace:e.replaceText,wholeWord:e.wholeWord}))})},Ki=function(){let e=si();for(let t of e)t.state.readOnly||t.dispatch({effects:lr.of(new Pr({search:""}))})};const yn=Xe.define({create(){let e=Y.get(Ee);return Jn(new Pr({search:e.findText,caseSensitive:e.caseSensitive,regexp:e.regexp,replace:e.replaceText,wholeWord:e.wholeWord})).create()},update(e,t){for(let n of t.effects)n.is(lr)&&(e=Jn(n.value).create());return e}});var Mc=$.mark({class:"cm-searchMatch"}),Rc=$.mark({class:"cm-searchMatch cm-searchMatch-selected"}),Gc=250;const Jc=et.fromClass(class{constructor(e){this.view=e,this.decorations=this.highlight(e.state.field(yn))}update(e){let t=e.state.field(yn);(t!==e.startState.field(yn)||e.docChanged||e.selectionSet||e.viewportChanged)&&(this.decorations=this.highlight(t))}highlight(e){if(!e.spec.valid)return $.none;let{view:t}=this,n=new Yf,r=t.visibleRanges,o=r.length;for(let a=0;a<o;a++){let{to:i}=r[a],{from:s}=r[a];for(;a<o-1&&i>r[a+1].from-2*Gc;)i=r[++a].to;e.highlight(t.state,s,i,(c,u)=>{let d=t.state.selection.ranges.some(f=>f.from===c&&f.to===u);n.add(c,u,d?Rc:Mc)})}return n.finish()}},{decorations:e=>e.decorations}),Wc=M.baseTheme({"&light .cm-searchMatch":{backgroundColor:"#99ff7780"},"&dark .cm-searchMatch":{backgroundColor:"#22bb0070"},"&light .cm-searchMatch-selected":{backgroundColor:"transparent"},"&dark .cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff88 !important"}});function Vc(e){return[He.of([{key:"Escape",preventDefault:!1,run:jc},{key:e.getHotkey("cell.selectNextOccurrence").key,preventDefault:!0,run:hm},{key:e.getHotkey("cell.findAndReplace").key,preventDefault:!0,run:Wr}]),wm(),Jc,yn,Wc]}var $c=$.mark({class:"underline"}),la=he.define(),ca=he.define(),ua=he.define();const Hc=Xe.define({create(){return $.none},update(e,t){let n=e.map(t.changes);for(let r of t.effects)r.is(la)?n=e.update({add:[$c.range(r.value.from,r.value.to)]}):r.is(ca)?n=e.update({add:[pf.range(r.value.from,r.value.to)]}):r.is(ua)&&(n=$.none);return n},provide:e=>M.decorations.from(e)});var qc=class{constructor(e,t){p(this,"keydown",e=>{(e.key==="Meta"||e.key==="Control")&&(this.commandClickMode=!0,this.view.dom.addEventListener("mousemove",this.mousemove),this.view.dom.addEventListener("click",this.click))});p(this,"keyup",e=>{(e.key==="Meta"||e.key==="Control")&&this.exitCommandClickMode()});p(this,"windowBlur",()=>{this.commandClickMode&&this.exitCommandClickMode()});p(this,"mousemove",e=>{var o;if(!e.metaKey&&!e.ctrlKey){this.exitCommandClickMode();return}if(!this.commandClickMode){this.clearUnderline();return}let t=this.view.posAtCoords({x:e.clientX,y:e.clientY});if(t==null){this.clearUnderline();return}let n=(o=this.view.state.field(Bd,!1))==null?void 0:o.ranges.find(a=>t>=a.from&&t<=a.to);if(n){let{from:a,to:i}=n;if(this.hoveredRange&&this.hoveredRange.from===a&&this.hoveredRange.to===i)return;this.clearUnderline(),this.hoveredRange={from:a,to:i,position:t},this.view.dispatch({effects:ca.of(this.hoveredRange)});return}let r=bi(this.view.state).cursorAt(t);if(r.name==="VariableName"){let{from:a,to:i}=r;if(this.hoveredRange&&this.hoveredRange.from===a&&this.hoveredRange.to===i)return;this.clearUnderline(),this.hoveredRange={from:a,to:i,position:t},this.view.dispatch({effects:la.of(this.hoveredRange)})}else this.clearUnderline()});p(this,"click",e=>{if(this.hoveredRange){let t=this.view.state.doc.sliceString(this.hoveredRange.from,this.hoveredRange.to);e.preventDefault(),e.stopPropagation(),this.onClick(this.view,t),this.view.dispatch({selection:{head:this.hoveredRange.position,anchor:this.hoveredRange.position}})}});this.view=e,this.commandClickMode=!1,this.hoveredRange=null,this.onClick=t,window.addEventListener("keydown",this.keydown),window.addEventListener("keyup",this.keyup),window.addEventListener("blur",this.windowBlur),window.addEventListener("mouseleave",this.windowBlur)}update(e){}destroy(){window.removeEventListener("keydown",this.keydown),window.removeEventListener("keyup",this.keyup),window.removeEventListener("blur",this.windowBlur),window.removeEventListener("mouseleave",this.windowBlur),this.view.dom.removeEventListener("mousemove",this.mousemove),this.view.dom.removeEventListener("click",this.click)}exitCommandClickMode(){this.commandClickMode=!1,this.view.dom.removeEventListener("mousemove",this.mousemove),this.view.dom.removeEventListener("click",this.click),this.clearUnderline()}clearUnderline(){this.hoveredRange&&(this.hoveredRange=(this.view.dispatch({effects:ua.of(null)}),null))}};const zc=e=>et.define(t=>new qc(t,e));function Kc(){return[Hc,zc((e,t)=>{of(e,t)}),M.baseTheme({".underline":{textDecoration:"underline",cursor:"pointer",color:"var(--link)"}})]}function Xc(){return[M.domEventHandlers({drop:(e,t)=>{var o,a;let n=(o=e.dataTransfer)==null?void 0:o.files[0];if(n!=null&&n.type.startsWith("text/"))return e.preventDefault(),sf(t,n),!0;if(n!=null&&n.type.startsWith("image/"))return e.preventDefault(),df(t,n),!0;let r=(a=e.dataTransfer)==null?void 0:a.getData("text/plain");if(r){e.preventDefault();let i=t.posAtCoords({x:e.clientX,y:e.clientY});return i!==null&&t.dispatch({changes:{from:i,to:i,insert:r},scrollIntoView:!0}),!0}return!1},dragover:e=>{e.preventDefault()}})]}function Yc(){return[M.domEventHandlers({paste:(e,t)=>{var o;let n=(o=e.clipboardData)==null?void 0:o.getData("text/plain");if(!(n!=null&&n.includes("@app.cell")))return!1;let r=Qc(n);return r.length===0?!1:(t.state.facet(Xd).createManyBelow(r),!0)}})]}function Qc(e){if(!e.includes("@app.cell"))return[];let t=[],n=e.split(`
|
|
18
18
|
`),r=[],o=!1,a=0,i=!1,s=!1,c=0,u=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(Zc(r.join(`
|
|
19
19
|
`))),r=[])}for(let y of n){let v=y.trim();if(!(!v&&!o)){if(v.startsWith("@app.cell")){w(),o=!0,a=1,u=null;continue}if(a>0){v.startsWith("def")&&v.includes("(")&&!v.includes("):")&&(i=!0,c=m(v)),a--;continue}if(i){c+=m(v),c===0&&(i=!1);continue}if(o){if(g.has(v[0])||v.startsWith("if __name__")){w(),o=v.startsWith("@");continue}if(u===null&&v&&(u=h(y)),v.startsWith("return")&&h(y)===u){v.includes("(")&&!v.endsWith(")")&&(s=!0,c=m(v));continue}if(s){c+=m(v),c===0&&(s=!1);continue}r.push(y)}}}return w(),t}function Zc(e){let t=e.split(`
|
|
20
20
|
`);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(`
|
|
21
|
-
`).trim()}function eu(e,t,n,r){var o;return r!=="{"||t!==n||!((o=bi(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 tu(){return M.inputHandler.of(eu)}var te=({variant:e,settings:t,styles:n})=>[M.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"}),wi(rm.define(n))];te({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"}]}),te({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"}]}),te({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"}]}),te({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"}]}),te({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"}]}),te({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"}]}),te({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"}]}),te({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"}]}),te({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"}]}),te({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"}]}),te({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"}]}),te({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"}]}),te({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"}]}),te({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"}]}),te({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"}]}),te({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 nu=[te({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"}]}),M.theme({".mo-cm-reactive-reference":{fontWeight:"400",color:"#2a7aa5",borderBottom:"2px solid #bad3de"},".mo-cm-reactive-reference-hover":{cursor:"pointer",borderBottomWidth:"3px",borderBottomColor:"#4a90a5"}})],ru=[te({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"}]}),M.theme({".mo-cm-reactive-reference":{fontWeight:"400",color:"#005f87",borderBottom:"2px solid #bad3de"},".mo-cm-reactive-reference-hover":{cursor:"pointer",borderBottomWidth:"3px"}})];function da(e){let{showPlaceholder:t,enableAI:n}=e;return t?"marimo-import":n?"ai":"none"}var fa="cm-tooltip-portal";function ou(e){if(e==null)return document.querySelector("#App")??void 0;let t=document.querySelector(e);if(t==null)return;let n=t.querySelector(`:scope > .${fa}`);if(n!=null)return n;let r=document.createElement("div");return r.className=`${fa} not-prose contents`,t.append(r),r}const au=e=>{let{cellId:t,keymapConfig:n,hotkeys:r,enableAI:o,cellActions:a,completionConfig:i,lspConfig:s,diagnosticsConfig:c,displayConfig:u,inlineAiTooltip:d}=e,f=da(e);return[kf(n,r),Xc(),Yc(),Ts(),uf({cellId:t,completionConfig:i,hotkeys:r,placeholderType:f,lspConfig:s,diagnosticsConfig:c}),Zd({cellId:t,hotkeys:r,cellActions:a,keymapConfig:n}),su(e),Kc(),c!=null&&c.enabled?ym():[],o&&d?[ys({prompt:g=>Is({prompt:g.prompt,selection:g.selection,codeBefore:g.codeBefore,codeAfter:g.codeAfter,language:zd(g.editorView)})}),Xt.of({hideOnBlur:!0})]:[],Hd(t,u.reference_highlighting??!0)]};var iu=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:Sm(e)};const su=e=>{let{theme:t,hotkeys:n,completionConfig:r,acceptCompletionOnEnter:o,cellId:a,lspConfig:i,diagnosticsConfig:s,tooltipParentSelector:c}=e,u=da(e),d=r.auto_close_pairs!==!1;return[M.lineWrapping,cm(),am(),om(),fm(),em(),Kf(),im(),Zf({position:"fixed",parent:ou(c)}),Ud(),t==="dark"?nu:ru,gf(i),Dc(r),dm(),tu(),d?xm():[],Ls(o),d?dt.high(He.of(km)):[],lm(),Qf(),Xf.of(" "),wi(nm,{fallback:!0}),He.of(zf),mf({placeholderType:u,completionConfig:r,hotkeys:n,cellId:a,lspConfig:{...i,diagnostics:s}}),lf.of(bm()),Br.allowMultipleSelections.of(!0),Vc(n),He.of([{key:"Tab",run:f=>Ei(f)||iu(f)||vm(f),preventDefault:!0},{key:n.getHotkey("completion.moveDown").key,run:f=>Wt(f.state)===null?!1:(Pn(!0)(f),!0),preventDefault:!0},{key:n.getHotkey("completion.moveUp").key,run:f=>Wt(f.state)===null?!1:(Pn(!1)(f),!0),preventDefault:!0}]),He.of([...gm,mm])]};var rt=(e=>!e||e instanceof WebAssembly.Module?e:typeof e=="object"&&"default"in e?e.default??e:e)(wp),cr=e=>{Ep(e),typeof Ji=="function"&&Ji(),lu(kt)};function lu(e){typeof e.__wbindgen_start=="function"&&e.__wbindgen_start()}if(rt&&rt.__wbindgen_start)cr(rt);else if("Bun"in globalThis){let e;if(rt instanceof WebAssembly.Module)({instance:e}=await WebAssembly.instantiate(rt,{"./loro_wasm_bg.js":kt}));else{let t=Bun.pathToFileURL(rt);({instance:e}=await WebAssembly.instantiateStreaming(fetch(t),{"./loro_wasm_bg.js":kt}))}cr(e.exports)}else{let e=rt instanceof WebAssembly.Module?rt:await Qm(()=>import("./loro_wasm_bg-Drxc4adW.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":kt});else if(t instanceof ArrayBuffer||ArrayBuffer.isView(t)){let{instance:r}=await WebAssembly.instantiate(t,{"./loro_wasm_bg.js":kt});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":kt});n=o}else throw console.error("Unsupported wasm import type:",t),Error("Unsupported wasm import type: "+typeof t);cr(n.exports??n)}var cu=["Map","Text","List","Tree","MovableList","Counter"];function uu(e){return e.startsWith("cid:")}function ma(e){if(typeof e!="object"||!e)return!1;let t=Object.getPrototypeOf(e);return typeof t!="object"||!t||typeof t.kind!="function"?!1:cu.includes(e.kind())}var du=class{constructor(e,t=3e4){this.listeners=new Set,this.inner=new vp(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))}};Jr.prototype.toJsonWithReplacer=function(e){let t=new Set,n=this,r=(a,i)=>{if(typeof i=="string"&&uu(i)&&!t.has(i)){t.add(i);let c=n.getContainerById(i);if(c==null)throw Error(`ContainerID not found: ${i}`);let u=e(a,c);if(u===c){let d=c.getShallowValue();return typeof d=="object"?o(d):d}if(ma(u))throw Error("Using new container is not allowed in toJsonWithReplacer");return typeof u=="object"&&u?o(u):u}if(typeof i=="object"&&i)return o(i);let s=e(a,i);if(ma(s))throw Error("Using new container is not allowed in toJsonWithReplacer");return s},o=a=>{if(Array.isArray(a))return a.map((s,c)=>r(c,s)).filter(s=>s!==void 0);let i={};for(let[s,c]of Object.entries(a)){let u=r(s,c);u!==void 0&&(i[s]=u)}return i};return o(n.getShallowValue())};var pa=Symbol("loro.callPendingEventsWrapped");function fu(e,t){let n=Object.getOwnPropertyDescriptor(e,t);if(!n||typeof n.value!="function")return;let r=n.value;if(r[pa])return;let o=function(...a){let i;try{return i=r.apply(this,a),i}finally{i&&typeof i.then=="function"?i.finally(()=>{Gi()}):Gi()}};o[pa]=!0,Object.defineProperty(e,t,{...n,value:o})}function ur(e,t){for(let n of t)fu(e,n)}ur(Jr.prototype,["setDetachedEditing","attach","detach","fork","forkAt","checkoutToLatest","checkout","commit","getCursorPos","revertTo","export","exportJsonUpdates","exportJsonInIdSpan","importJsonUpdates","import","importUpdateBatch","importBatch","travelChangeAncestors","getChangedContainersIn","diff","applyDiff","setPeerId"]),ur(bp.prototype,["set","delete","apply","removeOutdated"]),ur(yp.prototype,["undo","redo"]);const mu=M.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"}});Ur.define();const Dt=he.define(),dr=Xe.define({create(){return{remoteCursors:new Map,isCheckout:!1}},update(e,t){for(let n of t.effects)if(n.is(Dt))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 ga=e=>{let t=e.transactions.flatMap(n=>n.effects).filter(n=>n.is(Dt));return e.docChanged||e.viewportChanged||t.length>0};const pu=()=>yi({above:!0,class:"loro-cursor-layer",update:ga,markers:e=>{let{remoteCursors:t,isCheckout:n}=e.state.field(dr);return n?[]:[...t.values()].flatMap(r=>{var a,i;let o=vt.cursor(r.cursor.anchor);return hu.createCursor(e,o,((a=r.user)==null?void 0:a.name)||"unknown",((i=r.user)==null?void 0:i.colorClassName)||"")})}}),gu=()=>yi({above:!1,class:"loro-selection-layer",update:ga,markers:e=>{let{remoteCursors:t,isCheckout:n}=e.state.field(dr);return n?[]:[...t.entries()].filter(([,r])=>r.cursor.head!==void 0&&r.cursor.anchor!==r.cursor.head).flatMap(([,r])=>{var a;let o=vt.range(r.cursor.anchor,r.cursor.head);return sm.forRange(e,`loro-selection ${((a=r.user)==null?void 0:a.colorClassName)||""}`,o)})}});var hu=class qr{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=qr.calculateAbsoluteCursorPosition(n,t);if(!a)return[];let i=t.scrollDOM.getBoundingClientRect(),s=(t.textDirection===um.LTR?i.left:i.right-t.scrollDOM.clientWidth)-t.scrollDOM.scrollLeft,c=i.top-t.scrollDOM.scrollTop;return[new qr(a.left-s,a.top-c,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)}},bu=(e,t,n,r)=>{let o=[],{updated:a,added:i}=n;for(let s of[...a,...i]){let c=ha(e,t,s,r);c&&o.push(c)}return o},ha=(e,t,n,r)=>{var c,u;let o=t.getAllStates()[n];if(!o||n===e.peerIdStr||o.scopeId!==r)return;if(o.type==="delete")return Dt.of({type:"delete",peer:o.uid,scopeId:o.scopeId});let a=Wi.decode(o.cursor.anchor),i=((c=e.getCursorPos(a))==null?void 0:c.offset)??0,s=i;if(o.cursor.head){let d=Wi.decode(o.cursor.head);s=((u=e.getCursorPos(d))==null?void 0:u.offset)??0}return Dt.of({type:"update",peer:o.uid,scopeId:o.scopeId,cursor:{anchor:i,head:s},user:o.user})},yu=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 c=[];for(let u of this.awareness.peers()){let d=ha(this.doc,this.awareness,u,this.scopeId);d&&c.push(d)}this.view.dispatch({effects:c})}else s.by==="checkout"&&this.view.dispatch({effects:[Dt.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=vu({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})}},wu=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:bu(this.doc,this.awareness,a,this.scopeId)})};this._awarenessListener=o,this.awareness.addListener(o)}destroy(){this._awarenessListener&&this.awareness.removeListener(this._awarenessListener)}},vu=({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 wn=["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 wn[Math.abs(t)%wn.length]}return wn[e%wn.length]};var pe=$e.get("rtc"),ba=pe.get("awareness").disabled(),fr="awareness:";function Nu(e,t){let n=new TextEncoder().encode(e);return new Uint8Array([...n,...t])}function ku(e,t){return new TextDecoder().decode(e.slice(0,t.length))===t}function Cu(e,t){return e.slice(t.length)}ft=Bt(void 0);var ne=new Jr,vn=new du(ne.peerIdStr),mr=Nm(()=>{pe.debug("creating websocket");let e=new kp(hi().getWsSyncURL(Zm()).toString(),void 0,{maxRetries:10,debug:!1,startClosed:!0,connectionTimeout:1e4});return Promise.resolve().then(async()=>{await gi(),cf()==="edit"&&e.reconnect()}),e.addEventListener("message",async t=>{let n=await t.data.arrayBuffer(),r=new Uint8Array(n);if(ku(r,fr)){let o=Cu(r,fr);vn.apply(o),ba.debug("applied awareness update");return}ne.import(r),pe.debug("imported doc change. new doc:",ne.toJSON()),Y.get(ft)!==ne&&Y.set(ft,ne)}),e.addEventListener("open",()=>{pe.debug("websocket open")}),e.addEventListener("close",t=>{pe.warn("websocket close",t),Y.get(ft)===ne&&Y.set(ft,void 0)}),e});Tr()&&mr(),ne.subscribeLocalUpdates(e=>{pe.debug("local update, sending to server"),mr().send(e)}),vn.addListener((e,t)=>{let n=[...e.added,...e.removed,...e.updated];t==="local"&&(ba.debug("awareness changes",n),mr().send(Nu(fr,vn.encode(n))))});function pr(e,t,n=""){if(_f())return{extension:[],code:n};let r=ne.getByPath(`codes/${e}`)!==void 0,o=ne.getMap("codes").getOrCreateContainer(e,new Gr);return r||(pe.log("initializing code for new cell",n),o.insert(0,n)),{code:n.toString(),extension:[Su(e),xu(e),Iu(ne,vn,{get name(){return Y.get(of)||"Anonymous"},get colorClassName(){return Eu(this.name)}},()=>o,e),Xd(ne,["codes",e],()=>o)]}}function Su(e){let t=(r,o)=>{let a=r.state.field(Tn).type,i=o.toString();i&&i!==a&&(pe.debug(`[incoming] setting language type: ${a} -> ${i}`),Pt(r,{language:i,keepCodeAsIs:!0}))},n=(r,o)=>{let a=r.state.field(Cr),i=o.toJSON();In(a,i)||r.dispatch({effects:[ii.of(i)],annotations:[Qa.of(!0)]})};return et.define(r=>{let o;return Promise.resolve().then(()=>{let a=ne.getByPath(`languages/${e}`);if(!a){pe.error("no language container found for cell",e);return}Mt(a instanceof Gr,"language type is not a LoroText");let i=ne.getByPath(`language_metadata/${e}`);if(!i){pe.error("no language metadata container found for cell",e);return}Mt(i instanceof Vi,"language metadata is not a LoroMap"),t(r,a),n(r,i),o=ne.subscribe(s=>{if(s.origin==="local")return;let c=s.events.some(d=>d.target===a.id),u=s.events.some(d=>d.target===i.id);c&&t(r,a),u&&n(r,i)})}),{destroy(){o()}}})}function xu(e){let t=ne.getMap("languages").getOrCreateContainer(e,new Gr),n=ne.getMap("language_metadata").getOrCreateContainer(e,new Vi);return M.updateListener.of(r=>{let o=t.toString()!=="";if(!r.docChanged&&o)return;if(!o){let i=xr(r.state).type;Pt(r.view,{language:i}),pe.debug("no initial language, setting default to",i),t.delete(0,t.length),t.insert(0,i),pe.debug("no initial language metadata, setting default to",r.state.field(Cr));let s=r.state.field(Cr);for(let c of Object.keys(s))n.set(c,s[c]);ne.commit();return}let a=!1;for(let i of r.transactions)if(!i.annotation(Qa)){for(let s of i.effects)if(s.is(sf)&&t.toString()!==s.value.type&&(pe.debug(`[outgoing] language change: ${t} -> ${s.value.type}`),t.delete(0,t.length),t.insert(0,s.value.type),a=!0),s.is(ii)||s.is(oi)){let c=s.value;s.is(oi)?(pe.debug("[outgoing] setting language metadata: ",c),n.clear()):pe.debug("[outgoing] updating language metadata: ",c);for(let u of Object.keys(c))n.set(u,c[u]);a=!0}}a&&ne.commit()})}function Iu(e,t,n,r,o,a){let i=`loro:cell:${o}`;return[dr,pu(),gu(),et.define(s=>new yu(s,e,n,t,r,i,a)),et.define(s=>new wu(s,e,t,i)),mu]}var Au=ve(),Tu=Gf;Vr=e=>{let t=(0,Au.c)(41),{resetOnBlur:n,placeholderText:r,initialValue:o,flexibleWidth:a,onNameChange:i,className:s}=e,c=n===void 0?!1:n,u=o===void 0?null:o,d=a===void 0?!1:a,{sendListFiles:f}=jn(),[g,m]=(0,A.useState)(u),h;t[0]===Symbol.for("react.memo_cache_sentinel")?(h=[],t[0]=h):h=t[0];let[w,y]=(0,A.useState)(h),[v,C]=(0,A.useState)(!1),S=(0,A.useRef)(null),_=(0,A.useRef)(!1),B,T;t[1]===u?(B=t[2],T=t[3]):(B=()=>{m(u)},T=[u],t[1]=u,t[2]=B,t[3]=T),(0,A.useEffect)(B,T);let I;t[4]===Symbol.for("react.memo_cache_sentinel")?(I=()=>{C(!0)},t[4]=I):I=t[4];let G=I,j;t[5]!==u||t[6]!==c?(j=z=>{var yt;(yt=z.relatedTarget)!=null&&yt.closest(".filename-input")||(C(!1),c&&m(u))},t[5]=u,t[6]=c,t[7]=j):j=t[7];let re=j,O;t[8]===g?O=t[9]:(O=tt.dirname(g||""),t[8]=g,t[9]=O);let F=O,se=tt.basename(g||""),le=w.filter(z=>tt.basename(z.path).startsWith(se)),oe;t[10]!==F||t[11]!==v||t[12]!==f?(oe=async()=>{if(!v){y([]);return}y((await f({path:F})).files)},t[10]=F,t[11]=v,t[12]=f,t[13]=oe):oe=t[13];let ee;t[14]!==F||t[15]!==v?(ee=[F,v],t[14]=F,t[15]=v,t[16]=ee):ee=t[16];let{isPending:D}=up(oe,ee),U=Fu(g,w,u),we=(U||le.length>0)&&(0,b.jsxs)(ji,{className:"font-mono",children:[!D&&(0,b.jsx)(fp,{children:"No files"}),U&&(0,b.jsxs)(Pi,{variant:"success",className:"py-2 px-3",onSelect:()=>{var z;U&&(_.current=!0,i(U),(z=S.current)==null||z.blur())},children:[(0,b.jsx)(Z,{className:"w-4 h-4 mr-2"})," ",(0,b.jsxs)("span",{className:"text-sm",children:[u?"Rename to: ":"Save as: ",(0,b.jsx)("span",{className:"font-medium text-sm",children:tt.basename(U)})]})]},"_rename_"),le.map(z=>{let yt=zm[z.isDirectory?"directory":qm(z.path)];return(0,b.jsxs)(Pi,{variant:z.isDirectory?"default":"muted",className:"py-2 px-3",onSelect:()=>{z.isDirectory?m(`${z.path}/`):m(z.path)},children:[(0,b.jsx)(yt,{className:"w-4 h-4 mr-2"})," ",tt.basename(z.path)]},z.path)})]}),ce=Math.max(20,(g==null?void 0:g.length)||(r==null?void 0:r.length)||0)*10,k=v?g||"":u||"",x;t[17]!==d||t[18]!==ce?(x=d?{maxWidth:ce}:void 0,t[17]=d,t[18]=ce,t[19]=x):x=t[19];let P;t[20]===s?P=t[21]:(P=Ze(s,"w-full px-4 py-1 my-1 h-9 font-mono text-foreground/60"),t[20]=s,t[21]=P);let L;t[22]!==r||t[23]!==k||t[24]!==x||t[25]!==P?(L=(0,b.jsx)(Tu,{children:(0,b.jsx)(dp,{"data-testid":"dir-completion-input",tabIndex:-1,rootClassName:"border-none justify-center px-1",spellCheck:"false",value:k,onKeyDown:Lu,icon:null,ref:S,onValueChange:m,placeholder:r,autoComplete:"off",style:x,className:P})}),t[22]=r,t[23]=k,t[24]=x,t[25]=P,t[26]=L):L=t[26];let ue=we&&"group-focus-within:block",Je;t[27]===ue?Je=t[28]:(Je=Ze("p-0 w-full min-w-80 max-w-80vw hidden",ue),t[27]=ue,t[28]=Je);let Ve;t[29]!==we||t[30]!==Je?(Ve=(0,b.jsx)(Jf,{side:"bottom",className:Je,portal:!1,children:we}),t[29]=we,t[30]=Je,t[31]=Ve):Ve=t[31];let We;t[32]!==L||t[33]!==Ve?(We=(0,b.jsxs)(ji,{children:[L,Ve]}),t[32]=L,t[33]=Ve,t[34]=We):We=t[34];let W;t[35]!==re||t[36]!==We?(W=(0,b.jsx)(mp,{onFocus:G,onBlur:re,shouldFilter:!1,id:"filename-input",className:"bg-transparent group filename-input",children:We}),t[35]=re,t[36]=We,t[37]=W):W=t[37];let ge;return t[38]!==v||t[39]!==W?(ge=(0,b.jsx)(Mf,{children:(0,b.jsx)(Wf,{open:v,modal:!1,children:W})}),t[38]=v,t[39]=W,t[40]=ge):ge=t[40],ge};function Fu(e,t,n){if(e&&!e.endsWith("/")&&((Jd("markdown")?new Set(["py","md","markdown","qmd"]):new Set(["py"])).has(tt.extension(e))||(e=e.endsWith(".")?`${e}py`:e.endsWith(".p")?`${e}y`:`${e}.py`),!t.some(r=>r.path===e||tt.basename(r.path)===e)&&!(n&&(n===e||tt.basename(n)===e))))return e}function Lu(e){e.key==="Escape"&&e.currentTarget.blur()}var ya=ve(),Ou=e=>{let t=(0,ya.c)(33),n=()=>{qf(new Blob([r()],{type:"text/plain"}),`${e.proposedName}.json`)},r=ae(Uu),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)(Fi,{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 c,u;t[7]===Symbol.for("react.memo_cache_sentinel")?(c=(0,b.jsx)("p",{children:"This app has unsaved changes. To recover:"}),u={paddingBottom:"10px"},t[7]=c,t[8]=u):(c=t[7],u=t[8]);let d;t[9]===e.proposedName?d=t[10]:(d=(0,b.jsxs)("li",{style:u,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)(rp,{className:"markdown break-words",style:s,children:(0,b.jsxs)("div",{className:"prose dark:prose-invert",children:[c,(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)(ut,{"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)(ut,{"data-testid":"download-recovery-button","aria-label":"Download",variant:"default",type:"submit",children:"Download"}),t[25]=C):C=t[25];let S;t[26]===v?S=t[27]:(S=(0,b.jsxs)(Li,{children:[v,C]}),t[26]=v,t[27]=S);let _;return t[28]!==o||t[29]!==a||t[30]!==y||t[31]!==S?(_=(0,b.jsx)(Oi,{className:"w-fit",children:(0,b.jsxs)("form",{onSubmit:o,onKeyDown:a,children:[i,y,S]})}),t[28]=o,t[29]=a,t[30]=y,t[31]=S,t[32]=_):_=t[32],_};const _u=e=>{let t=(0,ya.c)(12),{filename:n,needsSave:r}=e,{openModal:o,closeModal:a}=Di(),i;t[0]===n?i=t[1]:(i=n===null?"app":tt.basename(n).split(".")[0],t[0]=n,t[1]=i);let s=i,c;t[2]!==a||t[3]!==r||t[4]!==o||t[5]!==s?(c=()=>{r&&o((0,b.jsx)(Ou,{proposedName:s,closeModal:a}))},t[2]=a,t[3]=r,t[4]=o,t[5]=s,t[6]=c):c=t[6];let u=c;_i("global.save",u);let d;t[7]===Symbol.for("react.memo_cache_sentinel")?(d=Mi("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)(Ii,{strokeWidth:1.5,size:18}),t[8]=g):g=t[8];let m;return t[9]!==u||t[10]!==f?(m=(0,b.jsx)(_n,{content:d,children:(0,b.jsx)($i,{onClick:u,id:"save-button","aria-label":"Save",className:"rectangle",color:f,children:g})}),t[9]=u,t[10]=f,t[11]=m):m=t[11],m};function Du(e){return{id:e.id,name:e.name,code:e.code,code_hash:null,config:{column:0,...e.config}}}function Uu(){let e=Ar(jt()),t={version:"1",metadata:{marimo_version:jf()},cells:e.map(Du)};return JSON.stringify(t,null,2)}let gr;Gn=Bt(void 0),gr=Bt(e=>{let t=e(Gn);return Bu({state:e(ot),layout:e(Ni),lastSavedNotebook:t})});function Bu({state:e,layout:t,lastSavedNotebook:n}){if(!n)return!1;let{cellIds:r,cellData:o}=e,a=r.inOrderIds.map(u=>o[u]),i=a.map(u=>u.code),s=a.map(u=>u.config),c=a.map(u=>u.name);return!vi(i,n.codes)||!vi(c,n.names)||!In(s,n.configs)||!In(t.selectedLayout,n.layout.selectedLayout)||!In(t.layoutData,n.layout.layoutData)}var Pu=ve();function ju(e){let t=(0,Pu.c)(21),{codes:n,cellConfigs:r,config:o,connStatus:a,cellNames:i,needsSave:s,kioskMode:c,onSave:u}=e,d=(0,A.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(Mu).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]!==c||t[9]!==s||t[10]!==u?(v=()=>{if(!c)return o.autosave==="after_delay"&&(d.current!==null&&clearTimeout(d.current),s&&a.state===Rt.OPEN&&(d.current=setTimeout(u,o.autosave_delay))),()=>{d.current!==null&&clearTimeout(d.current)}},t[6]=o,t[7]=a.state,t[8]=c,t[9]=s,t[10]=u,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]!==c||t[18]!==s||t[19]!==u?(C=[g,h,y,o,a.state,u,c,s],t[12]=h,t[13]=y,t[14]=g,t[15]=o,t[16]=a.state,t[17]=c,t[18]=s,t[19]=u,t[20]=C):C=t[20],(0,A.useEffect)(v,C)}function Mu(e){return JSON.stringify(e)}var En=ve();zi=e=>{let t=(0,En.c)(15),{kioskMode:n}=e,r=sp(),o=ie(gr),a=ie(wt).state===Rt.CLOSED,{saveOrNameNotebook:i,saveIfNotebookIsPersistent:s}=Ht(),c;t[0]!==n||t[1]!==s?(c={onSave:s,kioskMode:n},t[0]=n,t[1]=s,t[2]=c):c=t[2],Wu(c),Cp();let u;t[3]===o?u=t[4]:(u=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]=u),Ff(window,"beforeunload",u);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(_i("global.save",i),a){let y;return t[7]!==r||t[8]!==o?(y=(0,b.jsx)(_u,{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=Mi("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)(Ii,{strokeWidth:1.5,size:18}),t[11]=h):h=t[11];let w;return t[12]!==f||t[13]!==m?(w=(0,b.jsx)(_n,{content:g,children:(0,b.jsx)($i,{"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},Ht=function(){let e=(0,En.c)(21),{sendSave:t}=jn(),{openModal:n,closeModal:r,openAlert:o}=Di(),a=za(Gn),i=lp(),s=kr(),c;e[0]!==o||e[1]!==t||e[2]!==a||e[3]!==s?(c=async(v,C)=>{let S=s.get(wt),_=s.get(pi);if(s.get(tf))return;if(S.state!==Rt.OPEN){o("Failed to save notebook: not connected to a kernel.");return}$e.log("saving to ",v),C&&_.format_on_save&&($e.log("formatting notebook (onSave)"),await Dd());let B=jt(),T=Ar(B),I=T.map(Ju),G=T.map(Gu),j=T.map(Ru),re=ri(B),O=s.get(Ni);G.length!==0&&(await t({cellIds:I,codes:G,names:j,filename:v,configs:re,layout:Om(),persist:!0}),a({names:j,codes:G,configs:re,layout:O}))},e[0]=o,e[1]=t,e[2]=a,e[3]=s,e[4]=c):c=e[4];let u=ae(c),d;e[5]!==u||e[6]!==s?(d=v=>{let C=v===void 0?!1:v,S=s.get(Ya),_=s.get(wt);wa(S)&&_.state===Rt.OPEN&&u(S,C)},e[5]=u,e[6]=s,e[7]=d):d=e[7];let f=ae(d),g;e[8]!==u||e[9]!==i?(g=v=>{i(v).then(C=>{C!==null&&u(C,!0)})},e[8]=u,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(Ya),C=s.get(wt);f(!0),!wa(v)&&C.state!==Rt.CLOSED&&n((0,b.jsx)(Hu,{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=ae(h),y;return e[17]!==f||e[18]!==u||e[19]!==w?(y={saveOrNameNotebook:w,saveIfNotebookIsPersistent:f,saveNotebook:u},e[17]=f,e[18]=u,e[19]=w,e[20]=y):y=e[20],y};function Ru(e){return e.name}function Gu(e){return e.code}function Ju(e){return e.id}function wa(e){return e!==null&&!e.startsWith("/tmp/")&&!e.startsWith("/var/folders")&&!e.includes("AppData\\Local\\Temp")}function Wu(e){let t=(0,En.c)(14),n=ie(pi),r=jd(),[o]=xn(wt),a=ie(gr),i,s;if(t[0]!==r){let g=Ar(r);i=g.map($u),s=g.map(Vu),t[0]=r,t[1]=i,t[2]=s}else i=t[1],s=t[2];let c=s,u;t[3]===r?u=t[4]:(u=ri(r),t[3]=r,t[4]=u);let d=u,f;t[5]!==n||t[6]!==c||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:c,connStatus:o,config:n,kioskMode:e.kioskMode},t[5]=n,t[6]=c,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],ju(f)}function Vu(e){return e.name}function $u(e){return e.code}var Hu=e=>{let t=(0,En.c)(17),{onClose:n,onSave:r}=e,[o,a]=(0,A.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,c;t[3]===Symbol.for("react.memo_cache_sentinel")?(c=(0,b.jsx)(Fi,{children:"Save notebook"}),t[3]=c):c=t[3];let u;t[4]===Symbol.for("react.memo_cache_sentinel")?(u=(0,b.jsx)(_r,{className:"text-md pt-6 px-1",children:"Save as"}),t[4]=u):u=t[4];let d;t[5]===s?d=t[6]:(d=(0,b.jsxs)("div",{className:"flex flex-col",children:[u,(0,b.jsx)(Vr,{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)(ut,{"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)(ut,{"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)(Li,{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)(Oi,{children:[c,d,h]}),t[14]=d,t[15]=h,t[16]=w):w=t[16],w};Rn=function(...e){return t=>{e.forEach(n=>{typeof n=="function"?n(t):n!=null&&(n.current=t)})}};var va={modified:{doc:""},original:{doc:""}},Ea=(0,A.createContext)(va);function qu(e,t){return K({},e,t,{modified:K({},e.modified,t.modified),original:K({},e.original,t.original)})}var hr=()=>(0,A.useContext)(Ea),zu=e=>{var{children:t,theme:n}=e,[r,o]=(0,A.useReducer)(qu,K({},va,{theme:n}));return(0,A.useEffect)(()=>o({theme:n}),[n]),(0,b.jsx)(Ea.Provider,{value:K({},r,{dispatch:o}),children:t})},Ku=["extensions","value","selection","onChange"],Na=e=>{var{extensions:t=[],value:n,selection:r,onChange:o}=e,a=Vt(e,Ku),{theme:i,dispatch:s}=hr(),c=Nt(K({},a,{theme:i}));return(0,A.useEffect)(()=>s({original:{doc:n,selection:r,extensions:[...c,...t]},originalExtension:{onChange:o,option:a,extension:[t]}}),[e]),null};Na.displayName="CodeMirrorMerge.Original";var Xu=["extensions","value","selection","onChange"],ka=e=>{var{extensions:t=[],value:n,selection:r,onChange:o}=e,a=Vt(e,Xu),{theme:i,dispatch:s}=hr(),c=Nt(K({},a,{theme:i}));return(0,A.useEffect)(()=>{s({modified:{doc:n,selection:r,extensions:[...c,...t]},modifiedExtension:{onChange:o,option:a,extension:[t]}})},[e]),null};ka.displayName="CodeMirrorMerge.Modified";var Yu=["className","children","orientation","revertControls","highlightChanges","gutter","collapseUnchanged","destroyRerender","renderRevertControl","diffConfig","root"],Qu=["modified","modifiedExtension","original","originalExtension","theme","dispatch"],Ca=A.forwardRef((e,t)=>{var{className:n,children:r,orientation:o,revertControls:a,highlightChanges:i,gutter:s,collapseUnchanged:c,destroyRerender:u=!0,renderRevertControl:d,diffConfig:f,root:g}=e,m=Vt(e,Yu),h=hr(),{modified:w,modifiedExtension:y,original:v,originalExtension:C,theme:S,dispatch:_}=h,B=Vt(h,Qu),T=(0,A.useRef)(null),I=(0,A.useRef)(),G={orientation:o,revertControls:a,highlightChanges:i,gutter:s,collapseUnchanged:c,renderRevertControl:d,diffConfig:f,root:g};(0,A.useImperativeHandle)(t,()=>({container:T.current,view:I.current,modified:w,original:v,config:K({a:v,b:w,parent:T.current},G)}),[T,I,w,v,G]);var j=M.updateListener.of(O=>{if(O.docChanged&&typeof(C==null?void 0:C.onChange)=="function"){var F=O.state.doc.toString();C==null||C.onChange(F,O)}}),re=M.updateListener.of(O=>{if(O.docChanged&&typeof(y==null?void 0:y.onChange)=="function"){var F=O.state.doc.toString();y==null||y.onChange(F,O)}});return(0,A.useEffect)(()=>{!I.current&&T.current&&C&&y&&(I.current=new Ri(K({a:K({},v,{extensions:[...(C==null?void 0:C.extension)||[],...Nt(K({},C==null?void 0:C.option,{theme:S})),j]}),b:K({},w,{extensions:[...(y==null?void 0:y.extension)||[],...Nt(K({},y==null?void 0:y.option,{theme:S})),re]}),parent:T.current},G)),_({view:I.current}))},[I,T,C,y]),(0,A.useEffect)(()=>{var D,U;if(v&&v.doc&&I.current){var O=(D=I.current)==null?void 0:D.a.state.doc.toString();if(O!==v.doc){var F;(F=I.current)==null||F.a.dispatch({changes:{from:0,to:O.length,insert:v.doc||""}})}}if(w&&w.doc&&I.current){var se=(U=I.current)==null?void 0:U.b.state.doc.toString();if(se!==w.doc){var le;(le=I.current)==null||le.b.dispatch({changes:{from:0,to:se.length,insert:w.doc||""}})}}if(u&&I.current){var oe=I.current.a.state.selection.ranges[0].from,ee=I.current.b.state.selection.ranges[0].from;I.current.destroy(),I.current=new Ri(K({a:K({},v,{extensions:[...(C==null?void 0:C.extension)||[],...Nt(K({},C==null?void 0:C.option,{theme:S}))]}),b:K({},w,{extensions:[...(y==null?void 0:y.extension)||[],...Nt(K({},y==null?void 0:y.option,{theme:S}))]}),parent:T.current},G)),oe&&(I.current.a.focus(),I.current.a.dispatch({selection:{anchor:oe,head:oe}})),ee&&(I.current.b.focus(),I.current.b.dispatch({selection:{anchor:ee,head:ee}}))}},[I,S,T.current,v,w,C,y,u]),(0,A.useEffect)(()=>()=>I.current&&I.current.destroy(),[]),(0,A.useEffect)(()=>{if(I.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!==c&&(O.collapseUnchanged=c),B.renderRevertControl!==d&&(O.collapseUnchanged=c),Object.keys(O).length&&_&&I.current&&(I.current.reconfigure(K({},O)),_(K({},O)))}},[_,I,o,a,i,s,c,d]),(0,b.jsx)("div",K({ref:T,className:"cm-merge-theme"+(n?" "+n:"")},m,{children:r}))});Ca.displayName="CodeMirrorMerge.Internal";var Zu=["theme"],Nn=A.forwardRef((e,t)=>{var{theme:n}=e;return(0,b.jsx)(zu,{theme:n,children:(0,b.jsx)(Ca,K({},Vt(e,Zu),{ref:t}))})});Nn.Original=Na,Nn.Modified=ka,Nn.displayName="CodeMirrorMerge";var br=Nn,ed=ve(),td=br.Original,nd=br.Modified,Sa=[Qd(),M.lineWrapping];const rd=({cellId:e,aiCompletionCell:t,className:n,onChange:r,currentLanguageAdapter:o,currentCode:a,declineChange:i,acceptChange:s,runCell:c,outputArea:u,children:d})=>{let[f,g]=(0,A.useState)(!1),[m,h]=(0,A.useState)({}),[w,y]=xn(ip),v=(0,A.useId)(),C=Uf(),{initialPrompt:S,triggerImmediately:_,cellId:B}=t??{},T=B===e,I=ie(Rm).get(e),G;(I==null?void 0:I.type)==="update_cell"&&(G=I.previousCode);let{completion:j,input:re,stop:O,isLoading:F,setCompletion:se,setInput:le,handleSubmit:oe,complete:ee}=Jm({api:C.getAiURL("completion").toString(),headers:C.headers(),initialInput:S,experimental_throttle:100,body:{...Object.keys(m).length>0?m:S?ki({input:S}):{},includeOtherCode:w?Ir(a):"",code:a,language:o},onError:W=>{Et({title:"Completion failed",description:op(W)})},onFinish:(W,ge)=>{se(qn(ge).trimEnd())}}),D=A.useRef(null),U=qn(j,{streaming:F}).trimEnd(),we=(0,A.useCallback)(()=>{_&&!F&&S&&ee(S)},[_]);(0,A.useEffect)(()=>{var W;T&&(qd(()=>{let ge=D.current;return ge!=null&&ge.view?(ge.view.focus(),we(),!0):!1},{retries:3,delay:100,initialDelay:100}),nf((W=D.current)==null?void 0:W.view))},[T,we]),(0,A.useEffect)(()=>{T&&le(S||"")},[T,S,le]);let{theme:ce}=ep(),k=()=>{s(U),se("")},x=()=>{i(),se("")},P=T&&_&&(U||F);u??(u="below");let L=T&&(!_||f),ue=(0,b.jsx)("div",{className:Ze("w-full bg-(--cm-background) flex justify-center transition-all duration-300 ease-in-out overflow-hidden",P?"max-h-20 opacity-100 translate-y-0":"max-h-0 opacity-0 -translate-y-2"),children:(0,b.jsx)(od,{status:F?"loading":"generated",onAccept:k,onReject:x,showInputPrompt:f,setShowInputPrompt:g,runCell:c,className:"mt-4 mb-3 w-128"})}),Je=(W,ge)=>(0,b.jsxs)(br,{className:"cm",theme:ce,children:[(0,b.jsx)(td,{onChange:r,value:W,extensions:Sa}),(0,b.jsx)(nd,{value:ge,editable:!1,readOnly:!0,extensions:Sa})]}),Ve=()=>{if(U&&T)return Je(a,U);if(!U&&G)return Je(G,a)},We=(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(Si,{isLoading:F,onAccept:k,size:"xs",multipleCompletions:!1,acceptShortcut:"Mod-\u21B5",runCell:c,borderless:!0,buttonStyles:"hover:shadow-none",playButtonStyles:"hover:shadow-none"}),(0,b.jsx)(Ci,{onDecline:x,size:"xs",multipleCompletions:!1,declineShortcut:"Shift-Mod-Delete",borderless:!0,className:"hover:shadow-none"})]});return(0,b.jsxs)("div",{"data-ai-input-open":L,className:Ze("flex flex-col w-full rounded-[inherit]",n),children:[(0,b.jsx)("div",{className:Ze("flex items-center gap-2 px-3 transition-all rounded-[inherit] rounded-b-none duration-300",L&&"max-h-[400px] border-b min-h-11 visible",!L&&"max-h-0 min-h-0 invisible"),children:T&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(Ym,{className:"text-(--blue-10) shrink-0",size:16}),(0,b.jsx)(Vm,{inputRef:D,className:"h-full my-0 py-2 flex items-center",onClose:()=>{i(),se("")},value:re,onChange:W=>{le(W),h(ki({input:W}))},onSubmit:()=>{var W;F||((W=D.current)!=null&&W.view&&Wm(D.current.view),oe())},onKeyDown:$m({handleAcceptCompletion:k,handleDeclineCompletion:x,isLoading:F,hasCompletion:U.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)(Gm,{isLoading:F,onStop:O,onSendClick:oe,isEmpty:!re.trim(),showStopLabel:!0}),(0,b.jsx)(Hm,{handleAddContext:()=>Bm(D),isLoading:F}),(0,b.jsx)(If,{triggerClassName:"h-7 text-xs",iconSize:"small",forRole:"edit",displayIconOnly:!0,placeholder:"Edit model"})]}),U&&(0,b.jsx)("div",{className:"mt-1 flex items-center gap-1",children:We})]}),(0,b.jsx)("div",{className:"h-full w-px bg-border mx-2"}),(0,b.jsx)(_n,{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)(Kd,{"data-testid":"include-other-cells-checkbox",id:v,checked:w,onCheckedChange:W=>y(!!W)}),(0,b.jsx)(_r,{htmlFor:v,className:"text-muted-foreground text-xs whitespace-nowrap ellipsis",children:"All code"})]})}),(0,b.jsx)(ut,{"data-testid":"decline-completion-button",variant:"text",size:"icon",disabled:F,onClick:()=>{O(),i(),se("")},children:(0,b.jsx)(Dm,{className:"text-(--red-10)",size:16})})]})}),u==="above"&&ue,Ve(),(!U||!T)&&!G&&d,u==="below"&&ue]})};var od=e=>{let t=(0,ed.c)(27),{status:n,onAccept:r,onReject:o,className:a,showInputPrompt:i,setShowInputPrompt:s,runCell:c}=e,u=n==="loading",d;t[0]===a?d=t[1]:(d=Ze("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]===u?f=t[3]:(f=u?(0,b.jsx)(Km,{className:"animate-spin text-blue-600 mb-px",size:15,strokeWidth:2,"aria-label":"Generating fix"}):(0,b.jsx)(Um,{className:"text-green-600 mb-px",size:15,strokeWidth:2,"aria-label":"Fix generated"}),t[2]=u,t[3]=f);let g=u?"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)(_r,{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)(Pf,{checked:i,onCheckedChange:s,size:"xs"})]}),t[10]=s,t[11]=i,t[12]=y):y=t[12];let v;t[13]!==u||t[14]!==r||t[15]!==c?(v=(0,b.jsx)(Si,{isLoading:u,onAccept:r,size:"xs",borderless:!0,runCell:c}),t[13]=u,t[14]=r,t[15]=c,t[16]=v):v=t[16];let C;t[17]===o?C=t[18]:(C=(0,b.jsx)(Ci,{onDecline:o,size:"xs",borderless:!0}),t[17]=o,t[18]=C);let S;t[19]!==v||t[20]!==C?(S=(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]=S):S=t[21];let _;return t[22]!==d||t[23]!==S||t[24]!==h||t[25]!==y?(_=(0,b.jsxs)("div",{className:d,children:[h,y,S]}),t[22]=d,t[23]=S,t[24]=h,t[25]=y,t[26]=_):_=t[26],_},yr="web application/x-marimo-cell",ad=Fr({cells:Nf(Fr({code:li(),name:li().optional(),config:Fr({column:yf([wf(),vf()]).optional(),disabled:ci().optional(),hide_code:ci().optional()}).optional()})),version:Ef("1.0")});function wr(e){return e.map(t=>t.code).join(`
|
|
21
|
+
`).trim()}function eu(e,t,n,r){var o;return r!=="{"||t!==n||!((o=bi(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 tu(){return M.inputHandler.of(eu)}var te=({variant:e,settings:t,styles:n})=>[M.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"}),wi(rm.define(n))];te({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"}]}),te({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"}]}),te({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"}]}),te({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"}]}),te({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"}]}),te({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"}]}),te({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"}]}),te({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"}]}),te({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"}]}),te({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"}]}),te({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"}]}),te({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"}]}),te({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"}]}),te({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"}]}),te({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"}]}),te({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 nu=[te({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"}]}),M.theme({".mo-cm-reactive-reference":{fontWeight:"400",color:"#2a7aa5",borderBottom:"2px solid #bad3de"},".mo-cm-reactive-reference-hover":{cursor:"pointer",borderBottomWidth:"3px",borderBottomColor:"#4a90a5"}})],ru=[te({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"}]}),M.theme({".mo-cm-reactive-reference":{fontWeight:"400",color:"#005f87",borderBottom:"2px solid #bad3de"},".mo-cm-reactive-reference-hover":{cursor:"pointer",borderBottomWidth:"3px"}})];function da(e){let{showPlaceholder:t,enableAI:n}=e;return t?"marimo-import":n?"ai":"none"}var fa="cm-tooltip-portal";function ou(e){if(e==null)return document.querySelector("#App")??void 0;let t=document.querySelector(e);if(t==null)return;let n=t.querySelector(`:scope > .${fa}`);if(n!=null)return n;let r=document.createElement("div");return r.className=`${fa} not-prose contents`,t.append(r),r}const au=e=>{let{cellId:t,keymapConfig:n,hotkeys:r,enableAI:o,cellActions:a,completionConfig:i,lspConfig:s,diagnosticsConfig:c,displayConfig:u,inlineAiTooltip:d}=e,f=da(e);return[kf(n,r),Xc(),Yc(),Ts(),ff({cellId:t,completionConfig:i,hotkeys:r,placeholderType:f,lspConfig:s,diagnosticsConfig:c}),Zd({cellId:t,hotkeys:r,cellActions:a,keymapConfig:n}),su(e),Kc(),c!=null&&c.enabled?ym():[],o&&d?[ys({prompt:g=>Is({prompt:g.prompt,selection:g.selection,codeBefore:g.codeBefore,codeAfter:g.codeAfter,language:qd(g.editorView)})}),Xt.of({hideOnBlur:!0})]:[],$d(t,u.reference_highlighting??!0)]};var iu=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:Sm(e)};const su=e=>{let{theme:t,hotkeys:n,completionConfig:r,acceptCompletionOnEnter:o,cellId:a,lspConfig:i,diagnosticsConfig:s,tooltipParentSelector:c}=e,u=da(e),d=r.auto_close_pairs!==!1;return[M.lineWrapping,cm(),am(),om(),fm(),em(),Kf(),im(),Zf({position:"fixed",parent:ou(c)}),Ud(),t==="dark"?nu:ru,gf(i),Dc(r),dm(),tu(),d?xm():[],Ls(o),d?dt.high(He.of(km)):[],lm(),Qf(),Xf.of(" "),wi(nm,{fallback:!0}),He.of(zf),mf({placeholderType:u,completionConfig:r,hotkeys:n,cellId:a,lspConfig:{...i,diagnostics:s}}),cf.of(bm()),Br.allowMultipleSelections.of(!0),Vc(n),He.of([{key:"Tab",run:f=>Ei(f)||iu(f)||vm(f),preventDefault:!0},{key:n.getHotkey("completion.moveDown").key,run:f=>Wt(f.state)===null?!1:(Pn(!0)(f),!0),preventDefault:!0},{key:n.getHotkey("completion.moveUp").key,run:f=>Wt(f.state)===null?!1:(Pn(!1)(f),!0),preventDefault:!0}]),He.of([...gm,mm])]};var rt=(e=>!e||e instanceof WebAssembly.Module?e:typeof e=="object"&&"default"in e?e.default??e:e)(wp),cr=e=>{Ep(e),typeof Ji=="function"&&Ji(),lu(kt)};function lu(e){typeof e.__wbindgen_start=="function"&&e.__wbindgen_start()}if(rt&&rt.__wbindgen_start)cr(rt);else if("Bun"in globalThis){let e;if(rt instanceof WebAssembly.Module)({instance:e}=await WebAssembly.instantiate(rt,{"./loro_wasm_bg.js":kt}));else{let t=Bun.pathToFileURL(rt);({instance:e}=await WebAssembly.instantiateStreaming(fetch(t),{"./loro_wasm_bg.js":kt}))}cr(e.exports)}else{let e=rt instanceof WebAssembly.Module?rt:await Qm(()=>import("./loro_wasm_bg-Drxc4adW.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":kt});else if(t instanceof ArrayBuffer||ArrayBuffer.isView(t)){let{instance:r}=await WebAssembly.instantiate(t,{"./loro_wasm_bg.js":kt});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":kt});n=o}else throw console.error("Unsupported wasm import type:",t),Error("Unsupported wasm import type: "+typeof t);cr(n.exports??n)}var cu=["Map","Text","List","Tree","MovableList","Counter"];function uu(e){return e.startsWith("cid:")}function ma(e){if(typeof e!="object"||!e)return!1;let t=Object.getPrototypeOf(e);return typeof t!="object"||!t||typeof t.kind!="function"?!1:cu.includes(e.kind())}var du=class{constructor(e,t=3e4){this.listeners=new Set,this.inner=new vp(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))}};Jr.prototype.toJsonWithReplacer=function(e){let t=new Set,n=this,r=(a,i)=>{if(typeof i=="string"&&uu(i)&&!t.has(i)){t.add(i);let c=n.getContainerById(i);if(c==null)throw Error(`ContainerID not found: ${i}`);let u=e(a,c);if(u===c){let d=c.getShallowValue();return typeof d=="object"?o(d):d}if(ma(u))throw Error("Using new container is not allowed in toJsonWithReplacer");return typeof u=="object"&&u?o(u):u}if(typeof i=="object"&&i)return o(i);let s=e(a,i);if(ma(s))throw Error("Using new container is not allowed in toJsonWithReplacer");return s},o=a=>{if(Array.isArray(a))return a.map((s,c)=>r(c,s)).filter(s=>s!==void 0);let i={};for(let[s,c]of Object.entries(a)){let u=r(s,c);u!==void 0&&(i[s]=u)}return i};return o(n.getShallowValue())};var pa=Symbol("loro.callPendingEventsWrapped");function fu(e,t){let n=Object.getOwnPropertyDescriptor(e,t);if(!n||typeof n.value!="function")return;let r=n.value;if(r[pa])return;let o=function(...a){let i;try{return i=r.apply(this,a),i}finally{i&&typeof i.then=="function"?i.finally(()=>{Gi()}):Gi()}};o[pa]=!0,Object.defineProperty(e,t,{...n,value:o})}function ur(e,t){for(let n of t)fu(e,n)}ur(Jr.prototype,["setDetachedEditing","attach","detach","fork","forkAt","checkoutToLatest","checkout","commit","getCursorPos","revertTo","export","exportJsonUpdates","exportJsonInIdSpan","importJsonUpdates","import","importUpdateBatch","importBatch","travelChangeAncestors","getChangedContainersIn","diff","applyDiff","setPeerId"]),ur(bp.prototype,["set","delete","apply","removeOutdated"]),ur(yp.prototype,["undo","redo"]);const mu=M.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"}});Ur.define();const Dt=he.define(),dr=Xe.define({create(){return{remoteCursors:new Map,isCheckout:!1}},update(e,t){for(let n of t.effects)if(n.is(Dt))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 ga=e=>{let t=e.transactions.flatMap(n=>n.effects).filter(n=>n.is(Dt));return e.docChanged||e.viewportChanged||t.length>0};const pu=()=>yi({above:!0,class:"loro-cursor-layer",update:ga,markers:e=>{let{remoteCursors:t,isCheckout:n}=e.state.field(dr);return n?[]:[...t.values()].flatMap(r=>{var a,i;let o=vt.cursor(r.cursor.anchor);return hu.createCursor(e,o,((a=r.user)==null?void 0:a.name)||"unknown",((i=r.user)==null?void 0:i.colorClassName)||"")})}}),gu=()=>yi({above:!1,class:"loro-selection-layer",update:ga,markers:e=>{let{remoteCursors:t,isCheckout:n}=e.state.field(dr);return n?[]:[...t.entries()].filter(([,r])=>r.cursor.head!==void 0&&r.cursor.anchor!==r.cursor.head).flatMap(([,r])=>{var a;let o=vt.range(r.cursor.anchor,r.cursor.head);return sm.forRange(e,`loro-selection ${((a=r.user)==null?void 0:a.colorClassName)||""}`,o)})}});var hu=class qr{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=qr.calculateAbsoluteCursorPosition(n,t);if(!a)return[];let i=t.scrollDOM.getBoundingClientRect(),s=(t.textDirection===um.LTR?i.left:i.right-t.scrollDOM.clientWidth)-t.scrollDOM.scrollLeft,c=i.top-t.scrollDOM.scrollTop;return[new qr(a.left-s,a.top-c,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)}},bu=(e,t,n,r)=>{let o=[],{updated:a,added:i}=n;for(let s of[...a,...i]){let c=ha(e,t,s,r);c&&o.push(c)}return o},ha=(e,t,n,r)=>{var c,u;let o=t.getAllStates()[n];if(!o||n===e.peerIdStr||o.scopeId!==r)return;if(o.type==="delete")return Dt.of({type:"delete",peer:o.uid,scopeId:o.scopeId});let a=Wi.decode(o.cursor.anchor),i=((c=e.getCursorPos(a))==null?void 0:c.offset)??0,s=i;if(o.cursor.head){let d=Wi.decode(o.cursor.head);s=((u=e.getCursorPos(d))==null?void 0:u.offset)??0}return Dt.of({type:"update",peer:o.uid,scopeId:o.scopeId,cursor:{anchor:i,head:s},user:o.user})},yu=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 c=[];for(let u of this.awareness.peers()){let d=ha(this.doc,this.awareness,u,this.scopeId);d&&c.push(d)}this.view.dispatch({effects:c})}else s.by==="checkout"&&this.view.dispatch({effects:[Dt.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=vu({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})}},wu=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:bu(this.doc,this.awareness,a,this.scopeId)})};this._awarenessListener=o,this.awareness.addListener(o)}destroy(){this._awarenessListener&&this.awareness.removeListener(this._awarenessListener)}},vu=({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 wn=["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 wn[Math.abs(t)%wn.length]}return wn[e%wn.length]};var pe=$e.get("rtc"),ba=pe.get("awareness").disabled(),fr="awareness:";function Nu(e,t){let n=new TextEncoder().encode(e);return new Uint8Array([...n,...t])}function ku(e,t){return new TextDecoder().decode(e.slice(0,t.length))===t}function Cu(e,t){return e.slice(t.length)}ft=Bt(void 0);var ne=new Jr,vn=new du(ne.peerIdStr),mr=Nm(()=>{pe.debug("creating websocket");let e=new kp(hi().getWsSyncURL(Zm()).toString(),void 0,{maxRetries:10,debug:!1,startClosed:!0,connectionTimeout:1e4});return Promise.resolve().then(async()=>{await gi(),uf()==="edit"&&e.reconnect()}),e.addEventListener("message",async t=>{let n=await t.data.arrayBuffer(),r=new Uint8Array(n);if(ku(r,fr)){let o=Cu(r,fr);vn.apply(o),ba.debug("applied awareness update");return}ne.import(r),pe.debug("imported doc change. new doc:",ne.toJSON()),Y.get(ft)!==ne&&Y.set(ft,ne)}),e.addEventListener("open",()=>{pe.debug("websocket open")}),e.addEventListener("close",t=>{pe.warn("websocket close",t),Y.get(ft)===ne&&Y.set(ft,void 0)}),e});Ar()&&mr(),ne.subscribeLocalUpdates(e=>{pe.debug("local update, sending to server"),mr().send(e)}),vn.addListener((e,t)=>{let n=[...e.added,...e.removed,...e.updated];t==="local"&&(ba.debug("awareness changes",n),mr().send(Nu(fr,vn.encode(n))))});function pr(e,t,n=""){if(_f())return{extension:[],code:n};let r=ne.getByPath(`codes/${e}`)!==void 0,o=ne.getMap("codes").getOrCreateContainer(e,new Gr);return r||(pe.log("initializing code for new cell",n),o.insert(0,n)),{code:n.toString(),extension:[Su(e),xu(e),Iu(ne,vn,{get name(){return Y.get(af)||"Anonymous"},get colorClassName(){return Eu(this.name)}},()=>o,e),Kd(ne,["codes",e],()=>o)]}}function Su(e){let t=(r,o)=>{let a=r.state.field(Tn).type,i=o.toString();i&&i!==a&&(pe.debug(`[incoming] setting language type: ${a} -> ${i}`),Pt(r,{language:i,keepCodeAsIs:!0}))},n=(r,o)=>{let a=r.state.field(Cr),i=o.toJSON();In(a,i)||r.dispatch({effects:[ii.of(i)],annotations:[Ya.of(!0)]})};return et.define(r=>{let o;return Promise.resolve().then(()=>{let a=ne.getByPath(`languages/${e}`);if(!a){pe.error("no language container found for cell",e);return}Mt(a instanceof Gr,"language type is not a LoroText");let i=ne.getByPath(`language_metadata/${e}`);if(!i){pe.error("no language metadata container found for cell",e);return}Mt(i instanceof Vi,"language metadata is not a LoroMap"),t(r,a),n(r,i),o=ne.subscribe(s=>{if(s.origin==="local")return;let c=s.events.some(d=>d.target===a.id),u=s.events.some(d=>d.target===i.id);c&&t(r,a),u&&n(r,i)})}),{destroy(){o()}}})}function xu(e){let t=ne.getMap("languages").getOrCreateContainer(e,new Gr),n=ne.getMap("language_metadata").getOrCreateContainer(e,new Vi);return M.updateListener.of(r=>{let o=t.toString()!=="";if(!r.docChanged&&o)return;if(!o){let i=xr(r.state).type;Pt(r.view,{language:i}),pe.debug("no initial language, setting default to",i),t.delete(0,t.length),t.insert(0,i),pe.debug("no initial language metadata, setting default to",r.state.field(Cr));let s=r.state.field(Cr);for(let c of Object.keys(s))n.set(c,s[c]);ne.commit();return}let a=!1;for(let i of r.transactions)if(!i.annotation(Ya)){for(let s of i.effects)if(s.is(lf)&&t.toString()!==s.value.type&&(pe.debug(`[outgoing] language change: ${t} -> ${s.value.type}`),t.delete(0,t.length),t.insert(0,s.value.type),a=!0),s.is(ii)||s.is(ni)){let c=s.value;s.is(ni)?(pe.debug("[outgoing] setting language metadata: ",c),n.clear()):pe.debug("[outgoing] updating language metadata: ",c);for(let u of Object.keys(c))n.set(u,c[u]);a=!0}}a&&ne.commit()})}function Iu(e,t,n,r,o,a){let i=`loro:cell:${o}`;return[dr,pu(),gu(),et.define(s=>new yu(s,e,n,t,r,i,a)),et.define(s=>new wu(s,e,t,i)),mu]}var Au=ve(),Tu=Gf;Vr=e=>{let t=(0,Au.c)(41),{resetOnBlur:n,placeholderText:r,initialValue:o,flexibleWidth:a,onNameChange:i,className:s}=e,c=n===void 0?!1:n,u=o===void 0?null:o,d=a===void 0?!1:a,{sendListFiles:f}=jn(),[g,m]=(0,A.useState)(u),h;t[0]===Symbol.for("react.memo_cache_sentinel")?(h=[],t[0]=h):h=t[0];let[w,y]=(0,A.useState)(h),[v,C]=(0,A.useState)(!1),S=(0,A.useRef)(null),_=(0,A.useRef)(!1),B,T;t[1]===u?(B=t[2],T=t[3]):(B=()=>{m(u)},T=[u],t[1]=u,t[2]=B,t[3]=T),(0,A.useEffect)(B,T);let I;t[4]===Symbol.for("react.memo_cache_sentinel")?(I=()=>{C(!0)},t[4]=I):I=t[4];let G=I,j;t[5]!==u||t[6]!==c?(j=z=>{var yt;(yt=z.relatedTarget)!=null&&yt.closest(".filename-input")||(C(!1),c&&m(u))},t[5]=u,t[6]=c,t[7]=j):j=t[7];let re=j,O;t[8]===g?O=t[9]:(O=tt.dirname(g||""),t[8]=g,t[9]=O);let F=O,se=tt.basename(g||""),le=w.filter(z=>tt.basename(z.path).startsWith(se)),oe;t[10]!==F||t[11]!==v||t[12]!==f?(oe=async()=>{if(!v){y([]);return}y((await f({path:F})).files)},t[10]=F,t[11]=v,t[12]=f,t[13]=oe):oe=t[13];let ee;t[14]!==F||t[15]!==v?(ee=[F,v],t[14]=F,t[15]=v,t[16]=ee):ee=t[16];let{isPending:D}=up(oe,ee),U=Fu(g,w,u),we=(U||le.length>0)&&(0,b.jsxs)(ji,{className:"font-mono",children:[!D&&(0,b.jsx)(fp,{children:"No files"}),U&&(0,b.jsxs)(Pi,{variant:"success",className:"py-2 px-3",onSelect:()=>{var z;U&&(_.current=!0,i(U),(z=S.current)==null||z.blur())},children:[(0,b.jsx)(Z,{className:"w-4 h-4 mr-2"})," ",(0,b.jsxs)("span",{className:"text-sm",children:[u?"Rename to: ":"Save as: ",(0,b.jsx)("span",{className:"font-medium text-sm",children:tt.basename(U)})]})]},"_rename_"),le.map(z=>{let yt=zm[z.isDirectory?"directory":qm(z.path)];return(0,b.jsxs)(Pi,{variant:z.isDirectory?"default":"muted",className:"py-2 px-3",onSelect:()=>{z.isDirectory?m(`${z.path}/`):m(z.path)},children:[(0,b.jsx)(yt,{className:"w-4 h-4 mr-2"})," ",tt.basename(z.path)]},z.path)})]}),ce=Math.max(20,(g==null?void 0:g.length)||(r==null?void 0:r.length)||0)*10,k=v?g||"":u||"",x;t[17]!==d||t[18]!==ce?(x=d?{maxWidth:ce}:void 0,t[17]=d,t[18]=ce,t[19]=x):x=t[19];let P;t[20]===s?P=t[21]:(P=Ze(s,"w-full px-4 py-1 my-1 h-9 font-mono text-foreground/60"),t[20]=s,t[21]=P);let L;t[22]!==r||t[23]!==k||t[24]!==x||t[25]!==P?(L=(0,b.jsx)(Tu,{children:(0,b.jsx)(dp,{"data-testid":"dir-completion-input",tabIndex:-1,rootClassName:"border-none justify-center px-1",spellCheck:"false",value:k,onKeyDown:Lu,icon:null,ref:S,onValueChange:m,placeholder:r,autoComplete:"off",style:x,className:P})}),t[22]=r,t[23]=k,t[24]=x,t[25]=P,t[26]=L):L=t[26];let ue=we&&"group-focus-within:block",Je;t[27]===ue?Je=t[28]:(Je=Ze("p-0 w-full min-w-80 max-w-80vw hidden",ue),t[27]=ue,t[28]=Je);let Ve;t[29]!==we||t[30]!==Je?(Ve=(0,b.jsx)(Jf,{side:"bottom",className:Je,portal:!1,children:we}),t[29]=we,t[30]=Je,t[31]=Ve):Ve=t[31];let We;t[32]!==L||t[33]!==Ve?(We=(0,b.jsxs)(ji,{children:[L,Ve]}),t[32]=L,t[33]=Ve,t[34]=We):We=t[34];let W;t[35]!==re||t[36]!==We?(W=(0,b.jsx)(mp,{onFocus:G,onBlur:re,shouldFilter:!1,id:"filename-input",className:"bg-transparent group filename-input",children:We}),t[35]=re,t[36]=We,t[37]=W):W=t[37];let ge;return t[38]!==v||t[39]!==W?(ge=(0,b.jsx)(Mf,{children:(0,b.jsx)(Wf,{open:v,modal:!1,children:W})}),t[38]=v,t[39]=W,t[40]=ge):ge=t[40],ge};function Fu(e,t,n){if(e&&!e.endsWith("/")&&((Jd("markdown")?new Set(["py","md","markdown","qmd"]):new Set(["py"])).has(tt.extension(e))||(e=e.endsWith(".")?`${e}py`:e.endsWith(".p")?`${e}y`:`${e}.py`),!t.some(r=>r.path===e||tt.basename(r.path)===e)&&!(n&&(n===e||tt.basename(n)===e))))return e}function Lu(e){e.key==="Escape"&&e.currentTarget.blur()}var ya=ve(),Ou=e=>{let t=(0,ya.c)(33),n=()=>{qf(new Blob([r()],{type:"text/plain"}),`${e.proposedName}.json`)},r=ae(Uu),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)(Fi,{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 c,u;t[7]===Symbol.for("react.memo_cache_sentinel")?(c=(0,b.jsx)("p",{children:"This app has unsaved changes. To recover:"}),u={paddingBottom:"10px"},t[7]=c,t[8]=u):(c=t[7],u=t[8]);let d;t[9]===e.proposedName?d=t[10]:(d=(0,b.jsxs)("li",{style:u,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)(rp,{className:"markdown break-words",style:s,children:(0,b.jsxs)("div",{className:"prose dark:prose-invert",children:[c,(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)(ut,{"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)(ut,{"data-testid":"download-recovery-button","aria-label":"Download",variant:"default",type:"submit",children:"Download"}),t[25]=C):C=t[25];let S;t[26]===v?S=t[27]:(S=(0,b.jsxs)(Li,{children:[v,C]}),t[26]=v,t[27]=S);let _;return t[28]!==o||t[29]!==a||t[30]!==y||t[31]!==S?(_=(0,b.jsx)(Oi,{className:"w-fit",children:(0,b.jsxs)("form",{onSubmit:o,onKeyDown:a,children:[i,y,S]})}),t[28]=o,t[29]=a,t[30]=y,t[31]=S,t[32]=_):_=t[32],_};const _u=e=>{let t=(0,ya.c)(12),{filename:n,needsSave:r}=e,{openModal:o,closeModal:a}=Di(),i;t[0]===n?i=t[1]:(i=n===null?"app":tt.basename(n).split(".")[0],t[0]=n,t[1]=i);let s=i,c;t[2]!==a||t[3]!==r||t[4]!==o||t[5]!==s?(c=()=>{r&&o((0,b.jsx)(Ou,{proposedName:s,closeModal:a}))},t[2]=a,t[3]=r,t[4]=o,t[5]=s,t[6]=c):c=t[6];let u=c;_i("global.save",u);let d;t[7]===Symbol.for("react.memo_cache_sentinel")?(d=Mi("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)(Ii,{strokeWidth:1.5,size:18}),t[8]=g):g=t[8];let m;return t[9]!==u||t[10]!==f?(m=(0,b.jsx)(_n,{content:d,children:(0,b.jsx)($i,{onClick:u,id:"save-button","aria-label":"Save",className:"rectangle",color:f,children:g})}),t[9]=u,t[10]=f,t[11]=m):m=t[11],m};function Du(e){return{id:e.id,name:e.name,code:e.code,code_hash:null,config:{column:0,...e.config}}}function Uu(){let e=Tr(jt()),t={version:"1",metadata:{marimo_version:jf()},cells:e.map(Du)};return JSON.stringify(t,null,2)}let gr;Gn=Bt(void 0),gr=Bt(e=>{let t=e(Gn);return Bu({state:e(ot),layout:e(Ni),lastSavedNotebook:t})});function Bu({state:e,layout:t,lastSavedNotebook:n}){if(!n)return!1;let{cellIds:r,cellData:o}=e,a=r.inOrderIds.map(u=>o[u]),i=a.map(u=>u.code),s=a.map(u=>u.config),c=a.map(u=>u.name);return!vi(i,n.codes)||!vi(c,n.names)||!In(s,n.configs)||!In(t.selectedLayout,n.layout.selectedLayout)||!In(t.layoutData,n.layout.layoutData)}var Pu=ve();function ju(e){let t=(0,Pu.c)(21),{codes:n,cellConfigs:r,config:o,connStatus:a,cellNames:i,needsSave:s,kioskMode:c,onSave:u}=e,d=(0,A.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(Mu).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]!==c||t[9]!==s||t[10]!==u?(v=()=>{if(!c)return o.autosave==="after_delay"&&(d.current!==null&&clearTimeout(d.current),s&&a.state===Rt.OPEN&&(d.current=setTimeout(u,o.autosave_delay))),()=>{d.current!==null&&clearTimeout(d.current)}},t[6]=o,t[7]=a.state,t[8]=c,t[9]=s,t[10]=u,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]!==c||t[18]!==s||t[19]!==u?(C=[g,h,y,o,a.state,u,c,s],t[12]=h,t[13]=y,t[14]=g,t[15]=o,t[16]=a.state,t[17]=c,t[18]=s,t[19]=u,t[20]=C):C=t[20],(0,A.useEffect)(v,C)}function Mu(e){return JSON.stringify(e)}var En=ve();zi=e=>{let t=(0,En.c)(15),{kioskMode:n}=e,r=sp(),o=ie(gr),a=ie(wt).state===Rt.CLOSED,{saveOrNameNotebook:i,saveIfNotebookIsPersistent:s}=Ht(),c;t[0]!==n||t[1]!==s?(c={onSave:s,kioskMode:n},t[0]=n,t[1]=s,t[2]=c):c=t[2],Wu(c),Cp();let u;t[3]===o?u=t[4]:(u=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]=u),Ff(window,"beforeunload",u);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(_i("global.save",i),a){let y;return t[7]!==r||t[8]!==o?(y=(0,b.jsx)(_u,{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=Mi("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)(Ii,{strokeWidth:1.5,size:18}),t[11]=h):h=t[11];let w;return t[12]!==f||t[13]!==m?(w=(0,b.jsx)(_n,{content:g,children:(0,b.jsx)($i,{"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},Ht=function(){let e=(0,En.c)(21),{sendSave:t}=jn(),{openModal:n,closeModal:r,openAlert:o}=Di(),a=za(Gn),i=lp(),s=kr(),c;e[0]!==o||e[1]!==t||e[2]!==a||e[3]!==s?(c=async(v,C)=>{let S=s.get(wt),_=s.get(pi);if(s.get(tf))return;if(S.state!==Rt.OPEN){o("Failed to save notebook: not connected to a kernel.");return}$e.log("saving to ",v),C&&_.format_on_save&&($e.log("formatting notebook (onSave)"),await Dd());let B=jt(),T=Tr(B),I=T.map(Ju),G=T.map(Gu),j=T.map(Ru),re=ti(B),O=s.get(Ni);G.length!==0&&(await t({cellIds:I,codes:G,names:j,filename:v,configs:re,layout:Om(),persist:!0}),a({names:j,codes:G,configs:re,layout:O}))},e[0]=o,e[1]=t,e[2]=a,e[3]=s,e[4]=c):c=e[4];let u=ae(c),d;e[5]!==u||e[6]!==s?(d=v=>{let C=v===void 0?!1:v,S=s.get(oi),_=s.get(wt);wa(S)&&_.state===Rt.OPEN&&u(S,C)},e[5]=u,e[6]=s,e[7]=d):d=e[7];let f=ae(d),g;e[8]!==u||e[9]!==i?(g=v=>{i(v).then(C=>{C!==null&&u(C,!0)})},e[8]=u,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(oi),C=s.get(wt);f(!0),!wa(v)&&C.state!==Rt.CLOSED&&n((0,b.jsx)(Hu,{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=ae(h),y;return e[17]!==f||e[18]!==u||e[19]!==w?(y={saveOrNameNotebook:w,saveIfNotebookIsPersistent:f,saveNotebook:u},e[17]=f,e[18]=u,e[19]=w,e[20]=y):y=e[20],y};function Ru(e){return e.name}function Gu(e){return e.code}function Ju(e){return e.id}function wa(e){return e!==null&&!e.startsWith("/tmp/")&&!e.startsWith("/var/folders")&&!e.includes("AppData\\Local\\Temp")}function Wu(e){let t=(0,En.c)(14),n=ie(pi),r=jd(),[o]=xn(wt),a=ie(gr),i,s;if(t[0]!==r){let g=Tr(r);i=g.map($u),s=g.map(Vu),t[0]=r,t[1]=i,t[2]=s}else i=t[1],s=t[2];let c=s,u;t[3]===r?u=t[4]:(u=ti(r),t[3]=r,t[4]=u);let d=u,f;t[5]!==n||t[6]!==c||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:c,connStatus:o,config:n,kioskMode:e.kioskMode},t[5]=n,t[6]=c,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],ju(f)}function Vu(e){return e.name}function $u(e){return e.code}var Hu=e=>{let t=(0,En.c)(17),{onClose:n,onSave:r}=e,[o,a]=(0,A.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,c;t[3]===Symbol.for("react.memo_cache_sentinel")?(c=(0,b.jsx)(Fi,{children:"Save notebook"}),t[3]=c):c=t[3];let u;t[4]===Symbol.for("react.memo_cache_sentinel")?(u=(0,b.jsx)(_r,{className:"text-md pt-6 px-1",children:"Save as"}),t[4]=u):u=t[4];let d;t[5]===s?d=t[6]:(d=(0,b.jsxs)("div",{className:"flex flex-col",children:[u,(0,b.jsx)(Vr,{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)(ut,{"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)(ut,{"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)(Li,{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)(Oi,{children:[c,d,h]}),t[14]=d,t[15]=h,t[16]=w):w=t[16],w};Rn=function(...e){return t=>{e.forEach(n=>{typeof n=="function"?n(t):n!=null&&(n.current=t)})}};var va={modified:{doc:""},original:{doc:""}},Ea=(0,A.createContext)(va);function qu(e,t){return K({},e,t,{modified:K({},e.modified,t.modified),original:K({},e.original,t.original)})}var hr=()=>(0,A.useContext)(Ea),zu=e=>{var{children:t,theme:n}=e,[r,o]=(0,A.useReducer)(qu,K({},va,{theme:n}));return(0,A.useEffect)(()=>o({theme:n}),[n]),(0,b.jsx)(Ea.Provider,{value:K({},r,{dispatch:o}),children:t})},Ku=["extensions","value","selection","onChange"],Na=e=>{var{extensions:t=[],value:n,selection:r,onChange:o}=e,a=Vt(e,Ku),{theme:i,dispatch:s}=hr(),c=Nt(K({},a,{theme:i}));return(0,A.useEffect)(()=>s({original:{doc:n,selection:r,extensions:[...c,...t]},originalExtension:{onChange:o,option:a,extension:[t]}}),[e]),null};Na.displayName="CodeMirrorMerge.Original";var Xu=["extensions","value","selection","onChange"],ka=e=>{var{extensions:t=[],value:n,selection:r,onChange:o}=e,a=Vt(e,Xu),{theme:i,dispatch:s}=hr(),c=Nt(K({},a,{theme:i}));return(0,A.useEffect)(()=>{s({modified:{doc:n,selection:r,extensions:[...c,...t]},modifiedExtension:{onChange:o,option:a,extension:[t]}})},[e]),null};ka.displayName="CodeMirrorMerge.Modified";var Yu=["className","children","orientation","revertControls","highlightChanges","gutter","collapseUnchanged","destroyRerender","renderRevertControl","diffConfig","root"],Qu=["modified","modifiedExtension","original","originalExtension","theme","dispatch"],Ca=A.forwardRef((e,t)=>{var{className:n,children:r,orientation:o,revertControls:a,highlightChanges:i,gutter:s,collapseUnchanged:c,destroyRerender:u=!0,renderRevertControl:d,diffConfig:f,root:g}=e,m=Vt(e,Yu),h=hr(),{modified:w,modifiedExtension:y,original:v,originalExtension:C,theme:S,dispatch:_}=h,B=Vt(h,Qu),T=(0,A.useRef)(null),I=(0,A.useRef)(),G={orientation:o,revertControls:a,highlightChanges:i,gutter:s,collapseUnchanged:c,renderRevertControl:d,diffConfig:f,root:g};(0,A.useImperativeHandle)(t,()=>({container:T.current,view:I.current,modified:w,original:v,config:K({a:v,b:w,parent:T.current},G)}),[T,I,w,v,G]);var j=M.updateListener.of(O=>{if(O.docChanged&&typeof(C==null?void 0:C.onChange)=="function"){var F=O.state.doc.toString();C==null||C.onChange(F,O)}}),re=M.updateListener.of(O=>{if(O.docChanged&&typeof(y==null?void 0:y.onChange)=="function"){var F=O.state.doc.toString();y==null||y.onChange(F,O)}});return(0,A.useEffect)(()=>{!I.current&&T.current&&C&&y&&(I.current=new Ri(K({a:K({},v,{extensions:[...(C==null?void 0:C.extension)||[],...Nt(K({},C==null?void 0:C.option,{theme:S})),j]}),b:K({},w,{extensions:[...(y==null?void 0:y.extension)||[],...Nt(K({},y==null?void 0:y.option,{theme:S})),re]}),parent:T.current},G)),_({view:I.current}))},[I,T,C,y]),(0,A.useEffect)(()=>{var D,U;if(v&&v.doc&&I.current){var O=(D=I.current)==null?void 0:D.a.state.doc.toString();if(O!==v.doc){var F;(F=I.current)==null||F.a.dispatch({changes:{from:0,to:O.length,insert:v.doc||""}})}}if(w&&w.doc&&I.current){var se=(U=I.current)==null?void 0:U.b.state.doc.toString();if(se!==w.doc){var le;(le=I.current)==null||le.b.dispatch({changes:{from:0,to:se.length,insert:w.doc||""}})}}if(u&&I.current){var oe=I.current.a.state.selection.ranges[0].from,ee=I.current.b.state.selection.ranges[0].from;I.current.destroy(),I.current=new Ri(K({a:K({},v,{extensions:[...(C==null?void 0:C.extension)||[],...Nt(K({},C==null?void 0:C.option,{theme:S}))]}),b:K({},w,{extensions:[...(y==null?void 0:y.extension)||[],...Nt(K({},y==null?void 0:y.option,{theme:S}))]}),parent:T.current},G)),oe&&(I.current.a.focus(),I.current.a.dispatch({selection:{anchor:oe,head:oe}})),ee&&(I.current.b.focus(),I.current.b.dispatch({selection:{anchor:ee,head:ee}}))}},[I,S,T.current,v,w,C,y,u]),(0,A.useEffect)(()=>()=>I.current&&I.current.destroy(),[]),(0,A.useEffect)(()=>{if(I.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!==c&&(O.collapseUnchanged=c),B.renderRevertControl!==d&&(O.collapseUnchanged=c),Object.keys(O).length&&_&&I.current&&(I.current.reconfigure(K({},O)),_(K({},O)))}},[_,I,o,a,i,s,c,d]),(0,b.jsx)("div",K({ref:T,className:"cm-merge-theme"+(n?" "+n:"")},m,{children:r}))});Ca.displayName="CodeMirrorMerge.Internal";var Zu=["theme"],Nn=A.forwardRef((e,t)=>{var{theme:n}=e;return(0,b.jsx)(zu,{theme:n,children:(0,b.jsx)(Ca,K({},Vt(e,Zu),{ref:t}))})});Nn.Original=Na,Nn.Modified=ka,Nn.displayName="CodeMirrorMerge";var br=Nn,ed=ve(),td=br.Original,nd=br.Modified,Sa=[Qd(),M.lineWrapping];const rd=({cellId:e,aiCompletionCell:t,className:n,onChange:r,currentLanguageAdapter:o,currentCode:a,declineChange:i,acceptChange:s,runCell:c,outputArea:u,children:d})=>{let[f,g]=(0,A.useState)(!1),[m,h]=(0,A.useState)({}),[w,y]=xn(ip),v=(0,A.useId)(),C=Uf(),{initialPrompt:S,triggerImmediately:_,cellId:B}=t??{},T=B===e,I=ie(Rm).get(e),G;(I==null?void 0:I.type)==="update_cell"&&(G=I.previousCode);let{completion:j,input:re,stop:O,isLoading:F,setCompletion:se,setInput:le,handleSubmit:oe,complete:ee}=Jm({api:C.getAiURL("completion").toString(),headers:C.headers(),initialInput:S,experimental_throttle:100,body:{...Object.keys(m).length>0?m:S?ki({input:S}):{},includeOtherCode:w?Ir(a):"",code:a,language:o},onError:W=>{Et({title:"Completion failed",description:op(W)})},onFinish:(W,ge)=>{se(qn(ge).trimEnd())}}),D=A.useRef(null),U=qn(j,{streaming:F}).trimEnd(),we=(0,A.useCallback)(()=>{_&&!F&&S&&ee(S)},[_]);(0,A.useEffect)(()=>{var W;T&&(Hd(()=>{let ge=D.current;return ge!=null&&ge.view?(ge.view.focus(),we(),!0):!1},{retries:3,delay:100,initialDelay:100}),rf((W=D.current)==null?void 0:W.view))},[T,we]),(0,A.useEffect)(()=>{T&&le(S||"")},[T,S,le]);let{theme:ce}=ep(),k=()=>{s(U),se("")},x=()=>{i(),se("")},P=T&&_&&(U||F);u??(u="below");let L=T&&(!_||f),ue=(0,b.jsx)("div",{className:Ze("w-full bg-(--cm-background) flex justify-center transition-all duration-300 ease-in-out overflow-hidden",P?"max-h-20 opacity-100 translate-y-0":"max-h-0 opacity-0 -translate-y-2"),children:(0,b.jsx)(od,{status:F?"loading":"generated",onAccept:k,onReject:x,showInputPrompt:f,setShowInputPrompt:g,runCell:c,className:"mt-4 mb-3 w-128"})}),Je=(W,ge)=>(0,b.jsxs)(br,{className:"cm",theme:ce,children:[(0,b.jsx)(td,{onChange:r,value:W,extensions:Sa}),(0,b.jsx)(nd,{value:ge,editable:!1,readOnly:!0,extensions:Sa})]}),Ve=()=>{if(U&&T)return Je(a,U);if(!U&&G)return Je(G,a)},We=(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(Si,{isLoading:F,onAccept:k,size:"xs",multipleCompletions:!1,acceptShortcut:"Mod-\u21B5",runCell:c,borderless:!0,buttonStyles:"hover:shadow-none",playButtonStyles:"hover:shadow-none"}),(0,b.jsx)(Ci,{onDecline:x,size:"xs",multipleCompletions:!1,declineShortcut:"Shift-Mod-Delete",borderless:!0,className:"hover:shadow-none"})]});return(0,b.jsxs)("div",{"data-ai-input-open":L,className:Ze("flex flex-col w-full rounded-[inherit]",n),children:[(0,b.jsx)("div",{className:Ze("flex items-center gap-2 px-3 transition-all rounded-[inherit] rounded-b-none duration-300",L&&"max-h-[400px] border-b min-h-11 visible",!L&&"max-h-0 min-h-0 invisible"),children:T&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(Ym,{className:"text-(--blue-10) shrink-0",size:16}),(0,b.jsx)(Vm,{inputRef:D,className:"h-full my-0 py-2 flex items-center",onClose:()=>{i(),se("")},value:re,onChange:W=>{le(W),h(ki({input:W}))},onSubmit:()=>{var W;F||((W=D.current)!=null&&W.view&&Wm(D.current.view),oe())},onKeyDown:$m({handleAcceptCompletion:k,handleDeclineCompletion:x,isLoading:F,hasCompletion:U.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)(Gm,{isLoading:F,onStop:O,onSendClick:oe,isEmpty:!re.trim(),showStopLabel:!0}),(0,b.jsx)(Hm,{handleAddContext:()=>Bm(D),isLoading:F}),(0,b.jsx)(If,{triggerClassName:"h-7 text-xs",iconSize:"small",forRole:"edit",displayIconOnly:!0,placeholder:"Edit model"})]}),U&&(0,b.jsx)("div",{className:"mt-1 flex items-center gap-1",children:We})]}),(0,b.jsx)("div",{className:"h-full w-px bg-border mx-2"}),(0,b.jsx)(_n,{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)(zd,{"data-testid":"include-other-cells-checkbox",id:v,checked:w,onCheckedChange:W=>y(!!W)}),(0,b.jsx)(_r,{htmlFor:v,className:"text-muted-foreground text-xs whitespace-nowrap ellipsis",children:"All code"})]})}),(0,b.jsx)(ut,{"data-testid":"decline-completion-button",variant:"text",size:"icon",disabled:F,onClick:()=>{O(),i(),se("")},children:(0,b.jsx)(Dm,{className:"text-(--red-10)",size:16})})]})}),u==="above"&&ue,Ve(),(!U||!T)&&!G&&d,u==="below"&&ue]})};var od=e=>{let t=(0,ed.c)(27),{status:n,onAccept:r,onReject:o,className:a,showInputPrompt:i,setShowInputPrompt:s,runCell:c}=e,u=n==="loading",d;t[0]===a?d=t[1]:(d=Ze("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]===u?f=t[3]:(f=u?(0,b.jsx)(Km,{className:"animate-spin text-blue-600 mb-px",size:15,strokeWidth:2,"aria-label":"Generating fix"}):(0,b.jsx)(Um,{className:"text-green-600 mb-px",size:15,strokeWidth:2,"aria-label":"Fix generated"}),t[2]=u,t[3]=f);let g=u?"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)(_r,{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)(Pf,{checked:i,onCheckedChange:s,size:"xs"})]}),t[10]=s,t[11]=i,t[12]=y):y=t[12];let v;t[13]!==u||t[14]!==r||t[15]!==c?(v=(0,b.jsx)(Si,{isLoading:u,onAccept:r,size:"xs",borderless:!0,runCell:c}),t[13]=u,t[14]=r,t[15]=c,t[16]=v):v=t[16];let C;t[17]===o?C=t[18]:(C=(0,b.jsx)(Ci,{onDecline:o,size:"xs",borderless:!0}),t[17]=o,t[18]=C);let S;t[19]!==v||t[20]!==C?(S=(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]=S):S=t[21];let _;return t[22]!==d||t[23]!==S||t[24]!==h||t[25]!==y?(_=(0,b.jsxs)("div",{className:d,children:[h,y,S]}),t[22]=d,t[23]=S,t[24]=h,t[25]=y,t[26]=_):_=t[26],_},yr="web application/x-marimo-cell",ad=Fr({cells:Nf(Fr({code:li(),name:li().optional(),config:Fr({column:yf([wf(),vf()]).optional(),disabled:ci().optional(),hide_code:ci().optional()}).optional()})),version:Ef("1.0")});function wr(e){return e.map(t=>t.code).join(`
|
|
22
22
|
|
|
23
|
-
`)}async function xa(e){let t={cells:e.map(r=>({code:r.code,name:r.name,config:r.config})),version:"1.0"},n=new cd().add(yr,t).add("text/plain",wr(e)).build();await navigator.clipboard.write([n])}function id(){let e=An(),t=Md(),n=Yd();return{copyCells:ae(async r=>{let o=jt(),a=r.map(i=>o.cellData[i]).filter(Boolean);if(a.length!==0)try{await xa(a),t.clear(),Ia(a.length)}catch(i){$e.error("Failed to copy cells to clipboard",i);try{await Ti(wr(a)),t.clear(),Ia(a.length)}catch{Aa()}}}),cutCells:ae(async r=>{let o=jt(),a=r.filter(s=>o.cellData[s]),i=a.map(s=>o.cellData[s]);if(i.length!==0)try{await xa(i),t.markForCut({cellIds:a})}catch(s){$e.error("Failed to cut cells to clipboard",s);try{await Ti(wr(i)),t.markForCut({cellIds:a})}catch{Aa()}}}),pasteAtCell:ae(async(r,o)=>{var i;let{before:a=!1}=o??{};if(n.cellIds.size>0){let s=[...n.cellIds],c=jt(),u=s.map(d=>{let f=c.cellIds.findWithId(d);return{columnId:f.id,index:f.indexOfOrThrow(d)}});e.moveCellsRelativeTo({cellIds:s,targetCellId:r,position:a?"before":"after",previousPlacements:u}),t.clear();return}try{let s=await navigator.clipboard.read();for(let u of s)if(u.types.includes(yr)){let d=await(await u.getType(yr)).text();try{let f=ad.parse(JSON.parse(d));if(f.cells.length===0)break;let g=r,m=f.cells.toReversed();for(let h of m)e.createNewCell({cellId:g,before:a,code:h.code,name:h.name,config:h.config,hideCode:(i=h.config)==null?void 0:i.hide_code,autoFocus:!0});return}catch(f){$e.warn("Failed to parse clipboard cell data",f)}}let c=await navigator.clipboard.readText();c.trim()?e.createNewCell({cellId:r,before:a,code:c,autoFocus:!0}):sd()}catch(s){$e.error("Failed to paste from clipboard",s),ld()}}),clearPendingCut:t.clear}}var Ia=e=>{let t=e===1?"Cell":`${e} cells`;Et({title:`${t} copied`,description:`${t} ${e===1?"has":"have"} been copied to clipboard.`})},Aa=()=>{Et({title:"Copy failed",description:"Failed to copy cells to clipboard.",variant:"danger"})},sd=()=>{Et({title:"Nothing to paste",description:"No cell or text found in clipboard.",variant:"danger"})},ld=()=>{Et({title:"Paste failed",description:"Failed to read from clipboard",variant:"danger"})},cd=class{constructor(){p(this,"items",{})}add(e,t){return ClipboardItem.supports(e)?typeof t=="string"?(this.items[e]=new Blob([t],{type:e}),this):(this.items[e]=new Blob([JSON.stringify(t)],{type:e}),this):($e.warn(`ClipboardItem does not support ${e}`),this)}build(){return new ClipboardItem(this.items)}},ud=ve();function Ta(){return{selectionStart:null,selectionEnd:null,selected:new Set}}var{reducer:xp,createActions:Ip,valueAtom:vr,useActions:dd}=jr(Ta,{select:(e,t)=>({selectionStart:t.cellId,selectionEnd:t.cellId,selected:new Set([t.cellId])}),extend:(e,t)=>{if(!e.selectionStart)return{selectionStart:t.cellId,selectionEnd:t.cellId,selected:new Set([t.cellId])};let{cellId:n,allCellIds:r}=t;try{let o=r.findWithId(e.selectionStart),a=o.indexOfOrThrow(e.selectionStart),i=o.indexOfOrThrow(n),[s,c]=a<i?[a,i]:[i,a],u=o.slice(s,c+1);return{selectionStart:e.selectionStart,selectionEnd:n,selected:new Set(u)}}catch{return{selectionStart:n,selectionEnd:n,selected:new Set([n])}}},clear:e=>e.selected.size===0?e:Ta()});Yi=()=>ie(vr);function fd(e){let t=(0,ud.c)(2),n;return t[0]===e?n=t[1]:(n=Bt(r=>r(vr).selected.has(e)),t[0]=e,t[1]=n),ie(n)}Hr=function(){return dd()};function md(e){return e.get(vr).selected}let Fa,La,Oa;Fa=ve(),{valueAtom:La,useActions:$t}=jr(()=>new Set,{add:(e,t)=>{if(e.has(t))return e;let n=new Set(e);return n.add(t),n},remove:(e,t)=>{if(!e.has(t))return e;let n=new Set(e);return n.delete(t),ai(()=>{let r=document.activeElement;if(!r)return;let o=Ln.findElementThroughShadowDOMs(r);o&&Za(Ln.parse(o.id))}),n}}),Oa=e=>Bt(t=>t(La).has(e)),qi=function(e){let t=(0,Fa.c)(2),n;return t[0]===e?n=t[1]:(n=Oa(e),t[0]=e,t[1]=n),ie(n)};var Ut=new WeakMap,pd=500;function gd(e){if(e.ctrlKey||e.metaKey||e.altKey)return"";let t=e.key.toLowerCase();return e.shiftKey?`shift+${t}`:t}function hd(e,t){let n=gd(e),r=e.target;if(!n||!r)return!1;let o=Ut.get(r),a=n;o!=null&&o.timeout&&clearTimeout(o.timeout),o&&(a=`${o.sequence} ${n}`);let i=t[a];if(i)return Ut.delete(r),i();if(!o){let s=t[n];if(s)return s()}if(Object.keys(t).some(s=>s.startsWith(`${a} `))){let s=window.setTimeout(()=>{Ut.delete(r)},pd);return Ut.set(r,{sequence:a,timeout:s}),!0}return Ut.delete(r),!1}var Er=ve();function _a(e){return{handle:t=>e(t),bulkHandle:t=>{let n=!0;try{for(let r of t)n&&(n=e(r));return n}catch{return!1}}}}function ze(e){return{handle:t=>e([t]),bulkHandle:t=>e(t)}}function bd(e,t){let n=(0,Er.c)(12),r=cp(),o=An(),a=$t(),i;n[0]!==e||n[1]!==r?(i=()=>{r.focusCell({cellId:e})},n[0]=e,n[1]=r,n[2]=i):i=n[2];let s;n[3]!==o||n[4]!==e||n[5]!==t||n[6]!==r||n[7]!==a?(s=d=>{var f;Da(d.relatedTarget)||Da(d.target)||Ua(d.relatedTarget)===e||Ua((f=d.relatedTarget)==null?void 0:f.closest("[data-for-cell-id]"))===e||(a.remove(e),o.markTouched({cellId:e}),r.blurCell(),t.current&&Nr(t.current))},n[3]=o,n[4]=e,n[5]=t,n[6]=r,n[7]=a,n[8]=s):s=n[8];let c;n[9]!==i||n[10]!==s?(c={onFocusWithin:i,onBlurWithin:s},n[9]=i,n[10]=s,n[11]=c):c=n[11];let{focusWithinProps:u}=Xm(c);return u}function Da(e){return e&&e instanceof HTMLElement?e.closest(".cm-vim-panel")!==null:!1}function Ua(e){return e&&e.getAttribute(Wd)||null}Xi=function(e,t){let n=(0,Er.c)(34),{canMoveX:r,editorView:o,cellActionDropdownRef:a}=t,{saveOrNameNotebook:i}=Ht(),{saveCellConfig:s}=jn(),c=za(Ui),u=An(),d=kr(),f=$t(),g=np(),m=ie(di),{copyCells:h,pasteAtCell:w,cutCells:y}=id(),v=Hr(),C=fd(e),S=Mn(),_=Mr(),B=ie(Or),T;n[0]===B?T=n[1]:(T=fi(B),n[0]=B,n[1]=T);let I=T,G;n[2]!==S||n[3]!==v?(G={clear:()=>{S.clear(),v.clear()},extend:D=>{S.clear(),v.extend(D)},select:D=>{S.clear(),v.select(D)}},n[2]=S,n[3]=v,n[4]=G):G=n[4];let j=G,re=ie(mi),O;n[5]===re?O=n[6]:(O=(D,U)=>Lr(re.getHotkey(D).key)(U.nativeEvent||U),n[5]=re,n[6]=O);let F=O,se=bd(e,o),le;n[7]!==u||n[8]!==I||n[9]!==r||n[10]!==a||n[11]!==e||n[12]!==h||n[13]!==y||n[14]!==_||n[15]!==o||n[16]!==C||n[17]!==F||n[18]!==m||n[19]!==w||n[20]!==S||n[21]!==g||n[22]!==s||n[23]!==i||n[24]!==j||n[25]!==c||n[26]!==d||n[27]!==f||n[28]!==B?(le={onKeyDown:D=>{if(Dr.fromInput(D)){D.continuePropagation();return}let U={"Mod+ArrowUp":()=>(u.focusTopCell(),j.clear(),!0),"Mod+ArrowDown":()=>(u.focusBottomCell(),j.clear(),!0),ArrowUp:()=>(u.focusCell({cellId:e,where:"before"}),j.clear(),!0),ArrowDown:()=>(u.focusCell({cellId:e,where:"after"}),j.clear(),!0),ArrowLeft:()=>{if(r){let k=d.get(ot),x=k.cellIds.findWithId(e),P=k.cellIds.indexOf(x),L=k.cellIds.at(P-1);if(L&&L.length>0){let ue=Ba(e,L);return u.focusCell({cellId:ue,where:"exact"}),j.clear(),!0}}return!1},ArrowRight:()=>{if(r){let k=d.get(ot),x=k.cellIds.findWithId(e),P=k.cellIds.indexOf(x),L=k.cellIds.at(P+1);if(L&&L.length>0){let ue=Ba(e,L);return u.focusCell({cellId:ue,where:"exact"}),j.clear(),!0}}return!1},"Shift+ArrowUp":()=>{let k=d.get(ti);j.extend({cellId:e,allCellIds:k});let x=k.findWithId(e).before(e);return x&&j.extend({cellId:x,allCellIds:k}),u.focusCell({cellId:e,where:"before"}),!0},"Shift+ArrowDown":()=>{let k=d.get(ti);j.extend({cellId:e,allCellIds:k});let x=k.findWithId(e).after(e);return x&&j.extend({cellId:x,allCellIds:k}),u.focusCell({cellId:e,where:"after"}),!0},Escape:()=>d.get(Rd).size>0?(d.set(Pd),!0):C?(j.clear(),!0):!1,Enter:()=>(f.add(e),Ka(d,e),j.clear(),!0),s:()=>(i(),!0)};for(let[k,x]of Object.entries(U))if(Lr(k)(D)&&x()){D.preventDefault();return}let we={"cell.run":ze(k=>(g(k),!0)),"cell.runAndNewBelow":ze(k=>{g(k);let x=k[k.length-1];return u.moveToNextCell({cellId:x,before:!1}),!0}),"cell.runAndNewAbove":ze(k=>{g(k);let x=k[0];return u.moveToNextCell({cellId:x,before:!0}),!0}),"cell.createAbove":k=>(u.createNewCell({cellId:k,before:!0}),!0),"cell.createBelow":k=>(u.createNewCell({cellId:k,before:!1}),!0),"cell.moveUp":ze(k=>{let x=k[0];return d.get(ot).cellIds.findWithId(x).first()===x?!1:(k.forEach(P=>{u.moveCell({cellId:P,before:!0})}),!0)}),"cell.moveDown":ze(k=>{let x=k[k.length-1];return d.get(ot).cellIds.findWithId(x).last()===x?!1:(k.toReversed().forEach(P=>{u.moveCell({cellId:P,before:!1})}),!0)}),"cell.moveLeft":_a(k=>r?(u.moveCell({cellId:k,direction:"left"}),!0):!1),"cell.moveRight":_a(k=>r?(u.moveCell({cellId:k,direction:"right"}),!0):!1),"cell.hideCode":ze(k=>{var P;let x=!k.map(L=>{var ue;return((ue=d.get(ot).cellData[L])==null?void 0:ue.config)||null}).every(yd);s({configs:Object.fromEntries(k.map(L=>[L,{hide_code:x}]))});for(let L of k)u.updateCellConfig({cellId:L,config:{hide_code:x}});if(k.length===1){let L=k[0];u.focusCell({cellId:L,where:"after"}),x?((P=o.current)==null||P.contentDOM.blur(),ei(L)):Ka(d,L)}return!0}),"cell.focusDown":k=>(u.focusCell({cellId:k,where:"after"}),!0),"cell.focusUp":k=>(u.focusCell({cellId:k,where:"before"}),!0),"cell.sendToBottom":ze(k=>(k.forEach(x=>{u.sendToBottom({cellId:x})}),!0)),"cell.sendToTop":ze(k=>(k.toReversed().forEach(x=>{u.sendToTop({cellId:x})}),!0)),"cell.aiCompletion":k=>{var P;if(!I)return!1;let x=!1;return c(L=>(L==null?void 0:L.cellId)===k?(x=!0,null):{cellId:k}),x&&((P=o.current)==null||P.focus()),!0},"cell.cellActions":()=>{var k;return(k=a.current)==null||k.toggle(),!0},"command.copyCell":ze(k=>(h(k),!0)),"command.cutCell":ze(k=>(y(k),!0)),"command.pasteCell":k=>(w(k),!0),"command.createCellBefore":k=>Dr.hasModifier(D)?!1:(u.createNewCell({cellId:k,before:!0,autoFocus:!0}),!0),"command.createCellAfter":k=>Dr.hasModifier(D)?!1:(u.createNewCell({cellId:k,before:!1,autoFocus:!0}),!0),"cell.delete":()=>{if(!B.keymap.destructive_delete)return!1;let k=ce.size>=2?[...ce]:[e],x=d.get(ot);return k.some(P=>{let{status:L}=x.cellRuntime[P];return L==="running"||L==="queued"})?!1:S.idle?(S.submit(k),!0):(_({cellIds:k}),S.clear(),!0)}},ce=md(d);if(m==="vim"&&hd(D.nativeEvent||D,{j:U.ArrowDown,k:U.ArrowUp,h:U.ArrowLeft,l:U.ArrowRight,i:U.Enter,"shift+j":U["Shift+ArrowDown"],"shift+k":U["Shift+ArrowUp"],"g g":U["Mod+ArrowUp"],"shift+g":U["Mod+ArrowDown"],"d d":()=>we["cell.delete"](),"y y":()=>(h(ce.size>=2?[...ce]:[e]),!0),p:()=>(w(e,{before:!1}),!0),"shift+p":()=>(w(e,{before:!0}),!0),o:()=>(u.createNewCell({cellId:e,before:!1,autoFocus:!0}),!0),"shift+o":()=>(u.createNewCell({cellId:e,before:!0,autoFocus:!0}),!0),u:()=>(u.undoDeleteCell(),!0)})){D.preventDefault();return}for(let[k,x]of Object.entries(we))if(F(k,D)){if(typeof x=="function"){if(x(e)){D.preventDefault();return}}else if(ce.size>=2?x.bulkHandle([...ce]):x.handle(e)){D.preventDefault();return}return}D.continuePropagation()}},n[7]=u,n[8]=I,n[9]=r,n[10]=a,n[11]=e,n[12]=h,n[13]=y,n[14]=_,n[15]=o,n[16]=C,n[17]=F,n[18]=m,n[19]=w,n[20]=S,n[21]=g,n[22]=s,n[23]=i,n[24]=j,n[25]=c,n[26]=d,n[27]=f,n[28]=B,n[29]=le):le=n[29];let{keyboardProps:oe}=Ai(le),ee;return n[30]!==se||n[31]!==C||n[32]!==oe?(ee=tp(se,oe,{"data-selected":C,className:"data-[selected=true]:ring-1 data-[selected=true]:ring-(--blue-8) data-[selected=true]:ring-offset-1"}),n[30]=se,n[31]=C,n[32]=oe,n[33]=ee):ee=n[33],ee};function yd(e){return e==null?void 0:e.hide_code}function wd(e,t){let n=(0,Er.c)(12),r=$t(),o=ie(di),a=ie(mi),i;n[0]===a?i=n[1]:(i=Lr(a.getHotkey("command.vimEnterCommandMode").key),n[0]=a,n[1]=i);let s=i,c;n[2]!==e||n[3]!==r?(c=()=>{r.remove(e),ei(e),ai(()=>{Za(e)})},n[2]=e,n[3]=r,n[4]=c):c=n[4];let u=c,d;n[5]!==t||n[6]!==u?(d=()=>{if(!t.current){u();return}let h=t.current,w=h.state;if(pm(h))return;let y=w.field(ni,!1),v=Wt(w)!==null;y&&Nr(h),v&&Im(h),!(y||v)&&u()},n[5]=t,n[6]=u,n[7]=d):d=n[7];let f=d,g;n[8]!==f||n[9]!==o||n[10]!==s?(g={onKeyDown:h=>{o==="vim"?s(h)&&f():h.key==="Escape"&&f(),h.continuePropagation()}},n[8]=f,n[9]=o,n[10]=s,n[11]=g):g=n[11];let{keyboardProps:m}=Ai(g);return m}function Ba(e,t){let n=document.getElementById(Ln.create(e));if(!n)return t.first();let r=n.getBoundingClientRect();for(let o of t.topLevelIds){let a=document.getElementById(Ln.create(o));if(a){let i=a.getBoundingClientRect();if(r.top<=i.bottom&&r.bottom>=i.top)return o}}return t.last()}function Nr(e){e.state.field(ni,!1)&&e.dispatch({effects:ff.of(null)})}var vd=ve(),Ed=e=>{let t=(0,vd.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let o;t[3]===n?o=t[4]:(o=Ze("animate-pulse rounded-md bg-muted",n),t[3]=n,t[4]=o);let a;return t[5]!==r||t[6]!==o?(a=(0,b.jsx)("div",{className:o,...r}),t[5]=r,t[6]=o,t[7]=a):a=t[7],a},Nd=ve(),kd=50,Cd=4,Sd=60;function xd(e){return Math.min(Sd,Math.max(Cd,e))}const Id=e=>{let t=(0,Nd.c)(13),{code:n,className:r}=e,o,a,i,s;if(t[0]!==r||t[1]!==n){let u=n.split(`
|
|
24
|
-
`,kd);t[6]===r?o=t[7]:(o=Ze("cm","mo-code-placeholder",r),t[6]=r,t[7]=o),a="cell-editor-placeholder",i=!0,s=u.map(Ad),t[0]=r,t[1]=n,t[2]=o,t[3]=a,t[4]=i,t[5]=s}else o=t[2],a=t[3],i=t[4],s=t[5];let c;return t[8]!==o||t[9]!==a||t[10]!==i||t[11]!==s?(c=(0,b.jsx)("div",{className:o,"data-testid":a,"aria-hidden":i,children:s}),t[8]=o,t[9]=a,t[10]=i,t[11]=s,t[12]=c):c=t[12],c};function Ad(e,t){let n=e.trimEnd().length;return(0,b.jsx)("div",{className:"mo-code-placeholder-line",children:n>0&&(0,b.jsx)(Ed,{className:"mo-code-placeholder-bar",style:{width:`${xd(n)}ch`}})},t)}var Pa=ve();let kn;$r=e=>{let t=(0,Pa.c)(25),{editorView:n,code:r,currentLanguageAdapter:o,onAfterToggle:a,className:i}=e,s=i===void 0?"absolute right-3 top-2 z-20 flex hover-action gap-1":i,c;t[0]===r?c=t[1]:(c=Xa.markdown.isSupported(r)||r.trim()==="",t[0]=r,t[1]=c);let u=c,d;t[2]===r?d=t[3]:(d=Xa.sql.isSupported(r)||r.trim()==="",t[2]=r,t[3]=d);let f=d&&o==="python",g;t[4]===Symbol.for("react.memo_cache_sentinel")?(g=(0,b.jsx)(ef,{color:"var(--sky-11)",strokeWidth:2.5,className:"w-4 h-4"}),t[4]=g):g=t[4];let m;t[5]!==o||t[6]!==n||t[7]!==a||t[8]!==f?(m=(0,b.jsx)(kn,{editorView:n,currentLanguageAdapter:o,canSwitchToLanguage:f,icon:g,toType:"sql",displayName:"SQL",onAfterToggle:a}),t[5]=o,t[6]=n,t[7]=a,t[8]=f,t[9]=m):m=t[9];let h=u&&o==="python",w;t[10]===Symbol.for("react.memo_cache_sentinel")?(w=(0,b.jsx)(gp,{fill:"var(--sky-11)",color:"black",className:"w-4 h-4"}),t[10]=w):w=t[10];let y;t[11]!==o||t[12]!==n||t[13]!==a||t[14]!==h?(y=(0,b.jsx)(kn,{editorView:n,currentLanguageAdapter:o,canSwitchToLanguage:h,icon:w,toType:"markdown",displayName:"Markdown",onAfterToggle:a}),t[11]=o,t[12]=n,t[13]=a,t[14]=h,t[15]=y):y=t[15];let v;t[16]===Symbol.for("react.memo_cache_sentinel")?(v=(0,b.jsx)(pp,{fill:"var(--sky-11)",color:"black",className:"w-4 h-4"}),t[16]=v):v=t[16];let C;t[17]!==o||t[18]!==n?(C=(0,b.jsx)(kn,{editorView:n,currentLanguageAdapter:o,canSwitchToLanguage:!0,icon:v,toType:"python",displayName:"Python",onAfterToggle:Lf.NOOP}),t[17]=o,t[18]=n,t[19]=C):C=t[19];let S;return t[20]!==s||t[21]!==C||t[22]!==m||t[23]!==y?(S=(0,b.jsxs)("div",{className:s,children:[m,y,C]}),t[20]=s,t[21]=C,t[22]=m,t[23]=y,t[24]=S):S=t[24],S},kn=e=>{let t=(0,Pa.c)(10),{editorView:n,currentLanguageAdapter:r,canSwitchToLanguage:o,icon:a,toType:i,displayName:s,onAfterToggle:c}=e,u;t[0]!==n||t[1]!==c||t[2]!==i?(u=()=>{n&&(Pt(n,{language:i}),c())},t[0]=n,t[1]=c,t[2]=i,t[3]=u):u=t[3];let d=u;if(!o||r===i)return null;let f=`View as ${s}`,g;t[4]!==d||t[5]!==a?(g=(0,b.jsx)(ut,{"data-testid":"language-toggle-button",variant:"text",size:"xs",className:"opacity-80 px-1",onClick:d,children:a}),t[4]=d,t[5]=a,t[6]=g):g=t[6];let m;return t[7]!==f||t[8]!==g?(m=(0,b.jsx)(_n,{content:f,children:g}),t[7]=f,t[8]=g,t[9]=m):m=t[9],m};var ja=ve(),Ma=({theme:e,showPlaceholder:t,id:n,config:r,code:o,status:a,serializedEditorState:i,setEditorView:s,runCell:c,userConfig:u,editorViewRef:d,editorViewParentRef:f,hidden:g,hasOutput:m,showHiddenCode:h,languageAdapter:w,setLanguageAdapter:y,showLanguageToggles:v=!0,inlineAiTooltip:C,outputArea:S,tooltipParentSelector:_})=>{var Ja,Wa;let[B,T]=xn(Ui),I=xi(),{saveOrNameNotebook:G}=Ht(),j=Mn(),{saveCellConfig:re}=jn(),O=a==="running"||a==="queued",F=An(),se=hp(),le=w==="markdown",oe=ae(()=>O?!1:j.idle&&u.keymap.destructive_delete?(j.submit([n]),!0):(I({cellId:n}),!0)),ee=ae(()=>O?!1:(c(),d.current&&Nr(d.current),!0)),D=ae(()=>{let J=!r.hide_code;return re({configs:{[n]:{hide_code:J}}}),F.updateCellConfig({cellId:n,config:{hide_code:J}}),J}),U=ie(Of),we=ie(Tf),ce=ae(()=>{Bi({autoInstantiate:U,createNewCell:F.createNewCell}),r.hide_code||(re({configs:{[n]:{hide_code:!0}}}),F.updateCellConfig({cellId:n,config:{hide_code:!0}}),F.markUntouched({cellId:n}))}),k=ae(()=>{Bi({autoInstantiate:U,createNewCell:F.createNewCell})}),x=fi(u),P=(0,A.useMemo)(()=>{var de;let J=au({cellId:n,showPlaceholder:t,enableAI:x,cellActions:{...F,afterToggleMarkdown:ce,afterToggleSQL:k,onRun:ee,deleteCell:oe,saveNotebook:G,createManyBelow:fe=>{for(let Ke of fe.toReversed())F.createNewCell({code:Ke,before:!1,cellId:n,skipIfCodeExists:!0})},splitCell:se,toggleHideCode:D,aiCellCompletion:()=>{if(!x)return!1;let fe=!1;return T(Ke=>(Ke==null?void 0:Ke.cellId)===n?(fe=!0,null):{cellId:n}),fe}},completionConfig:u.completion,acceptCompletionOnEnter:we,keymapConfig:u.keymap,lspConfig:u.language_servers,theme:e,hotkeys:new ui(u.keymap.overrides??{}),diagnosticsConfig:u.diagnostics,displayConfig:u.display,inlineAiTooltip:C??((de=u.ai)==null?void 0:de.inline_tooltip)??!1,tooltipParentSelector:_});return J.push(et.define(fe=>(y(fe.state.field(Tn).type),{update(Ke){y(Ke.state.field(Tn).type)}})),M.updateListener.of(fe=>{fe.selectionSet&&fe.state.selection.ranges.some(Ke=>Ke.from!==Ke.to)&&h({focus:!1})}),M.domEventHandlers({focus:()=>{h({focus:!1})}})),J},[n,we,u.keymap,u.completion,u.language_servers,u.display,u.diagnostics,(Ja=u.ai)==null?void 0:Ja.inline_tooltip,C,_,x,e,t,F,se,D,oe,ee,T,ce,k,y,h,G]),L=
|
|
23
|
+
`)}async function xa(e){let t={cells:e.map(r=>({code:r.code,name:r.name,config:r.config})),version:"1.0"},n=new cd().add(yr,t).add("text/plain",wr(e)).build();await navigator.clipboard.write([n])}function id(){let e=An(),t=Md(),n=Yd();return{copyCells:ae(async r=>{let o=jt(),a=r.map(i=>o.cellData[i]).filter(Boolean);if(a.length!==0)try{await xa(a),t.clear(),Ia(a.length)}catch(i){$e.error("Failed to copy cells to clipboard",i);try{await Ti(wr(a)),t.clear(),Ia(a.length)}catch{Aa()}}}),cutCells:ae(async r=>{let o=jt(),a=r.filter(s=>o.cellData[s]),i=a.map(s=>o.cellData[s]);if(i.length!==0)try{await xa(i),t.markForCut({cellIds:a})}catch(s){$e.error("Failed to cut cells to clipboard",s);try{await Ti(wr(i)),t.markForCut({cellIds:a})}catch{Aa()}}}),pasteAtCell:ae(async(r,o)=>{var i;let{before:a=!1}=o??{};if(n.cellIds.size>0){let s=[...n.cellIds],c=jt(),u=s.map(d=>{let f=c.cellIds.findWithId(d);return{columnId:f.id,index:f.indexOfOrThrow(d)}});e.moveCellsRelativeTo({cellIds:s,targetCellId:r,position:a?"before":"after",previousPlacements:u}),t.clear();return}try{let s=await navigator.clipboard.read();for(let u of s)if(u.types.includes(yr)){let d=await(await u.getType(yr)).text();try{let f=ad.parse(JSON.parse(d));if(f.cells.length===0)break;let g=r,m=f.cells.toReversed();for(let h of m)e.createNewCell({cellId:g,before:a,code:h.code,name:h.name,config:h.config,hideCode:(i=h.config)==null?void 0:i.hide_code,autoFocus:!0});return}catch(f){$e.warn("Failed to parse clipboard cell data",f)}}let c=await navigator.clipboard.readText();c.trim()?e.createNewCell({cellId:r,before:a,code:c,autoFocus:!0}):sd()}catch(s){$e.error("Failed to paste from clipboard",s),ld()}}),clearPendingCut:t.clear}}var Ia=e=>{let t=e===1?"Cell":`${e} cells`;Et({title:`${t} copied`,description:`${t} ${e===1?"has":"have"} been copied to clipboard.`})},Aa=()=>{Et({title:"Copy failed",description:"Failed to copy cells to clipboard.",variant:"danger"})},sd=()=>{Et({title:"Nothing to paste",description:"No cell or text found in clipboard.",variant:"danger"})},ld=()=>{Et({title:"Paste failed",description:"Failed to read from clipboard",variant:"danger"})},cd=class{constructor(){p(this,"items",{})}add(e,t){return ClipboardItem.supports(e)?typeof t=="string"?(this.items[e]=new Blob([t],{type:e}),this):(this.items[e]=new Blob([JSON.stringify(t)],{type:e}),this):($e.warn(`ClipboardItem does not support ${e}`),this)}build(){return new ClipboardItem(this.items)}},ud=ve();function Ta(){return{selectionStart:null,selectionEnd:null,selected:new Set}}var{reducer:xp,createActions:Ip,valueAtom:vr,useActions:dd}=jr(Ta,{select:(e,t)=>({selectionStart:t.cellId,selectionEnd:t.cellId,selected:new Set([t.cellId])}),extend:(e,t)=>{if(!e.selectionStart)return{selectionStart:t.cellId,selectionEnd:t.cellId,selected:new Set([t.cellId])};let{cellId:n,allCellIds:r}=t;try{let o=r.findWithId(e.selectionStart),a=o.indexOfOrThrow(e.selectionStart),i=o.indexOfOrThrow(n),[s,c]=a<i?[a,i]:[i,a],u=o.slice(s,c+1);return{selectionStart:e.selectionStart,selectionEnd:n,selected:new Set(u)}}catch{return{selectionStart:n,selectionEnd:n,selected:new Set([n])}}},clear:e=>e.selected.size===0?e:Ta()});Yi=()=>ie(vr);function fd(e){let t=(0,ud.c)(2),n;return t[0]===e?n=t[1]:(n=Bt(r=>r(vr).selected.has(e)),t[0]=e,t[1]=n),ie(n)}Hr=function(){return dd()};function md(e){return e.get(vr).selected}let Fa,La,Oa;Fa=ve(),{valueAtom:La,useActions:$t}=jr(()=>new Set,{add:(e,t)=>{if(e.has(t))return e;let n=new Set(e);return n.add(t),n},remove:(e,t)=>{if(!e.has(t))return e;let n=new Set(e);return n.delete(t),ai(()=>{let r=document.activeElement;if(!r)return;let o=Ln.findElementThroughShadowDOMs(r);o&&Qa(Ln.parse(o.id))}),n}}),Oa=e=>Bt(t=>t(La).has(e)),qi=function(e){let t=(0,Fa.c)(2),n;return t[0]===e?n=t[1]:(n=Oa(e),t[0]=e,t[1]=n),ie(n)};var Ut=new WeakMap,pd=500;function gd(e){if(e.ctrlKey||e.metaKey||e.altKey)return"";let t=e.key.toLowerCase();return e.shiftKey?`shift+${t}`:t}function hd(e,t){let n=gd(e),r=e.target;if(!n||!r)return!1;let o=Ut.get(r),a=n;o!=null&&o.timeout&&clearTimeout(o.timeout),o&&(a=`${o.sequence} ${n}`);let i=t[a];if(i)return Ut.delete(r),i();if(!o){let s=t[n];if(s)return s()}if(Object.keys(t).some(s=>s.startsWith(`${a} `))){let s=window.setTimeout(()=>{Ut.delete(r)},pd);return Ut.set(r,{sequence:a,timeout:s}),!0}return Ut.delete(r),!1}var Er=ve();function _a(e){return{handle:t=>e(t),bulkHandle:t=>{let n=!0;try{for(let r of t)n&&(n=e(r));return n}catch{return!1}}}}function ze(e){return{handle:t=>e([t]),bulkHandle:t=>e(t)}}function bd(e,t){let n=(0,Er.c)(12),r=cp(),o=An(),a=$t(),i;n[0]!==e||n[1]!==r?(i=()=>{r.focusCell({cellId:e})},n[0]=e,n[1]=r,n[2]=i):i=n[2];let s;n[3]!==o||n[4]!==e||n[5]!==t||n[6]!==r||n[7]!==a?(s=d=>{var f;Da(d.relatedTarget)||Da(d.target)||Ua(d.relatedTarget)===e||Ua((f=d.relatedTarget)==null?void 0:f.closest("[data-for-cell-id]"))===e||(a.remove(e),o.markTouched({cellId:e}),r.blurCell(),t.current&&Nr(t.current))},n[3]=o,n[4]=e,n[5]=t,n[6]=r,n[7]=a,n[8]=s):s=n[8];let c;n[9]!==i||n[10]!==s?(c={onFocusWithin:i,onBlurWithin:s},n[9]=i,n[10]=s,n[11]=c):c=n[11];let{focusWithinProps:u}=Xm(c);return u}function Da(e){return e&&e instanceof HTMLElement?e.closest(".cm-vim-panel")!==null:!1}function Ua(e){return e&&e.getAttribute(Wd)||null}Xi=function(e,t){let n=(0,Er.c)(34),{canMoveX:r,editorView:o,cellActionDropdownRef:a}=t,{saveOrNameNotebook:i}=Ht(),{saveCellConfig:s}=jn(),c=za(Ui),u=An(),d=kr(),f=$t(),g=np(),m=ie(di),{copyCells:h,pasteAtCell:w,cutCells:y}=id(),v=Hr(),C=fd(e),S=Mn(),_=Mr(),B=ie(Or),T;n[0]===B?T=n[1]:(T=fi(B),n[0]=B,n[1]=T);let I=T,G;n[2]!==S||n[3]!==v?(G={clear:()=>{S.clear(),v.clear()},extend:D=>{S.clear(),v.extend(D)},select:D=>{S.clear(),v.select(D)}},n[2]=S,n[3]=v,n[4]=G):G=n[4];let j=G,re=ie(mi),O;n[5]===re?O=n[6]:(O=(D,U)=>Lr(re.getHotkey(D).key)(U.nativeEvent||U),n[5]=re,n[6]=O);let F=O,se=bd(e,o),le;n[7]!==u||n[8]!==I||n[9]!==r||n[10]!==a||n[11]!==e||n[12]!==h||n[13]!==y||n[14]!==_||n[15]!==o||n[16]!==C||n[17]!==F||n[18]!==m||n[19]!==w||n[20]!==S||n[21]!==g||n[22]!==s||n[23]!==i||n[24]!==j||n[25]!==c||n[26]!==d||n[27]!==f||n[28]!==B?(le={onKeyDown:D=>{if(Dr.fromInput(D)){D.continuePropagation();return}let U={"Mod+ArrowUp":()=>(u.focusTopCell(),j.clear(),!0),"Mod+ArrowDown":()=>(u.focusBottomCell(),j.clear(),!0),ArrowUp:()=>(u.focusCell({cellId:e,where:"before"}),j.clear(),!0),ArrowDown:()=>(u.focusCell({cellId:e,where:"after"}),j.clear(),!0),ArrowLeft:()=>{if(r){let k=d.get(ot),x=k.cellIds.findWithId(e),P=k.cellIds.indexOf(x),L=k.cellIds.at(P-1);if(L&&L.length>0){let ue=Ba(e,L);return u.focusCell({cellId:ue,where:"exact"}),j.clear(),!0}}return!1},ArrowRight:()=>{if(r){let k=d.get(ot),x=k.cellIds.findWithId(e),P=k.cellIds.indexOf(x),L=k.cellIds.at(P+1);if(L&&L.length>0){let ue=Ba(e,L);return u.focusCell({cellId:ue,where:"exact"}),j.clear(),!0}}return!1},"Shift+ArrowUp":()=>{let k=d.get(ei);j.extend({cellId:e,allCellIds:k});let x=k.findWithId(e).before(e);return x&&j.extend({cellId:x,allCellIds:k}),u.focusCell({cellId:e,where:"before"}),!0},"Shift+ArrowDown":()=>{let k=d.get(ei);j.extend({cellId:e,allCellIds:k});let x=k.findWithId(e).after(e);return x&&j.extend({cellId:x,allCellIds:k}),u.focusCell({cellId:e,where:"after"}),!0},Escape:()=>d.get(Rd).size>0?(d.set(Pd),!0):C?(j.clear(),!0):!1,Enter:()=>(f.add(e),Ka(d,e),j.clear(),!0),s:()=>(i(),!0)};for(let[k,x]of Object.entries(U))if(Lr(k)(D)&&x()){D.preventDefault();return}let we={"cell.run":ze(k=>(g(k),!0)),"cell.runAndNewBelow":ze(k=>{g(k);let x=k[k.length-1];return u.moveToNextCell({cellId:x,before:!1}),!0}),"cell.runAndNewAbove":ze(k=>{g(k);let x=k[0];return u.moveToNextCell({cellId:x,before:!0}),!0}),"cell.createAbove":k=>(u.createNewCell({cellId:k,before:!0}),!0),"cell.createBelow":k=>(u.createNewCell({cellId:k,before:!1}),!0),"cell.moveUp":ze(k=>{let x=k[0];return d.get(ot).cellIds.findWithId(x).first()===x?!1:(k.forEach(P=>{u.moveCell({cellId:P,before:!0})}),!0)}),"cell.moveDown":ze(k=>{let x=k[k.length-1];return d.get(ot).cellIds.findWithId(x).last()===x?!1:(k.toReversed().forEach(P=>{u.moveCell({cellId:P,before:!1})}),!0)}),"cell.moveLeft":_a(k=>r?(u.moveCell({cellId:k,direction:"left"}),!0):!1),"cell.moveRight":_a(k=>r?(u.moveCell({cellId:k,direction:"right"}),!0):!1),"cell.hideCode":ze(k=>{var P;let x=!k.map(L=>{var ue;return((ue=d.get(ot).cellData[L])==null?void 0:ue.config)||null}).every(yd);s({configs:Object.fromEntries(k.map(L=>[L,{hide_code:x}]))});for(let L of k)u.updateCellConfig({cellId:L,config:{hide_code:x}});if(k.length===1){let L=k[0];u.focusCell({cellId:L,where:"after"}),x?((P=o.current)==null||P.contentDOM.blur(),Za(L)):Ka(d,L)}return!0}),"cell.focusDown":k=>(u.focusCell({cellId:k,where:"after"}),!0),"cell.focusUp":k=>(u.focusCell({cellId:k,where:"before"}),!0),"cell.sendToBottom":ze(k=>(k.forEach(x=>{u.sendToBottom({cellId:x})}),!0)),"cell.sendToTop":ze(k=>(k.toReversed().forEach(x=>{u.sendToTop({cellId:x})}),!0)),"cell.aiCompletion":k=>{var P;if(!I)return!1;let x=!1;return c(L=>(L==null?void 0:L.cellId)===k?(x=!0,null):{cellId:k}),x&&((P=o.current)==null||P.focus()),!0},"cell.cellActions":()=>{var k;return(k=a.current)==null||k.toggle(),!0},"command.copyCell":ze(k=>(h(k),!0)),"command.cutCell":ze(k=>(y(k),!0)),"command.pasteCell":k=>(w(k),!0),"command.createCellBefore":k=>Dr.hasModifier(D)?!1:(u.createNewCell({cellId:k,before:!0,autoFocus:!0}),!0),"command.createCellAfter":k=>Dr.hasModifier(D)?!1:(u.createNewCell({cellId:k,before:!1,autoFocus:!0}),!0),"cell.delete":()=>{if(!B.keymap.destructive_delete)return!1;let k=ce.size>=2?[...ce]:[e],x=d.get(ot);return k.some(P=>{let{status:L}=x.cellRuntime[P];return L==="running"||L==="queued"})?!1:S.idle?(S.submit(k),!0):(_({cellIds:k}),S.clear(),!0)}},ce=md(d);if(m==="vim"&&hd(D.nativeEvent||D,{j:U.ArrowDown,k:U.ArrowUp,h:U.ArrowLeft,l:U.ArrowRight,i:U.Enter,"shift+j":U["Shift+ArrowDown"],"shift+k":U["Shift+ArrowUp"],"g g":U["Mod+ArrowUp"],"shift+g":U["Mod+ArrowDown"],"d d":()=>we["cell.delete"](),"y y":()=>(h(ce.size>=2?[...ce]:[e]),!0),p:()=>(w(e,{before:!1}),!0),"shift+p":()=>(w(e,{before:!0}),!0),o:()=>(u.createNewCell({cellId:e,before:!1,autoFocus:!0}),!0),"shift+o":()=>(u.createNewCell({cellId:e,before:!0,autoFocus:!0}),!0),u:()=>(u.undoDeleteCell(),!0)})){D.preventDefault();return}for(let[k,x]of Object.entries(we))if(F(k,D)){if(typeof x=="function"){if(x(e)){D.preventDefault();return}}else if(ce.size>=2?x.bulkHandle([...ce]):x.handle(e)){D.preventDefault();return}return}D.continuePropagation()}},n[7]=u,n[8]=I,n[9]=r,n[10]=a,n[11]=e,n[12]=h,n[13]=y,n[14]=_,n[15]=o,n[16]=C,n[17]=F,n[18]=m,n[19]=w,n[20]=S,n[21]=g,n[22]=s,n[23]=i,n[24]=j,n[25]=c,n[26]=d,n[27]=f,n[28]=B,n[29]=le):le=n[29];let{keyboardProps:oe}=Ai(le),ee;return n[30]!==se||n[31]!==C||n[32]!==oe?(ee=tp(se,oe,{"data-selected":C,className:"data-[selected=true]:ring-1 data-[selected=true]:ring-(--blue-8) data-[selected=true]:ring-offset-1"}),n[30]=se,n[31]=C,n[32]=oe,n[33]=ee):ee=n[33],ee};function yd(e){return e==null?void 0:e.hide_code}function wd(e,t){let n=(0,Er.c)(12),r=$t(),o=ie(di),a=ie(mi),i;n[0]===a?i=n[1]:(i=Lr(a.getHotkey("command.vimEnterCommandMode").key),n[0]=a,n[1]=i);let s=i,c;n[2]!==e||n[3]!==r?(c=()=>{r.remove(e),Za(e),ai(()=>{Qa(e)})},n[2]=e,n[3]=r,n[4]=c):c=n[4];let u=c,d;n[5]!==t||n[6]!==u?(d=()=>{if(!t.current){u();return}let h=t.current,w=h.state;if(pm(h))return;let y=w.field(ri,!1),v=Wt(w)!==null;y&&Nr(h),v&&Im(h),!(y||v)&&u()},n[5]=t,n[6]=u,n[7]=d):d=n[7];let f=d,g;n[8]!==f||n[9]!==o||n[10]!==s?(g={onKeyDown:h=>{o==="vim"?s(h)&&f():h.key==="Escape"&&f(),h.continuePropagation()}},n[8]=f,n[9]=o,n[10]=s,n[11]=g):g=n[11];let{keyboardProps:m}=Ai(g);return m}function Ba(e,t){let n=document.getElementById(Ln.create(e));if(!n)return t.first();let r=n.getBoundingClientRect();for(let o of t.topLevelIds){let a=document.getElementById(Ln.create(o));if(a){let i=a.getBoundingClientRect();if(r.top<=i.bottom&&r.bottom>=i.top)return o}}return t.last()}function Nr(e){e.state.field(ri,!1)&&e.dispatch({effects:nf.of(null)})}var vd=ve(),Ed=e=>{let t=(0,vd.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let o;t[3]===n?o=t[4]:(o=Ze("animate-pulse rounded-md bg-muted",n),t[3]=n,t[4]=o);let a;return t[5]!==r||t[6]!==o?(a=(0,b.jsx)("div",{className:o,...r}),t[5]=r,t[6]=o,t[7]=a):a=t[7],a},Nd=ve(),kd=50,Cd=4,Sd=60;function xd(e){return Math.min(Sd,Math.max(Cd,e))}const Id=e=>{let t=(0,Nd.c)(13),{code:n,className:r}=e,o,a,i,s;if(t[0]!==r||t[1]!==n){let u=n.split(`
|
|
24
|
+
`,kd);t[6]===r?o=t[7]:(o=Ze("cm","mo-code-placeholder",r),t[6]=r,t[7]=o),a="cell-editor-placeholder",i=!0,s=u.map(Ad),t[0]=r,t[1]=n,t[2]=o,t[3]=a,t[4]=i,t[5]=s}else o=t[2],a=t[3],i=t[4],s=t[5];let c;return t[8]!==o||t[9]!==a||t[10]!==i||t[11]!==s?(c=(0,b.jsx)("div",{className:o,"data-testid":a,"aria-hidden":i,children:s}),t[8]=o,t[9]=a,t[10]=i,t[11]=s,t[12]=c):c=t[12],c};function Ad(e,t){let n=e.trimEnd().length;return(0,b.jsx)("div",{className:"mo-code-placeholder-line",children:n>0&&(0,b.jsx)(Ed,{className:"mo-code-placeholder-bar",style:{width:`${xd(n)}ch`}})},t)}var Pa=ve();let kn;$r=e=>{let t=(0,Pa.c)(25),{editorView:n,code:r,currentLanguageAdapter:o,onAfterToggle:a,className:i}=e,s=i===void 0?"absolute right-3 top-2 z-20 flex hover-action gap-1":i,c;t[0]===r?c=t[1]:(c=Xa.markdown.isSupported(r)||r.trim()==="",t[0]=r,t[1]=c);let u=c,d;t[2]===r?d=t[3]:(d=Xa.sql.isSupported(r)||r.trim()==="",t[2]=r,t[3]=d);let f=d&&o==="python",g;t[4]===Symbol.for("react.memo_cache_sentinel")?(g=(0,b.jsx)(ef,{color:"var(--sky-11)",strokeWidth:2.5,className:"w-4 h-4"}),t[4]=g):g=t[4];let m;t[5]!==o||t[6]!==n||t[7]!==a||t[8]!==f?(m=(0,b.jsx)(kn,{editorView:n,currentLanguageAdapter:o,canSwitchToLanguage:f,icon:g,toType:"sql",displayName:"SQL",onAfterToggle:a}),t[5]=o,t[6]=n,t[7]=a,t[8]=f,t[9]=m):m=t[9];let h=u&&o==="python",w;t[10]===Symbol.for("react.memo_cache_sentinel")?(w=(0,b.jsx)(gp,{fill:"var(--sky-11)",color:"black",className:"w-4 h-4"}),t[10]=w):w=t[10];let y;t[11]!==o||t[12]!==n||t[13]!==a||t[14]!==h?(y=(0,b.jsx)(kn,{editorView:n,currentLanguageAdapter:o,canSwitchToLanguage:h,icon:w,toType:"markdown",displayName:"Markdown",onAfterToggle:a}),t[11]=o,t[12]=n,t[13]=a,t[14]=h,t[15]=y):y=t[15];let v;t[16]===Symbol.for("react.memo_cache_sentinel")?(v=(0,b.jsx)(pp,{fill:"var(--sky-11)",color:"black",className:"w-4 h-4"}),t[16]=v):v=t[16];let C;t[17]!==o||t[18]!==n?(C=(0,b.jsx)(kn,{editorView:n,currentLanguageAdapter:o,canSwitchToLanguage:!0,icon:v,toType:"python",displayName:"Python",onAfterToggle:Lf.NOOP}),t[17]=o,t[18]=n,t[19]=C):C=t[19];let S;return t[20]!==s||t[21]!==C||t[22]!==m||t[23]!==y?(S=(0,b.jsxs)("div",{className:s,children:[m,y,C]}),t[20]=s,t[21]=C,t[22]=m,t[23]=y,t[24]=S):S=t[24],S},kn=e=>{let t=(0,Pa.c)(10),{editorView:n,currentLanguageAdapter:r,canSwitchToLanguage:o,icon:a,toType:i,displayName:s,onAfterToggle:c}=e,u;t[0]!==n||t[1]!==c||t[2]!==i?(u=()=>{n&&(Pt(n,{language:i}),c())},t[0]=n,t[1]=c,t[2]=i,t[3]=u):u=t[3];let d=u;if(!o||r===i)return null;let f=`View as ${s}`,g;t[4]!==d||t[5]!==a?(g=(0,b.jsx)(ut,{"data-testid":"language-toggle-button",variant:"text",size:"xs",className:"opacity-80 px-1",onClick:d,children:a}),t[4]=d,t[5]=a,t[6]=g):g=t[6];let m;return t[7]!==f||t[8]!==g?(m=(0,b.jsx)(_n,{content:f,children:g}),t[7]=f,t[8]=g,t[9]=m):m=t[9],m};var ja=ve(),Ma=({theme:e,showPlaceholder:t,id:n,config:r,code:o,status:a,serializedEditorState:i,setEditorView:s,runCell:c,userConfig:u,editorViewRef:d,editorViewParentRef:f,hidden:g,hasOutput:m,showHiddenCode:h,languageAdapter:w,setLanguageAdapter:y,showLanguageToggles:v=!0,inlineAiTooltip:C,outputArea:S,tooltipParentSelector:_})=>{var Ja,Wa;let[B,T]=xn(Ui),I=xi(),{saveOrNameNotebook:G}=Ht(),j=Mn(),{saveCellConfig:re}=jn(),O=a==="running"||a==="queued",F=An(),se=hp(),le=w==="markdown",oe=ae(()=>O?!1:j.idle&&u.keymap.destructive_delete?(j.submit([n]),!0):(I({cellId:n}),!0)),ee=ae(()=>O?!1:(c(),d.current&&Nr(d.current),!0)),D=ae(()=>{let J=!r.hide_code;return re({configs:{[n]:{hide_code:J}}}),F.updateCellConfig({cellId:n,config:{hide_code:J}}),J}),U=ie(Of),we=ie(Tf),ce=ae(()=>{Bi({autoInstantiate:U,createNewCell:F.createNewCell}),r.hide_code||(re({configs:{[n]:{hide_code:!0}}}),F.updateCellConfig({cellId:n,config:{hide_code:!0}}),F.markUntouched({cellId:n}))}),k=ae(()=>{Bi({autoInstantiate:U,createNewCell:F.createNewCell})}),x=fi(u),P=(0,A.useMemo)(()=>{var de;let J=au({cellId:n,showPlaceholder:t,enableAI:x,cellActions:{...F,afterToggleMarkdown:ce,afterToggleSQL:k,onRun:ee,deleteCell:oe,saveNotebook:G,createManyBelow:fe=>{for(let Ke of fe.toReversed())F.createNewCell({code:Ke,before:!1,cellId:n,skipIfCodeExists:!0})},splitCell:se,toggleHideCode:D,aiCellCompletion:()=>{if(!x)return!1;let fe=!1;return T(Ke=>(Ke==null?void 0:Ke.cellId)===n?(fe=!0,null):{cellId:n}),fe}},completionConfig:u.completion,acceptCompletionOnEnter:we,keymapConfig:u.keymap,lspConfig:u.language_servers,theme:e,hotkeys:new ui(u.keymap.overrides??{}),diagnosticsConfig:u.diagnostics,displayConfig:u.display,inlineAiTooltip:C??((de=u.ai)==null?void 0:de.inline_tooltip)??!1,tooltipParentSelector:_});return J.push(et.define(fe=>(y(fe.state.field(Tn).type),{update(Ke){y(Ke.state.field(Tn).type)}})),M.updateListener.of(fe=>{fe.selectionSet&&fe.state.selection.ranges.some(Ke=>Ke.from!==Ke.to)&&h({focus:!1})}),M.domEventHandlers({focus:()=>{h({focus:!1})}})),J},[n,we,u.keymap,u.completion,u.language_servers,u.display,u.diagnostics,(Ja=u.ai)==null?void 0:Ja.inline_tooltip,C,_,x,e,t,F,se,D,oe,ee,T,ce,k,y,h,G]),L=Ar(),ue=ae(()=>{if(L){let de=pr(n,fe=>{F.updateCellCode({cellId:n,code:fe,formattingChange:!0})},o);P.push(de.extension),o=de.code}let J=new M({state:Br.create({doc:o,extensions:P})});s(J),L||Pt(J,{language:xr(J.state).type})}),Je=ae(()=>{if(Mt(d.current!==null,"Editor view is not initialized"),L){let J=pr(n,de=>{F.updateCellCode({cellId:n,code:de,formattingChange:!0})});P.push(J.extension)}d.current.dispatch({effects:[he.reconfigure.of([P]),Vd(d.current,{completionConfig:u.completion,hotkeysProvider:new ui(u.keymap.overrides??{}),lspConfig:{...u.language_servers,diagnostics:u.diagnostics}})]})}),Ve=ae(()=>{if(Mt(i,"Editor view is not initialized"),L){let de=pr(n,fe=>{F.updateCellCode({cellId:n,code:fe,formattingChange:!0})},o);P.push(de.extension),o=de.code}let J=new M({state:Br.fromJSON(i,{doc:o,extensions:P},{history:Em})});L||Pt(J,{language:xr(J.state).type}),s(J),F.clearSerializedEditorState({cellId:n})}),[We,W]=(0,A.useState)(i!==null);(0,A.useEffect)(()=>{if(d.current!==null){W(!0);return}if(i!==null){Ve(),W(!0);return}return Fn.request(n,()=>{d.current===null&&(ue(),W(!0))}),()=>Fn.cancel(n)},[n,d,Ve,ue,i]),(0,A.useEffect)(()=>{d.current!==null&&Je()},[Je,P,d]),(0,A.useEffect)(()=>{let J=d.current;return()=>{J==null||J.destroy()}},[d]);let[ge,z]=Vf({rootMargin:"300px 0px",threshold:0});(0,A.useEffect)(()=>{We||(z!=null&&z.isIntersecting?Fn.prioritize(n):Fn.deprioritize(n))},[We,z==null?void 0:z.isIntersecting,n]);let yt=wd(n,d),Sn="";return le&&g&&m?Sn="h-0 overflow-hidden":g&&(Sn="opacity-20 h-8 [&>div.cm-editor]:h-full [&>div.cm-editor]:overflow-hidden [&_.cm-panels]:hidden"),(0,b.jsx)(rd,{cellId:n,aiCompletionCell:B,currentCode:((Wa=d.current)==null?void 0:Wa.state.doc.toString())??o,currentLanguageAdapter:w,declineChange:ae(()=>{var J;T(null),(J=d.current)==null||J.focus()}),onChange:ae(J=>{var de;(de=d.current)==null||de.dispatch({changes:{from:0,to:d.current.state.doc.length,insert:J}})}),acceptChange:ae(J=>{var de,fe;(de=d.current)==null||de.dispatch({changes:{from:0,to:d.current.state.doc.length,insert:J}}),(fe=d.current)==null||fe.focus(),T(null)}),runCell:ee,outputArea:S,children:(0,b.jsxs)("div",{className:"relative w-full",ref:ge,...yt,children:[We?(0,b.jsx)(Ra,{className:Sn,editorView:d.current,ref:f,hidden:g,showHiddenCode:h}):(0,b.jsx)(Id,{code:o,className:Sn}),!g&&v&&(0,b.jsx)("div",{className:"absolute top-1 right-5",children:(0,b.jsx)($r,{code:o,editorView:d.current,currentLanguageAdapter:w,onAfterToggle:ce})})]})})},Ra=A.forwardRef((e,t)=>{let n=(0,ja.c)(14),{className:r,editorView:o,hidden:a,showHiddenCode:i}=e,s=(0,A.useRef)(null),c,u;n[0]===o?(c=n[1],u=n[2]):(c=()=>{o!==null&&s.current!==null&&s.current.children.length===0&&s.current.append(o.dom)},u=[o,s],n[0]=o,n[1]=c,n[2]=u),(0,A.useEffect)(c,u);let d;n[3]===r?d=n[4]:(d=Ze("cm mathjax_ignore",r),n[3]=r,n[4]=d);let f;n[5]!==a||n[6]!==i?(f=h=>{a&&i&&(h.stopPropagation(),i({focus:!0}))},n[5]=a,n[6]=i,n[7]=f):f=n[7];let g;n[8]===t?g=n[9]:(g=h=>{t?Rn(t,s)(h):Rn(s)(h)},n[8]=t,n[9]=g);let m;return n[10]!==d||n[11]!==f||n[12]!==g?(m=(0,b.jsx)("div",{className:d,onDoubleClick:f,ref:g,"data-testid":"cell-editor"}),n[10]=d,n[11]=f,n[12]=g,n[13]=m):m=n[13],m});Ra.displayName="CellCodeMirrorEditor";function Td(e){let t=n=>{let r=(0,ja.c)(5),o=ie(wt),[a,i]=xn(ft);if(Df(o.state)||a===void 0){let c;r[0]===Symbol.for("react.memo_cache_sentinel")?(c=(0,b.jsx)("span",{children:"Waiting for real-time collaboration connection..."}),r[0]=c):c=r[0];let u;return r[1]===i?u=r[2]:(u=(0,b.jsx)("div",{className:"flex h-full w-full items-baseline p-4",children:(0,b.jsxs)($f,{milliseconds:1e3,fallback:null,children:[c,(0,b.jsx)(ut,{variant:"link",onClick:()=>{i("disabled")},children:"Turn off real-time collaboration"})]})}),r[1]=i,r[2]=u),u}let s;return r[3]===n?s=r[4]:(s=(0,b.jsx)(e,{...n}),r[3]=n,r[4]=s),s};return t.displayName=`WithWaitUntilConnected(${e.displayName})`,t}Qi=Ar()?Td((0,A.memo)(Ma)):(0,A.memo)(Ma)});export{Wr as _,Sp as __tla,$t as a,Mn as b,Rn as c,Gn as d,Vr as f,Ee as g,Hi as h,qi as i,zi as l,Ki as m,$r as n,Hr as o,ft as p,Xi as r,Yi as s,Qi as t,Ht as u,Jn as v,Zi as y};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as
|
|
1
|
+
import{s as L}from"./chunk-LvLJmgfZ.js";import{d as P,l as j,n as w,u as O}from"./useEvent-D91BmmQi.js";import{D as y,Lt as A,M as D,P as E,Vi as S,hn as T,ki as _}from"./cells-D-v2lBet.js";import{t as b}from"./compiler-runtime-B3qBwwSJ.js";import{_ as $}from"./useEventListener-DvoEXWke.js";import{p as F}from"./utils-CvI-39U6.js";import{r as I}from"./constants-DMpttj8Q.js";import{v as H,w as M}from"./config-ClMcu_sV.js";import{t as V}from"./cn-DCUzRj2J.js";import{t as q}from"./jsx-runtime-BqBOg78p.js";import{r as B}from"./requests-DIwGYs0l.js";import{n as R}from"./paths-D5zczhUD.js";import{s as U}from"./session-0B5NBztP.js";import{n as z}from"./ImperativeModal-BW1dmntO.js";var G=b();function N(){return O(_)}function J(){let r=(0,G.c)(5),[t]=j(H),e=P(_),{openAlert:s}=z(),{sendRename:o}=B(),a;return r[0]!==t.state||r[1]!==s||r[2]!==o||r[3]!==e?(a=async l=>{let n=F();return t.state===M.OPEN?(U(i=>{l===null?i.delete(I.filePath):i.set(I.filePath,l)}),o({filename:l}).then(()=>(e(l),document.title=n.app_title||R.basename(l)||"Untitled Notebook",l)).catch(i=>(s(i.message),null))):(s("Failed to save notebook: not connected to a kernel."),null)},r[0]=t.state,r[1]=s,r[2]=o,r[3]=e,r[4]=a):a=r[4],w(a)}var p=b(),v=L(q(),1);const h=r=>{let t=(0,p.c)(12),{className:e,cellId:s,variant:o,onClick:a,formatCellName:l,skipScroll:n}=r,i=E()[s]??"",C=D().inOrderIds.indexOf(s),{showCellIfHidden:d}=y(),g=l??W,c;t[0]===e?c=t[1]:(c=V("inline-block cursor-pointer text-link hover:underline",e),t[0]=e,t[1]=c);let m;t[2]!==s||t[3]!==a||t[4]!==d||t[5]!==n||t[6]!==o?(m=k=>{if(s==="__scratch__")return!1;d({cellId:s}),k.stopPropagation(),k.preventDefault(),requestAnimationFrame(()=>{x(s,o,n)&&(a==null||a())})},t[2]=s,t[3]=a,t[4]=d,t[5]=n,t[6]=o,t[7]=m):m=t[7];let f=g(A(i,C)),u;return t[8]!==c||t[9]!==m||t[10]!==f?(u=(0,v.jsx)("div",{className:c,role:"link",tabIndex:-1,onClick:m,children:f}),t[8]=c,t[9]=m,t[10]=f,t[11]=u):u=t[11],u},K=r=>{let t=(0,p.c)(2),e;return t[0]===r?e=t[1]:(e=(0,v.jsx)(h,{...r,variant:"destructive"}),t[0]=r,t[1]=e),e},Q=r=>{let t=(0,p.c)(10),{cellId:e,lineNumber:s}=r,o=N(),a;t[0]!==e||t[1]!==s?(a=()=>T(e,s),t[0]=e,t[1]=s,t[2]=a):a=t[2];let l;t[3]!==e||t[4]!==o?(l=i=>e==="__scratch__"?"scratch":`marimo://${o||"untitled"}#cell=${i}`,t[3]=e,t[4]=o,t[5]=l):l=t[5];let n;return t[6]!==e||t[7]!==a||t[8]!==l?(n=(0,v.jsx)(h,{cellId:e,onClick:a,skipScroll:!0,variant:"destructive",className:"traceback-cell-link",formatCellName:l}),t[6]=e,t[7]=a,t[8]=l,t[9]=n):n=t[9],n};function x(r,t,e){let s=S.create(r),o=document.getElementById(s),a=o==null?void 0:o.classList.contains("has-error");return o===null?($.error(`Cell ${s} not found on page.`),!1):(e||o.scrollIntoView({behavior:"smooth",block:"center"}),(t==="destructive"||a&&t===void 0)&&(o.classList.add("error-outline"),setTimeout(()=>{o.classList.remove("error-outline")},2e3)),(t==="focus"||!a&&t===void 0)&&(o.classList.add("focus-outline"),setTimeout(()=>{o.classList.remove("focus-outline")},2e3)),!0)}function W(r){return r}export{N as a,x as i,K as n,J as o,Q as r,h as t};
|