@marimo-team/frontend 0.23.3-dev39 → 0.23.3-dev41
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/JsonOutput-zJfSu-Vk.js +49 -0
- package/dist/assets/{MarimoErrorOutput-BWFFx2VQ.js → MarimoErrorOutput-BGCTswmw.js} +1 -1
- package/dist/assets/RenderHTML-DT8P6T1l.js +1 -0
- package/dist/assets/{add-connection-dialog-C1aIq9FP.js → add-connection-dialog-DChyqh-3.js} +1 -1
- package/dist/assets/{agent-panel-BF6fYTEU.js → agent-panel-CcLuIYse.js} +1 -1
- package/dist/assets/{cell-editor-DL4womh8.js → cell-editor-BqklzNDV.js} +1 -1
- package/dist/assets/{chat-display-DyTcEZFU.js → chat-display-7P_28VVE.js} +1 -1
- package/dist/assets/{chat-panel-DVFjhDIb.js → chat-panel-BQp1b73y.js} +1 -1
- package/dist/assets/{chat-ui-CyIhz4-T.js → chat-ui-BNeL7YZB.js} +1 -1
- package/dist/assets/{column-preview-rQE4qc5R.js → column-preview-C2_n8Cec.js} +1 -1
- package/dist/assets/{command-palette-Cd2q-HUO.js → command-palette-Ck1uQB30.js} +1 -1
- package/dist/assets/{documentation-panel-CZt-M5JN.js → documentation-panel-BJnrDC1G.js} +1 -1
- package/dist/assets/{edit-page-BQ7AdKwV.js → edit-page-BUArB_ce.js} +3 -3
- package/dist/assets/{error-panel-BN05vshu.js → error-panel-C3s8IlRa.js} +1 -1
- package/dist/assets/{file-explorer-panel-Ci0Cz4JU.js → file-explorer-panel-Dk5S33G1.js} +1 -1
- package/dist/assets/{form-BON4sAdY.js → form-kVlV8UJh.js} +1 -1
- package/dist/assets/{hooks-CLXoEljg.js → hooks-CVOMPk9n.js} +1 -1
- package/dist/assets/{index-Flgwmpg_.js → index-AQQQ__hU.js} +4 -4
- package/dist/assets/{layout-B31_eP6P.js → layout-BZFYst8S.js} +3 -3
- package/dist/assets/{panels-CfgYkAvQ.js → panels-Dp6Q1Mvz.js} +1 -1
- package/dist/assets/{reveal-component-Bt3Epro6.js → reveal-component-DWnqsE1_.js} +1 -1
- package/dist/assets/{run-page-4lA-192f.js → run-page-DiTeOCSw.js} +1 -1
- package/dist/assets/{scratchpad-panel-CiXkVXhL.js → scratchpad-panel-DDqb_fyf.js} +1 -1
- package/dist/assets/{session-panel-oGdw6hvF.js → session-panel-NjZNmi9U.js} +1 -1
- package/dist/assets/{slide-C5wPx0qL.js → slide-C5Pp2eO8.js} +1 -1
- package/dist/assets/{snippets-panel-C1g0FaLN.js → snippets-panel-BYaK2OYv.js} +1 -1
- package/dist/assets/state-BHl5TPGk.js +3 -0
- package/dist/assets/{useNotebookActions-C-Vve9tT.js → useNotebookActions-Cg9IU5j7.js} +1 -1
- package/dist/index.html +12 -8
- package/package.json +1 -1
- package/src/core/static/__tests__/export-context.test.ts +122 -0
- package/src/core/static/__tests__/static-state.test.ts +80 -0
- package/src/core/static/export-context.ts +41 -0
- package/src/core/static/static-state.ts +44 -6
- package/src/plugins/core/RenderHTML.tsx +23 -2
- package/src/plugins/core/__test__/RenderHTML.test.ts +86 -1
- package/src/plugins/core/sanitize.ts +11 -5
- package/src/plugins/core/trusted-url.ts +9 -0
- package/dist/assets/JsonOutput-BLiYwyAC.js +0 -49
- package/dist/assets/RenderHTML-DweIff7M.js +0 -1
- package/dist/assets/state-DpMLCkRP.js +0 -3
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as v}from"./chunk-LvLJmgfZ.js";import{i as y,p as j,u as w}from"./useEvent-D91BmmQi.js";import{t as R}from"./react-Bj1aDYRI.js";import{_n as S,ai as m,ii as _,it as H,m as C,xn as I,yt as L}from"./cells-_QgKZKXb.js";import{t as E}from"./compiler-runtime-B3qBwwSJ.js";import{_ as M}from"./useEventListener-BR0C1MaI.js";import{o as N}from"./utils-DIGrmLDO.js";import{t as T}from"./jsx-runtime-BqBOg78p.js";import{t as z}from"./tooltip-Gcwqb_SK.js";import{t as F}from"./copy-icon-D6J-Qe0V.js";import{t as V}from"./usePress-BPoseSMY.js";import{n as W}from"./useDebounce-C0E828y0.js";import{t as k}from"./useRunCells-Ce0N_5Wc.js";var q=E(),c=v(R(),1),l=v(T(),1);const A=r=>{let t=(0,q.c)(16),e,n,i;t[0]===r?(e=t[1],n=t[2],i=t[3]):({href:n,children:e,...i}=r,t[0]=r,t[1]=e,t[2]=n,t[3]=i);let a=(0,c.useRef)(null),s;t[4]===n?s=t[5]:(s=()=>{let u=new URL(globalThis.location.href);u.hash=n,globalThis.history.pushState({},"",u.toString()),globalThis.dispatchEvent(new HashChangeEvent("hashchange"));let x=n.slice(1),g=document.getElementById(x);g&&g.scrollIntoView({behavior:"smooth",block:"start"})},t[4]=n,t[5]=s);let o=s,f;t[6]===o?f=t[7]:(f={onPress:()=>{o()}},t[6]=o,t[7]=f);let{pressProps:h}=V(f),d;t[8]===o?d=t[9]:(d=u=>{u.preventDefault(),o()},t[8]=o,t[9]=d);let b=d,p;return t[10]!==e||t[11]!==b||t[12]!==n||t[13]!==h||t[14]!==i?(p=(0,l.jsx)("a",{ref:a,href:n,...h,onClick:b,...i,children:e}),t[10]=e,t[11]=b,t[12]=n,t[13]=h,t[14]=i,t[15]=p):p=t[15],p};async function D(r){let t=C().inOrderIds.at(0);if(t)try{let e=await S.request({document:r,cellId:t});if(!e||e.options.length===0)return;let n=r.split(".").pop()??r,i=e.options[0],a=e.options.find(s=>s.name===n)??i;a!=null&&a.completion_info&&y.set(I,{documentation:a.completion_info})}catch(e){M.debug(`Doc lookup failed for "${r}"`,e)}}var O=E();const P=r=>{let t=(0,O.c)(8),{qualifiedName:e,children:n}=r,i;t[0]===e?i=t[1]:(i=()=>{D(e)},t[0]=e,t[1]=i);let a=W(i,100),s;t[2]===a?s=t[3]:(s=()=>a.cancel(),t[2]=a,t[3]=s);let o;return t[4]!==n||t[5]!==a||t[6]!==s?(o=(0,l.jsx)("span",{onMouseEnter:a,onMouseLeave:s,children:n}),t[4]=n,t[5]=a,t[6]=s,t[7]=o):o=t[7],o};var $=j(r=>{let t=r(k),e=r(N);if(t||e)return!1;let n=!0;try{n=H()==="read"}catch{return!0}return!n});function B(){return w($)}var U=E(),Z=r=>{if(r instanceof m.Element&&!/^[A-Za-z][\w-]*$/.test(r.name))return c.createElement(c.Fragment)},G=(r,t)=>{if(t instanceof m.Element&&t.name==="body"){if((0,c.isValidElement)(r)&&"props"in r){let e=r.props.children;return(0,l.jsx)(l.Fragment,{children:e})}return}},J=(r,t)=>{if(t instanceof m.Element&&t.name==="html"){if((0,c.isValidElement)(r)&&"props"in r){let e=r.props.children;return(0,l.jsx)(l.Fragment,{children:e})}return}},K=r=>{if(r instanceof m.Element&&r.attribs&&r.name==="iframe"){let t=document.createElement("iframe");return Object.entries(r.attribs).forEach(([e,n])=>{e.startsWith('"')&&e.endsWith('"')&&(e=e.slice(1,-1)),t.setAttribute(e,n)}),(0,l.jsx)("div",{dangerouslySetInnerHTML:{__html:t.outerHTML}})}},Q=r=>{if(r instanceof m.Element&&r.name==="script"){let t=r.attribs.src;if(!t)return;if(!document.querySelector(`script[src="${t}"]`)){let e=document.createElement("script");e.src=t,document.head.append(e)}return(0,l.jsx)(l.Fragment,{})}},X=(r,t)=>{if(t instanceof m.Element&&t.name==="a"){let e=t.attribs.href;if(e!=null&&e.startsWith("#")&&!e.startsWith("#code/")){let n=null;return(0,c.isValidElement)(r)&&"props"in r&&(n=r.props.children),(0,l.jsx)(A,{href:e,...t.attribs,children:n})}}},Y=(r,t,e)=>{var n,i;if(t instanceof m.Element&&t.name==="div"&&((i=(n=t.attribs)==null?void 0:n.class)!=null&&i.includes("codehilite")))return(0,l.jsx)(rt,{children:r},e)},tt=(r,t)=>{var e;if(t instanceof m.Element&&((e=t.attribs)!=null&&e["data-marimo-doc"])){let n=t.attribs["data-marimo-doc"];return(0,l.jsx)(P,{qualifiedName:n,children:r})}},et=(r,t)=>{var e,n;if(t instanceof m.Element&&((e=t.attribs)!=null&&e["data-tooltip"])){if((((n=t.name)==null?void 0:n.toLowerCase())??"").startsWith("marimo-"))return;let i=t.attribs["data-tooltip"];return(0,l.jsx)(z,{content:i,children:r})}},rt=r=>{let t=(0,U.c)(3),{children:e}=r,n=(0,c.useRef)(null),i;t[0]===Symbol.for("react.memo_cache_sentinel")?(i=(0,l.jsx)("div",{className:"absolute top-2 right-2 opacity-0 group-hover:opacity-100 transition-opacity",children:(0,l.jsx)(F,{tooltip:!1,className:"p-1",value:()=>{var o;let s=(o=n.current)==null?void 0:o.firstChild;return s&&s.textContent||""}})}),t[0]=i):i=t[0];let a;return t[1]===e?a=t[2]:(a=(0,l.jsxs)("div",{className:"relative group codehilite-wrapper",ref:n,children:[e,i]}),t[1]=e,t[2]=a),a};const nt=({html:r,additionalReplacements:t=[],alwaysSanitizeHtml:e=!0})=>(0,l.jsx)(it,{html:r,alwaysSanitizeHtml:e,additionalReplacements:t});var it=({html:r,additionalReplacements:t=[],alwaysSanitizeHtml:e})=>{let n=B();return at({html:(0,c.useMemo)(()=>e||n?L(r):r,[r,e,n]),additionalReplacements:t})};function at({html:r,additionalReplacements:t=[]}){let e=[Z,K,Q,...t],n=[Y,X,tt,et,G,J];return _(r,{replace:(i,a)=>{for(let s of e){let o=s(i,a);if(o)return o}return i},transform:(i,a,s)=>{for(let o of n){let f=o(i,a,s);if(f)return f}return i}})}export{nt as t};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
var Yt=Object.defineProperty;var De=f=>{throw TypeError(f)};var Xt=(f,h,y)=>h in f?Yt(f,h,{enumerable:!0,configurable:!0,writable:!0,value:y}):f[h]=y;var n=(f,h,y)=>Xt(f,typeof h!="symbol"?h+"":h,y),ue=(f,h,y)=>h.has(f)||De("Cannot "+y);var o=(f,h,y)=>(ue(f,h,"read from private field"),y?y.call(f):h.get(f)),_=(f,h,y)=>h.has(f)?De("Cannot add the same private member more than once"):h instanceof WeakSet?h.add(f):h.set(f,y),C=(f,h,y,Q)=>(ue(f,h,"write to private field"),Q?Q.call(f,y):h.set(f,y),y),A=(f,h,y)=>(ue(f,h,"access private method"),y);import{i as z,p as de,u as Gt}from"./useEvent-D91BmmQi.js";import{Ci as X,Si as Jt,_i as Kt,b as Zt,fi as er,it as He,jn as tr,li as rr,mi as sr,x as nr,__tla as ar}from"./cells-_QgKZKXb.js";import{t as ir}from"./get-C-qh_et5.js";import{t as or}from"./debounce-DhnxH9Rh.js";import{t as lr}from"./_baseSet-CxV9N1bc.js";import{_ as p,y as g}from"./useEventListener-BR0C1MaI.js";import{t as ur}from"./invariant-BUdrueMv.js";import{S as dr}from"./utils-DIGrmLDO.js";import{S as cr,n as pr}from"./config-BwY7xK-l.js";import{n as fr}from"./switch-QpkpQKr6.js";import{n as $e}from"./globals-fN2Lim68.js";import{ot as ce,st as ze,__tla as hr}from"./JsonOutput-BLiYwyAC.js";import{t as mr}from"./createReducer-1ePoj7v6.js";import{r as gr}from"./strings-md4mFbOQ.js";import{t as pe}from"./requests-DIwGYs0l.js";import{a as Ve,l as yr,r as Qe,__tla as wr}from"./markdown-renderer-Cown6yO8.js";import{t as br}from"./DeferredRequestRegistry-Bobqy1XF.js";import{t as vr}from"./preload-helper-DXnewu3N.js";import{t as Ye}from"./Deferred-CcWopv8N.js";import{t as Xe}from"./uuid-D_ujsK2Y.js";import{t as _r}from"./use-toast-DZOInYtM.js";import{t as Cr}from"./useRunCells-Ce0N_5Wc.js";import{n as Rr,r as xr,t as qr}from"./share-C7-yIyYZ.js";import{t as Er}from"./blob-Gsfvuteh.js";import{i as Ge,r as Sr,t as kr}from"./events-CKqlBGzI.js";let G,Je,Ke,fe,Ze,et,he,tt,V,rt,st,me,ge,nt,at,it,ot,ne,lt,ut,ye,dt,we,Mr=Promise.all([(()=>{try{return ar}catch{}})(),(()=>{try{return hr}catch{}})(),(()=>{try{return wr}catch{}})()]).then(async()=>{var U,ee,pt,Le,M,T,S,Ne,P,Ae,F,Y,B,ae,Ue,Te,te,I,L,D,R,j,N,ft,ht,mt,re;function f(t,e,r){return t==null?t:lr(t,e,r)}G=f,Ze=de(null);var{valueAtom:h,useActions:y}=mr(()=>({banners:[]}),{addBanner:(t,e)=>({...t,banners:[...t.banners,{...e,id:Xe()}]}),removeBanner:(t,e)=>({...t,banners:t.banners.filter(r=>r.id!==e)}),clearBanners:t=>({...t,banners:[]})});dt=()=>Gt(h),Je=function(){return y()};let Q,ve,_e;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)}},we=class be{constructor(e){n(this,"subscriptions",new Q);this.producer=e}static withProducerCallback(e){return new be(e)}static empty(){return new be}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)}},ve=1e10,_e=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 yt(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,Qt)}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=_e}=t;t.transport&&a(t.transport),t.requestHandler&&u(t.requestHandler),t._debugHooks&&r(t._debugHooks);let v=0;function x(){return v<=ve?++v:v=0}let q=new Map,E=new Map;function H(l,...c){let w=c[0];return new Promise((m,b)=>{var $;if(!s.send)throw J(["send"],"make requests");let k=x(),O={type:"request",id:k,method:l,params:w};q.set(k,{resolve:m,reject:b}),d!==1/0&&E.set(k,setTimeout(()=>{E.delete(k),b(Error("RPC request timed out."))},d)),($=e.onSend)==null||$.call(e,O),s.send(O)})}let se=new Proxy(H,{get:(l,c,w)=>c in l?Reflect.get(l,c,w):m=>H(c,m)}),je=se;function We(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 Oe=new Proxy(We,{get:(l,c,w)=>c in l?Reflect.get(l,c,w):m=>We(c,m)}),Be=Oe,W=new Map,le=new Set;function zt(l,c){var w;if(!s.registerHandler)throw J(["registerHandler"],"register message listeners");if(l==="*"){le.add(c);return}W.has(l)||W.set(l,new Set),(w=W.get(l))==null||w.add(c)}function Vt(l,c){var w,m;if(l==="*"){le.delete(c);return}(w=W.get(l))==null||w.delete(c),((m=W.get(l))==null?void 0:m.size)===0&&W.delete(l)}async function Qt(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:k}=l,O;try{O={type:"response",id:m,success:!0,payload:await i(b,k)}}catch($){if(!($ instanceof Error))throw $;O={type:"response",id:m,success:!1,error:$.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:k}=q.get(l.id)??{};l.success?b==null||b(l.payload):k==null||k(Error(l.error));return}if(l.type==="message"){for(let b of le)b(l.id,l.payload);let m=W.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:je,send:Oe,sendProxy:Be,addMessageListener:zt,removeMessageListener:Vt,proxy:{send:Be,request:je},_setDebugHooks:r}}function wt(t){return yt(t)}var Ce="[transport-id]";function bt(t,e){let{transportId:r}=e;return r==null?t:{[Ce]:r,data:t}}function vt(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[Ce]!==r)return[!0];i=t.data}return a===!1?[!0]:[!1,i]}function _t(t,e={}){let{transportId:r,filter:s,remotePort:a}=e,i=t,u=a??t,d;return{send(v){u.postMessage(bt(v,{transportId:r}))},registerHandler(v){d=x=>{let q=x.data,[E,H]=vt(q,{transportId:r,filter:()=>s==null?void 0:s(x)});E||v(H)},i.addEventListener("message",d)},unregisterHandler(){d&&i.removeEventListener("message",d)}}}function Ct(t,e){return _t(t,e)}function Re(t){return wt({transport:Ct(t,{transportId:"marimo-transport"}),maxRequestTime:2e4,_debugHooks:{onSend:e=>{p.debug("[rpc] Parent -> Worker",e)},onReceive:e=>{p.debug("[rpc] Worker -> Parent",e)}}})}ye=de("Initializing..."),Ke=de(t=>{let e=t(Zt),r=Object.values(e.cellRuntime);return r.some(s=>!yr(s.output))?!0:r.every(s=>s.status==="idle")});var xe=Rr(),qe="marimo:file",Ee=new rr(null);const Rt={saveFile(t){Ee.set(qe,t)},readFile(){return Ee.get(qe)}};var xt={saveFile(t){X.setCodeForHash((0,xe.compressToEncodedURIComponent)(t))},readFile(){let t=X.getCodeFromHash()||X.getCodeFromSearchParam();return t?(0,xe.decompressFromEncodedURIComponent)(t):null}};const qt={saveFile(t){},readFile(){let t=document.querySelector("marimo-code");return t?decodeURIComponent(t.textContent||"").trim():null}};var Et={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 St={saveFile(t){},readFile(){return z.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
|
-
`)}},Se=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 K;V=new Se([St,qt,xt]),K=new Se([Rt,Et,kt]),ge=class ct{constructor(){n(this,"initialized",new Ye);n(this,"sendRename",async({filename:e})=>(e===null||(X.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),K.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=>(z.get(nr)||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}),fr.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),K.saveFile(e.contents)),xr(),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=qr({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:Xe()}),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=>await this.rpc.proxy.request.bridge({functionName:"create_file_or_directory",payload:e}));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);cr()&&(this.rpc=Re(new Worker(new URL(""+new URL("worker-ztl1wuLb.js",import.meta.url).href,""+import.meta.url),{type:"module",name:$e()})),this.rpc.addMessageListener("ready",()=>{this.startSession()}),this.rpc.addMessageListener("initialized",()=>{this.saveRpc=this.getSaveWorker(),this.setInterruptBuffer(),this.initialized.resolve()}),this.rpc.addMessageListener("initializingMessage",({message:e})=>{z.set(ye,e)}),this.rpc.addMessageListener("initializedError",({error:e})=>{this.initialized.status==="resolved"&&(p.error(e),_r({title:"Error initializing",description:e,variant:"danger"})),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 ct),window[e]}getSaveWorker(){return He()==="read"?(p.debug("Using partially disabled SaveWorker in read-mode"),{readFile:g,readNotebook:async()=>await V.readFile()??"",saveNotebook:g}):Re(new Worker(new URL(""+new URL("save-worker-CtJsIYIM.js",import.meta.url).href,""+import.meta.url),{type:"module",name:$e()})).proxy.request}async startSession(){let e=await V.readFile(),r=await K.readFile(),s=z.get(sr)??X.getFilename(),a=z.get(dr),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:He()==="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})}},rt=function(){return we.withProducerCallback(t=>{ge.INSTANCE.attachMessageConsumer(t)})},tt=function(t=ce()){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":Mt(a)}})}return e(r,s)}catch(i){return p.error("Error parsing URL",i),e(r,s)}},()=>{window.fetch=e}};function Mt(t){return t.endsWith(".csv")?"text/csv":t.endsWith(".json")?"application/json":t.endsWith(".txt")?"text/plain":"application/octet-stream"}it=function(t,e=ce()){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 ke(t){return t.startsWith(".")?t.slice(1):t}function Ft(t,e=ce()){let r=Z(t,e);if(!r)return t;let s=Er(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=Me(t),i=Me(s);return e[t]||e[ke(t)]||e[s]||e[ke(s)]||a&&e[a]||i&&e[i]}function Me(t){let e=t.indexOf("/@file/");return e===-1?null:t.slice(e)}function ie(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(...ie(a,[...e,s]));else if(typeof t=="object"&&t)for(let[s,a]of Object.entries(t))r.push(...ie(a,[...e,s]));return r}function Pt(t){let e=ie(t);if(e.length===0)return{state:t,buffers:[],bufferPaths:[]};let r=structuredClone(t),s=[],a=[];for(let i of e){let u=ir(t,i);if(u instanceof DataView){let d=Ve(u);s.push(d),a.push(i),G(r,i,d)}}return{state:r,buffers:s,bufferPaths:a}}function Fe(t){let{state:e,bufferPaths:r,buffers:s}=t;if(!r||r.length===0)return e;s&&ur(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"?G(a,u,Qe(d)):G(a,u,d)}return a}function It(t){if(typeof t!="object"||!t)return!1;let e=t;return!(e.trusted!==!0||e.notebookCode!==void 0&&typeof e.notebookCode!="string")}function Lt(){let t=window==null?void 0:window.__MARIMO_EXPORT_CONTEXT__;return It(t)?t:void 0}function Nt(){var t;return((t=Lt())==null?void 0:t.trusted)===!0}he=function(t){return typeof t!="string"||t.length===0?!1:!!(/^(\.?\/)?@file\/[^?#]+$/.test(t)||Ut(t))};function At(){return z.get(Cr)||Nt()}function Ut(t){return t.startsWith("data:text/javascript;base64,")||t.startsWith("data:application/javascript;base64,")||t.startsWith("data:text/css;base64,")?At():!1}const Pe={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 Tt(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 jt=(Le=class{constructor(){_(this,ee);_(this,U,new Map)}getModule(t,e){let r=o(this,U).get(e);if(r)return r;let s=A(this,ee,pt).call(this,t).catch(a=>{throw o(this,U).delete(e),a});return o(this,U).set(e,s),s}invalidate(t){p.debug(`[WidgetDefRegistry] Invalidating module cache for hash=${t}`),o(this,U).delete(t)}},U=new WeakMap,ee=new WeakSet,pt=async function(t){if(!he(t))throw Error(`Refusing to load anywidget module from untrusted URL: ${String(t)}`);let e=pr(t).toString();return ze()&&(e=Ft(e)),vr(()=>import(e).then(async r=>(await r.__tla,r)),[],import.meta.url)},Le),Wt=(Ne=class{constructor(){_(this,M);_(this,T);_(this,S)}async bind(t,e){var i,u;if(o(this,S)&&o(this,T)===t)return o(this,S);o(this,S)&&o(this,T)!==t&&(p.debug("[WidgetBinding] Hot-reload detected, aborting previous binding"),(i=o(this,M))==null||i.abort(),C(this,M,void 0),C(this,S,void 0)),C(this,T,t),C(this,M,new AbortController);let r=o(this,M).signal,s=typeof t=="function"?await t():t,a=await((u=s.initialize)==null?void 0:u.call(s,{model:e,experimental:Pe}));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:Pe}));x&&Tt([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,M))==null||t.abort(),C(this,M,void 0),C(this,T,void 0),C(this,S,void 0)}},M=new WeakMap,T=new WeakMap,S=new WeakMap,Ne),Ot=(Ae=class{constructor(){_(this,P,new Map)}getOrCreate(t){let e=o(this,P).get(t);return e||(e=new Wt,o(this,P).set(t,e)),e}destroy(t){let e=o(this,P).get(t);e&&(p.debug(`[BindingManager] Destroying binding for model=${t}`),e.destroy(),o(this,P).delete(t))}has(t){return o(this,P).has(t)}},P=new WeakMap,Ae);ut=new jt,me=new Ot;var Bt=(Ue=class{constructor(t=1e4){_(this,B);_(this,F,new Map);_(this,Y);C(this,Y,t)}get(t){let e=A(this,B,ae).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,F).delete(t))},o(this,Y)),e.deferred.promise}create(t,e){let r=A(this,B,ae).call(this,t);r.deferred.resolve(e(r.controller.signal))}set(t,e){A(this,B,ae).call(this,t).deferred.resolve(e)}getSync(t){let e=o(this,F).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,F).get(t))==null||e.controller.abort(),o(this,F).delete(t)}},F=new WeakMap,Y=new WeakMap,B=new WeakSet,ae=function(t){let e=o(this,F).get(t);return e||(e={deferred:new Ye,controller:new AbortController},o(this,F).set(t,e)),e},Ue),Ie=Symbol("marimo");function oe(t){return t[Ie]}ne=new Bt;var Dt=(Te=Ie,j=class{constructor(e,r,s){_(this,N);_(this,te,"change");_(this,I);_(this,L);_(this,D);_(this,R,{});n(this,Te,{updateAndEmitDiffs:e=>A(this,N,ht).call(this,e),emitCustomMessage:(e,r)=>A(this,N,mt).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,or(()=>{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,D,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,D).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,ft).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,D).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,D=new WeakMap,R=new WeakMap,N=new WeakSet,ft=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)}},ht=function(e){e!=null&&Object.keys(e).forEach(r=>{let s=r;o(this,L)[s]!==e[s]&&this.set(s,e[s])})},mt=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",ne),j);et=async function(t,e){let r=e.model_id,s=e.message,a=("buffers"in s?s.buffers:[]).map(Qe);switch(s.method){case"open":{let{state:i,buffer_paths:u=[]}=s,d=Fe({state:i,bufferPaths:u,buffers:a}),v=t.getSync(r);if(v){oe(v).updateAndEmitDiffs(d);return}t.create(r,x=>new Dt(d,ze()?{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:H,bufferPaths:se}=Pt(q);await pe().sendModelValue({modelId:r,message:{method:"update",state:E,bufferPaths:se},buffers:H})},async sendCustomMessage(q,E){if(x.aborted){p.debug(`[Model] sendCustomMessage suppressed for model=${r} (signal aborted)`);return}await pe().sendModelValue({modelId:r,message:{method:"custom",content:q},buffers:E.map(Ve)})}},x));return}case"custom":oe(await t.get(r)).emitCustomMessage({method:"custom",content:s.content},a);return;case"close":me.destroy(r),t.delete(r);return;case"update":{let{state:i,buffer_paths:u=[]}=s,d=Fe({state:i,bufferPaths:u,buffers:a});oe(await t.get(r)).updateAndEmitDiffs(d);return}default:gr(s)}},tr(ne,"MODEL_MANAGER");function Ht(t){return typeof t!="object"||!t?!1:"type"in t&&t.type==="marimo-ui-value-update"}fe=class gt{static get INSTANCE(){let e="_marimo_private_UIElementRegistry";return window[e]||(window[e]=new gt),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:Jt(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(Ht(r)){a.value=r.value,a.elements.forEach(i=>{i.dispatchEvent(Ge.create({bubbles:!1,composed:!0,detail:{value:r.value,element:i}}))});return}a.elements.forEach(i=>{i.dispatchEvent(kr.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(Ge.create({bubbles:!1,composed:!0,detail:{value:s,element:i}}))}),document.dispatchEvent(Sr.create({bubbles:!0,composed:!0,detail:{objectId:r}})))}},at=fe.INSTANCE,st=new br("function-call-result",async(t,e)=>{await pe().sendFunctionRequest({functionCallId:t,...e})}),lt="68px";var $t="288px";nt=t=>t?/^\d+$/.test(t)?`${t}px`:t:$t,ot=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{G as C,Je as S,Ke as _,Mr as __tla,fe as a,Ze as b,et as c,he as d,tt as f,V as g,rt as h,st as i,me as l,ge as m,nt as n,at as o,it as p,ot as r,ne as s,lt as t,ut as u,ye as v,dt as x,we as y};
|