@marimo-team/frontend 0.23.12-dev9 → 0.23.12
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-BGSEw-sx.js → CellStatus-xkT4Dvj4.js} +1 -1
- package/dist/assets/JsonOutput-FFLZqPUK.js +53 -0
- package/dist/assets/{MarimoErrorOutput-G8Q8ZYoi.js → MarimoErrorOutput-BQt_FXJL.js} +1 -1
- package/dist/assets/{RenderHTML-DXJCvdz4.js → RenderHTML-Cq4mwWYz.js} +1 -1
- package/dist/assets/{RunButton-B0ruC_FE.js → RunButton-DdQ4s_KP.js} +1 -1
- package/dist/assets/{add-cell-with-ai-DWNUMbns.js → add-cell-with-ai-wdY7HT-D.js} +26 -26
- package/dist/assets/{add-connection-dialog-CZ2UuO8f.js → add-connection-dialog-C41ThK2T.js} +1 -1
- package/dist/assets/{agent-panel-B-_gvxz2.js → agent-panel-q5ey8yNH.js} +1 -1
- package/dist/assets/{ai-model-dropdown-BW60s6ul.js → ai-model-dropdown-DQb_CyMN.js} +4 -4
- package/dist/assets/{app-config-button-DJaefZBz.js → app-config-button-8FXNdkBs.js} +1 -1
- package/dist/assets/{cell-editor-CvLW6KK3.js → cell-editor-CFq9iL3S.js} +1 -1
- package/dist/assets/{cell-link-BWqpbaiv.js → cell-link-DgWTiCtG.js} +1 -1
- package/dist/assets/{cells-BidbgSuB.js → cells-06TDmJ8V.js} +49 -49
- package/dist/assets/{chat-display-BRCFntOw.js → chat-display-DO7nc_uY.js} +1 -1
- package/dist/assets/{chat-panel-BGCbxSQx.js → chat-panel-DmUkj42a.js} +1 -1
- package/dist/assets/{chat-ui-CceYGzB9.js → chat-ui-Bf7t-NAW.js} +1 -1
- package/dist/assets/{column-preview-BbgM2h8n.js → column-preview-oHsVFerC.js} +1 -1
- package/dist/assets/{command-palette-Mqu8KKo1.js → command-palette-Bvl7fQ8h.js} +1 -1
- package/dist/assets/{common-B94MReIe.js → common-cKvfH0fD.js} +1 -1
- package/dist/assets/{components-DoRr7Hf1.js → components-BhmX9dcm.js} +1 -1
- package/dist/assets/{datasource-DI-YUWev.js → datasource-mVfTJz3V.js} +1 -1
- package/dist/assets/{dependency-graph-panel-B7_LMfP4.js → dependency-graph-panel-D9C_hBQw.js} +1 -1
- package/dist/assets/{documentation-panel-BGXFZYSy.js → documentation-panel-C0uXzYri.js} +1 -1
- package/dist/assets/{download-DgEarSps.js → download-VxqV5OSK.js} +1 -1
- package/dist/assets/{edit-page-DExCsBoE.js → edit-page-CInfJ1ps.js} +6 -6
- package/dist/assets/{error-panel-Bd98g_JW.js → error-panel-D2WmJDnT.js} +1 -1
- package/dist/assets/{file-explorer-panel-5GiP_o58.js → file-explorer-panel-nn5I1oLj.js} +3 -3
- package/dist/assets/{file-icons-BwFX01F6.js → file-icons-BeJWUbBH.js} +1 -1
- package/dist/assets/{file-name-input-C_iFa52z.js → file-name-input-Slq_KVFS.js} +1 -1
- package/dist/assets/{floating-outline-BDx00oB1.js → floating-outline-3UBj62S1.js} +1 -1
- package/dist/assets/{focus-CocfMydm.js → focus-DqhVePQT.js} +1 -1
- package/dist/assets/{form-DgnBiuvP.js → form-pEJO4Mq_.js} +1 -1
- package/dist/assets/{home-page-BuVWyEpt.js → home-page-CFgoMQu4.js} +1 -1
- package/dist/assets/{hooks-dPm1h9aq.js → hooks-NssnE3R8.js} +1 -1
- package/dist/assets/{html-to-image-TCtIotr9.js → html-to-image-CbQeOjEJ.js} +1 -1
- package/dist/assets/index-BjsskD4V.js +38 -0
- package/dist/assets/{index-Bj8QWDiJ.css → index-CaelsqOA.css} +1 -1
- package/dist/assets/{kiosk-mode-sfaqwl5N.js → kiosk-mode-CyYnV3_y.js} +1 -1
- package/dist/assets/{layout-CVg460UU.js → layout-ChW1-odP.js} +4 -4
- package/dist/assets/{logs-panel-Bs7u1Wfd.js → logs-panel-CiP_30S4.js} +1 -1
- package/dist/assets/{markdown-renderer-CGZTB2Dx.js → markdown-renderer-C1yypOYF.js} +1 -1
- package/dist/assets/{name-cell-input-D4k4IMJD.js → name-cell-input-CIkFEB6-.js} +1 -1
- package/dist/assets/{outline-panel-5sRz-QR2.js → outline-panel-BfysapqU.js} +1 -1
- package/dist/assets/{packages-panel-DhXpwKjz.js → packages-panel-BYm2thcs.js} +1 -1
- package/dist/assets/{panels-C3XyfWZa.js → panels-hLpsLawB.js} +1 -1
- package/dist/assets/{process-output-CRIsE74Q.js → process-output-BIlXY0iE.js} +1 -1
- package/dist/assets/{radio-group-Czn6pjhm.js → radio-group-BaOG2bSA.js} +1 -1
- package/dist/assets/{readonly-python-code-DtUWOxnZ.js → readonly-python-code-CNyK8G1T.js} +1 -1
- package/dist/assets/{reveal-component-DDZ2IxNS.js → reveal-component-D0boNLsp.js} +1 -1
- package/dist/assets/{run-page-K4C80Bqk.js → run-page-B0OR2l0l.js} +1 -1
- package/dist/assets/{scratchpad-panel-Cwl5E8lN.js → scratchpad-panel-Di7uCP6T.js} +1 -1
- package/dist/assets/{session-panel-DGjSy-dF.js → session-panel-D6GA7GoC.js} +1 -1
- package/dist/assets/{snippets-panel-94zH2JCj.js → snippets-panel-DV2ir7q8.js} +1 -1
- package/dist/assets/{state-ClDZE-YW.js → state-B3ypjIx-.js} +1 -1
- package/dist/assets/state-DD6m9X2h.js +3 -0
- package/dist/assets/{textarea-Dz09niIv.js → textarea-BM7hAwR3.js} +1 -1
- package/dist/assets/{tracing-C_GaBGFx.js → tracing-DwjgsPkU.js} +1 -1
- package/dist/assets/{tracing-panel-BkzzwM_5.js → tracing-panel-BS9eUNK_.js} +2 -2
- package/dist/assets/{tree-actions-CesD4Rcl.js → tree-actions-lVyJAYy7.js} +1 -1
- package/dist/assets/{useCellActionButton-DNYd1sgZ.js → useCellActionButton-B88iHApv.js} +1 -1
- package/dist/assets/{useDeleteCell-CCCMHD2a.js → useDeleteCell-CXc93le9.js} +1 -1
- package/dist/assets/{useDependencyPanelTab-P57LIkal.js → useDependencyPanelTab-9Vnr8-OR.js} +1 -1
- package/dist/assets/{useNotebookActions-B8xsvWwy.js → useNotebookActions-DSfevQ7S.js} +1 -1
- package/dist/assets/{useRunCells-DFXV3Rm5.js → useRunCells-DNaOKKqW.js} +1 -1
- package/dist/assets/{useSplitCell-R-0wFhnd.js → useSplitCell-IsXuVcLF.js} +1 -1
- package/dist/index.html +23 -23
- package/package.json +1 -1
- package/src/components/data-table/TableBottomBar.tsx +4 -1
- package/src/components/data-table/data-table.tsx +26 -17
- package/src/components/data-table/utils.ts +1 -4
- package/src/components/editor/ai/__tests__/completion-utils.test.ts +48 -2
- package/src/components/editor/ai/completion-utils.ts +54 -36
- package/src/components/editor/app-container.tsx +3 -1
- package/src/components/editor/output/ImageOutput.tsx +12 -3
- package/src/components/editor/renderers/vertical-layout/vertical-layout-wrapper.tsx +2 -2
- package/src/core/codemirror/go-to-definition/__tests__/commands.test.ts +67 -0
- package/src/core/codemirror/go-to-definition/__tests__/utils.test.ts +47 -0
- package/src/core/codemirror/go-to-definition/commands.ts +47 -30
- package/src/core/codemirror/go-to-definition/utils.ts +0 -1
- package/src/core/codemirror/reactive-references/__tests__/analyzer.test.ts +54 -0
- package/src/core/codemirror/reactive-references/analyzer.ts +44 -35
- package/src/core/islands/__tests__/bridge.test.ts +25 -0
- package/src/core/islands/__tests__/parse.test.ts +585 -1
- package/src/core/islands/__tests__/test-utils.tsx +10 -1
- package/src/core/islands/bridge.ts +6 -1
- package/src/core/islands/constants.ts +2 -0
- package/src/core/islands/parse.ts +290 -13
- package/src/plugins/impl/DataTablePlugin.tsx +20 -1
- package/src/plugins/impl/__tests__/DataTablePlugin.test.tsx +141 -1
- package/src/plugins/impl/anywidget/AnyWidgetPlugin.tsx +54 -4
- package/src/plugins/impl/anywidget/__tests__/AnyWidgetPlugin.test.tsx +104 -1
- package/src/plugins/impl/anywidget/__tests__/model.test.ts +19 -0
- package/src/plugins/impl/anywidget/model.ts +15 -0
- package/src/utils/__tests__/records.test.ts +27 -0
- package/src/utils/records.ts +12 -0
- package/dist/assets/JsonOutput-CxKHBYIA.js +0 -53
- package/dist/assets/index-CrgYGp5w.js +0 -38
- package/dist/assets/state-CzwQl1aE.js +0 -3
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
var Vt=Object.defineProperty;var $e=f=>{throw TypeError(f)};var Qt=(f,h,y)=>h in f?Vt(f,h,{enumerable:!0,configurable:!0,writable:!0,value:y}):f[h]=y;var n=(f,h,y)=>Qt(f,typeof h!="symbol"?h+"":h,y),ce=(f,h,y)=>h.has(f)||$e("Cannot "+y);var o=(f,h,y)=>(ce(f,h,"read from private field"),y?y.call(f):h.get(f)),_=(f,h,y)=>h.has(f)?$e("Cannot add the same private member more than once"):h instanceof WeakSet?h.add(f):h.set(f,y),C=(f,h,y,Q)=>(ce(f,h,"write to private field"),Q?Q.call(f,y):h.set(f,y),y),A=(f,h,y)=>(ce(f,h,"access private method"),y);import{i as U,p as ne,u as Yt}from"./useEvent-D91BmmQi.js";import{Bi as G,Ei as Gt,Pi as Kt,Pn as Jt,b as Xt,ji as Zt,ki as er,ot as ze,x as tr,zi as rr,__tla as sr}from"./cells-BidbgSuB.js";import{t as nr}from"./get-C-qh_et5.js";import{t as ar}from"./debounce-OiXznToA.js";import{t as ir}from"./_baseSet-CsW0tABf.js";import{_ as p,y as g}from"./useEventListener-BakX-tnw.js";import{t as or}from"./invariant-C2E8KCbD.js";import{w as lr}from"./utils-Dev6I_Kv.js";import{T as ur,c as pe,l as Ve,n as dr}from"./config-BE150fVL.js";import{n as cr}from"./switch-DHhZkGEv.js";import{n as pr}from"./globals-BDWM3c_z.js";import{t as fr}from"./createReducer-3wF4dU7I.js";import{r as hr}from"./strings-DvZlHYnD.js";import{t as fe}from"./requests-KshNNAOp.js";import{a as Qe,l as mr,r as Ye,__tla as gr}from"./markdown-renderer-CGZTB2Dx.js";import{t as yr}from"./DeferredRequestRegistry-EP9ZArpv.js";import{t as wr}from"./preload-helper-y72bE5iF.js";import{t as Ge}from"./Deferred-CfyqLOPG.js";import{t as Ke}from"./uuid-BukULOeS.js";import{t as br}from"./use-toast-BH8bU9Xf.js";import{n as vr}from"./RenderHTML-DXJCvdz4.js";import{t as _r}from"./useRunCells-DFXV3Rm5.js";import{n as Cr,t as Rr}from"./blob-dGUJ3Bw8.js";import{n as xr,r as qr,t as Er}from"./share-vrPro738.js";import{i as Je,r as Sr,t as Mr}from"./events-BRbNg7Li.js";let Xe,Ze,et,he,me,tt,ge,rt,V,st,nt,ye,we,at,it,ot,lt,ae,ut,dt,ie,K,ct,be,kr=Promise.all([(()=>{try{return sr}catch{}})(),(()=>{try{return gr}catch{}})()]).then(async()=>{var T,ee,ft,Ae,k,W,S,Ue,F,Te,P,Y,D,oe,We,je,te,I,L,H,R,j,N,ht,mt,gt,re;function f(t,e,r){return t==null?t:ir(t,e,r)}K=f,ct=ne(null);var{valueAtom:h,useActions:y}=fr(()=>({banners:[]}),{addBanner:(t,e)=>({...t,banners:[...t.banners,{...e,id:Ke()}]}),removeBanner:(t,e)=>({...t,banners:t.banners.filter(r=>r.id!==e)}),clearBanners:t=>({...t,banners:[]})});Ze=()=>Yt(h),Xe=function(){return y()};let Q,_e,Ce;Q=class{constructor(){n(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)}},me=class ve{constructor(e){n(this,"subscriptions",new Q);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)}},_e=1e10,Ce=1e3;function J(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 wt(t={}){let e={};function r(l){e=l}let s={};function a(l){var c;s.unregisterHandler&&s.unregisterHandler(),s=l,(c=s.registerHandler)==null||c.call(s,zt)}let i;function u(l){if(typeof l=="function"){i=l;return}i=(c,w)=>{let m=l[c];if(m)return m(w);let b=l._;if(!b)throw Error(`The requested method has no handler: ${c}`);return b(c,w)}}let{maxRequestTime:d=Ce}=t;t.transport&&a(t.transport),t.requestHandler&&u(t.requestHandler),t._debugHooks&&r(t._debugHooks);let v=0;function x(){return v<=_e?++v:v=0}let q=new Map,E=new Map;function $(l,...c){let w=c[0];return new Promise((m,b)=>{var z;if(!s.send)throw J(["send"],"make requests");let M=x(),O={type:"request",id:M,method:l,params:w};q.set(M,{resolve:m,reject:b}),d!==1/0&&E.set(M,setTimeout(()=>{E.delete(M),b(Error("RPC request timed out."))},d)),(z=e.onSend)==null||z.call(e,O),s.send(O)})}let se=new Proxy($,{get:(l,c,w)=>c in l?Reflect.get(l,c,w):m=>$(c,m)}),Be=se;function Oe(l,...c){var b;let w=c[0];if(!s.send)throw J(["send"],"send messages");let m={type:"message",id:l,payload:w};(b=e.onSend)==null||b.call(e,m),s.send(m)}let De=new Proxy(Oe,{get:(l,c,w)=>c in l?Reflect.get(l,c,w):m=>Oe(c,m)}),He=De,B=new Map,de=new Set;function Ht(l,c){var w;if(!s.registerHandler)throw J(["registerHandler"],"register message listeners");if(l==="*"){de.add(c);return}B.has(l)||B.set(l,new Set),(w=B.get(l))==null||w.add(c)}function $t(l,c){var w,m;if(l==="*"){de.delete(c);return}(w=B.get(l))==null||w.delete(c),((m=B.get(l))==null?void 0:m.size)===0&&B.delete(l)}async function zt(l){var c,w;if((c=e.onReceive)==null||c.call(e,l),!("type"in l))throw Error("Message does not contain a type.");if(l.type==="request"){if(!s.send||!i)throw J(["send","requestHandler"],"handle requests");let{id:m,method:b,params:M}=l,O;try{O={type:"response",id:m,success:!0,payload:await i(b,M)}}catch(z){if(!(z instanceof Error))throw z;O={type:"response",id:m,success:!1,error:z.message}}(w=e.onSend)==null||w.call(e,O),s.send(O);return}if(l.type==="response"){let m=E.get(l.id);m!=null&&clearTimeout(m);let{resolve:b,reject:M}=q.get(l.id)??{};l.success?b==null||b(l.payload):M==null||M(Error(l.error));return}if(l.type==="message"){for(let b of de)b(l.id,l.payload);let m=B.get(l.id);if(!m)return;for(let b of m)b(l.payload);return}throw Error(`Unexpected RPC message type: ${l.type}`)}return{setTransport:a,setRequestHandler:u,request:se,requestProxy:Be,send:De,sendProxy:He,addMessageListener:Ht,removeMessageListener:$t,proxy:{send:He,request:Be},_setDebugHooks:r}}function bt(t){return wt(t)}var Re="[transport-id]";function vt(t,e){let{transportId:r}=e;return r==null?t:{[Re]:r,data:t}}function _t(t,e){let{transportId:r,filter:s}=e,a=s==null?void 0:s();if(r!=null&&a!=null)throw Error("Cannot use both `transportId` and `filter` at the same time");let i=t;if(r){if(t[Re]!==r)return[!0];i=t.data}return a===!1?[!0]:[!1,i]}function Ct(t,e={}){let{transportId:r,filter:s,remotePort:a}=e,i=t,u=a??t,d;return{send(v){u.postMessage(vt(v,{transportId:r}))},registerHandler(v){d=x=>{let q=x.data,[E,$]=_t(q,{transportId:r,filter:()=>s==null?void 0:s(x)});E||v($)},i.addEventListener("message",d)},unregisterHandler(){d&&i.removeEventListener("message",d)}}}function Rt(t,e){return Ct(t,e)}function xe(t){return bt({transport:Rt(t,{transportId:"marimo-transport"}),maxRequestTime:2e4,_debugHooks:{onSend:e=>{p.debug("[rpc] Parent -> Worker",e)},onReceive:e=>{p.debug("[rpc] Worker -> Parent",e)}}})}be=ne("Initializing..."),ie=ne("loading"),et=ne(t=>{let e=t(Xt),r=Object.values(e.cellRuntime);return r.some(s=>!mr(s.output))?!0:r.every(s=>s.status==="idle")});var qe=xr(),Ee="marimo:file",Se=new Gt(null);const xt={saveFile(t){Se.set(Ee,t)},readFile(){return Se.get(Ee)}};var qt={saveFile(t){G.setCodeForHash((0,qe.compressToEncodedURIComponent)(t))},readFile(){let t=G.getCodeFromHash()||G.getCodeFromSearchParam();return t?(0,qe.decompressFromEncodedURIComponent)(t):null}};const Et={saveFile(t){},readFile(){let t=document.querySelector("marimo-code");return t?decodeURIComponent(t.textContent||"").trim():null}};var St={saveFile(t){},readFile(){if(window.location.hostname!=="marimo.app")return null;let t=new URL("files/wasm-intro.py",document.baseURI);return fetch(t.toString()).then(e=>e.ok?e.text():null).catch(()=>null)}};const Mt={saveFile(t){},readFile(){return U.get(er)??null}};var kt={saveFile(t){},readFile(){return["import marimo","app = marimo.App()","","@app.cell","def __():"," return","",'if __name__ == "__main__":'," app.run()"].join(`
|
|
2
|
-
`)}},Me=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 X;V=new Me([Mt,Et,qt]),X=new Me([xt,St,kt]),we=class pt{constructor(){n(this,"initialized",new Ge);n(this,"sendRename",async({filename:e})=>(e===null||(G.setFilename(e),await this.rpc.proxy.request.bridge({functionName:"rename_file",payload:e})),null));n(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&&(V.saveFile(r.contents),X.saveFile(r.contents)),this.rpc.proxy.request.saveNotebook(e).catch(s=>{p.error(s)}),null});n(this,"sendCopy",async()=>{g()});n(this,"sendStdin",async e=>(await this.rpc.proxy.request.bridge({functionName:"put_input",payload:e.text}),null));n(this,"sendPdb",async()=>{g()});n(this,"sendRun",async e=>(await this.rpc.proxy.request.loadPackages(e.codes.join(`
|
|
3
|
-
`)),await this.putControlRequest({type:"execute-cells",...e}),null));n(this,"sendRunScratchpad",async e=>(await this.rpc.proxy.request.loadPackages(e.code),await this.putControlRequest({type:"execute-scratchpad",...e}),null));n(this,"sendInterrupt",async()=>(this.interruptBuffer!==void 0&&(this.interruptBuffer[0]=2),null));n(this,"sendShutdown",async()=>(window.close(),null));n(this,"sendFormat",async e=>await this.rpc.proxy.request.bridge({functionName:"format",payload:e}));n(this,"sendDeleteCell",async e=>(await this.putControlRequest({type:"delete-cell",...e}),null));n(this,"sendInstallMissingPackages",async e=>(this.putControlRequest({type:"install-packages",...e}),null));n(this,"sendCodeCompletionRequest",async e=>(U.get(tr)||await this.rpc.proxy.request.bridge({functionName:"code_complete",payload:e}),null));n(this,"saveUserConfig",async e=>(await this.rpc.proxy.request.bridge({functionName:"save_user_config",payload:e}),cr.post("/kernel/save_user_config",e,{baseUrl:"/"}).catch(r=>(p.error(r),null))));n(this,"saveAppConfig",async e=>(await this.rpc.proxy.request.bridge({functionName:"save_app_config",payload:e}),null));n(this,"saveCellConfig",async e=>(await this.putControlRequest({type:"update-cell-config",...e}),null));n(this,"sendRestart",async()=>{let e=await this.readCode();return e.contents&&(V.saveFile(e.contents),X.saveFile(e.contents)),qr(),null});n(this,"readCode",async()=>this.saveRpc?{contents:await this.saveRpc.readNotebook()}:(p.warn("Save RPC not initialized"),{contents:""}));n(this,"readSnippets",async()=>await this.rpc.proxy.request.bridge({functionName:"read_snippets",payload:void 0}));n(this,"openFile",async({path:e})=>{let r=Er({code:null,baseUrl:window.location.origin});return window.open(r,"_blank"),null});n(this,"sendListFiles",async e=>await this.rpc.proxy.request.bridge({functionName:"list_files",payload:e}));n(this,"sendSearchFiles",async e=>await this.rpc.proxy.request.bridge({functionName:"search_files",payload:e}));n(this,"sendComponentValues",async e=>(await this.putControlRequest({type:"update-ui-element",...e,token:Ke()}),null));n(this,"sendInstantiate",async e=>null);n(this,"sendFunctionRequest",async e=>(await this.putControlRequest({type:"invoke-function",...e}),null));n(this,"sendCreateFileOrFolder",async e=>{let r=null;return e.file&&(r=(await Cr(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}})});n(this,"sendDeleteFileOrFolder",async e=>await this.rpc.proxy.request.bridge({functionName:"delete_file_or_directory",payload:e}));n(this,"sendCopyFileOrFolder",async e=>await this.rpc.proxy.request.bridge({functionName:"copy_file_or_directory",payload:e}));n(this,"sendRenameFileOrFolder",async e=>await this.rpc.proxy.request.bridge({functionName:"move_file_or_directory",payload:e}));n(this,"sendUpdateFile",async e=>await this.rpc.proxy.request.bridge({functionName:"update_file",payload:e}));n(this,"sendFileDetails",async e=>await this.rpc.proxy.request.bridge({functionName:"file_details",payload:e}));n(this,"exportAsHTML",async e=>await this.rpc.proxy.request.bridge({functionName:"export_html",payload:e}));n(this,"exportAsMarkdown",async e=>await this.rpc.proxy.request.bridge({functionName:"export_markdown",payload:e}));n(this,"previewDatasetColumn",async e=>(await this.putControlRequest({type:"preview-dataset-column",...e}),null));n(this,"previewSQLTable",async e=>(await this.putControlRequest({type:"preview-sql-table",...e}),null));n(this,"previewSQLTableList",async e=>(await this.putControlRequest({type:"list-sql-tables",...e}),null));n(this,"previewSQLSchemaList",async e=>(await this.putControlRequest({type:"list-sql-schemas",...e}),null));n(this,"previewDataSourceConnection",async e=>(await this.putControlRequest({type:"list-data-source-connection",...e}),null));n(this,"validateSQL",async e=>(await this.putControlRequest({type:"validate-sql",...e}),null));n(this,"sendModelValue",async e=>(await this.putControlRequest({type:"model",...e}),null));n(this,"sendDocumentTransaction",()=>Promise.resolve(null));n(this,"addPackage",async e=>this.rpc.proxy.request.addPackage(e));n(this,"removePackage",async e=>this.rpc.proxy.request.removePackage(e));n(this,"getPackageList",async()=>await this.rpc.proxy.request.listPackages());n(this,"getDependencyTree",async()=>({tree:{dependencies:[],name:"",tags:[],version:null}}));n(this,"listSecretKeys",async e=>(await this.putControlRequest({type:"list-secret-keys",...e}),null));n(this,"getUsageStats",g);n(this,"openTutorial",g);n(this,"getRecentFiles",g);n(this,"getWorkspaceFiles",g);n(this,"getRunningNotebooks",g);n(this,"shutdownSession",g);n(this,"exportAsIPYNB",g);n(this,"exportAsPDF",g);n(this,"autoExportAsHTML",g);n(this,"autoExportAsMarkdown",g);n(this,"autoExportAsIPYNB",g);n(this,"updateCellOutputs",g);n(this,"writeSecret",g);n(this,"invokeAiTool",g);n(this,"clearCache",g);n(this,"getCacheInfo",g);n(this,"listStorageEntries",g);n(this,"downloadStorage",g);ur()&&(this.rpc=xe(new Worker(new URL(""+new URL("worker-Bp53hInb.js",import.meta.url).href,""+import.meta.url),{type:"module",name:ke()})),this.rpc.addMessageListener("ready",()=>{this.startSession()}),this.rpc.addMessageListener("initialized",()=>{this.saveRpc=this.getSaveWorker(),this.setInterruptBuffer(),U.set(ie,"ready"),this.initialized.resolve()}),this.rpc.addMessageListener("initializingMessage",({message:e})=>{U.set(be,e)}),this.rpc.addMessageListener("initializedError",({error:e})=>{if(this.initialized.status==="resolved"){p.error(e),br({title:"Error initializing",description:e,variant:"danger"});return}U.set(ie,"error"),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 pt),window[e]}getSaveWorker(){return ze()==="read"?(p.debug("Using partially disabled SaveWorker in read-mode"),{readFile:g,readNotebook:async()=>await V.readFile()??"",saveNotebook:g}):xe(new Worker(new URL(""+new URL("save-worker-Bcr7rl0C.js",import.meta.url).href,""+import.meta.url),{type:"module",name:ke()})).proxy.request}async startSession(){let e=await V.readFile(),r=await X.readFile(),s=U.get(Zt)??G.getFilename(),a=U.get(lr),i={},u=new URLSearchParams(window.location.search);for(let d of u.keys()){let v=u.getAll(d);i[d]=v.length===1?v[0]:v}await this.rpc.proxy.request.startSession({queryParameters:i,code:e||r||"",filename:s,userConfig:{...a,runtime:{...a.runtime,auto_instantiate:ze()==="read"?!0:a.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})}},st=function(){return me.withProducerCallback(t=>{we.INSTANCE.attachMessageConsumer(t)})};function ke(){let t=typeof window<"u"&&window.__MARIMO_HAS_WASM_CONTROLLER__===!0;return pr()+(t?"::controller":"")}rt=function(t=pe()){let e=window.fetch;return window.fetch=async(r,s)=>{let a=r instanceof Request?r.url:r.toString();if(a.startsWith("data:"))return e(r,s);try{let i=Z(a,t);if(i){let u=await(await e(i)).arrayBuffer();return new Response(u,{headers:{"Content-Type":Pt(a)}})}return e(r,s)}catch(i){return p.error("Error parsing URL",i),e(r,s)}},()=>{window.fetch=e}};function Pt(t){return t.endsWith(".csv")?"text/csv":t.endsWith(".json")?"application/json":t.endsWith(".txt")?"text/plain":"application/octet-stream"}ot=function(t,e=pe()){let r=t.http.bind(t),s=t.load.bind(t);return t.http=async a=>{let i=Z(a,e);if(i)return await window.fetch(i).then(u=>u.text());try{return await r(a)}catch(u){if(a.startsWith("data:"))return await window.fetch(a).then(d=>d.text());throw u}},t.load=async a=>{let i=Z(a,e);if(i)return await window.fetch(i).then(u=>u.text());try{return await s(a)}catch(u){if(a.startsWith("data:"))return await window.fetch(a).then(d=>d.text());throw u}},()=>{t.http=r,t.load=s}};function Pe(t){return t.startsWith(".")?t.slice(1):t}function Ft(t,e=pe()){let r=Z(t,e);if(!r)return t;let s=Rr(r);return URL.createObjectURL(s)}function Z(t,e){let r=document.baseURI;r.startsWith("blob:")&&(r=r.replace("blob:",""));let s=new URL(t,r).pathname,a=Fe(t),i=Fe(s);return e[t]||e[Pe(t)]||e[s]||e[Pe(s)]||a&&e[a]||i&&e[i]}function Fe(t){let e=t.indexOf("/@file/");return e===-1?null:t.slice(e)}function le(t,e=[]){let r=[];if(t instanceof DataView)r.push(e);else if(Array.isArray(t))for(let[s,a]of t.entries())r.push(...le(a,[...e,s]));else if(typeof t=="object"&&t)for(let[s,a]of Object.entries(t))r.push(...le(a,[...e,s]));return r}function It(t){let e=le(t);if(e.length===0)return{state:t,buffers:[],bufferPaths:[]};let r=structuredClone(t),s=[],a=[];for(let i of e){let u=nr(t,i);if(u instanceof DataView){let d=Qe(u);s.push(d),a.push(i),K(r,i,d)}}return{state:r,buffers:s,bufferPaths:a}}function Ie(t){let{state:e,bufferPaths:r,buffers:s}=t;if(!r||r.length===0)return e;s&&or(s.length===r.length,"Buffers and buffer paths not the same length");let a=e;for(let[i,u]of r.entries()){let d=s==null?void 0:s[i];if(d==null){p.warn("[anywidget] Could not find buffer at path",u);continue}typeof d=="string"?K(a,u,Ye(d)):K(a,u,d)}return a}ge=function(t){return typeof t!="string"||t.length===0?!1:!!(/^(\.?\/)?@file\/[^?#]+$/.test(t)||Nt(t))};function Lt(){return U.get(_r)||vr()}function Nt(t){return t.startsWith("data:text/javascript;base64,")||t.startsWith("data:application/javascript;base64,")||t.startsWith("data:text/css;base64,")?Lt():!1}const Le={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 At(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 Ut=(Ae=class{constructor(){_(this,ee);_(this,T,new Map)}getModule(t,e){let r=o(this,T).get(e);if(r)return r;let s=A(this,ee,ft).call(this,t).catch(a=>{throw o(this,T).delete(e),a});return o(this,T).set(e,s),s}invalidate(t){p.debug(`[WidgetDefRegistry] Invalidating module cache for hash=${t}`),o(this,T).delete(t)}},T=new WeakMap,ee=new WeakSet,ft=async function(t){if(!ge(t))throw Error(`Refusing to load anywidget module from untrusted URL: ${String(t)}`);let e=dr(t).toString();return Ve()&&(e=Ft(e)),wr(()=>import(e).then(async r=>(await r.__tla,r)),[],import.meta.url)},Ae),Tt=(Ue=class{constructor(){_(this,k);_(this,W);_(this,S)}async bind(t,e){var i,u;if(o(this,S)&&o(this,W)===t)return o(this,S);o(this,S)&&o(this,W)!==t&&(p.debug("[WidgetBinding] Hot-reload detected, aborting previous binding"),(i=o(this,k))==null||i.abort(),C(this,k,void 0),C(this,S,void 0)),C(this,W,t),C(this,k,new AbortController);let r=o(this,k).signal,s=typeof t=="function"?await t():t,a=await((u=s.initialize)==null?void 0:u.call(s,{model:e,experimental:Le}));return a&&r.addEventListener("abort",a),C(this,S,async(d,v)=>{var q;let x=await((q=s.render)==null?void 0:q.call(s,{model:e,el:d,experimental:Le}));x&&At([v,r]).addEventListener("abort",()=>{let E=v.aborted?"view unmount":"binding destroyed";p.debug(`[WidgetBinding] Render cleanup triggered (reason: ${E})`),x()})}),o(this,S)}destroy(){var t;p.debug("[WidgetBinding] Destroying binding, aborting initialize lifecycle"),(t=o(this,k))==null||t.abort(),C(this,k,void 0),C(this,W,void 0),C(this,S,void 0)}},k=new WeakMap,W=new WeakMap,S=new WeakMap,Ue),Wt=(Te=class{constructor(){_(this,F,new Map)}getOrCreate(t){let e=o(this,F).get(t);return e||(e=new Tt,o(this,F).set(t,e)),e}destroy(t){let e=o(this,F).get(t);e&&(p.debug(`[BindingManager] Destroying binding for model=${t}`),e.destroy(),o(this,F).delete(t))}has(t){return o(this,F).has(t)}},F=new WeakMap,Te);dt=new Ut,ye=new Wt;var jt=(We=class{constructor(t=1e4){_(this,D);_(this,P,new Map);_(this,Y);C(this,Y,t)}get(t){let e=A(this,D,oe).call(this,t);return e.deferred.status==="pending"&&setTimeout(()=>{e.deferred.status==="pending"&&(e.deferred.reject(Error(`Model not found for key: ${t}`)),o(this,P).delete(t))},o(this,Y)),e.deferred.promise}create(t,e){let r=A(this,D,oe).call(this,t);r.deferred.resolve(e(r.controller.signal))}set(t,e){A(this,D,oe).call(this,t).deferred.resolve(e)}getSync(t){let e=o(this,P).get(t);if(e&&e.deferred.status==="resolved")return e.deferred.value}delete(t){var e;p.debug(`[ModelManager] Deleting model=${t}, aborting lifecycle signal`),(e=o(this,P).get(t))==null||e.controller.abort(),o(this,P).delete(t)}},P=new WeakMap,Y=new WeakMap,D=new WeakSet,oe=function(t){let e=o(this,P).get(t);return e||(e={deferred:new Ge,controller:new AbortController},o(this,P).set(t,e)),e},We),Ne=Symbol("marimo");function ue(t){return t[Ne]}ae=new jt;var Bt=(je=Ne,j=class{constructor(e,r,s){_(this,N);_(this,te,"change");_(this,I);_(this,L);_(this,H);_(this,R,{});n(this,je,{updateAndEmitDiffs:e=>A(this,N,mt).call(this,e),emitCustomMessage:(e,r)=>A(this,N,gt).call(this,e,r)});n(this,"widget_manager",{async get_model(e){let r=await j._modelManager.get(e);if(!r)throw Error(`Model not found with id: ${e}. This is likely because the model was not registered.`);return r}});_(this,re,ar(()=>{let e=o(this,R)[o(this,te)];if(e)for(let r of e)try{r()}catch(s){p.error("Error emitting event",s)}},0));C(this,L,e),C(this,H,r),C(this,I,new Map),s&&s.addEventListener("abort",()=>{p.debug("[Model] Signal aborted, clearing all listeners"),C(this,R,{})})}off(e,r){var s;if(!e){C(this,R,{});return}if(!r){o(this,R)[e]=new Set;return}(s=o(this,R)[e])==null||s.delete(r)}send(e,r,s){let a=(s??[]).map(i=>i instanceof ArrayBuffer?new DataView(i):new DataView(i.buffer,i.byteOffset,i.byteLength));return o(this,H).sendCustomMessage(e,a).then(()=>r==null?void 0:r())}get(e){return o(this,L)[e]}set(e,r){C(this,L,{...o(this,L),[e]:r}),o(this,I).set(e,r),A(this,N,ht).call(this,`change:${e}`,r),o(this,re).call(this)}save_changes(){if(o(this,I).size===0)return;let e=Object.fromEntries(o(this,I).entries());o(this,I).clear(),o(this,H).sendUpdate(e)}on(e,r){o(this,R)[e]||(o(this,R)[e]=new Set),o(this,R)[e].add(r)}},te=new WeakMap,I=new WeakMap,L=new WeakMap,H=new WeakMap,R=new WeakMap,N=new WeakSet,ht=function(e,r){if(!o(this,R)[e])return;let s=o(this,R)[e];for(let a of s)try{a(r)}catch(i){p.error("Error emitting event",i)}},mt=function(e){e!=null&&Object.keys(e).forEach(r=>{let s=r;o(this,L)[s]!==e[s]&&this.set(s,e[s])})},gt=function(e,r=[]){let s=o(this,R)["msg:custom"];if(s)for(let a of s)try{a(e.content,r)}catch(i){p.error("Error emitting event",i)}},re=new WeakMap,n(j,"_modelManager",ae),j);tt=async function(t,e){let r=e.model_id,s=e.message,a=("buffers"in s?s.buffers:[]).map(Ye);switch(s.method){case"open":{let{state:i,buffer_paths:u=[]}=s,d=Ie({state:i,bufferPaths:u,buffers:a}),v=t.getSync(r);if(v){ue(v).updateAndEmitDiffs(d);return}t.create(r,x=>new Bt(d,Ve()?{sendUpdate:async()=>{},sendCustomMessage:async()=>{}}:{async sendUpdate(q){if(x.aborted){p.debug(`[Model] sendUpdate suppressed for model=${r} (signal aborted)`);return}let{state:E,buffers:$,bufferPaths:se}=It(q);await fe().sendModelValue({modelId:r,message:{method:"update",state:E,bufferPaths:se},buffers:$})},async sendCustomMessage(q,E){if(x.aborted){p.debug(`[Model] sendCustomMessage suppressed for model=${r} (signal aborted)`);return}await fe().sendModelValue({modelId:r,message:{method:"custom",content:q},buffers:E.map(Qe)})}},x));return}case"custom":ue(await t.get(r)).emitCustomMessage({method:"custom",content:s.content},a);return;case"close":ye.destroy(r),t.delete(r);return;case"update":{let{state:i,buffer_paths:u=[]}=s,d=Ie({state:i,bufferPaths:u,buffers:a});ue(await t.get(r)).updateAndEmitDiffs(d);return}default:hr(s)}},Jt(ae,"MODEL_MANAGER");function Ot(t){return typeof t!="object"||!t?!1:"type"in t&&t.type==="marimo-ui-value-update"}he=class yt{static get INSTANCE(){let e="_marimo_private_UIElementRegistry";return window[e]||(window[e]=new yt),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:rr(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 a=this.entries.get(e);if(a===void 0){p.warn("UIElementRegistry missing entry",e);return}if(Ot(r)){a.value=r.value,a.elements.forEach(i=>{i.dispatchEvent(Je.create({bubbles:!1,composed:!0,detail:{value:r.value,element:i}}))});return}a.elements.forEach(i=>{i.dispatchEvent(Mr.create({bubbles:!1,composed:!0,detail:{objectId:e,message:r,buffers:s}}))})}broadcastValueUpdate(e,r,s){let a=this.entries.get(r);a===void 0?p.warn("UIElementRegistry missing entry",r):(a.value=s,a.elements.forEach(i=>{i!==e&&i.dispatchEvent(Je.create({bubbles:!1,composed:!0,detail:{value:s,element:i}}))}),document.dispatchEvent(Sr.create({bubbles:!0,composed:!0,detail:{objectId:r}})))}},it=he.INSTANCE,nt=new yr("function-call-result",async(t,e)=>{await fe().sendFunctionRequest({functionCallId:t,...e})}),ut="68px";var Dt="288px";at=t=>t?/^\d+$/.test(t)?`${t}px`:t:Dt,lt=Kt({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{Xe as C,Ze as S,et as _,kr as __tla,he as a,me as b,tt as c,ge as d,rt as f,V as g,st as h,nt as i,ye as l,we as m,at as n,it as o,ot as p,lt as r,ae as s,ut as t,dt as u,ie as v,K as w,ct as x,be as y};
|