@marimo-team/frontend 0.23.16-dev54 → 0.23.16-dev56

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.
@@ -1,3 +0,0 @@
1
- var jr=Object.defineProperty;var Ct=m=>{throw TypeError(m)};var $r=(m,y,_)=>y in m?jr(m,y,{enumerable:!0,configurable:!0,writable:!0,value:_}):m[y]=_;var o=(m,y,_)=>$r(m,typeof y!="symbol"?y+"":y,_),Ue=(m,y,_)=>y.has(m)||Ct("Cannot "+_);var i=(m,y,_)=>(Ue(m,y,"read from private field"),_?_.call(m):y.get(m)),u=(m,y,_)=>y.has(m)?Ct("Cannot add the same private member more than once"):y instanceof WeakSet?y.add(m):y.set(m,_),h=(m,y,_,le)=>(Ue(m,y,"write to private field"),le?le.call(m,_):y.set(m,_),_),g=(m,y,_)=>(Ue(m,y,"access private method"),_);import{i as W,p as Rt,u as Hr}from"./useEvent-D91BmmQi.js";import{Gt as qt,Ii as Dr,Jn as zr,Kt as ie,Vi as Or,Wi as Br,Xi as Se,Yi as Vr,b as Qr,zi as Gr,__tla as Yr}from"./cells-CMc2NsXm.js";import{t as Jr}from"./get-C-qh_et5.js";import{t as Kr}from"./debounce-OiXznToA.js";import{t as Xr}from"./_baseSet-CsW0tABf.js";import{g as p,v as b}from"./useEventListener-C0195JsF.js";import{t as Zr}from"./invariant-CkiqGLcK.js";import{E as es}from"./utils-BWBBpCkT.js";import{E as kt,M as ts,c as je,j as rs,l as Pt,n as ss}from"./config-B-Q7J_6d.js";import{n as ns}from"./switch-OVajJBPR.js";import{c as is}from"./readonly-python-code-Bmo6cMSq.js";import{t as as}from"./createReducer-DGx5Af-C.js";import{r as os}from"./strings--BknHX9C.js";import{t as $e}from"./requests-9-v2bhoi.js";import{c as Ft,o as It,__tla as ls}from"./markdown-renderer-uWTrQId1.js";import{t as ds}from"./DeferredRequestRegistry-C8EV1PoE.js";import{t as us}from"./preload-helper-TXkS1QI3.js";import{t as At}from"./Deferred-D2igisxY.js";import{t as Nt}from"./uuid-ImXS-885.js";import{t as cs}from"./use-toast-BwJoaaDM.js";import{n as hs}from"./RenderHTML-DRJxD5FQ.js";import{t as ps}from"./useRunCells-B-KIwrVZ.js";import{r as fs,t as gs}from"./blob-BXcsY70H.js";import{n as ms,r as ys,t as ws}from"./share-852X_cqy.js";import{i as Lt,r as bs,t as vs}from"./events-90X9nql5.js";let _e,He,De,Tt,Wt,Ut,jt,ae,oe,$t,ze,Ht,Dt,zt,Oe,Ot,Fe,Bt,Ie,Be,Vt,Qt,Ss=Promise.all([(()=>{try{return Yr}catch{}})(),(()=>{try{return ls}catch{}})()]).then(async()=>{var vt,Re,$,H,Z,q,D,Yt,Jt,Kt,qe,ee,O,ke,Xt,St,te,de,ue,ce,he,B,re,V,Zt,Qe,se,z,pe,fe,ge,me,F,C,Q,A,N,G,x,ye,Y,v,Ge,Ye,er,Je,tr,Ke,Xe,rr,_t,L,we,be,U,X,Et;function m(t,e,r){return t==null?t:Xr(t,e,r)}_e=m,Qt=Rt(null);var{valueAtom:y,useActions:_}=as(()=>({banners:[]}),{addBanner:(t,e)=>({...t,banners:[...t.banners,{...e,id:Nt()}]}),removeBanner:(t,e)=>({...t,banners:t.banners.filter(r=>r.id!==e)}),clearBanners:t=>({...t,banners:[]})});Tt=()=>Hr(y),Vt=function(){return _()};let le,Ze;Be=class{constructor(){o(this,"subscriptions",new Map)}addSubscription(t,e){var r;this.subscriptions.has(t)||this.subscriptions.set(t,new Set),(r=this.subscriptions.get(t))==null||r.add(e)}removeSubscription(t,e){var r;(r=this.subscriptions.get(t))==null||r.delete(e)}notify(t,e){for(let r of this.subscriptions.get(t)??[])r(e)}},He=class Ve{constructor(e){o(this,"subscriptions",new Be);this.producer=e}static withProducerCallback(e){return new Ve(e)}static empty(){return new Ve}startProducer(){this.producer&&this.producer(e=>{this.subscriptions.notify("message",e)})}connect(){return new Promise(e=>setTimeout(e,0)).then(()=>{this.subscriptions.notify("open",new Event("open"))})}get readyState(){return WebSocket.OPEN}reconnect(e,r){this.close(),this.connect()}close(){this.subscriptions.notify("close",new Event("close"))}send(e){return this.subscriptions.notify("message",new MessageEvent("message",{data:e})),Promise.resolve()}addEventListener(e,r){this.subscriptions.addSubscription(e,r),e==="open"&&r(new Event("open")),e==="message"&&this.startProducer()}removeEventListener(e,r){this.subscriptions.removeSubscription(e,r)}},le=1e10,Ze=1e3;function Ee(t,e){let r=t.map(s=>`"${s}"`).join(", ");return Error(`This RPC instance cannot ${e} because the transport did not provide one or more of these methods: ${r}`)}function nr(t={}){let e={};function r(d){e=d}let s={};function n(d){var f;s.unregisterHandler&&s.unregisterHandler(),s=d,(f=s.registerHandler)==null||f.call(s,Ur)}let a;function l(d){if(typeof d=="function"){a=d;return}a=(f,E)=>{let S=d[f];if(S)return S(E);let M=d._;if(!M)throw Error(`The requested method has no handler: ${f}`);return M(f,E)}}let{maxRequestTime:c=Ze}=t;t.transport&&n(t.transport),t.requestHandler&&l(t.requestHandler),t._debugHooks&&r(t._debugHooks);let w=0;function R(){return w<=le?++w:w=0}let k=new Map,P=new Map;function j(d,...f){let E=f[0];return new Promise((S,M)=>{var ne;if(!s.send)throw Ee(["send"],"make requests");let T=R(),K={type:"request",id:T,method:d,params:E};k.set(T,{resolve:S,reject:M}),c!==1/0&&P.set(T,setTimeout(()=>{P.delete(T),M(Error("RPC request timed out."))},c)),(ne=e.onSend)==null||ne.call(e,K),s.send(K)})}let I=new Proxy(j,{get:(d,f,E)=>f in d?Reflect.get(d,f,E):S=>j(f,S)}),Pe=I;function ve(d,...f){var M;let E=f[0];if(!s.send)throw Ee(["send"],"send messages");let S={type:"message",id:d,payload:E};(M=e.onSend)==null||M.call(e,S),s.send(S)}let xt=new Proxy(ve,{get:(d,f,E)=>f in d?Reflect.get(d,f,E):S=>ve(f,S)}),Mt=xt,J=new Map,We=new Set;function Tr(d,f){var E;if(!s.registerHandler)throw Ee(["registerHandler"],"register message listeners");if(d==="*"){We.add(f);return}J.has(d)||J.set(d,new Set),(E=J.get(d))==null||E.add(f)}function Wr(d,f){var E,S;if(d==="*"){We.delete(f);return}(E=J.get(d))==null||E.delete(f),((S=J.get(d))==null?void 0:S.size)===0&&J.delete(d)}async function Ur(d){var f,E;if((f=e.onReceive)==null||f.call(e,d),!("type"in d))throw Error("Message does not contain a type.");if(d.type==="request"){if(!s.send||!a)throw Ee(["send","requestHandler"],"handle requests");let{id:S,method:M,params:T}=d,K;try{K={type:"response",id:S,success:!0,payload:await a(M,T)}}catch(ne){if(!(ne instanceof Error))throw ne;K={type:"response",id:S,success:!1,error:ne.message}}(E=e.onSend)==null||E.call(e,K),s.send(K);return}if(d.type==="response"){let S=P.get(d.id);S!=null&&clearTimeout(S);let{resolve:M,reject:T}=k.get(d.id)??{};d.success?M==null||M(d.payload):T==null||T(Error(d.error));return}if(d.type==="message"){for(let M of We)M(d.id,d.payload);let S=J.get(d.id);if(!S)return;for(let M of S)M(d.payload);return}throw Error(`Unexpected RPC message type: ${d.type}`)}return{setTransport:n,setRequestHandler:l,request:I,requestProxy:Pe,send:xt,sendProxy:Mt,addMessageListener:Tr,removeMessageListener:Wr,proxy:{send:Mt,request:Pe},_setDebugHooks:r}}function ir(t){return nr(t)}var et="[transport-id]";function ar(t,e){let{transportId:r}=e;return r==null?t:{[et]:r,data:t}}function or(t,e){let{transportId:r,filter:s}=e,n=s==null?void 0:s();if(r!=null&&n!=null)throw Error("Cannot use both `transportId` and `filter` at the same time");let a=t;if(r){if(t[et]!==r)return[!0];a=t.data}return n===!1?[!0]:[!1,a]}function lr(t,e={}){let{transportId:r,filter:s,remotePort:n}=e,a=t,l=n??t,c;return{send(w){l.postMessage(ar(w,{transportId:r}))},registerHandler(w){c=R=>{let k=R.data,[P,j]=or(k,{transportId:r,filter:()=>s==null?void 0:s(R)});P||w(j)},a.addEventListener("message",c)},unregisterHandler(){c&&a.removeEventListener("message",c)}}}function dr(t,e){return lr(t,e)}function tt(t){return ir({transport:dr(t,{transportId:"marimo-transport"}),maxRequestTime:2e4,_debugHooks:{onSend:e=>{p.debug("[rpc] Parent -> Worker",e)},onReceive:e=>{p.debug("[rpc] Worker -> Parent",e)}}})}ae=Rt({kind:"loading",message:"Initializing..."});var rt=ms(),st="marimo:file",nt=new Dr(null);const ur={saveFile(t){nt.set(st,t)},readFile(){return nt.get(st)}};var cr={saveFile(t){Se.setCodeForHash((0,rt.compressToEncodedURIComponent)(t))},readFile(){let t=Se.getCodeFromHash()||Se.getCodeFromSearchParam();return t?(0,rt.decompressFromEncodedURIComponent)(t):null}};const hr={saveFile(t){},readFile(){let t=document.querySelector("marimo-code");return t?decodeURIComponent(t.textContent||"").trim():null}};var pr={saveFile(t){},readFile(){if(window.location.hostname!=="marimo.app")return null;let t=new URL("export_demos/wasm-intro.py",document.baseURI);return fetch(t.toString()).then(e=>e.ok?e.text():null).catch(()=>null)}};const fr={saveFile(t){},readFile(){return W.get(Gr)??null}};var gr={saveFile(t){},readFile(){return["import marimo","app = marimo.App()","","@app.cell","def __():"," return","",'if __name__ == "__main__":'," app.run()"].join(`
2
- `)}},it=class{constructor(t){this.stores=t}insert(t,e){this.stores.splice(t,0,e)}saveFile(t){this.stores.forEach(e=>e.saveFile(t))}readFile(){for(let t of this.stores){let e=t.readFile();if(e)return e}return null}};let xe;oe=new it([fr,hr,cr]),xe=new it([ur,pr,gr]),Oe=class Gt{constructor(){o(this,"initialized",new At);o(this,"sendRename",async({filename:e})=>(e===null||(Se.setFilename(e),await this.rpc.proxy.request.bridge({functionName:"rename_file",payload:e})),null));o(this,"sendSave",async e=>{if(!this.saveRpc)return p.warn("Save RPC not initialized"),null;await this.saveRpc.saveNotebook(e);let r=await this.readCode();return r.contents&&(oe.saveFile(r.contents),xe.saveFile(r.contents)),this.rpc.proxy.request.saveNotebook(e).catch(s=>{p.error(s)}),null});o(this,"sendCopy",async()=>{b()});o(this,"sendStdin",async e=>(await this.rpc.proxy.request.bridge({functionName:"put_input",payload:e.text}),null));o(this,"sendPdb",async()=>{b()});o(this,"sendSetBreakpoints",async()=>{b()});o(this,"sendRun",async e=>(await this.rpc.proxy.request.loadPackages(e.codes.join(`
3
- `)),await this.putControlRequest({type:"execute-cells",...e}),null));o(this,"sendRunScratchpad",async e=>(await this.rpc.proxy.request.loadPackages(e.code),await this.putControlRequest({type:"execute-scratchpad",...e}),null));o(this,"sendInterrupt",async()=>(this.interruptBuffer!==void 0&&(this.interruptBuffer[0]=2),null));o(this,"sendShutdown",async()=>(window.close(),null));o(this,"sendFormat",async e=>await this.rpc.proxy.request.bridge({functionName:"format",payload:e}));o(this,"sendDeleteCell",async e=>(await this.putControlRequest({type:"delete-cell",...e}),null));o(this,"sendInstallMissingPackages",async e=>(this.putControlRequest({type:"install-packages",...e}),null));o(this,"sendCodeCompletionRequest",async e=>(W.get(Qr)||await this.rpc.proxy.request.bridge({functionName:"code_complete",payload:e}),null));o(this,"saveUserConfig",async e=>(await this.rpc.proxy.request.bridge({functionName:"save_user_config",payload:e}),ns.post("/kernel/save_user_config",e,{baseUrl:"/"}).catch(r=>(p.error(r),null))));o(this,"saveAppConfig",async e=>(await this.rpc.proxy.request.bridge({functionName:"save_app_config",payload:e}),null));o(this,"saveCellConfig",async e=>(await this.putControlRequest({type:"update-cell-config",...e}),null));o(this,"sendRestart",async()=>{let e=await this.readCode();return e.contents&&(oe.saveFile(e.contents),xe.saveFile(e.contents)),ys(),null});o(this,"readCode",async()=>this.saveRpc?{contents:await this.saveRpc.readNotebook()}:(p.warn("Save RPC not initialized"),{contents:""}));o(this,"readSnippets",async()=>await this.rpc.proxy.request.bridge({functionName:"read_snippets",payload:void 0}));o(this,"openFile",async({path:e})=>{let r=ws({code:null,baseUrl:window.location.origin});return window.open(r,"_blank"),null});o(this,"sendListFiles",async e=>await this.rpc.proxy.request.bridge({functionName:"list_files",payload:e}));o(this,"sendSearchFiles",async e=>await this.rpc.proxy.request.bridge({functionName:"search_files",payload:e}));o(this,"sendComponentValues",async e=>(await this.putControlRequest({type:"update-ui-element",...e,token:Nt()}),null));o(this,"sendInstantiate",async e=>null);o(this,"sendFunctionRequest",async e=>(await this.putControlRequest({type:"invoke-function",...e}),null));o(this,"sendCreateFileOrFolder",async e=>{let r=null;return e.file&&(r=(await fs(e.file)).split(",")[1]??""),await this.rpc.proxy.request.bridge({functionName:"create_file_or_directory",payload:{path:e.path,type:e.type,name:e.name,contents:r}})});o(this,"sendDeleteFileOrFolder",async e=>await this.rpc.proxy.request.bridge({functionName:"delete_file_or_directory",payload:e}));o(this,"sendCopyFileOrFolder",async e=>await this.rpc.proxy.request.bridge({functionName:"copy_file_or_directory",payload:e}));o(this,"sendRenameFileOrFolder",async e=>await this.rpc.proxy.request.bridge({functionName:"move_file_or_directory",payload:e}));o(this,"sendUpdateFile",async e=>await this.rpc.proxy.request.bridge({functionName:"update_file",payload:e}));o(this,"sendFileDetails",async e=>await this.rpc.proxy.request.bridge({functionName:"file_details",payload:e}));o(this,"exportAsHTML",async e=>await this.rpc.proxy.request.bridge({functionName:"export_html",payload:e}));o(this,"exportAsMarkdown",async e=>await this.rpc.proxy.request.bridge({functionName:"export_markdown",payload:e}));o(this,"previewDatasetColumn",async e=>(await this.putControlRequest({type:"preview-dataset-column",...e}),null));o(this,"previewSQLTable",async e=>(await this.putControlRequest({type:"preview-sql-table",...e}),null));o(this,"previewSQLTableList",async e=>(await this.putControlRequest({type:"list-sql-tables",...e}),null));o(this,"previewSQLSchemaList",async e=>(await this.putControlRequest({type:"list-sql-schemas",...e}),null));o(this,"previewDataSourceConnection",async e=>(await this.putControlRequest({type:"list-data-source-connection",...e}),null));o(this,"validateSQL",async e=>(await this.putControlRequest({type:"validate-sql",...e}),null));o(this,"sendModelValue",async e=>(await this.putControlRequest({type:"model",...e}),null));o(this,"sendDocumentTransaction",()=>Promise.resolve(null));o(this,"addPackage",async e=>this.rpc.proxy.request.addPackage(e));o(this,"removePackage",async e=>this.rpc.proxy.request.removePackage(e));o(this,"getPackageList",async()=>await this.rpc.proxy.request.listPackages());o(this,"getDependencyTree",async()=>({tree:{dependencies:[],name:"",tags:[],version:null}}));o(this,"listSecretKeys",async e=>(await this.putControlRequest({type:"list-secret-keys",...e}),null));o(this,"discoverDataSources",async e=>(await this.putControlRequest({type:"discover-data-sources",...e}),null));o(this,"getUsageStats",b);o(this,"getEnvironmentInfo",async()=>await this.rpc.proxy.request.bridge({functionName:"get_environment_info",payload:void 0}));o(this,"openTutorial",b);o(this,"getRecentFiles",b);o(this,"getWorkspaceFiles",b);o(this,"getRunningNotebooks",b);o(this,"shutdownSession",b);o(this,"getExportAvailability",b);o(this,"exportAsIPYNB",b);o(this,"exportAsPDF",b);o(this,"autoExportAsHTML",b);o(this,"autoExportAsMarkdown",b);o(this,"autoExportAsIPYNB",b);o(this,"updateCellOutputs",b);o(this,"writeSecret",b);o(this,"invokeAiTool",b);o(this,"clearCache",b);o(this,"getCacheInfo",b);o(this,"listStorageEntries",b);o(this,"downloadStorage",b);ts()&&(this.rpc=tt(new Worker(new URL(""+new URL("worker-BQo2bijx.js",import.meta.url).href,""+import.meta.url),{type:"module",name:at()})),this.rpc.addMessageListener("ready",()=>{this.startSession()}),this.rpc.addMessageListener("initialized",()=>{this.saveRpc=this.getSaveWorker(),this.setInterruptBuffer(),W.set(ae,{kind:"ready"}),this.initialized.resolve()}),this.rpc.addMessageListener("initializingMessage",({message:e})=>{W.get(ae).kind==="loading"&&W.set(ae,{kind:"loading",message:e})}),this.rpc.addMessageListener("initializedError",({error:e})=>{if(this.initialized.status==="resolved"){p.error(e),cs({title:"Error initializing",description:e,variant:"danger"});return}W.set(ae,{kind:"error",message:e}),this.initialized.reject(Error(e))}),this.rpc.addMessageListener("kernelMessage",({message:e})=>{var r;(r=this.messageConsumer)==null||r.call(this,new MessageEvent("message",{data:e}))}))}static get INSTANCE(){let e="_marimo_private_PyodideBridge";return window[e]||(window[e]=new Gt),window[e]}getSaveWorker(){return kt()==="read"?(p.debug("Using partially disabled SaveWorker in read-mode"),{readFile:b,readNotebook:async()=>await oe.readFile()??"",saveNotebook:b}):tt(new Worker(new URL(""+new URL("save-worker-_Qc1hOeF.js",import.meta.url).href,""+import.meta.url),{type:"module",name:at()})).proxy.request}async startSession(){let e=await oe.readFile(),r=await xe.readFile(),s=W.get(Or)??Se.getFilename(),n=W.get(es),a={},l=new URLSearchParams(window.location.search);for(let c of l.keys()){let w=l.getAll(c);a[c]=w.length===1?w[0]:w}await this.rpc.proxy.request.startSession({queryParameters:a,code:e||r||"",filename:s,userConfig:{...n,runtime:{...n.runtime,auto_instantiate:kt()==="read"?!0:n.runtime.auto_instantiate}}})}setInterruptBuffer(){crossOriginIsolated?(this.interruptBuffer=new Uint8Array(new SharedArrayBuffer(1)),this.rpc.proxy.request.setInterruptBuffer(this.interruptBuffer)):p.warn("Not running in a secure context; interrupts are not available.")}attachMessageConsumer(e){this.messageConsumer=e,this.rpc.proxy.send.consumerReady({})}async putControlRequest(e){await this.rpc.proxy.request.bridge({functionName:"put_control_request",payload:e})}},Ht=function(){return He.withProducerCallback(t=>{Oe.INSTANCE.attachMessageConsumer(t)})};function at(){let t=typeof window<"u"&&window.__MARIMO_HAS_WASM_CONTROLLER__===!0;return is()+(t?"::controller":"")}Ut=function(t=je()){let e=window.fetch;return window.fetch=async(r,s)=>{let n=r instanceof Request?r.url:r.toString();if(n.startsWith("data:"))return e(r,s);try{let a=Me(n,t);if(a){let l=await(await e(a)).arrayBuffer();return new Response(l,{headers:{"Content-Type":mr(n)}})}return e(r,s)}catch(a){return p.error("Error parsing URL",a),e(r,s)}},()=>{window.fetch=e}};function mr(t){return t.endsWith(".csv")?"text/csv":t.endsWith(".json")?"application/json":t.endsWith(".txt")?"text/plain":"application/octet-stream"}jt=function(t,e=je()){let r=t.http.bind(t),s=t.load.bind(t);return t.http=async n=>{let a=Me(n,e);if(a)return await window.fetch(a).then(l=>l.text());try{return await r(n)}catch(l){if(n.startsWith("data:"))return await window.fetch(n).then(c=>c.text());throw l}},t.load=async n=>{let a=Me(n,e);if(a)return await window.fetch(a).then(l=>l.text());try{return await s(n)}catch(l){if(n.startsWith("data:"))return await window.fetch(n).then(c=>c.text());throw l}},()=>{t.http=r,t.load=s}};function ot(t){return t.startsWith(".")?t.slice(1):t}function yr(t,e=je()){let r=Me(t,e);if(!r)return t;let s=gs(r);return URL.createObjectURL(s)}function Me(t,e){let r=document.baseURI;r.startsWith("blob:")&&(r=r.replace("blob:",""));let s=new URL(t,r).pathname,n=lt(t),a=lt(s);return e[t]||e[ot(t)]||e[s]||e[ot(s)]||n&&e[n]||a&&e[a]}function lt(t){let e=t.indexOf("/@file/");return e===-1?null:t.slice(e)}function Ce(t,e){return{get(r){return t.get(r)},set(r,s){t.set(r,s)},save_changes(){t.save_changes()},send:t.send.bind(t),on(r,s){e.aborted||(t.on(r,s),e.addEventListener("abort",()=>t.off(r,s),{once:!0}))},off(r,s){t.off(r??null,s??null)},widget_manager:{async get_model(r){return Ce(await t.widget_manager.get_model(r),e)}}}}Ie=function(t){return typeof t=="string"&&t.length>0};function dt(t){if(typeof t=="string"&&t.startsWith("anywidget:")){let e=t.slice(10);if(Ie(e))return e}throw Error(`[anywidget] Invalid widget reference: ${JSON.stringify(t)}`)}function wr(t,e){return{async getModel(r){let s=dt(r);return Ce(await t.getModel(s),e)},async getWidget(r){let s=dt(r),n=await t.getWidget(s);return{exports:n.exports,async render({el:a,signal:l}){await n.render({el:a,signal:l??e})}}}}}var ut=Symbol("marimo");function Ae(t){return t[ut]}var ct=(vt=ut,ee=class{constructor(e,r,s){u(this,D);u(this,Re,"change");u(this,$);u(this,H);u(this,Z);u(this,q,{});o(this,vt,{updateAndEmitDiffs:e=>g(this,D,Jt).call(this,e),emitCustomMessage:(e,r)=>g(this,D,Kt).call(this,e,r)});o(this,"widget_manager",{async get_model(e){let r=await ee._modelManager.getModel(e);if(!r)throw Error(`Model not found with id: ${e}. This is likely because the model was not registered.`);return r}});u(this,qe,Kr(()=>{let e=i(this,q)[i(this,Re)];if(e)for(let r of[...e])try{r()}catch(s){p.error("Error emitting event",s)}},0));h(this,H,e),h(this,Z,r),h(this,$,new Map),s&&s.addEventListener("abort",()=>{p.debug("[Model] Signal aborted, clearing all listeners"),h(this,q,{})})}off(e,r){var s;if(!e){h(this,q,{});return}if(!r){i(this,q)[e]=new Set;return}(s=i(this,q)[e])==null||s.delete(r)}send(e,r,s){let n=(s??[]).map(a=>a instanceof ArrayBuffer?new DataView(a):new DataView(a.buffer,a.byteOffset,a.byteLength));return i(this,Z).sendCustomMessage(e,n).then(()=>r==null?void 0:r())}get(e){return i(this,H)[e]}set(e,r){h(this,H,{...i(this,H),[e]:r}),i(this,$).set(e,r),g(this,D,Yt).call(this,`change:${e}`,r),i(this,qe).call(this)}save_changes(){if(i(this,$).size===0)return;let e=Object.fromEntries(i(this,$).entries());i(this,$).clear(),i(this,Z).sendUpdate(e)}on(e,r,s){let n=s==null?void 0:s.signal;n!=null&&n.aborted||(i(this,q)[e]||(i(this,q)[e]=new Set),i(this,q)[e].add(r),n==null||n.addEventListener("abort",()=>this.off(e,r),{once:!0}))}},Re=new WeakMap,$=new WeakMap,H=new WeakMap,Z=new WeakMap,q=new WeakMap,D=new WeakSet,Yt=function(e,r){let s=i(this,q)[e];if(s)for(let n of[...s])try{n(r)}catch(a){p.error("Error emitting event",a)}},Jt=function(e){e!=null&&Object.keys(e).forEach(r=>{let s=r;i(this,H)[s]!==e[s]&&this.set(s,e[s])})},Kt=function(e,r=[]){let s=i(this,q)["msg:custom"];if(s)for(let n of[...s])try{n(e.content,r)}catch(a){p.error("Error emitting event",a)}},qe=new WeakMap,ee);function ht(t){return typeof t=="function"}function pt(t){return typeof t=="function"}function br(t){return ie(t)&&(ht(t.render)||pt(t.initialize))}function vr(t){return typeof t=="function"||br(t)}function Sr(t){return ie(t)&&vr(t.default)}var ft=new Set,gt=new WeakMap;function _r(t,e){if(Sr(t))return t.default;if(!ie(t)||t.default!==void 0)return null;let r=ht(t.render)?t.render:void 0,s=pt(t.initialize)?t.initialize:void 0;if(r===void 0&&s===void 0)return null;let n=gt.get(t);if(n)return n;ft.has(e)||(ft.add(e),p.warn(`Anywidget module at ${e} uses deprecated top-level named exports (\`render\`/\`initialize\`). Per the AFM spec, use a default export instead: \`export default { render }\`. See https://anywidget.dev/en/afm/`));let a={render:r,initialize:s};return gt.set(t,a),a}function Er(t,e){let r="https://anywidget.dev/en/afm/",s=ie(t)&&qt(t,"render"),n=ie(t)&&qt(t,"initialize");if(ie(t)&&t.default!==void 0)return Error(`Anywidget module at ${e} has an invalid default export. Expected a factory function or an object with \`render\` or \`initialize\`. See ${r}`);if(s||n){let a=[s?"`render`":null,n?"`initialize`":null].filter(Boolean).join(" and "),l=[s?"render":null,n?"initialize":null].filter(R=>R!==null),c=`export default { ${l.join(", ")} }`,w=l.length===1?`export function ${l[0]}`:"named export function ...";return Error(`Anywidget module at ${e} uses named exports (${a}). Per the AFM spec, use a default export instead: \`${c}\` (not \`${w}\`). See ${r}`)}return Error(`Anywidget module at ${e} is missing a default export. Per the AFM spec, use \`export default { render }\` or \`export default async () => ({ render })\`. See ${r}`)}ze=function(t){return typeof t!="string"||t.length===0?!1:!!(/^(\.?\/)?@file\/[^?#]+$/.test(t)||Mr(t))};function xr(){return W.get(ps)||hs()}function Mr(t){return t.startsWith("data:text/javascript;base64,")||t.startsWith("data:application/javascript;base64,")||t.startsWith("data:text/css;base64,")?xr():!1}const mt={invoke:async()=>{let t="anywidget.invoke not supported in marimo. Please file an issue at https://github.com/marimo-team/marimo/issues";throw p.warn(t),Error(t)}};function Cr(t){if(typeof AbortSignal.any=="function")return AbortSignal.any(t);let e=new AbortController;for(let r of t){if(r.aborted)return e.abort(r.reason),e.signal;r.addEventListener("abort",()=>e.abort(r.reason),{once:!0})}return e.signal}var Rr=(St=class{constructor(){u(this,ke);u(this,O,new Map)}getModule(t){let{jsUrl:e,jsHash:r,kernelAuthored:s=!1}=t,n=i(this,O).get(r);if(n)return n;let a=g(this,ke,Xt).call(this,e,{kernelAuthored:s}).catch(l=>{throw i(this,O).delete(r),l});return i(this,O).set(r,a),a}invalidate(t){i(this,O).delete(t)}},O=new WeakMap,ke=new WeakSet,Xt=async function(t,e={}){if(!(ze(t)||e.kernelAuthored===!0&&/^(https?:|data:)/.test(t)))throw Error(`Refusing to load anywidget module from untrusted URL: ${String(t)}`);let r=ss(t).toString();return Pt()&&(r=yr(r)),us(()=>import(r).then(async s=>(await s.__tla,s)),[],import.meta.url)},St);function Ne(t){return typeof t=="function"}async function yt(t,e){try{await t()}catch(r){p.warn(`[WidgetBinding] ${e} cleanup failed`,r)}}var qr=(se=class{constructor(e){u(this,V);u(this,te);u(this,de);u(this,ue);u(this,ce);u(this,he);u(this,B,new Set);u(this,re,new Set);h(this,de,e.widget),h(this,ue,e.model),h(this,ce,e.exports),h(this,te,e.controller),h(this,he,e.createHost)}static async create({widgetDef:e,model:r,createHost:s,controller:n=new AbortController}){var j;let a=n.signal,l=typeof e=="function"?await e():e,c=Promise.resolve((j=l.initialize)==null?void 0:j.call(l,{model:Ce(r,a),experimental:mt,signal:a}));c.then(async I=>{a.aborted&&Ne(I)&&await yt(I,"late initialize")}).catch(()=>{});let w=await Promise.race([c,new Promise((I,Pe)=>{let ve=()=>Pe(Error("[anywidget] binding destroyed"));if(a.aborted){ve();return}a.addEventListener("abort",ve,{once:!0})})]);if(a.aborted)throw Error("[anywidget] binding destroyed");let R,k;Ne(w)?(k=w,R=void 0):R=typeof w=="object"&&w?w:void 0;let P=new se({widget:l,model:r,exports:R,controller:n,createHost:s});return k&&a.addEventListener("abort",()=>{var I;g(I=P,V,Qe).call(I,k,"initialize")},{once:!0}),P}get exports(){return i(this,ce)}async createView(e,r){let s=g(this,V,Zt).call(this,e,r);i(this,re).add(s);try{await s}finally{i(this,re).delete(s)}}async destroy(){for(p.debug("[WidgetBinding] Destroying binding generation"),i(this,te).abort(),await Promise.allSettled(i(this,re));i(this,B).size>0;)await Promise.all(i(this,B))}},te=new WeakMap,de=new WeakMap,ue=new WeakMap,ce=new WeakMap,he=new WeakMap,B=new WeakMap,re=new WeakMap,V=new WeakSet,Zt=async function(e,r){let s=i(this,de);if(!s.render)return;let n=Cr([r.signal,i(this,te).signal]);if(n.aborted)return;e.el.innerHTML="";let a=i(this,he).call(this,n),l=await s.render({model:Ce(i(this,ue),n),el:e.el,experimental:mt,signal:n,host:a});if(Ne(l)){let c=()=>{let w=r.signal.aborted?"view unmount":"binding destroyed";return p.debug(`[WidgetBinding] Render cleanup triggered (reason: ${w})`),g(this,V,Qe).call(this,l,"render")};if(n.aborted){await c();return}n.addEventListener("abort",()=>{c()},{once:!0})}},Qe=function(e,r){let s=yt(e,r);return i(this,B).add(s),s.finally(()=>i(this,B).delete(s)),s},se);const wt=new Rr;var kr=(_t=class{constructor(t,e){u(this,v);u(this,z);u(this,pe);u(this,fe);u(this,ge);u(this,me);u(this,F,new AbortController);u(this,C,new At);u(this,Q,new Set);u(this,A,new Map);u(this,N);u(this,G);u(this,x);u(this,ye,Promise.resolve());u(this,Y,"");h(this,z,t),h(this,pe,e.timeout),h(this,fe,e.isEditMode),h(this,ge,e.createHost),h(this,me,e.onModelTimeout)}getModel(){return i(this,C).status==="pending"&&!i(this,N)&&h(this,N,setTimeout(()=>{i(this,C).status==="pending"&&(h(this,N,void 0),i(this,C).reject(Error(`Model not found for key: ${i(this,z)}`)),i(this,me).call(this))},i(this,pe))),i(this,C).promise}getModelSync(){return i(this,C).status==="resolved"?i(this,C).value:void 0}createModel(t){i(this,C).status==="pending"&&g(this,v,Ge).call(this,t(i(this,F).signal))}setModel(t){i(this,C).status==="pending"&&g(this,v,Ge).call(this,t)}setSpec(t){if(!i(this,G)){h(this,G,t);return}i(this,fe).call(this)&&(h(this,G,t),i(this,x)&&i(this,x).hash!==t.hash&&g(this,v,tr).call(this,t))}async getWidget(){return{exports:(await g(this,v,Ye).call(this)).exports,render:async({el:t,signal:e})=>{await this.createView({el:t,signal:e??i(this,F).signal})}}}async createView(t){if(t.signal.aborted||i(this,F).signal.aborted)return;let e={el:t.el,signal:t.signal};i(this,Q).add(e),g(this,v,rr).call(this,e),t.signal.addEventListener("abort",()=>i(this,Q).delete(e),{once:!0}),await g(this,v,Xe).call(this,e)}dispose(){if(!i(this,F).signal.aborted){p.debug(`[WidgetRuntime] Disposing model=${i(this,z)}`),i(this,N)&&h(this,N,(clearTimeout(i(this,N)),void 0)),i(this,C).status==="pending"&&(i(this,C).promise.catch(()=>{}),i(this,C).reject(Error("[anywidget] widget runtime destroyed"))),i(this,x)&&g(this,v,Ke).call(this,i(this,x)),i(this,F).abort(),i(this,Q).clear();for(let t of i(this,A).values())t.dispose();i(this,A).clear()}}},z=new WeakMap,pe=new WeakMap,fe=new WeakMap,ge=new WeakMap,me=new WeakMap,F=new WeakMap,C=new WeakMap,Q=new WeakMap,A=new WeakMap,N=new WeakMap,G=new WeakMap,x=new WeakMap,ye=new WeakMap,Y=new WeakMap,v=new WeakSet,Ge=function(t){i(this,N)&&h(this,N,(clearTimeout(i(this,N)),void 0)),i(this,C).resolve(t);let e=t.get("_css");h(this,Y,typeof e=="string"?e:""),t.on("change:_css",r=>{h(this,Y,typeof r=="string"?r:"");for(let s of i(this,A).values())s.update(i(this,Y))},{signal:i(this,F).signal})},Ye=async function(){for(;!i(this,F).signal.aborted;){let t=await this.getModel(),e=i(this,x);if(!e){let r=i(this,G);if(!r)throw Error(`[anywidget] No ESM spec for model ${i(this,z)}: nothing ever provided this widget's code`);e=g(this,v,Je).call(this,r,t)}try{let r=await e.promise;if(e===i(this,x))return r}catch(r){if(!i(this,x)||e===i(this,x))throw r}}throw Error("[anywidget] widget runtime destroyed")},er=async function(t){let{spec:e,model:r,controller:s}=t,n=await wt.getModule({jsUrl:e.url,jsHash:e.hash,kernelAuthored:!0}),a=_r(n,e.url);if(!a)throw wt.invalidate(e.hash),Er(n,e.url);return qr.create({widgetDef:a,model:r,createHost:i(this,ge),controller:s})},Je=function(t,e){let r=new AbortController,s={hash:t.hash,controller:r,promise:g(this,v,er).call(this,{spec:t,model:e,controller:r})};return s.promise.catch(()=>{i(this,x)===s&&h(this,x,void 0)}),h(this,x,s),s},tr=function(t){let e=i(this,x);if(!e)return;p.debug(`[WidgetRuntime] Hot-swapping generation for model=${i(this,z)}`);let r=g(this,v,Ke).call(this,e),s=this.getModelSync();if(!s)return;let n=g(this,v,Je).call(this,t,s);for(let a of i(this,Q))a.generation=void 0,r.then(()=>g(this,v,Xe).call(this,a,n)).catch(l=>{p.error("[WidgetRuntime] Error replacing widget view",l)})},Ke=function(t){t.controller.abort();let e=i(this,ye).then(async()=>{try{await(await t.promise).destroy()}catch{}});return h(this,ye,e),e},Xe=async function(t,e){if(t.signal.aborted||i(this,F).signal.aborted)return;let r=e??i(this,x),s=r?await r.promise:await g(this,v,Ye).call(this),n=i(this,x);if(!(!n||n!==(r??n))&&t.generation!==n){t.generation=n;try{await s.createView({el:t.el},{signal:t.signal})}catch(a){if(n!==i(this,x)){t.generation=void 0;return}throw a}}},rr=function(t){let e=t.el.getRootNode();if(!Le(e)&&!Pr(e))return;let r=i(this,A).get(e);r||(r=Fr(e,i(this,Y)),i(this,A).set(e,r)),r.references+=1;let s=!1;t.signal.addEventListener("abort",()=>{if(s)return;s=!0;let n=i(this,A).get(e);n&&(--n.references,n.references===0&&(n.dispose(),i(this,A).delete(e)))},{once:!0})},_t);function Le(t){return t.nodeType===Node.DOCUMENT_NODE}function Pr(t){return t.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&"host"in t}function Fr(t,e){let r=Le(t)?t:t.ownerDocument??document,s=r.defaultView??window;if("adoptedStyleSheets"in t&&s.CSSStyleSheet!==void 0&&typeof s.CSSStyleSheet.prototype.replaceSync=="function")try{let a=new s.CSSStyleSheet;return a.replaceSync(e),t.adoptedStyleSheets=[...t.adoptedStyleSheets,a],{references:0,update(l){a.replaceSync(l)},dispose(){t.adoptedStyleSheets=t.adoptedStyleSheets.filter(l=>l!==a)}}}catch{}let n=r.createElement("style");return n.textContent=e,Le(t)?r.head.append(n):t.append(n),{references:0,update(a){n.textContent=a},dispose(){n.remove()}}}function Te(t,e=[]){let r=[];if(t instanceof DataView)r.push(e);else if(Array.isArray(t))for(let[s,n]of t.entries())r.push(...Te(n,[...e,s]));else if(typeof t=="object"&&t)for(let[s,n]of Object.entries(t))r.push(...Te(n,[...e,s]));return r}function Ir(t){let e=Te(t);if(e.length===0)return{state:t,buffers:[],bufferPaths:[]};let r=structuredClone(t),s=[],n=[];for(let a of e){let l=Jr(t,a);if(l instanceof DataView){let c=Ft(l);s.push(c),n.push(a),_e(r,a,c)}}return{state:r,buffers:s,bufferPaths:n}}function bt(t){let{state:e,bufferPaths:r,buffers:s}=t;if(!r||r.length===0)return e;s&&Zr(s.length===r.length,"Buffers and buffer paths not the same length");let n=e;for(let[a,l]of r.entries()){let c=s==null?void 0:s[a];if(c==null){p.warn("[anywidget] Could not find buffer at path",l);continue}typeof c=="string"?_e(n,l,It(c)):_e(n,l,c)}return n}function Ar(){let t=W.get(rs).mode;return t==="edit"||t==="present"}Fe=new(Et=class{constructor(t=1e4,e=Ar){u(this,U);u(this,L,new Map);u(this,we);u(this,be);h(this,we,t),h(this,be,e)}getModel(t){return g(this,U,X).call(this,t).getModel()}getModelSync(t){var e;return(e=i(this,L).get(t))==null?void 0:e.getModelSync()}createModel(t,e){g(this,U,X).call(this,t).createModel(e)}setModel(t,e){g(this,U,X).call(this,t).setModel(e)}setSpec(t,e){g(this,U,X).call(this,t).setSpec(e)}getWidget(t){return g(this,U,X).call(this,t).getWidget()}createView(t){return g(this,U,X).call(this,t.modelId).createView(t)}delete(t){let e=i(this,L).get(t);e&&(e.dispose(),i(this,L).delete(t))}},L=new WeakMap,we=new WeakMap,be=new WeakMap,U=new WeakSet,X=function(t){let e=i(this,L).get(t);if(!e){let r=new kr(t,{timeout:i(this,we),isEditMode:i(this,be),createHost:s=>wr(this,s),onModelTimeout:()=>{i(this,L).get(t)===r&&(r.dispose(),i(this,L).delete(t))}});e=r,i(this,L).set(t,e)}return e},Et),ct._modelManager=Fe,Wt=async function(t,e){let r=e.model_id;if(!Ie(r))throw Error(`[anywidget] Invalid model id: ${String(r)}`);let s=e.message,n=("buffers"in s?s.buffers:[]).map(It);switch(s.method){case"open":{let{state:a,buffer_paths:l=[]}=s;s.esm_spec&&t.setSpec(r,s.esm_spec);let c=bt({state:a,bufferPaths:l,buffers:n}),w=t.getModelSync(r);if(w){Ae(w).updateAndEmitDiffs(c);return}t.createModel(r,R=>new ct(c,Pt()?{sendUpdate:async()=>{},sendCustomMessage:async()=>{}}:{async sendUpdate(k){if(R.aborted){p.debug(`[Model] sendUpdate suppressed for model=${r} (signal aborted)`);return}let{state:P,buffers:j,bufferPaths:I}=Ir(k);await $e().sendModelValue({modelId:r,message:{method:"update",state:P,bufferPaths:I},buffers:j})},async sendCustomMessage(k,P){if(R.aborted){p.debug(`[Model] sendCustomMessage suppressed for model=${r} (signal aborted)`);return}await $e().sendModelValue({modelId:r,message:{method:"custom",content:k},buffers:P.map(Ft)})}},R));return}case"custom":Ae(await t.getModel(r)).emitCustomMessage({method:"custom",content:s.content},n);return;case"close":t.delete(r);return;case"update":{let{state:a,buffer_paths:l=[]}=s;s.esm_spec&&t.setSpec(r,s.esm_spec);let c=bt({state:a,bufferPaths:l,buffers:n});Ae(await t.getModel(r)).updateAndEmitDiffs(c);return}default:os(s)}},zr(Fe,"WIDGET_REGISTRY");function Nr(t){return typeof t!="object"||!t?!1:"type"in t&&t.type==="marimo-ui-value-update"}De=class sr{static get INSTANCE(){let e="_marimo_private_UIElementRegistry";return window[e]||(window[e]=new sr),window[e]}constructor(){this.entries=new Map}has(e){return this.entries.has(e)}set(e,r){this.entries.has(e)&&p.debug("UIElementRegistry overwriting entry for objectId.",e),this.entries.set(e,{objectId:e,value:r,elements:new Set})}registerInstance(e,r){let s=this.entries.get(e);s===void 0?this.entries.set(e,{objectId:e,value:Vr(r,this),elements:new Set([r])}):s.elements.add(r)}removeInstance(e,r){let s=this.entries.get(e);s!=null&&s.elements.has(r)&&s.elements.delete(r)}removeElementsByCell(e){[...this.entries.keys()].filter(r=>r.startsWith(`${e}-`)).forEach(r=>{this.entries.delete(r)})}lookupValue(e){let r=this.entries.get(e);return r===void 0?void 0:r.value}broadcastMessage(e,r,s){let n=this.entries.get(e);if(n===void 0){p.warn("UIElementRegistry missing entry",e);return}if(Nr(r)){n.value=r.value,n.elements.forEach(a=>{a.dispatchEvent(Lt.create({bubbles:!1,composed:!0,detail:{value:r.value,element:a}}))});return}n.elements.forEach(a=>{a.dispatchEvent(vs.create({bubbles:!1,composed:!0,detail:{objectId:e,message:r,buffers:s}}))})}broadcastValueUpdate(e,r,s){let n=this.entries.get(r);n===void 0?p.warn("UIElementRegistry missing entry",r):(n.value=s,n.elements.forEach(a=>{a!==e&&a.dispatchEvent(Lt.create({bubbles:!1,composed:!0,detail:{value:s,element:a}}))}),document.dispatchEvent(bs.create({bubbles:!0,composed:!0,detail:{objectId:r}})))}},zt=De.INSTANCE,$t=new ds("function-call-result",async(t,e)=>{await $e().sendFunctionRequest({functionCallId:t,...e})}),Bt="68px";var Lr="288px";Dt=t=>t?/^\d+$/.test(t)?`${t}px`:t:Lr,Ot=Br({isOpen:!0},(t,e)=>{if(!e)return t;switch(e.type){case"toggle":return{...t,isOpen:e.isOpen??t.isOpen};case"setWidth":return{...t,width:e.width};default:return t}})});export{_e as S,He as _,Ss as __tla,De as a,Tt as b,Wt as c,Ut as d,jt as f,ae as g,oe as h,$t as i,ze as l,Ht as m,Dt as n,zt as o,Oe as p,Ot as r,Fe as s,Bt as t,Ie as u,Be as v,Vt as x,Qt as y};