@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.
- package/dist/assets/{edit-page-BZXsdlTF.js → edit-page-Ccn-DBq7.js} +1 -1
- package/dist/assets/{index-OMXgHU4L.js → index-D3uUU4bN.js} +2 -2
- package/dist/assets/{panels-4jSJxEYp.js → panels-B07d1xlC.js} +1 -1
- package/dist/assets/{run-page-CA21zsME.js → run-page-DfQ5pi75.js} +1 -1
- package/dist/assets/state-BuzCk6Z3.js +3 -0
- package/dist/index.html +2 -2
- package/package.json +1 -1
- package/src/plugins/impl/anywidget/__tests__/model.test.ts +55 -0
- package/src/plugins/impl/anywidget/model.ts +20 -5
- package/dist/assets/state-TgAqts79.js +0 -3
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var ee=Object.defineProperty;var te=(t,A,e)=>A in t?ee(t,A,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[A]=e;var C=(t,A,e)=>te(t,typeof A!="symbol"?A+"":A,e);import{s as pA}from"./chunk-LvLJmgfZ.js";import{d as L,i as ae,l as fA,p as P,u as y}from"./useEvent-D91BmmQi.js";import{t as Ge}from"./react-Bj1aDYRI.js";import{Br as se,Bt as oe,E as wA,En as re,F as ne,Gr as EA,Hn as ie,L as le,Lt as ke,Rt as ce,Vt as Re,at as Ze,c as de,cn as xA,ea as he,h as ge,jn as ue,k as Be,m as RA,oa as me,sn as Ye,w as pe,y as CA,z as fe,zt as we}from"./cells-CMc2NsXm.js";import{t as B}from"./compiler-runtime-B3qBwwSJ.js";import{_ as Ee,c as xe,g as Ce,i as ye,m as De,n as ve,o as T,p as be,r as Se,s as Ne,t as Me,v as _e,x as Fe,y as Oe}from"./state-TgAqts79.js";import{g as Y,t as Qe}from"./useEventListener-C0195JsF.js";import{t as je}from"./objects-BlG0ZrO0.js";import{D as Le,f as Pe,w as Te}from"./utils-BWBBpCkT.js";import{r as I}from"./constants-CDyU_g2F.js";import{D as Ie,M as ZA,O as yA,T as p,d as Ke,j as He,l as DA,o as We,v as Ue,w as D}from"./config-B-Q7J_6d.js";import{o as Ve}from"./switch-OVajJBPR.js";import{i as qe}from"./readonly-python-code-Bmo6cMSq.js";import{n as Xe}from"./ErrorBoundary-DzTD8LVq.js";import{n as Je,t as w}from"./cn-DYvqRARy.js";import{t as ze}from"./jsx-runtime-Blw4afVn.js";import{o as $e,r as At}from"./fullscreen-CTDqNQr6.js";import{_ as et,f as tt,g as at,h as vA,m as bA,p as SA,v as NA,y as Gt}from"./alert-dialog-Bb8Lz8ko.js";import{At as st,St as MA,jt as ot}from"./JsonOutput-E3o1Uk0e.js";import{g as rt}from"./download-U_wgQ8mC.js";import{t as _A}from"./tooltip-4bZlU7jl.js";import{t as FA}from"./button-DDGiD1NW.js";import{t as nt}from"./createReducer-DGx5Af-C.js";import{i as OA}from"./strings--BknHX9C.js";import{t as it}from"./requests-9-v2bhoi.js";import{t as dA}from"./createLucideIcon-w-Qo9n0R.js";import{F as QA,P as lt,a as kt,i as jA,n as ct,o as Rt,s as Zt}from"./layout-DKUs0ozP.js";import{c as dt,r as ht,s as gt}from"./state-DDag0B_B.js";import{d as ut,n as Bt}from"./markdown-renderer-uWTrQId1.js";import{n as mt}from"./spinner-D-V4psAa.js";import{t as Yt}from"./uuid-ImXS-885.js";import{t as hA}from"./use-toast-BwJoaaDM.js";import{i as gA}from"./session-BmukRjSi.js";import{t as pt}from"./RenderHTML-DRJxD5FQ.js";import{r as ft}from"./share-852X_cqy.js";import{a as LA}from"./errors-PgHhDa-M.js";import{s as wt}from"./react-icons.esm-D4GMDkIf.js";import{r as PA}from"./events-90X9nql5.js";import{i as Et}from"./cell-link-DGv7Q4Mc.js";import{n as xt}from"./useAsyncData-Bg5iAViP.js";import{t as Ct}from"./requests-CIR84T8A.js";import{t as yt}from"./request-registry-CEkYnwgr.js";import{t as Dt}from"./ws-CNqquaud.js";import{n as vt}from"./types-C7hjolXC.js";import{n as bt}from"./runs-CZN8py6x.js";var St=dA("hourglass",[["path",{d:"M5 22h14",key:"ehvnwv"}],["path",{d:"M5 2h14",key:"pdyrp9"}],["path",{d:"M17 22v-4.172a2 2 0 0 0-.586-1.414L12 12l-4.414 4.414A2 2 0 0 0 7 17.828V22",key:"1d314k"}],["path",{d:"M7 2v4.172a2 2 0 0 0 .586 1.414L12 12l4.414-4.414A2 2 0 0 0 17 6.172V2",key:"1vvvr6"}]]),TA=dA("menu",[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]]),Nt=dA("unlink",[["path",{d:"m18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71",key:"yqzxt4"}],["path",{d:"m5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71",key:"4qinb0"}],["line",{x1:"8",x2:"8",y1:"2",y2:"5",key:"1041cp"}],["line",{x1:"2",x2:"5",y1:"8",y2:"8",key:"14m1p5"}],["line",{x1:"16",x2:"16",y1:"19",y2:"22",key:"rzdirn"}],["line",{x1:"19",x2:"22",y1:"16",y2:"16",key:"ox905f"}]]),Mt=B(),R=pA(ze(),1);const _t=t=>{let A=(0,Mt.c)(2),{reason:e}=t,a;return A[0]===e?a=A[1]:(a=(0,R.jsx)("div",{className:"font-mono text-center text-base text-(--red-11)",children:(0,R.jsx)("p",{children:e})}),A[0]=e,A[1]=a),a};var Ft=B(),g=pA(Ge(),1);const Ot=t=>{let A=(0,Ft.c)(7),{connection:e,className:a,children:G}=t,s;A[0]!==e.reason||A[1]!==e.state?(s=e.state===p.CLOSED&&(0,R.jsx)(_t,{reason:e.reason}),A[0]=e.reason,A[1]=e.state,A[2]=s):s=A[2];let o;return A[3]!==G||A[4]!==a||A[5]!==s?(o=(0,R.jsxs)("div",{className:a,children:[G,s]}),A[3]=G,A[4]=a,A[5]=s,A[6]=o):o=A[6],o};var Qt=B();function jt(t){let A=(0,Qt.c)(3),[e,a]=(0,g.useState)(t<=0),G,s;return A[0]===t?(G=A[1],s=A[2]):(G=()=>{if(t<=0){a(!0);return}a(!1);let o=setTimeout(()=>a(!0),t);return()=>clearTimeout(o)},s=[t],A[0]=t,A[1]=G,A[2]=s),(0,g.useLayoutEffect)(G,s),e}const IA=t=>{let{requires:A,fallback:e,delay:a,children:G}=t,s=e===void 0?null:e,o=a===void 0?0:a,i=y(A),r=jt(i?0:o);return i?G:r?s:null};var Lt=B();const Pt=t=>{let A=(0,Lt.c)(10),{title:e}=t,[a,G]=(0,g.useState)(e),[s,o]=(0,g.useState)(!0),i,r;A[0]!==a||A[1]!==e?(i=()=>{if(e!==a){o(!1);let d=setTimeout(()=>{G(e),o(!0)},300);return()=>clearTimeout(d)}},r=[e,a],A[0]=a,A[1]=e,A[2]=i,A[3]=r):(i=A[2],r=A[3]),(0,g.useEffect)(i,r);let n;A[4]===Symbol.for("react.memo_cache_sentinel")?(n=(0,R.jsx)(mt,{className:"size-20 animate-spin text-primary","data-testid":"large-spinner",strokeWidth:1}),A[4]=n):n=A[4];let k=s?"opacity-100":"opacity-0",l;A[5]===k?l=A[6]:(l=w("mt-2 text-muted-foreground font-semibold text-lg transition-opacity duration-300",k),A[5]=k,A[6]=l);let Z;return A[7]!==a||A[8]!==l?(Z=(0,R.jsxs)("div",{className:"flex flex-col h-full flex-1 items-center justify-center p-4",children:[n,(0,R.jsx)("div",{className:l,children:a})]}),A[7]=a,A[8]=l,A[9]=Z):Z=A[9],Z};function Tt(t,A){return t==="edit"||t==="home"||t==="gallery"?!0:t==="present"||gA(I.includeCode,"false")||gA(I.showCode,"false")?!1:gA(I.showCode,"true")?!0:A}function It(t){let A=Tt(t.mode,t.showAppCode),e=t.hasCells&&t.hasCachedOutputs;return{showCode:A,showCachedOutputs:e,canPaint:t.hasCells&&(A||e||t.allCellsIdle)}}var KA=P(t=>{let A=!1,e=!0;for(let a of Object.values(t(CA).cellRuntime))Bt(a.output)||(A=!0),a.status!=="idle"&&(e=!1);return{hasCachedOutputs:A,allCellsIdle:e}}),Kt=P(t=>t(KA).hasCachedOutputs),Ht=P(t=>t(KA).allCellsIdle);const Wt=P(t=>It({mode:t(Ie),showAppCode:t(Ve),hasCells:t(ge),hasCachedOutputs:t(Kt),allCellsIdle:t(Ht)})),HA=P(t=>t(Wt).canPaint);var uA=B();const Ut=t=>{let A=(0,uA.c)(2),{children:e}=t;if(!ZA())return e;let a;return A[0]===e?a=A[1]:(a=(0,R.jsx)(Vt,{children:e}),A[0]=e,A[1]=a),a};var Vt=t=>{let A=(0,uA.c)(8),{children:e}=t,a;A[0]===Symbol.for("react.memo_cache_sentinel")?(a=[],A[0]=a):a=A[0];let{error:G}=xt(Xt,a),s=y(HA),o=(0,g.useRef)(!1),i,r;if(A[1]!==s||A[2]!==G?(i=()=>{G&&s&&!o.current&&(o.current=!0,Y.error("Pyodide failed to initialize",G),hA({title:"Failed to start the notebook runtime",description:LA(G),variant:"danger"}))},r=[G,s],A[1]=s,A[2]=G,A[3]=i,A[4]=r):(i=A[3],r=A[4]),(0,g.useEffect)(i,r),G&&!s)throw G;let n;A[5]===Symbol.for("react.memo_cache_sentinel")?(n=(0,R.jsx)(qt,{}),A[5]=n):n=A[5];let k;return A[6]===e?k=A[7]:(k=(0,R.jsx)(IA,{requires:HA,fallback:n,children:e}),A[6]=e,A[7]=k),k},qt=()=>{let t=(0,uA.c)(2),A=y(Ce),e=A.kind==="loading"?A.message:"Loading\u2026",a;return t[0]===e?a=t[1]:(a=(0,R.jsx)(Pt,{title:e}),t[0]=e,t[1]=a),a};async function Xt(){return await be.INSTANCE.initialized.promise,!0}var Jt={idle:"./favicon.ico",success:"data:image/x-icon;base64,AAABAAEAMDAAAAEACACoDgAAFgAAACgAAAAwAAAAYAAAAAEACAAAAAAAAAkAAAAAAAAAAAAAAAEAAAABAAAAAAAAXXQAAFd3AwBWeAQAVngEAFd4AwBXeAQAVnkEAFh3AwBXdwQAVXcGAFd4BQBXeAQAWHgEAFd6AwBXeAMAVnkEAFZ5AwBXdwQAV3cFAFd4BABYeAQAV3gEAFh4BABXeAQA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgMEBQYYGAYFBAMCAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgcYGBgYGBgYGBgYGBgYGAcCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJGBgYGBgYGBgYGBgYGBgYGBgYCQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKBBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgECgAAAAAAAAAAAAAAAAAAAAAAAAAAAAsYGBgYGBgYDA0OChkZGRkKDg0MGBgYGBgYGAsAAAAAAAAAAAAAAAAAAAAAAAAAAxgYGBgYGA8QGRkZGRkZGRkZGRkZEA8YGBgYGBgDAAAAAAAAAAAAAAAAAAAAAAARGBgYGBgSChkZGRkZGRkZGRkZGRkZGRkKEhgYGBgYEQAAAAAAAAAAAAAAAAAAAAMYGBgYGBMZGRkZGRkZGRkZGRkZGRkZGRkZGRMYGBgYGAMAAAAAAAAAAAAAAAAACxgYGBgUEBkZGRkZGRkZGRkZGRkZGRkZGRkZGRkQFBgYGBgLAAAAAAAAAAAAAAAKGBgYGBQKGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZChQYGBgYCgAAAAAAAAAAAAAEGBgYGBAZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRAYGBgYBAAAAAAAAAAAAAgYGBgYExkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkTGBgYGAgAAAAAAAAAAAkYGBgSGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZEhgYGAkAAAAAAAAAAhgYGBgKGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZChgYGBgCAAAAAAAABxgYGA8ZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGQ8YGBgHAAAAAAABGBgYGBAZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRAYGBgYAQAAAAACGBgYDBkZGRkZGRkZGRkZGRkXFhYVGRkZGRkZGRkZGRkZGRkZGRkMGBgYAgAAAAADGBgYDRkZGRkZGRkZGRkZGRcYGBgYFxkZGRkZGRkZGRkZGRkZGRkNGBgYAwAAAAAEGBgYDhkZGRkZGRkZGRkZFxgYGBgYGBcZGRkZGRkZGRkZGRkZGRkOGBgYBAAAAAAFGBgYChkZGRkZGRkZGRkXGBgYGBgYGBgXGRkZGRkZGRkZGRkZGRkKGBgYBQAAAAAGGBgYGRkZGRkZGRkZGRUYGBgYGBgYGBgYFxkZGRkZGRkZGRkZGRkZGBgYBgAAAAAYGBgYGRkZGRkZGRkZGRYYGBgYFxcYGBgYGBcZGRkZGRkZGRkZGRkZGBgYGAAAAAAYGBgYGRkZGRkZGRkZGRYYGBgXGRkXGBgYGBgXGRkZGRkZGRkZGRkZGBgYGAAAAAAGGBgYGRkZGRkZGRkZGRUWFhcZGRkZFxgYGBgYFxkZGRkZGRkZGRkZGBgYBgAAAAAFGBgYChkZGRkZGRkZGRkZGRkZGRkZGRcYGBgYGBcZGRkZGRkZGRkKGBgYBQAAAAAEGBgYDhkZGRkZGRkZGRkZGRkZGRkZGRkXGBgYGBYZGRkZGRkZGRkOGBgYBAAAAAADGBgYDRkZGRkZGRkZGRkZGRkZGRkZGRkZFxgYGBYZGRkZGRkZGRkNGBgYAwAAAAACGBgYDBkZGRkZGRkZGRkZGRkZGRkZGRkZGRUWFhUZGRkZGRkZGRkMGBgYAgAAAAABGBgYGBAZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRAYGBgYAQAAAAAABxgYGA8ZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGQ8YGBgHAAAAAAAAAhgYGBgKGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZChgYGBgCAAAAAAAAAAkYGBgSGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZEhgYGAkAAAAAAAAAAAgYGBgYExkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkTGBgYGAgAAAAAAAAAAAAEGBgYGBAZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRAYGBgYBAAAAAAAAAAAAAAKGBgYGBQKGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZChQYGBgYCgAAAAAAAAAAAAAACxgYGBgUEBkZGRkZGRkZGRkZGRkZGRkZGRkZGRkQFBgYGBgLAAAAAAAAAAAAAAAAAAMYGBgYGBMZGRkZGRkZGRkZGRkZGRkZGRkZGRMYGBgYGAMAAAAAAAAAAAAAAAAAAAARGBgYGBgSChkZGRkZGRkZGRkZGRkZGRkKEhgYGBgYEQAAAAAAAAAAAAAAAAAAAAAAAxgYGBgYGA8QGRkZGRkZGRkZGRkZEA8YGBgYGBgDAAAAAAAAAAAAAAAAAAAAAAAAAAsYGBgYGBgYDA0OChkZGRkKDg0MGBgYGBgYGAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAKBBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgECgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJGBgYGBgYGBgYGBgYGBgYGBgYCQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgcYGBgYGBgYGBgYGBgYGAcCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgMEBQYYGAYFBAMCAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////AAD///////8AAP//gAH//wAA//4AAH//AAD/+AAAH/8AAP/gAAAH/wAA/8AAAAP/AAD/gAAAAf8AAP8AAAAA/wAA/gAAAAB/AAD8AAAAAD8AAPgAAAAAHwAA+AAAAAAfAADwAAAAAA8AAPAAAAAADwAA4AAAAAAHAADgAAAAAAcAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADgAAAAAAcAAOAAAAAABwAA8AAAAAAPAADwAAAAAA8AAPgAAAAAHwAA+AAAAAAfAAD8AAAAAD8AAP4AAAAAfwAA/wAAAAD/AAD/gAAAAf8AAP/AAAAD/wAA/+AAAAf/AAD/+AAAH/8AAP/+AAB//wAA//+AAf//AAD///////8AAP///////wAA",running:"data:image/x-icon;base64,AAABAAEAMDAAAAEACACoDgAAFgAAACgAAAAwAAAAYAAAAAEACAAAAAAAAAkAAAAAAAAAAAAAAAEAAAABAAAAAAAA0YsAAMWEAwDHgwIAx4QBAMeEAgDGhAIAyIUBAMaFAwDGhAIAxoIAAMaFAgDHhAIAx4QCAMiFAwDHhAIAx4YAAMaFAgDHhQEAxoMCAMeEAgDHgwQAx4QDAMeDAgDHhAIA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgMEBQYYGAYFBAMCAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgcYGBgYGBgYGBgYGBgYGAcCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJGBgYGBgYGBgYGBgYGBgYGBgYCQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKBBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgECgAAAAAAAAAAAAAAAAAAAAAAAAAAAAsYGBgYGBgYDA0OChkZGRkKDg0MGBgYGBgYGAsAAAAAAAAAAAAAAAAAAAAAAAAAAxgYGBgYGA8QGRkZGRkZGRkZGRkZEA8YGBgYGBgDAAAAAAAAAAAAAAAAAAAAAAARGBgYGBgSChkZGRkZGRkZGRkZGRkZGRkKEhgYGBgYEQAAAAAAAAAAAAAAAAAAAAMYGBgYGBMZGRkZGRkZGRkZGRkZGRkZGRkZGRMYGBgYGAMAAAAAAAAAAAAAAAAACxgYGBgUEBkZGRkZGRkZGRkZGRkZGRkZGRkZGRkQFBgYGBgLAAAAAAAAAAAAAAAKGBgYGBQKGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZChQYGBgYCgAAAAAAAAAAAAAEGBgYGBAZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRAYGBgYBAAAAAAAAAAAAAgYGBgYExkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkTGBgYGAgAAAAAAAAAAAkYGBgSGRkZGRkZGRkZFRgWFxkZGRkZGRkZGRkZGRkZGRkZEhgYGAkAAAAAAAAAAhgYGBgKGRkZGRkZGRkZFhgYGBYVGRkZGRkZGRkZGRkZGRkZChgYGBgCAAAAAAAABxgYGA8ZGRkZGRkZGRkZGBgYGBgYFxkZGRkZGRkZGRkZGRkZGQ8YGBgHAAAAAAABGBgYGBAZGRkZGRkZGRkZGBgYGBgYGBYVGRkZGRkZGRkZGRkZGRAYGBgYAQAAAAACGBgYDBkZGRkZGRkZGRkZGBgYGBgYGBgYFxkZGRkZGRkZGRkZGRkMGBgYAgAAAAADGBgYDRkZGRkZGRkZGRkZGBgYGBgYGBgYGBYVGRkZGRkZGRkZGRkNGBgYAwAAAAAEGBgYDhkZGRkZGRkZGRkZGBgYGBUWGBgYGBgYFxkZGRkZGRkZGRkOGBgYBAAAAAAFGBgYChkZGRkZGRkZGRkZGBgYGBkZFxgYGBgYGBYVGRkZGRkZGRkKGBgYBQAAAAAGGBgYGRkZGRkZGRkZGRkZGBgYGBkZGRUWGBgYGBgYFxkZGRkZGRkZGBgYBgAAAAAYGBgYGRkZGRkZGRkZGRkZGBgYGBkZGRkZFxgYGBgYFxkZGRkZGRkZGBgYGAAAAAAYGBgYGRkZGRkZGRkZGRkZGBgYGBkZGRkZFxgYGBgYFhkZGRkZGRkZGBgYGAAAAAAGGBgYGRkZGRkZGRkZGRkZGBgYGBkZGRkXGBgYGBgYFRkZGRkZGRkZGBgYBgAAAAAFGBgYChkZGRkZGRkZGRkZGBgYGBkZFxgYGBgYGBcZGRkZGRkZGRkKGBgYBQAAAAAEGBgYDhkZGRkZGRkZGRkZGBgYGBkXGBgYGBgYFxkZGRkZGRkZGRkOGBgYBAAAAAADGBgYDRkZGRkZGRkZGRkZGBgYGBgYGBgYGBcZGRkZGRkZGRkZGRkNGBgYAwAAAAACGBgYDBkZGRkZGRkZGRkZGBgYGBgYGBgYFxkZGRkZGRkZGRkZGRkMGBgYAgAAAAABGBgYGBAZGRkZGRkZGRkZGBgYGBgYGBcZGRkZGRkZGRkZGRkZGRAYGBgYAQAAAAAABxgYGA8ZGRkZGRkZGRkZGBgYGBgYFxkZGRkZGRkZGRkZGRkZGQ8YGBgHAAAAAAAAAhgYGBgKGRkZGRkZGRkZFhgYGBcZGRkZGRkZGRkZGRkZGRkZChgYGBgCAAAAAAAAAAkYGBgSGRkZGRkZGRkZFRYWFxkZGRkZGRkZGRkZGRkZGRkZEhgYGAkAAAAAAAAAAAgYGBgYExkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkTGBgYGAgAAAAAAAAAAAAEGBgYGBAZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRAYGBgYBAAAAAAAAAAAAAAKGBgYGBQKGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZChQYGBgYCgAAAAAAAAAAAAAACxgYGBgUEBkZGRkZGRkZGRkZGRkZGRkZGRkZGRkQFBgYGBgLAAAAAAAAAAAAAAAAAAMYGBgYGBMZGRkZGRkZGRkZGRkZGRkZGRkZGRMYGBgYGAMAAAAAAAAAAAAAAAAAAAARGBgYGBgSChkZGRkZGRkZGRkZGRkZGRkKEhgYGBgYEQAAAAAAAAAAAAAAAAAAAAAAAxgYGBgYGA8QGRkZGRkZGRkZGRkZEA8YGBgYGBgDAAAAAAAAAAAAAAAAAAAAAAAAAAsYGBgYGBgYDA0OChkZGRkKDg0MGBgYGBgYGAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAKBBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgECgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJGBgYGBgYGBgYGBgYGBgYGBgYCQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgcYGBgYGBgYGBgYGBgYGAcCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgMEBQYYGAYFBAMCAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////AAD///////8AAP//gAH//wAA//4AAH//AAD/+AAAH/8AAP/gAAAH/wAA/8AAAAP/AAD/gAAAAf8AAP8AAAAA/wAA/gAAAAB/AAD8AAAAAD8AAPgAAAAAHwAA+AAAAAAfAADwAAAAAA8AAPAAAAAADwAA4AAAAAAHAADgAAAAAAcAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADgAAAAAAcAAOAAAAAABwAA8AAAAAAPAADwAAAAAA8AAPgAAAAAHwAA+AAAAAAfAAD8AAAAAD8AAP4AAAAAfwAA/wAAAAD/AAD/gAAAAf8AAP/AAAAD/wAA/+AAAAf/AAD/+AAAH/8AAP/+AAB//wAA//+AAf//AAD///////8AAP///////wAA",error:"data:image/x-icon;base64,AAABAAEAMDAAAAEACACoDgAAFgAAACgAAAAwAAAAYAAAAAEACAAAAAAAAAkAAAAAAAAAAAAAAAEAAAABAAAAAAAALi7oACcn2wAlJdsAJibcACYm3AAmJtsAJyfdACUl3QAmJtsAKCjdACUl3AAmJtwAJyfcACYm3AAoKNcAJibcACcn3AAmJt0AJibcACUl3AAmJtwAKCjbACcn3AAmJtsAJibcAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgMEBQYZGQYFBAMCAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgcZGRkZGRkZGRkZGRkZGQcCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJGRkZGRkZGRkZGRkZGRkZGRkZCQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKBBkZGRkZGRkZGRkZGRkZGRkZGRkZGRkECgAAAAAAAAAAAAAAAAAAAAAAAAAAAAsZGRkZGRkZDA0ODxoaGhoPDg0MGRkZGRkZGQsAAAAAAAAAAAAAAAAAAAAAAAAAAxkZGRkZGRARGhoaGhoaGhoaGhoaERAZGRkZGRkDAAAAAAAAAAAAAAAAAAAAAAASGRkZGRkTDxoaGhoaGhoaGhoaGhoaGhoPExkZGRkZEgAAAAAAAAAAAAAAAAAAAAMZGRkZGRQaGhoaGhoaGhoaGhoaGhoaGhoaGhQZGRkZGQMAAAAAAAAAAAAAAAAACxkZGRkVERoaGhoaGhoaGhoaGhoaGhoaGhoaGhoRFRkZGRkLAAAAAAAAAAAAAAAKGRkZGRUPGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDxUZGRkZCgAAAAAAAAAAAAAEGRkZGREaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhEZGRkZBAAAAAAAAAAAAAgZGRkZFBoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoUGRkZGQgAAAAAAAAAAAkZGRkTGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaExkZGQkAAAAAAAAAAhkZGRkPGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDxkZGRkCAAAAAAAABxkZGRAaGhoaGhoaGhYXFxYaGhoaGhoaGhgXFxYaGhoaGhoaGhAZGRkHAAAAAAABGRkZGREaGhoaGhoaGhcZGRkYGhoaGhoaGBkZGRcaGhoaGhoaGhEZGRkZAQAAAAACGRkZDBoaGhoaGhoaGhcZGRkZGBoaGhoYGRkZGRcaGhoaGhoaGhoMGRkZAgAAAAADGRkZDRoaGhoaGhoaGhgZGRkZGRgaGhgZGRkZGRYaGhoaGhoaGhoNGRkZAwAAAAAEGRkZDhoaGhoaGhoaGhoYGRkZGRkYGBkZGRkZGBoaGhoaGhoaGhoOGRkZBAAAAAAFGRkZDxoaGhoaGhoaGhoaGBkZGRkZGRkZGRkYGhoaGhoaGhoaGhoPGRkZBQAAAAAGGRkZGhoaGhoaGhoaGhoaGhgZGRkZGRkZGRgaGhoaGhoaGhoaGhoaGRkZBgAAAAAZGRkZGhoaGhoaGhoaGhoaGhoYGRkZGRkZGBoaGhoaGhoaGhoaGhoaGRkZGQAAAAAZGRkZGhoaGhoaGhoaGhoaGhoYGRkZGRkZGBoaGhoaGhoaGhoaGhoaGRkZGQAAAAAGGRkZGhoaGhoaGhoaGhoaGhgZGRkZGRkZGRgaGhoaGhoaGhoaGhoaGRkZBgAAAAAFGRkZDxoaGhoaGhoaGhoaGBkZGRkZGRkZGRkYGhoaGhoaGhoaGhoPGRkZBQAAAAAEGRkZDhoaGhoaGhoaGhoYGRkZGRkYGBkZGRkZGBoaGhoaGhoaGhoOGRkZBAAAAAADGRkZDRoaGhoaGhoaGhYZGRkZGRgaGhgZGRkZGRgaGhoaGhoaGhoNGRkZAwAAAAACGRkZDBoaGhoaGhoaGhcZGRkZGBoaGhoYGRkZGRcaGhoaGhoaGhoMGRkZAgAAAAABGRkZGREaGhoaGhoaGhcZGRkYGhoaGhoaGBkZGRcaGhoaGhoaGhEZGRkZAQAAAAAABxkZGRAaGhoaGhoaGhYXFxgaGhoaGhoaGhYXFxYaGhoaGhoaGhAZGRkHAAAAAAAAAhkZGRkPGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDxkZGRkCAAAAAAAAAAkZGRkTGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaExkZGQkAAAAAAAAAAAgZGRkZFBoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoUGRkZGQgAAAAAAAAAAAAEGRkZGREaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhEZGRkZBAAAAAAAAAAAAAAKGRkZGRUPGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDxUZGRkZCgAAAAAAAAAAAAAACxkZGRkVERoaGhoaGhoaGhoaGhoaGhoaGhoaGhoRFRkZGRkLAAAAAAAAAAAAAAAAAAMZGRkZGRQaGhoaGhoaGhoaGhoaGhoaGhoaGhQZGRkZGQMAAAAAAAAAAAAAAAAAAAASGRkZGRkTDxoaGhoaGhoaGhoaGhoaGhoPExkZGRkZEgAAAAAAAAAAAAAAAAAAAAAAAxkZGRkZGRARGhoaGhoaGhoaGhoaERAZGRkZGRkDAAAAAAAAAAAAAAAAAAAAAAAAAAsZGRkZGRkZDA0ODxoaGhoPDg0MGRkZGRkZGQsAAAAAAAAAAAAAAAAAAAAAAAAAAAAKBBkZGRkZGRkZGRkZGRkZGRkZGRkZGRkECgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJGRkZGRkZGRkZGRkZGRkZGRkZCQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgcZGRkZGRkZGRkZGRkZGQcCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgMEBQYZGQYFBAMCAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////AAD///////8AAP//gAH//wAA//4AAH//AAD/+AAAH/8AAP/gAAAH/wAA/8AAAAP/AAD/gAAAAf8AAP8AAAAA/wAA/gAAAAB/AAD8AAAAAD8AAPgAAAAAHwAA+AAAAAAfAADwAAAAAA8AAPAAAAAADwAA4AAAAAAHAADgAAAAAAcAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADgAAAAAAcAAOAAAAAABwAA8AAAAAAPAADwAAAAAA8AAPgAAAAAHwAA+AAAAAAfAAD8AAAAAD8AAP4AAAAAfwAA/wAAAAD/AAD/gAAAAf8AAP/AAAAD/wAA/+AAAAf/AAD/+AAAH/8AAP/+AAB//wAA//+AAf//AAD///////8AAP///////wAA"};async function K(t){return Jt[t]}function zt(t){if(document.visibilityState==="visible")return;let A=async()=>{t===0?new Notification("Execution completed",{body:"Your notebook run completed successfully.",icon:await K("success")}):new Notification("Execution failed",{body:`Your notebook run encountered ${t} error(s).`,icon:await K("error")})};!("Notification"in window)||Notification.permission==="denied"||(Notification.permission==="granted"?A():Notification.permission==="default"&&Notification.requestPermission().then(e=>{e==="granted"&&A()}))}const $t=t=>{let{isRunning:A}=t,e=Be(),a=document.querySelector("link[rel~='icon']");a||(a=document.createElement("link"),a.rel="icon",document.getElementsByTagName("head")[0].append(a)),(0,g.useEffect)(()=>{!A&&a.href.includes("favicon")||(async()=>{let s;if(s=A?"running":e.length===0?"success":"error",a.href=await K(s),!document.hasFocus())return;let o=setTimeout(async()=>{a.href=await K("idle")},3e3);return()=>clearTimeout(o)})()},[A,e,a]);let G=lt(A)??A;return(0,g.useEffect)(()=>{G&&!A&&zt(e.length)},[e,G,A]),Qe(window,"focus",async s=>{A||(a.href=await K("idle"))}),null};function Aa(){let{cellIds:t,cellRuntime:A}=ae.get(CA),e=t.inOrderIds.find(a=>{var G;return((G=A[a])==null?void 0:G.status)==="running"});e&&Et(e,"focus")}var tA=B();const ea=t=>{let A=(0,tA.c)(18),{connection:e,isRunning:a,onReconnect:G}=t,{mode:s}=y(He),o=e.state===p.CLOSED,i=e.state===p.OPEN,r=o&&e.code===D.KERNEL_DISCONNECTED,n;A[0]===o?n=A[1]:(n=o&&(0,R.jsx)(Ga,{}),A[0]=o,A[1]=n);let k=s==="read"?"fixed":"absolute",l;A[2]===k?l=A[3]:(l=w("z-50 top-4 left-4",k),A[2]=k,A[3]=l);let Z;A[4]!==i||A[5]!==a?(Z=i&&a&&(0,R.jsx)(aa,{}),A[4]=i,A[5]=a,A[6]=Z):Z=A[6];let d;A[7]!==r||A[8]!==o||A[9]!==G?(d=o&&(0,R.jsx)(ta,{onReconnect:r?G:void 0}),A[7]=r,A[8]=o,A[9]=G,A[10]=d):d=A[10];let h;A[11]!==l||A[12]!==Z||A[13]!==d?(h=(0,R.jsxs)("div",{className:l,children:[Z,d]}),A[11]=l,A[12]=Z,A[13]=d,A[14]=h):h=A[14];let u;return A[15]!==n||A[16]!==h?(u=(0,R.jsxs)(R.Fragment,{children:[n,h]}),A[15]=n,A[16]=h,A[17]=u):u=A[17],u};var WA="print:hidden pointer-events-auto hover:cursor-pointer",ta=t=>{let A=(0,tA.c)(12),{onReconnect:e}=t,a=!e,G=a?"App disconnected":"App disconnected \u2014 click to reconnect",s=a?0:-1,o;A[0]===Symbol.for("react.memo_cache_sentinel")?(o=w(WA,"bg-transparent border-0 p-0"),A[0]=o):o=A[0];let i=a?"App disconnected":"Reconnect to app",r;A[1]===Symbol.for("react.memo_cache_sentinel")?(r=(0,R.jsx)(Nt,{className:"w-[25px] h-[25px] text-(--red-11)"}),A[1]=r):r=A[1];let n;A[2]!==a||A[3]!==e||A[4]!==i?(n=(0,R.jsx)("button",{type:"button",className:o,"aria-label":i,"data-testid":"disconnected-indicator",onClick:e,disabled:a,children:r}),A[2]=a,A[3]=e,A[4]=i,A[5]=n):n=A[5];let k;A[6]!==s||A[7]!==n?(k=(0,R.jsx)("span",{tabIndex:s,children:n}),A[6]=s,A[7]=n,A[8]=k):k=A[8];let l;return A[9]!==G||A[10]!==k?(l=(0,R.jsx)(_A,{content:G,children:k}),A[9]=G,A[10]=k,A[11]=l):l=A[11],l},aa=()=>{let t=(0,tA.c)(6),A=y(pe),e=A?"Scratchpad is running":"Jump to running cell",a=A?void 0:Aa,G;t[0]===Symbol.for("react.memo_cache_sentinel")?(G=(0,R.jsx)(St,{className:"running-app-icon",size:30,strokeWidth:1}),t[0]=G):G=t[0];let s;t[1]===a?s=t[2]:(s=(0,R.jsx)("div",{className:WA,"data-testid":"loading-indicator",onClick:a,children:G}),t[1]=a,t[2]=s);let o;return t[3]!==s||t[4]!==e?(o=(0,R.jsx)(_A,{content:e,side:"right",children:s}),t[3]=s,t[4]=e,t[5]=o):o=t[5],o},Ga=()=>{let t=(0,tA.c)(1),A;return t[0]===Symbol.for("react.memo_cache_sentinel")?(A=(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)("div",{className:"noise"}),(0,R.jsx)("div",{className:"disconnected-gradient"})]}),t[0]=A):A=t[0],A},N=B(),sa=et,oa=Gt,ra=At(at),UA=g.forwardRef((t,A)=>{let e=(0,N.c)(9),a,G;e[0]===t?(a=e[1],G=e[2]):({className:a,...G}=t,e[0]=t,e[1]=a,e[2]=G);let s;e[3]===a?s=e[4]:(s=w("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",a),e[3]=a,e[4]=s);let o;return e[5]!==G||e[6]!==A||e[7]!==s?(o=(0,R.jsx)(vA,{className:s,...G,ref:A}),e[5]=G,e[6]=A,e[7]=s,e[8]=o):o=e[8],o});UA.displayName=vA.displayName;var na=Je("fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500",{variants:{side:{top:"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",bottom:"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",left:"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",right:"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"}},defaultVariants:{side:"right"}}),VA=g.forwardRef((t,A)=>{let e=(0,N.c)(15),a,G,s,o;e[0]===t?(a=e[1],G=e[2],s=e[3],o=e[4]):({side:o,className:G,children:a,...s}=t,e[0]=t,e[1]=a,e[2]=G,e[3]=s,e[4]=o);let i=o===void 0?"right":o,r;e[5]===Symbol.for("react.memo_cache_sentinel")?(r=(0,R.jsx)(UA,{}),e[5]=r):r=e[5];let n;e[6]!==G||e[7]!==i?(n=w(na({side:i}),G),e[6]=G,e[7]=i,e[8]=n):n=e[8];let k;e[9]===Symbol.for("react.memo_cache_sentinel")?(k=(0,R.jsxs)(tt,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary",children:[(0,R.jsx)(wt,{className:"h-4 w-4"}),(0,R.jsx)("span",{className:"sr-only",children:"Close"})]}),e[9]=k):k=e[9];let l;return e[10]!==a||e[11]!==s||e[12]!==A||e[13]!==n?(l=(0,R.jsx)(ra,{children:(0,R.jsxs)($e,{children:[r,(0,R.jsxs)(SA,{ref:A,className:n,...s,children:[a,k]})]})}),e[10]=a,e[11]=s,e[12]=A,e[13]=n,e[14]=l):l=e[14],l});VA.displayName=SA.displayName;var ia=t=>{let A=(0,N.c)(8),e,a;A[0]===t?(e=A[1],a=A[2]):({className:e,...a}=t,A[0]=t,A[1]=e,A[2]=a);let G;A[3]===e?G=A[4]:(G=w("flex flex-col space-y-2 text-center sm:text-left",e),A[3]=e,A[4]=G);let s;return A[5]!==a||A[6]!==G?(s=(0,R.jsx)("div",{className:G,...a}),A[5]=a,A[6]=G,A[7]=s):s=A[7],s};ia.displayName="SheetHeader";var la=t=>{let A=(0,N.c)(8),e,a;A[0]===t?(e=A[1],a=A[2]):({className:e,...a}=t,A[0]=t,A[1]=e,A[2]=a);let G;A[3]===e?G=A[4]:(G=w("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),A[3]=e,A[4]=G);let s;return A[5]!==a||A[6]!==G?(s=(0,R.jsx)("div",{className:G,...a}),A[5]=a,A[6]=G,A[7]=s):s=A[7],s};la.displayName="SheetFooter";var ka=g.forwardRef((t,A)=>{let e=(0,N.c)(9),a,G;e[0]===t?(a=e[1],G=e[2]):({className:a,...G}=t,e[0]=t,e[1]=a,e[2]=G);let s;e[3]===a?s=e[4]:(s=w("text-lg font-semibold text-foreground",a),e[3]=a,e[4]=s);let o;return e[5]!==G||e[6]!==A||e[7]!==s?(o=(0,R.jsx)(NA,{ref:A,className:s,...G}),e[5]=G,e[6]=A,e[7]=s,e[8]=o):o=e[8],o});ka.displayName=NA.displayName;var ca=g.forwardRef((t,A)=>{let e=(0,N.c)(9),a,G;e[0]===t?(a=e[1],G=e[2]):({className:a,...G}=t,e[0]=t,e[1]=a,e[2]=G);let s;e[3]===a?s=e[4]:(s=w("text-sm text-muted-foreground",a),e[3]=a,e[4]=s);let o;return e[5]!==G||e[6]!==A||e[7]!==s?(o=(0,R.jsx)(bA,{ref:A,className:s,...G}),e[5]=G,e[6]=A,e[7]=s,e[8]=o):o=e[8],o});ca.displayName=bA.displayName;var Ra=B();const BA=(0,g.memo)(()=>{let t=(0,Ra.c)(1),A;return t[0]===Symbol.for("react.memo_cache_sentinel")?(A=(0,R.jsx)(st,{name:MA.SIDEBAR}),t[0]=A):A=t[0],A});BA.displayName="SidebarSlot";var Za=B();const da=t=>{let A=(0,Za.c)(6),{openWidth:e}=t,a;A[0]===Symbol.for("react.memo_cache_sentinel")?(a=(0,R.jsx)(oa,{className:"lg:hidden",asChild:!0,children:(0,R.jsx)(FA,{variant:"ghost",className:"bg-background",children:(0,R.jsx)(TA,{className:"w-5 h-5"})})}),A[0]=a):a=A[0];let G;A[1]===e?G=A[2]:(G={maxWidth:e},A[1]=e,A[2]=G);let s;A[3]===Symbol.for("react.memo_cache_sentinel")?(s=(0,R.jsx)(BA,{}),A[3]=s):s=A[3];let o;return A[4]===G?o=A[5]:(o=(0,R.jsxs)(sa,{children:[a,(0,R.jsx)(VA,{className:"w-full px-3 h-full flex flex-col overflow-y-auto",style:G,side:"left",children:s})]}),A[4]=G,A[5]=o),o};var ha=B();const ga=t=>{let A=(0,ha.c)(7),{isOpen:e,toggle:a}=t,G=e?"rotate-0":"rotate-180",s;A[0]===G?s=A[1]:(s=w("h-5 w-5 transition-transform ease-in-out duration-700",G),A[0]=G,A[1]=s);let o;A[2]===s?o=A[3]:(o=(0,R.jsx)(rt,{className:s}),A[2]=s,A[3]=o);let i;return A[4]!==o||A[5]!==a?(i=(0,R.jsx)("div",{className:"invisible lg:visible absolute top-[12px] right-[16px] z-20",children:(0,R.jsx)(FA,{onClick:a,className:"w-10 h-8",variant:"ghost",size:"icon",children:o})}),A[4]=o,A[5]=a,A[6]=i):i=A[6],i};var ua=B();const Ba=t=>{let A=(0,ua.c)(11),{isOpen:e,toggle:a,width:G}=t,s=e?G:Me,o;A[0]===s?o=A[1]:(o={width:s},A[0]=s,A[1]=o);let i;A[2]===Symbol.for("react.memo_cache_sentinel")?(i=w("app-sidebar auto-collapse-nav","top-0 left-0 z-20 h-full hidden lg:block relative transition-[width] ease-in-out duration-300"),A[2]=i):i=A[2];let r;A[3]!==e||A[4]!==a?(r=(0,R.jsx)(ga,{isOpen:e,toggle:a}),A[3]=e,A[4]=a,A[5]=r):r=A[5];let n;A[6]===Symbol.for("react.memo_cache_sentinel")?(n=(0,R.jsx)("div",{className:"relative h-full flex flex-col px-3 pb-16 pt-14 overflow-y-auto shadow-sm border-l",children:(0,R.jsx)(BA,{})}),A[6]=n):n=A[6];let k;return A[7]!==e||A[8]!==o||A[9]!==r?(k=(0,R.jsxs)("aside",{"data-expanded":e,style:o,className:i,children:[r,n]}),A[7]=e,A[8]=o,A[9]=r,A[10]=k):k=A[10],k};var ma=B();const Ya=t=>{let A=(0,ma.c)(15),{children:e}=t,[a,G]=fA(Se),{isOpen:s,width:o}=a;if(ot(MA.SIDEBAR).length===0)return e;let i;A[0]===o?i=A[1]:(i=ve(o),A[0]=o,A[1]=i);let r=i,n;A[2]!==G||A[3]!==s?(n=()=>G({type:"toggle",isOpen:!s}),A[2]=G,A[3]=s,A[4]=n):n=A[4];let k;A[5]!==s||A[6]!==r||A[7]!==n?(k=(0,R.jsx)(Ba,{isOpen:s,width:r,toggle:n}),A[5]=s,A[6]=r,A[7]=n,A[8]=k):k=A[8];let l;A[9]===r?l=A[10]:(l=(0,R.jsx)("div",{className:"absolute top-3 left-4 flex items-center z-50",children:(0,R.jsx)(da,{openWidth:r})}),A[9]=r,A[10]=l);let Z;return A[11]!==e||A[12]!==k||A[13]!==l?(Z=(0,R.jsxs)("div",{className:"inset-0 absolute flex",children:[k,l,e]}),A[11]=e,A[12]=k,A[13]=l,A[14]=Z):Z=A[14],Z};var pa=B();const fa=t=>{let A=(0,pa.c)(18),{width:e,connection:a,isRunning:G,children:s,onReconnect:o}=t,i=a.state,r;A[0]===G?r=A[1]:(r=(0,R.jsx)($t,{isRunning:G}),A[0]=G,A[1]=r);let n;A[2]!==a||A[3]!==G||A[4]!==o?(n=(0,R.jsx)(ea,{connection:a,isRunning:G,onReconnect:o}),A[2]=a,A[3]=G,A[4]=o,A[5]=n):n=A[5];let k;A[6]!==i||A[7]!==e?(k=w("mathjax_ignore",Ke(i)&&"disconnected","bg-background w-full h-full text-textColor","flex flex-col overflow-y-auto",e==="full"&&"config-width-full",e==="columns"?"overflow-x-auto":"overflow-x-auto sm:overflow-x-hidden","print:height-fit"),A[6]=i,A[7]=e,A[8]=k):k=A[8];let l;A[9]!==s||A[10]!==i||A[11]!==k||A[12]!==e?(l=(0,R.jsx)(Ut,{children:(0,R.jsx)(Ya,{children:(0,R.jsx)("div",{id:"App","data-config-width":e,"data-connection-state":i,className:k,children:s})})}),A[9]=s,A[10]=i,A[11]=k,A[12]=e,A[13]=l):l=A[13];let Z;return A[14]!==r||A[15]!==n||A[16]!==l?(Z=(0,R.jsxs)(R.Fragment,{children:[r,n,l]}),A[14]=r,A[15]=n,A[16]=l,A[17]=Z):Z=A[17],Z};function wa(t){return t.kind==="missing"}function qA(t){return t.kind==="installing"}var{valueAtom:Ea,useActions:xa}=nt(()=>({packageAlert:null,startupLogsAlert:null,packageLogs:{}}),{addPackageAlert:(t,A)=>{var G;let e={...t.packageLogs};if(qA(A)&&A.logs&&A.log_status)for(let[s,o]of Object.entries(A.logs))switch(A.log_status){case"start":e[s]=o;break;case"append":e[s]=(e[s]||"")+o;break;case"done":e[s]=(e[s]||"")+o;break}let a=((G=t.packageAlert)==null?void 0:G.id)||Yt();return{...t,packageAlert:{id:a,...A},packageLogs:e}},clearPackageAlert:(t,A)=>t.packageAlert!==null&&t.packageAlert.id===A?{...t,packageAlert:null,packageLogs:{}}:t,addStartupLog:(t,A)=>{var a;let e=((a=t.startupLogsAlert)==null?void 0:a.content)||"";return{...t,startupLogsAlert:{...t.startupLogsAlert,content:e+A.content,status:A.status}}},clearStartupLogsAlert:t=>({...t,startupLogsAlert:null})});const Ca=()=>y(Ea);function XA(){return xa()}var JA=B();const zA=(0,g.memo)(t=>{let A=(0,JA.c)(11),{appConfig:e,mode:a,children:G}=t,{selectedLayout:s,layoutData:o}=kt();if(!y(yA)&&(a==="edit"||a==="present"&&s==="vertical"))return G;let i;if(A[0]!==a||A[1]!==s){i=s;let l=new URLSearchParams(window.location.search);if(a==="read"&&l.has(I.viewAs)){let Z=l.get(I.viewAs);vt.includes(Z)&&(i=Z)}A[0]=a,A[1]=s,A[2]=i}else i=A[2];let r;A[3]===i?r=A[4]:(r=Rt.find(l=>l.type===i),A[3]=i,A[4]=r);let n=r;if(!n)return G;let k;return A[5]!==e||A[6]!==i||A[7]!==o||A[8]!==a||A[9]!==n?(k=(0,R.jsx)(ya,{appConfig:e,mode:a,plugin:n,layoutData:o,finalLayout:i}),A[5]=e,A[6]=i,A[7]=o,A[8]=a,A[9]=n,A[10]=k):k=A[10],k});zA.displayName="CellsRenderer";const ya=t=>{let A=(0,JA.c)(18),{appConfig:e,mode:a,plugin:G,layoutData:s,finalLayout:o}=t,i=ne(),{setCurrentLayoutData:r}=jA(),n,k,l,Z,d;if(A[0]!==e||A[1]!==o||A[2]!==s||A[3]!==a||A[4]!==i||A[5]!==G){let u=de(i);n=G.Component,k=e,l=a,Z=u,d=s[o]||G.getInitialLayout(u),A[0]=e,A[1]=o,A[2]=s,A[3]=a,A[4]=i,A[5]=G,A[6]=n,A[7]=k,A[8]=l,A[9]=Z,A[10]=d}else n=A[6],k=A[7],l=A[8],Z=A[9],d=A[10];let h;return A[11]!==n||A[12]!==r||A[13]!==k||A[14]!==l||A[15]!==Z||A[16]!==d?(h=(0,R.jsx)(n,{appConfig:k,mode:l,cells:Z,layout:d,setLayout:r}),A[11]=n,A[12]=r,A[13]=k,A[14]=l,A[15]=Z,A[16]=d,A[17]=h):h=A[17],h};var Da=class $A{constructor(A){C(this,"hasStarted",!1);C(this,"handleReadyEvent",A=>{let e=A.detail.objectId;if(!this.uiElementRegistry.has(e))return;let a=this.uiElementRegistry.lookupValue(e);a!==void 0&&this.sendComponentValues({objectIds:[e],values:[a]}).catch(G=>{Y.warn(G)})});this.uiElementRegistry=A}static get INSTANCE(){let A="_marimo_private_RuntimeState";return window[A]||(window[A]=new $A(T)),window[A]}get sendComponentValues(){if(!this._sendComponentValues)throw Error("sendComponentValues is not set");return this._sendComponentValues}start(A){if(this.hasStarted){Y.warn("RuntimeState already started");return}this._sendComponentValues=A,document.addEventListener(PA.TYPE,this.handleReadyEvent),this.hasStarted=!0}stop(){if(!this.hasStarted){Y.warn("RuntimeState already stopped");return}document.removeEventListener(PA.TYPE,this.handleReadyEvent),this.hasStarted=!1}};const mA="MARIMO_TRANSPORT_EXHAUSTED";var va=class{constructor(t){C(this,"closeWrappers",new WeakMap);this.inner=new Dt(t,void 0,{maxRetries:10,debug:!1,startClosed:!0,connectionTimeout:1e4})}get readyState(){return this.inner.readyState}reconnect(t,A){this.inner.reconnect(t,A)}close(){this.inner.close()}send(t){this.inner.send(t)}addEventListener(t,A){if(t==="close"){let e=A;if(this.closeWrappers.has(e))return;let a=G=>{this.inner.retryCount>=10?e(new CloseEvent("close",{code:G.code,reason:mA,wasClean:G.wasClean})):e(G)};this.closeWrappers.set(e,a),this.inner.addEventListener("close",a);return}this.inner.addEventListener(t,A)}removeEventListener(t,A){if(t==="close"){let e=A,a=this.closeWrappers.get(e);a&&(this.closeWrappers.delete(e),this.inner.removeEventListener("close",a));return}this.inner.removeEventListener(t,A)}},ba=1e4,Sa=1e3,Na=1e4,Ma=1.3,_a=1006,Fa=class{constructor(t,A=()=>({})){C(this,"subscriptions",new _e);C(this,"abortController",null);C(this,"retryTimer",null);C(this,"retryCount",0);C(this,"userClosed",!1);C(this,"state",WebSocket.CLOSED);this.urlProvider=t,this.headersProvider=A}get readyState(){return this.state}reconnect(t,A){var e;this.userClosed=!1,this.retryCount=0,this.clearRetryTimer(),(e=this.abortController)==null||e.abort(),this.connect()}close(){var t;this.userClosed=!0,this.clearRetryTimer(),this.state=WebSocket.CLOSED,(t=this.abortController)==null||t.abort(),this.abortController=null}send(t){Y.warn("SseTransport does not support send(); dropping message")}addEventListener(t,A){this.subscriptions.addSubscription(t,A)}removeEventListener(t,A){this.subscriptions.removeSubscription(t,A)}connect(){this.state=WebSocket.CONNECTING,this.run()}async run(){let t=new AbortController;this.abortController=t;let A=setTimeout(()=>t.abort(),ba),e=null;try{let G=await fetch(this.urlProvider(),{headers:{...this.headersProvider(),Accept:"text/event-stream"},signal:t.signal});if(clearTimeout(A),!G.ok||G.body===null)throw Error(`Unexpected SSE response: ${G.status}`);this.state=WebSocket.OPEN,this.subscriptions.notify("open",new Event("open")),e=await this.readEvents(G.body)}catch(G){if(clearTimeout(A),this.isSuperseded(t))return;Y.warn("SSE connection failed",G),this.subscriptions.notify("error",new Event("error"))}if(this.isSuperseded(t))return;t.abort(),this.state=WebSocket.CLOSED,this.retryCount+=1;let a=this.retryCount>=10;this.subscriptions.notify("close",new CloseEvent("close",{code:(e==null?void 0:e.code)??_a,reason:a?mA:(e==null?void 0:e.reason)??"",wasClean:e!==null})),!(a||this.isSuperseded(t))&&this.scheduleRetry()}isSuperseded(t){return this.userClosed||this.abortController!==t}scheduleRetry(){this.clearRetryTimer(),this.state=WebSocket.CONNECTING;let t=Math.min(Sa*Ma**this.retryCount,Na);this.retryTimer=setTimeout(()=>{this.retryTimer=null,this.connect()},t)}clearRetryTimer(){this.retryTimer!==null&&(clearTimeout(this.retryTimer),this.retryTimer=null)}async readEvents(t){let A=t.getReader(),e=new TextDecoder,a="",G=null,s=[],o=()=>{if(s.length===0)return G=null,null;let i=s.join(`
|
|
1
|
+
var ee=Object.defineProperty;var te=(t,A,e)=>A in t?ee(t,A,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[A]=e;var C=(t,A,e)=>te(t,typeof A!="symbol"?A+"":A,e);import{s as pA}from"./chunk-LvLJmgfZ.js";import{d as L,i as ae,l as fA,p as P,u as y}from"./useEvent-D91BmmQi.js";import{t as Ge}from"./react-Bj1aDYRI.js";import{Br as se,Bt as oe,E as wA,En as re,F as ne,Gr as EA,Hn as ie,L as le,Lt as ke,Rt as ce,Vt as Re,at as Ze,c as de,cn as xA,ea as he,h as ge,jn as ue,k as Be,m as RA,oa as me,sn as Ye,w as pe,y as CA,z as fe,zt as we}from"./cells-CMc2NsXm.js";import{t as B}from"./compiler-runtime-B3qBwwSJ.js";import{_ as Ee,c as xe,g as Ce,i as ye,m as De,n as ve,o as T,p as be,r as Se,s as Ne,t as Me,v as _e,x as Fe,y as Oe}from"./state-BuzCk6Z3.js";import{g as Y,t as Qe}from"./useEventListener-C0195JsF.js";import{t as je}from"./objects-BlG0ZrO0.js";import{D as Le,f as Pe,w as Te}from"./utils-BWBBpCkT.js";import{r as I}from"./constants-CDyU_g2F.js";import{D as Ie,M as ZA,O as yA,T as p,d as Ke,j as He,l as DA,o as We,v as Ue,w as D}from"./config-B-Q7J_6d.js";import{o as Ve}from"./switch-OVajJBPR.js";import{i as qe}from"./readonly-python-code-Bmo6cMSq.js";import{n as Xe}from"./ErrorBoundary-DzTD8LVq.js";import{n as Je,t as w}from"./cn-DYvqRARy.js";import{t as ze}from"./jsx-runtime-Blw4afVn.js";import{o as $e,r as At}from"./fullscreen-CTDqNQr6.js";import{_ as et,f as tt,g as at,h as vA,m as bA,p as SA,v as NA,y as Gt}from"./alert-dialog-Bb8Lz8ko.js";import{At as st,St as MA,jt as ot}from"./JsonOutput-E3o1Uk0e.js";import{g as rt}from"./download-U_wgQ8mC.js";import{t as _A}from"./tooltip-4bZlU7jl.js";import{t as FA}from"./button-DDGiD1NW.js";import{t as nt}from"./createReducer-DGx5Af-C.js";import{i as OA}from"./strings--BknHX9C.js";import{t as it}from"./requests-9-v2bhoi.js";import{t as dA}from"./createLucideIcon-w-Qo9n0R.js";import{F as QA,P as lt,a as kt,i as jA,n as ct,o as Rt,s as Zt}from"./layout-DKUs0ozP.js";import{c as dt,r as ht,s as gt}from"./state-DDag0B_B.js";import{d as ut,n as Bt}from"./markdown-renderer-uWTrQId1.js";import{n as mt}from"./spinner-D-V4psAa.js";import{t as Yt}from"./uuid-ImXS-885.js";import{t as hA}from"./use-toast-BwJoaaDM.js";import{i as gA}from"./session-BmukRjSi.js";import{t as pt}from"./RenderHTML-DRJxD5FQ.js";import{r as ft}from"./share-852X_cqy.js";import{a as LA}from"./errors-PgHhDa-M.js";import{s as wt}from"./react-icons.esm-D4GMDkIf.js";import{r as PA}from"./events-90X9nql5.js";import{i as Et}from"./cell-link-DGv7Q4Mc.js";import{n as xt}from"./useAsyncData-Bg5iAViP.js";import{t as Ct}from"./requests-CIR84T8A.js";import{t as yt}from"./request-registry-CEkYnwgr.js";import{t as Dt}from"./ws-CNqquaud.js";import{n as vt}from"./types-C7hjolXC.js";import{n as bt}from"./runs-CZN8py6x.js";var St=dA("hourglass",[["path",{d:"M5 22h14",key:"ehvnwv"}],["path",{d:"M5 2h14",key:"pdyrp9"}],["path",{d:"M17 22v-4.172a2 2 0 0 0-.586-1.414L12 12l-4.414 4.414A2 2 0 0 0 7 17.828V22",key:"1d314k"}],["path",{d:"M7 2v4.172a2 2 0 0 0 .586 1.414L12 12l4.414-4.414A2 2 0 0 0 17 6.172V2",key:"1vvvr6"}]]),TA=dA("menu",[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]]),Nt=dA("unlink",[["path",{d:"m18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71",key:"yqzxt4"}],["path",{d:"m5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71",key:"4qinb0"}],["line",{x1:"8",x2:"8",y1:"2",y2:"5",key:"1041cp"}],["line",{x1:"2",x2:"5",y1:"8",y2:"8",key:"14m1p5"}],["line",{x1:"16",x2:"16",y1:"19",y2:"22",key:"rzdirn"}],["line",{x1:"19",x2:"22",y1:"16",y2:"16",key:"ox905f"}]]),Mt=B(),R=pA(ze(),1);const _t=t=>{let A=(0,Mt.c)(2),{reason:e}=t,a;return A[0]===e?a=A[1]:(a=(0,R.jsx)("div",{className:"font-mono text-center text-base text-(--red-11)",children:(0,R.jsx)("p",{children:e})}),A[0]=e,A[1]=a),a};var Ft=B(),g=pA(Ge(),1);const Ot=t=>{let A=(0,Ft.c)(7),{connection:e,className:a,children:G}=t,s;A[0]!==e.reason||A[1]!==e.state?(s=e.state===p.CLOSED&&(0,R.jsx)(_t,{reason:e.reason}),A[0]=e.reason,A[1]=e.state,A[2]=s):s=A[2];let o;return A[3]!==G||A[4]!==a||A[5]!==s?(o=(0,R.jsxs)("div",{className:a,children:[G,s]}),A[3]=G,A[4]=a,A[5]=s,A[6]=o):o=A[6],o};var Qt=B();function jt(t){let A=(0,Qt.c)(3),[e,a]=(0,g.useState)(t<=0),G,s;return A[0]===t?(G=A[1],s=A[2]):(G=()=>{if(t<=0){a(!0);return}a(!1);let o=setTimeout(()=>a(!0),t);return()=>clearTimeout(o)},s=[t],A[0]=t,A[1]=G,A[2]=s),(0,g.useLayoutEffect)(G,s),e}const IA=t=>{let{requires:A,fallback:e,delay:a,children:G}=t,s=e===void 0?null:e,o=a===void 0?0:a,i=y(A),r=jt(i?0:o);return i?G:r?s:null};var Lt=B();const Pt=t=>{let A=(0,Lt.c)(10),{title:e}=t,[a,G]=(0,g.useState)(e),[s,o]=(0,g.useState)(!0),i,r;A[0]!==a||A[1]!==e?(i=()=>{if(e!==a){o(!1);let d=setTimeout(()=>{G(e),o(!0)},300);return()=>clearTimeout(d)}},r=[e,a],A[0]=a,A[1]=e,A[2]=i,A[3]=r):(i=A[2],r=A[3]),(0,g.useEffect)(i,r);let n;A[4]===Symbol.for("react.memo_cache_sentinel")?(n=(0,R.jsx)(mt,{className:"size-20 animate-spin text-primary","data-testid":"large-spinner",strokeWidth:1}),A[4]=n):n=A[4];let k=s?"opacity-100":"opacity-0",l;A[5]===k?l=A[6]:(l=w("mt-2 text-muted-foreground font-semibold text-lg transition-opacity duration-300",k),A[5]=k,A[6]=l);let Z;return A[7]!==a||A[8]!==l?(Z=(0,R.jsxs)("div",{className:"flex flex-col h-full flex-1 items-center justify-center p-4",children:[n,(0,R.jsx)("div",{className:l,children:a})]}),A[7]=a,A[8]=l,A[9]=Z):Z=A[9],Z};function Tt(t,A){return t==="edit"||t==="home"||t==="gallery"?!0:t==="present"||gA(I.includeCode,"false")||gA(I.showCode,"false")?!1:gA(I.showCode,"true")?!0:A}function It(t){let A=Tt(t.mode,t.showAppCode),e=t.hasCells&&t.hasCachedOutputs;return{showCode:A,showCachedOutputs:e,canPaint:t.hasCells&&(A||e||t.allCellsIdle)}}var KA=P(t=>{let A=!1,e=!0;for(let a of Object.values(t(CA).cellRuntime))Bt(a.output)||(A=!0),a.status!=="idle"&&(e=!1);return{hasCachedOutputs:A,allCellsIdle:e}}),Kt=P(t=>t(KA).hasCachedOutputs),Ht=P(t=>t(KA).allCellsIdle);const Wt=P(t=>It({mode:t(Ie),showAppCode:t(Ve),hasCells:t(ge),hasCachedOutputs:t(Kt),allCellsIdle:t(Ht)})),HA=P(t=>t(Wt).canPaint);var uA=B();const Ut=t=>{let A=(0,uA.c)(2),{children:e}=t;if(!ZA())return e;let a;return A[0]===e?a=A[1]:(a=(0,R.jsx)(Vt,{children:e}),A[0]=e,A[1]=a),a};var Vt=t=>{let A=(0,uA.c)(8),{children:e}=t,a;A[0]===Symbol.for("react.memo_cache_sentinel")?(a=[],A[0]=a):a=A[0];let{error:G}=xt(Xt,a),s=y(HA),o=(0,g.useRef)(!1),i,r;if(A[1]!==s||A[2]!==G?(i=()=>{G&&s&&!o.current&&(o.current=!0,Y.error("Pyodide failed to initialize",G),hA({title:"Failed to start the notebook runtime",description:LA(G),variant:"danger"}))},r=[G,s],A[1]=s,A[2]=G,A[3]=i,A[4]=r):(i=A[3],r=A[4]),(0,g.useEffect)(i,r),G&&!s)throw G;let n;A[5]===Symbol.for("react.memo_cache_sentinel")?(n=(0,R.jsx)(qt,{}),A[5]=n):n=A[5];let k;return A[6]===e?k=A[7]:(k=(0,R.jsx)(IA,{requires:HA,fallback:n,children:e}),A[6]=e,A[7]=k),k},qt=()=>{let t=(0,uA.c)(2),A=y(Ce),e=A.kind==="loading"?A.message:"Loading\u2026",a;return t[0]===e?a=t[1]:(a=(0,R.jsx)(Pt,{title:e}),t[0]=e,t[1]=a),a};async function Xt(){return await be.INSTANCE.initialized.promise,!0}var Jt={idle:"./favicon.ico",success:"data:image/x-icon;base64,AAABAAEAMDAAAAEACACoDgAAFgAAACgAAAAwAAAAYAAAAAEACAAAAAAAAAkAAAAAAAAAAAAAAAEAAAABAAAAAAAAXXQAAFd3AwBWeAQAVngEAFd4AwBXeAQAVnkEAFh3AwBXdwQAVXcGAFd4BQBXeAQAWHgEAFd6AwBXeAMAVnkEAFZ5AwBXdwQAV3cFAFd4BABYeAQAV3gEAFh4BABXeAQA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgMEBQYYGAYFBAMCAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgcYGBgYGBgYGBgYGBgYGAcCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJGBgYGBgYGBgYGBgYGBgYGBgYCQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKBBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgECgAAAAAAAAAAAAAAAAAAAAAAAAAAAAsYGBgYGBgYDA0OChkZGRkKDg0MGBgYGBgYGAsAAAAAAAAAAAAAAAAAAAAAAAAAAxgYGBgYGA8QGRkZGRkZGRkZGRkZEA8YGBgYGBgDAAAAAAAAAAAAAAAAAAAAAAARGBgYGBgSChkZGRkZGRkZGRkZGRkZGRkKEhgYGBgYEQAAAAAAAAAAAAAAAAAAAAMYGBgYGBMZGRkZGRkZGRkZGRkZGRkZGRkZGRMYGBgYGAMAAAAAAAAAAAAAAAAACxgYGBgUEBkZGRkZGRkZGRkZGRkZGRkZGRkZGRkQFBgYGBgLAAAAAAAAAAAAAAAKGBgYGBQKGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZChQYGBgYCgAAAAAAAAAAAAAEGBgYGBAZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRAYGBgYBAAAAAAAAAAAAAgYGBgYExkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkTGBgYGAgAAAAAAAAAAAkYGBgSGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZEhgYGAkAAAAAAAAAAhgYGBgKGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZChgYGBgCAAAAAAAABxgYGA8ZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGQ8YGBgHAAAAAAABGBgYGBAZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRAYGBgYAQAAAAACGBgYDBkZGRkZGRkZGRkZGRkXFhYVGRkZGRkZGRkZGRkZGRkZGRkMGBgYAgAAAAADGBgYDRkZGRkZGRkZGRkZGRcYGBgYFxkZGRkZGRkZGRkZGRkZGRkNGBgYAwAAAAAEGBgYDhkZGRkZGRkZGRkZFxgYGBgYGBcZGRkZGRkZGRkZGRkZGRkOGBgYBAAAAAAFGBgYChkZGRkZGRkZGRkXGBgYGBgYGBgXGRkZGRkZGRkZGRkZGRkKGBgYBQAAAAAGGBgYGRkZGRkZGRkZGRUYGBgYGBgYGBgYFxkZGRkZGRkZGRkZGRkZGBgYBgAAAAAYGBgYGRkZGRkZGRkZGRYYGBgYFxcYGBgYGBcZGRkZGRkZGRkZGRkZGBgYGAAAAAAYGBgYGRkZGRkZGRkZGRYYGBgXGRkXGBgYGBgXGRkZGRkZGRkZGRkZGBgYGAAAAAAGGBgYGRkZGRkZGRkZGRUWFhcZGRkZFxgYGBgYFxkZGRkZGRkZGRkZGBgYBgAAAAAFGBgYChkZGRkZGRkZGRkZGRkZGRkZGRcYGBgYGBcZGRkZGRkZGRkKGBgYBQAAAAAEGBgYDhkZGRkZGRkZGRkZGRkZGRkZGRkXGBgYGBYZGRkZGRkZGRkOGBgYBAAAAAADGBgYDRkZGRkZGRkZGRkZGRkZGRkZGRkZFxgYGBYZGRkZGRkZGRkNGBgYAwAAAAACGBgYDBkZGRkZGRkZGRkZGRkZGRkZGRkZGRUWFhUZGRkZGRkZGRkMGBgYAgAAAAABGBgYGBAZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRAYGBgYAQAAAAAABxgYGA8ZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGQ8YGBgHAAAAAAAAAhgYGBgKGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZChgYGBgCAAAAAAAAAAkYGBgSGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZEhgYGAkAAAAAAAAAAAgYGBgYExkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkTGBgYGAgAAAAAAAAAAAAEGBgYGBAZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRAYGBgYBAAAAAAAAAAAAAAKGBgYGBQKGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZChQYGBgYCgAAAAAAAAAAAAAACxgYGBgUEBkZGRkZGRkZGRkZGRkZGRkZGRkZGRkQFBgYGBgLAAAAAAAAAAAAAAAAAAMYGBgYGBMZGRkZGRkZGRkZGRkZGRkZGRkZGRMYGBgYGAMAAAAAAAAAAAAAAAAAAAARGBgYGBgSChkZGRkZGRkZGRkZGRkZGRkKEhgYGBgYEQAAAAAAAAAAAAAAAAAAAAAAAxgYGBgYGA8QGRkZGRkZGRkZGRkZEA8YGBgYGBgDAAAAAAAAAAAAAAAAAAAAAAAAAAsYGBgYGBgYDA0OChkZGRkKDg0MGBgYGBgYGAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAKBBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgECgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJGBgYGBgYGBgYGBgYGBgYGBgYCQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgcYGBgYGBgYGBgYGBgYGAcCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgMEBQYYGAYFBAMCAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////AAD///////8AAP//gAH//wAA//4AAH//AAD/+AAAH/8AAP/gAAAH/wAA/8AAAAP/AAD/gAAAAf8AAP8AAAAA/wAA/gAAAAB/AAD8AAAAAD8AAPgAAAAAHwAA+AAAAAAfAADwAAAAAA8AAPAAAAAADwAA4AAAAAAHAADgAAAAAAcAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADgAAAAAAcAAOAAAAAABwAA8AAAAAAPAADwAAAAAA8AAPgAAAAAHwAA+AAAAAAfAAD8AAAAAD8AAP4AAAAAfwAA/wAAAAD/AAD/gAAAAf8AAP/AAAAD/wAA/+AAAAf/AAD/+AAAH/8AAP/+AAB//wAA//+AAf//AAD///////8AAP///////wAA",running:"data:image/x-icon;base64,AAABAAEAMDAAAAEACACoDgAAFgAAACgAAAAwAAAAYAAAAAEACAAAAAAAAAkAAAAAAAAAAAAAAAEAAAABAAAAAAAA0YsAAMWEAwDHgwIAx4QBAMeEAgDGhAIAyIUBAMaFAwDGhAIAxoIAAMaFAgDHhAIAx4QCAMiFAwDHhAIAx4YAAMaFAgDHhQEAxoMCAMeEAgDHgwQAx4QDAMeDAgDHhAIA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgMEBQYYGAYFBAMCAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgcYGBgYGBgYGBgYGBgYGAcCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJGBgYGBgYGBgYGBgYGBgYGBgYCQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKBBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgECgAAAAAAAAAAAAAAAAAAAAAAAAAAAAsYGBgYGBgYDA0OChkZGRkKDg0MGBgYGBgYGAsAAAAAAAAAAAAAAAAAAAAAAAAAAxgYGBgYGA8QGRkZGRkZGRkZGRkZEA8YGBgYGBgDAAAAAAAAAAAAAAAAAAAAAAARGBgYGBgSChkZGRkZGRkZGRkZGRkZGRkKEhgYGBgYEQAAAAAAAAAAAAAAAAAAAAMYGBgYGBMZGRkZGRkZGRkZGRkZGRkZGRkZGRMYGBgYGAMAAAAAAAAAAAAAAAAACxgYGBgUEBkZGRkZGRkZGRkZGRkZGRkZGRkZGRkQFBgYGBgLAAAAAAAAAAAAAAAKGBgYGBQKGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZChQYGBgYCgAAAAAAAAAAAAAEGBgYGBAZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRAYGBgYBAAAAAAAAAAAAAgYGBgYExkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkTGBgYGAgAAAAAAAAAAAkYGBgSGRkZGRkZGRkZFRgWFxkZGRkZGRkZGRkZGRkZGRkZEhgYGAkAAAAAAAAAAhgYGBgKGRkZGRkZGRkZFhgYGBYVGRkZGRkZGRkZGRkZGRkZChgYGBgCAAAAAAAABxgYGA8ZGRkZGRkZGRkZGBgYGBgYFxkZGRkZGRkZGRkZGRkZGQ8YGBgHAAAAAAABGBgYGBAZGRkZGRkZGRkZGBgYGBgYGBYVGRkZGRkZGRkZGRkZGRAYGBgYAQAAAAACGBgYDBkZGRkZGRkZGRkZGBgYGBgYGBgYFxkZGRkZGRkZGRkZGRkMGBgYAgAAAAADGBgYDRkZGRkZGRkZGRkZGBgYGBgYGBgYGBYVGRkZGRkZGRkZGRkNGBgYAwAAAAAEGBgYDhkZGRkZGRkZGRkZGBgYGBUWGBgYGBgYFxkZGRkZGRkZGRkOGBgYBAAAAAAFGBgYChkZGRkZGRkZGRkZGBgYGBkZFxgYGBgYGBYVGRkZGRkZGRkKGBgYBQAAAAAGGBgYGRkZGRkZGRkZGRkZGBgYGBkZGRUWGBgYGBgYFxkZGRkZGRkZGBgYBgAAAAAYGBgYGRkZGRkZGRkZGRkZGBgYGBkZGRkZFxgYGBgYFxkZGRkZGRkZGBgYGAAAAAAYGBgYGRkZGRkZGRkZGRkZGBgYGBkZGRkZFxgYGBgYFhkZGRkZGRkZGBgYGAAAAAAGGBgYGRkZGRkZGRkZGRkZGBgYGBkZGRkXGBgYGBgYFRkZGRkZGRkZGBgYBgAAAAAFGBgYChkZGRkZGRkZGRkZGBgYGBkZFxgYGBgYGBcZGRkZGRkZGRkKGBgYBQAAAAAEGBgYDhkZGRkZGRkZGRkZGBgYGBkXGBgYGBgYFxkZGRkZGRkZGRkOGBgYBAAAAAADGBgYDRkZGRkZGRkZGRkZGBgYGBgYGBgYGBcZGRkZGRkZGRkZGRkNGBgYAwAAAAACGBgYDBkZGRkZGRkZGRkZGBgYGBgYGBgYFxkZGRkZGRkZGRkZGRkMGBgYAgAAAAABGBgYGBAZGRkZGRkZGRkZGBgYGBgYGBcZGRkZGRkZGRkZGRkZGRAYGBgYAQAAAAAABxgYGA8ZGRkZGRkZGRkZGBgYGBgYFxkZGRkZGRkZGRkZGRkZGQ8YGBgHAAAAAAAAAhgYGBgKGRkZGRkZGRkZFhgYGBcZGRkZGRkZGRkZGRkZGRkZChgYGBgCAAAAAAAAAAkYGBgSGRkZGRkZGRkZFRYWFxkZGRkZGRkZGRkZGRkZGRkZEhgYGAkAAAAAAAAAAAgYGBgYExkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkTGBgYGAgAAAAAAAAAAAAEGBgYGBAZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRAYGBgYBAAAAAAAAAAAAAAKGBgYGBQKGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZChQYGBgYCgAAAAAAAAAAAAAACxgYGBgUEBkZGRkZGRkZGRkZGRkZGRkZGRkZGRkQFBgYGBgLAAAAAAAAAAAAAAAAAAMYGBgYGBMZGRkZGRkZGRkZGRkZGRkZGRkZGRMYGBgYGAMAAAAAAAAAAAAAAAAAAAARGBgYGBgSChkZGRkZGRkZGRkZGRkZGRkKEhgYGBgYEQAAAAAAAAAAAAAAAAAAAAAAAxgYGBgYGA8QGRkZGRkZGRkZGRkZEA8YGBgYGBgDAAAAAAAAAAAAAAAAAAAAAAAAAAsYGBgYGBgYDA0OChkZGRkKDg0MGBgYGBgYGAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAKBBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgECgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJGBgYGBgYGBgYGBgYGBgYGBgYCQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgcYGBgYGBgYGBgYGBgYGAcCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgMEBQYYGAYFBAMCAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////AAD///////8AAP//gAH//wAA//4AAH//AAD/+AAAH/8AAP/gAAAH/wAA/8AAAAP/AAD/gAAAAf8AAP8AAAAA/wAA/gAAAAB/AAD8AAAAAD8AAPgAAAAAHwAA+AAAAAAfAADwAAAAAA8AAPAAAAAADwAA4AAAAAAHAADgAAAAAAcAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADgAAAAAAcAAOAAAAAABwAA8AAAAAAPAADwAAAAAA8AAPgAAAAAHwAA+AAAAAAfAAD8AAAAAD8AAP4AAAAAfwAA/wAAAAD/AAD/gAAAAf8AAP/AAAAD/wAA/+AAAAf/AAD/+AAAH/8AAP/+AAB//wAA//+AAf//AAD///////8AAP///////wAA",error:"data:image/x-icon;base64,AAABAAEAMDAAAAEACACoDgAAFgAAACgAAAAwAAAAYAAAAAEACAAAAAAAAAkAAAAAAAAAAAAAAAEAAAABAAAAAAAALi7oACcn2wAlJdsAJibcACYm3AAmJtsAJyfdACUl3QAmJtsAKCjdACUl3AAmJtwAJyfcACYm3AAoKNcAJibcACcn3AAmJt0AJibcACUl3AAmJtwAKCjbACcn3AAmJtsAJibcAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgMEBQYZGQYFBAMCAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgcZGRkZGRkZGRkZGRkZGQcCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJGRkZGRkZGRkZGRkZGRkZGRkZCQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKBBkZGRkZGRkZGRkZGRkZGRkZGRkZGRkECgAAAAAAAAAAAAAAAAAAAAAAAAAAAAsZGRkZGRkZDA0ODxoaGhoPDg0MGRkZGRkZGQsAAAAAAAAAAAAAAAAAAAAAAAAAAxkZGRkZGRARGhoaGhoaGhoaGhoaERAZGRkZGRkDAAAAAAAAAAAAAAAAAAAAAAASGRkZGRkTDxoaGhoaGhoaGhoaGhoaGhoPExkZGRkZEgAAAAAAAAAAAAAAAAAAAAMZGRkZGRQaGhoaGhoaGhoaGhoaGhoaGhoaGhQZGRkZGQMAAAAAAAAAAAAAAAAACxkZGRkVERoaGhoaGhoaGhoaGhoaGhoaGhoaGhoRFRkZGRkLAAAAAAAAAAAAAAAKGRkZGRUPGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDxUZGRkZCgAAAAAAAAAAAAAEGRkZGREaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhEZGRkZBAAAAAAAAAAAAAgZGRkZFBoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoUGRkZGQgAAAAAAAAAAAkZGRkTGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaExkZGQkAAAAAAAAAAhkZGRkPGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDxkZGRkCAAAAAAAABxkZGRAaGhoaGhoaGhYXFxYaGhoaGhoaGhgXFxYaGhoaGhoaGhAZGRkHAAAAAAABGRkZGREaGhoaGhoaGhcZGRkYGhoaGhoaGBkZGRcaGhoaGhoaGhEZGRkZAQAAAAACGRkZDBoaGhoaGhoaGhcZGRkZGBoaGhoYGRkZGRcaGhoaGhoaGhoMGRkZAgAAAAADGRkZDRoaGhoaGhoaGhgZGRkZGRgaGhgZGRkZGRYaGhoaGhoaGhoNGRkZAwAAAAAEGRkZDhoaGhoaGhoaGhoYGRkZGRkYGBkZGRkZGBoaGhoaGhoaGhoOGRkZBAAAAAAFGRkZDxoaGhoaGhoaGhoaGBkZGRkZGRkZGRkYGhoaGhoaGhoaGhoPGRkZBQAAAAAGGRkZGhoaGhoaGhoaGhoaGhgZGRkZGRkZGRgaGhoaGhoaGhoaGhoaGRkZBgAAAAAZGRkZGhoaGhoaGhoaGhoaGhoYGRkZGRkZGBoaGhoaGhoaGhoaGhoaGRkZGQAAAAAZGRkZGhoaGhoaGhoaGhoaGhoYGRkZGRkZGBoaGhoaGhoaGhoaGhoaGRkZGQAAAAAGGRkZGhoaGhoaGhoaGhoaGhgZGRkZGRkZGRgaGhoaGhoaGhoaGhoaGRkZBgAAAAAFGRkZDxoaGhoaGhoaGhoaGBkZGRkZGRkZGRkYGhoaGhoaGhoaGhoPGRkZBQAAAAAEGRkZDhoaGhoaGhoaGhoYGRkZGRkYGBkZGRkZGBoaGhoaGhoaGhoOGRkZBAAAAAADGRkZDRoaGhoaGhoaGhYZGRkZGRgaGhgZGRkZGRgaGhoaGhoaGhoNGRkZAwAAAAACGRkZDBoaGhoaGhoaGhcZGRkZGBoaGhoYGRkZGRcaGhoaGhoaGhoMGRkZAgAAAAABGRkZGREaGhoaGhoaGhcZGRkYGhoaGhoaGBkZGRcaGhoaGhoaGhEZGRkZAQAAAAAABxkZGRAaGhoaGhoaGhYXFxgaGhoaGhoaGhYXFxYaGhoaGhoaGhAZGRkHAAAAAAAAAhkZGRkPGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDxkZGRkCAAAAAAAAAAkZGRkTGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaExkZGQkAAAAAAAAAAAgZGRkZFBoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoUGRkZGQgAAAAAAAAAAAAEGRkZGREaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhEZGRkZBAAAAAAAAAAAAAAKGRkZGRUPGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDxUZGRkZCgAAAAAAAAAAAAAACxkZGRkVERoaGhoaGhoaGhoaGhoaGhoaGhoaGhoRFRkZGRkLAAAAAAAAAAAAAAAAAAMZGRkZGRQaGhoaGhoaGhoaGhoaGhoaGhoaGhQZGRkZGQMAAAAAAAAAAAAAAAAAAAASGRkZGRkTDxoaGhoaGhoaGhoaGhoaGhoPExkZGRkZEgAAAAAAAAAAAAAAAAAAAAAAAxkZGRkZGRARGhoaGhoaGhoaGhoaERAZGRkZGRkDAAAAAAAAAAAAAAAAAAAAAAAAAAsZGRkZGRkZDA0ODxoaGhoPDg0MGRkZGRkZGQsAAAAAAAAAAAAAAAAAAAAAAAAAAAAKBBkZGRkZGRkZGRkZGRkZGRkZGRkZGRkECgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJGRkZGRkZGRkZGRkZGRkZGRkZCQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgcZGRkZGRkZGRkZGRkZGQcCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgMEBQYZGQYFBAMCAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////AAD///////8AAP//gAH//wAA//4AAH//AAD/+AAAH/8AAP/gAAAH/wAA/8AAAAP/AAD/gAAAAf8AAP8AAAAA/wAA/gAAAAB/AAD8AAAAAD8AAPgAAAAAHwAA+AAAAAAfAADwAAAAAA8AAPAAAAAADwAA4AAAAAAHAADgAAAAAAcAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADgAAAAAAcAAOAAAAAABwAA8AAAAAAPAADwAAAAAA8AAPgAAAAAHwAA+AAAAAAfAAD8AAAAAD8AAP4AAAAAfwAA/wAAAAD/AAD/gAAAAf8AAP/AAAAD/wAA/+AAAAf/AAD/+AAAH/8AAP/+AAB//wAA//+AAf//AAD///////8AAP///////wAA"};async function K(t){return Jt[t]}function zt(t){if(document.visibilityState==="visible")return;let A=async()=>{t===0?new Notification("Execution completed",{body:"Your notebook run completed successfully.",icon:await K("success")}):new Notification("Execution failed",{body:`Your notebook run encountered ${t} error(s).`,icon:await K("error")})};!("Notification"in window)||Notification.permission==="denied"||(Notification.permission==="granted"?A():Notification.permission==="default"&&Notification.requestPermission().then(e=>{e==="granted"&&A()}))}const $t=t=>{let{isRunning:A}=t,e=Be(),a=document.querySelector("link[rel~='icon']");a||(a=document.createElement("link"),a.rel="icon",document.getElementsByTagName("head")[0].append(a)),(0,g.useEffect)(()=>{!A&&a.href.includes("favicon")||(async()=>{let s;if(s=A?"running":e.length===0?"success":"error",a.href=await K(s),!document.hasFocus())return;let o=setTimeout(async()=>{a.href=await K("idle")},3e3);return()=>clearTimeout(o)})()},[A,e,a]);let G=lt(A)??A;return(0,g.useEffect)(()=>{G&&!A&&zt(e.length)},[e,G,A]),Qe(window,"focus",async s=>{A||(a.href=await K("idle"))}),null};function Aa(){let{cellIds:t,cellRuntime:A}=ae.get(CA),e=t.inOrderIds.find(a=>{var G;return((G=A[a])==null?void 0:G.status)==="running"});e&&Et(e,"focus")}var tA=B();const ea=t=>{let A=(0,tA.c)(18),{connection:e,isRunning:a,onReconnect:G}=t,{mode:s}=y(He),o=e.state===p.CLOSED,i=e.state===p.OPEN,r=o&&e.code===D.KERNEL_DISCONNECTED,n;A[0]===o?n=A[1]:(n=o&&(0,R.jsx)(Ga,{}),A[0]=o,A[1]=n);let k=s==="read"?"fixed":"absolute",l;A[2]===k?l=A[3]:(l=w("z-50 top-4 left-4",k),A[2]=k,A[3]=l);let Z;A[4]!==i||A[5]!==a?(Z=i&&a&&(0,R.jsx)(aa,{}),A[4]=i,A[5]=a,A[6]=Z):Z=A[6];let d;A[7]!==r||A[8]!==o||A[9]!==G?(d=o&&(0,R.jsx)(ta,{onReconnect:r?G:void 0}),A[7]=r,A[8]=o,A[9]=G,A[10]=d):d=A[10];let h;A[11]!==l||A[12]!==Z||A[13]!==d?(h=(0,R.jsxs)("div",{className:l,children:[Z,d]}),A[11]=l,A[12]=Z,A[13]=d,A[14]=h):h=A[14];let u;return A[15]!==n||A[16]!==h?(u=(0,R.jsxs)(R.Fragment,{children:[n,h]}),A[15]=n,A[16]=h,A[17]=u):u=A[17],u};var WA="print:hidden pointer-events-auto hover:cursor-pointer",ta=t=>{let A=(0,tA.c)(12),{onReconnect:e}=t,a=!e,G=a?"App disconnected":"App disconnected \u2014 click to reconnect",s=a?0:-1,o;A[0]===Symbol.for("react.memo_cache_sentinel")?(o=w(WA,"bg-transparent border-0 p-0"),A[0]=o):o=A[0];let i=a?"App disconnected":"Reconnect to app",r;A[1]===Symbol.for("react.memo_cache_sentinel")?(r=(0,R.jsx)(Nt,{className:"w-[25px] h-[25px] text-(--red-11)"}),A[1]=r):r=A[1];let n;A[2]!==a||A[3]!==e||A[4]!==i?(n=(0,R.jsx)("button",{type:"button",className:o,"aria-label":i,"data-testid":"disconnected-indicator",onClick:e,disabled:a,children:r}),A[2]=a,A[3]=e,A[4]=i,A[5]=n):n=A[5];let k;A[6]!==s||A[7]!==n?(k=(0,R.jsx)("span",{tabIndex:s,children:n}),A[6]=s,A[7]=n,A[8]=k):k=A[8];let l;return A[9]!==G||A[10]!==k?(l=(0,R.jsx)(_A,{content:G,children:k}),A[9]=G,A[10]=k,A[11]=l):l=A[11],l},aa=()=>{let t=(0,tA.c)(6),A=y(pe),e=A?"Scratchpad is running":"Jump to running cell",a=A?void 0:Aa,G;t[0]===Symbol.for("react.memo_cache_sentinel")?(G=(0,R.jsx)(St,{className:"running-app-icon",size:30,strokeWidth:1}),t[0]=G):G=t[0];let s;t[1]===a?s=t[2]:(s=(0,R.jsx)("div",{className:WA,"data-testid":"loading-indicator",onClick:a,children:G}),t[1]=a,t[2]=s);let o;return t[3]!==s||t[4]!==e?(o=(0,R.jsx)(_A,{content:e,side:"right",children:s}),t[3]=s,t[4]=e,t[5]=o):o=t[5],o},Ga=()=>{let t=(0,tA.c)(1),A;return t[0]===Symbol.for("react.memo_cache_sentinel")?(A=(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)("div",{className:"noise"}),(0,R.jsx)("div",{className:"disconnected-gradient"})]}),t[0]=A):A=t[0],A},N=B(),sa=et,oa=Gt,ra=At(at),UA=g.forwardRef((t,A)=>{let e=(0,N.c)(9),a,G;e[0]===t?(a=e[1],G=e[2]):({className:a,...G}=t,e[0]=t,e[1]=a,e[2]=G);let s;e[3]===a?s=e[4]:(s=w("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",a),e[3]=a,e[4]=s);let o;return e[5]!==G||e[6]!==A||e[7]!==s?(o=(0,R.jsx)(vA,{className:s,...G,ref:A}),e[5]=G,e[6]=A,e[7]=s,e[8]=o):o=e[8],o});UA.displayName=vA.displayName;var na=Je("fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500",{variants:{side:{top:"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",bottom:"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",left:"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",right:"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"}},defaultVariants:{side:"right"}}),VA=g.forwardRef((t,A)=>{let e=(0,N.c)(15),a,G,s,o;e[0]===t?(a=e[1],G=e[2],s=e[3],o=e[4]):({side:o,className:G,children:a,...s}=t,e[0]=t,e[1]=a,e[2]=G,e[3]=s,e[4]=o);let i=o===void 0?"right":o,r;e[5]===Symbol.for("react.memo_cache_sentinel")?(r=(0,R.jsx)(UA,{}),e[5]=r):r=e[5];let n;e[6]!==G||e[7]!==i?(n=w(na({side:i}),G),e[6]=G,e[7]=i,e[8]=n):n=e[8];let k;e[9]===Symbol.for("react.memo_cache_sentinel")?(k=(0,R.jsxs)(tt,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary",children:[(0,R.jsx)(wt,{className:"h-4 w-4"}),(0,R.jsx)("span",{className:"sr-only",children:"Close"})]}),e[9]=k):k=e[9];let l;return e[10]!==a||e[11]!==s||e[12]!==A||e[13]!==n?(l=(0,R.jsx)(ra,{children:(0,R.jsxs)($e,{children:[r,(0,R.jsxs)(SA,{ref:A,className:n,...s,children:[a,k]})]})}),e[10]=a,e[11]=s,e[12]=A,e[13]=n,e[14]=l):l=e[14],l});VA.displayName=SA.displayName;var ia=t=>{let A=(0,N.c)(8),e,a;A[0]===t?(e=A[1],a=A[2]):({className:e,...a}=t,A[0]=t,A[1]=e,A[2]=a);let G;A[3]===e?G=A[4]:(G=w("flex flex-col space-y-2 text-center sm:text-left",e),A[3]=e,A[4]=G);let s;return A[5]!==a||A[6]!==G?(s=(0,R.jsx)("div",{className:G,...a}),A[5]=a,A[6]=G,A[7]=s):s=A[7],s};ia.displayName="SheetHeader";var la=t=>{let A=(0,N.c)(8),e,a;A[0]===t?(e=A[1],a=A[2]):({className:e,...a}=t,A[0]=t,A[1]=e,A[2]=a);let G;A[3]===e?G=A[4]:(G=w("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),A[3]=e,A[4]=G);let s;return A[5]!==a||A[6]!==G?(s=(0,R.jsx)("div",{className:G,...a}),A[5]=a,A[6]=G,A[7]=s):s=A[7],s};la.displayName="SheetFooter";var ka=g.forwardRef((t,A)=>{let e=(0,N.c)(9),a,G;e[0]===t?(a=e[1],G=e[2]):({className:a,...G}=t,e[0]=t,e[1]=a,e[2]=G);let s;e[3]===a?s=e[4]:(s=w("text-lg font-semibold text-foreground",a),e[3]=a,e[4]=s);let o;return e[5]!==G||e[6]!==A||e[7]!==s?(o=(0,R.jsx)(NA,{ref:A,className:s,...G}),e[5]=G,e[6]=A,e[7]=s,e[8]=o):o=e[8],o});ka.displayName=NA.displayName;var ca=g.forwardRef((t,A)=>{let e=(0,N.c)(9),a,G;e[0]===t?(a=e[1],G=e[2]):({className:a,...G}=t,e[0]=t,e[1]=a,e[2]=G);let s;e[3]===a?s=e[4]:(s=w("text-sm text-muted-foreground",a),e[3]=a,e[4]=s);let o;return e[5]!==G||e[6]!==A||e[7]!==s?(o=(0,R.jsx)(bA,{ref:A,className:s,...G}),e[5]=G,e[6]=A,e[7]=s,e[8]=o):o=e[8],o});ca.displayName=bA.displayName;var Ra=B();const BA=(0,g.memo)(()=>{let t=(0,Ra.c)(1),A;return t[0]===Symbol.for("react.memo_cache_sentinel")?(A=(0,R.jsx)(st,{name:MA.SIDEBAR}),t[0]=A):A=t[0],A});BA.displayName="SidebarSlot";var Za=B();const da=t=>{let A=(0,Za.c)(6),{openWidth:e}=t,a;A[0]===Symbol.for("react.memo_cache_sentinel")?(a=(0,R.jsx)(oa,{className:"lg:hidden",asChild:!0,children:(0,R.jsx)(FA,{variant:"ghost",className:"bg-background",children:(0,R.jsx)(TA,{className:"w-5 h-5"})})}),A[0]=a):a=A[0];let G;A[1]===e?G=A[2]:(G={maxWidth:e},A[1]=e,A[2]=G);let s;A[3]===Symbol.for("react.memo_cache_sentinel")?(s=(0,R.jsx)(BA,{}),A[3]=s):s=A[3];let o;return A[4]===G?o=A[5]:(o=(0,R.jsxs)(sa,{children:[a,(0,R.jsx)(VA,{className:"w-full px-3 h-full flex flex-col overflow-y-auto",style:G,side:"left",children:s})]}),A[4]=G,A[5]=o),o};var ha=B();const ga=t=>{let A=(0,ha.c)(7),{isOpen:e,toggle:a}=t,G=e?"rotate-0":"rotate-180",s;A[0]===G?s=A[1]:(s=w("h-5 w-5 transition-transform ease-in-out duration-700",G),A[0]=G,A[1]=s);let o;A[2]===s?o=A[3]:(o=(0,R.jsx)(rt,{className:s}),A[2]=s,A[3]=o);let i;return A[4]!==o||A[5]!==a?(i=(0,R.jsx)("div",{className:"invisible lg:visible absolute top-[12px] right-[16px] z-20",children:(0,R.jsx)(FA,{onClick:a,className:"w-10 h-8",variant:"ghost",size:"icon",children:o})}),A[4]=o,A[5]=a,A[6]=i):i=A[6],i};var ua=B();const Ba=t=>{let A=(0,ua.c)(11),{isOpen:e,toggle:a,width:G}=t,s=e?G:Me,o;A[0]===s?o=A[1]:(o={width:s},A[0]=s,A[1]=o);let i;A[2]===Symbol.for("react.memo_cache_sentinel")?(i=w("app-sidebar auto-collapse-nav","top-0 left-0 z-20 h-full hidden lg:block relative transition-[width] ease-in-out duration-300"),A[2]=i):i=A[2];let r;A[3]!==e||A[4]!==a?(r=(0,R.jsx)(ga,{isOpen:e,toggle:a}),A[3]=e,A[4]=a,A[5]=r):r=A[5];let n;A[6]===Symbol.for("react.memo_cache_sentinel")?(n=(0,R.jsx)("div",{className:"relative h-full flex flex-col px-3 pb-16 pt-14 overflow-y-auto shadow-sm border-l",children:(0,R.jsx)(BA,{})}),A[6]=n):n=A[6];let k;return A[7]!==e||A[8]!==o||A[9]!==r?(k=(0,R.jsxs)("aside",{"data-expanded":e,style:o,className:i,children:[r,n]}),A[7]=e,A[8]=o,A[9]=r,A[10]=k):k=A[10],k};var ma=B();const Ya=t=>{let A=(0,ma.c)(15),{children:e}=t,[a,G]=fA(Se),{isOpen:s,width:o}=a;if(ot(MA.SIDEBAR).length===0)return e;let i;A[0]===o?i=A[1]:(i=ve(o),A[0]=o,A[1]=i);let r=i,n;A[2]!==G||A[3]!==s?(n=()=>G({type:"toggle",isOpen:!s}),A[2]=G,A[3]=s,A[4]=n):n=A[4];let k;A[5]!==s||A[6]!==r||A[7]!==n?(k=(0,R.jsx)(Ba,{isOpen:s,width:r,toggle:n}),A[5]=s,A[6]=r,A[7]=n,A[8]=k):k=A[8];let l;A[9]===r?l=A[10]:(l=(0,R.jsx)("div",{className:"absolute top-3 left-4 flex items-center z-50",children:(0,R.jsx)(da,{openWidth:r})}),A[9]=r,A[10]=l);let Z;return A[11]!==e||A[12]!==k||A[13]!==l?(Z=(0,R.jsxs)("div",{className:"inset-0 absolute flex",children:[k,l,e]}),A[11]=e,A[12]=k,A[13]=l,A[14]=Z):Z=A[14],Z};var pa=B();const fa=t=>{let A=(0,pa.c)(18),{width:e,connection:a,isRunning:G,children:s,onReconnect:o}=t,i=a.state,r;A[0]===G?r=A[1]:(r=(0,R.jsx)($t,{isRunning:G}),A[0]=G,A[1]=r);let n;A[2]!==a||A[3]!==G||A[4]!==o?(n=(0,R.jsx)(ea,{connection:a,isRunning:G,onReconnect:o}),A[2]=a,A[3]=G,A[4]=o,A[5]=n):n=A[5];let k;A[6]!==i||A[7]!==e?(k=w("mathjax_ignore",Ke(i)&&"disconnected","bg-background w-full h-full text-textColor","flex flex-col overflow-y-auto",e==="full"&&"config-width-full",e==="columns"?"overflow-x-auto":"overflow-x-auto sm:overflow-x-hidden","print:height-fit"),A[6]=i,A[7]=e,A[8]=k):k=A[8];let l;A[9]!==s||A[10]!==i||A[11]!==k||A[12]!==e?(l=(0,R.jsx)(Ut,{children:(0,R.jsx)(Ya,{children:(0,R.jsx)("div",{id:"App","data-config-width":e,"data-connection-state":i,className:k,children:s})})}),A[9]=s,A[10]=i,A[11]=k,A[12]=e,A[13]=l):l=A[13];let Z;return A[14]!==r||A[15]!==n||A[16]!==l?(Z=(0,R.jsxs)(R.Fragment,{children:[r,n,l]}),A[14]=r,A[15]=n,A[16]=l,A[17]=Z):Z=A[17],Z};function wa(t){return t.kind==="missing"}function qA(t){return t.kind==="installing"}var{valueAtom:Ea,useActions:xa}=nt(()=>({packageAlert:null,startupLogsAlert:null,packageLogs:{}}),{addPackageAlert:(t,A)=>{var G;let e={...t.packageLogs};if(qA(A)&&A.logs&&A.log_status)for(let[s,o]of Object.entries(A.logs))switch(A.log_status){case"start":e[s]=o;break;case"append":e[s]=(e[s]||"")+o;break;case"done":e[s]=(e[s]||"")+o;break}let a=((G=t.packageAlert)==null?void 0:G.id)||Yt();return{...t,packageAlert:{id:a,...A},packageLogs:e}},clearPackageAlert:(t,A)=>t.packageAlert!==null&&t.packageAlert.id===A?{...t,packageAlert:null,packageLogs:{}}:t,addStartupLog:(t,A)=>{var a;let e=((a=t.startupLogsAlert)==null?void 0:a.content)||"";return{...t,startupLogsAlert:{...t.startupLogsAlert,content:e+A.content,status:A.status}}},clearStartupLogsAlert:t=>({...t,startupLogsAlert:null})});const Ca=()=>y(Ea);function XA(){return xa()}var JA=B();const zA=(0,g.memo)(t=>{let A=(0,JA.c)(11),{appConfig:e,mode:a,children:G}=t,{selectedLayout:s,layoutData:o}=kt();if(!y(yA)&&(a==="edit"||a==="present"&&s==="vertical"))return G;let i;if(A[0]!==a||A[1]!==s){i=s;let l=new URLSearchParams(window.location.search);if(a==="read"&&l.has(I.viewAs)){let Z=l.get(I.viewAs);vt.includes(Z)&&(i=Z)}A[0]=a,A[1]=s,A[2]=i}else i=A[2];let r;A[3]===i?r=A[4]:(r=Rt.find(l=>l.type===i),A[3]=i,A[4]=r);let n=r;if(!n)return G;let k;return A[5]!==e||A[6]!==i||A[7]!==o||A[8]!==a||A[9]!==n?(k=(0,R.jsx)(ya,{appConfig:e,mode:a,plugin:n,layoutData:o,finalLayout:i}),A[5]=e,A[6]=i,A[7]=o,A[8]=a,A[9]=n,A[10]=k):k=A[10],k});zA.displayName="CellsRenderer";const ya=t=>{let A=(0,JA.c)(18),{appConfig:e,mode:a,plugin:G,layoutData:s,finalLayout:o}=t,i=ne(),{setCurrentLayoutData:r}=jA(),n,k,l,Z,d;if(A[0]!==e||A[1]!==o||A[2]!==s||A[3]!==a||A[4]!==i||A[5]!==G){let u=de(i);n=G.Component,k=e,l=a,Z=u,d=s[o]||G.getInitialLayout(u),A[0]=e,A[1]=o,A[2]=s,A[3]=a,A[4]=i,A[5]=G,A[6]=n,A[7]=k,A[8]=l,A[9]=Z,A[10]=d}else n=A[6],k=A[7],l=A[8],Z=A[9],d=A[10];let h;return A[11]!==n||A[12]!==r||A[13]!==k||A[14]!==l||A[15]!==Z||A[16]!==d?(h=(0,R.jsx)(n,{appConfig:k,mode:l,cells:Z,layout:d,setLayout:r}),A[11]=n,A[12]=r,A[13]=k,A[14]=l,A[15]=Z,A[16]=d,A[17]=h):h=A[17],h};var Da=class $A{constructor(A){C(this,"hasStarted",!1);C(this,"handleReadyEvent",A=>{let e=A.detail.objectId;if(!this.uiElementRegistry.has(e))return;let a=this.uiElementRegistry.lookupValue(e);a!==void 0&&this.sendComponentValues({objectIds:[e],values:[a]}).catch(G=>{Y.warn(G)})});this.uiElementRegistry=A}static get INSTANCE(){let A="_marimo_private_RuntimeState";return window[A]||(window[A]=new $A(T)),window[A]}get sendComponentValues(){if(!this._sendComponentValues)throw Error("sendComponentValues is not set");return this._sendComponentValues}start(A){if(this.hasStarted){Y.warn("RuntimeState already started");return}this._sendComponentValues=A,document.addEventListener(PA.TYPE,this.handleReadyEvent),this.hasStarted=!0}stop(){if(!this.hasStarted){Y.warn("RuntimeState already stopped");return}document.removeEventListener(PA.TYPE,this.handleReadyEvent),this.hasStarted=!1}};const mA="MARIMO_TRANSPORT_EXHAUSTED";var va=class{constructor(t){C(this,"closeWrappers",new WeakMap);this.inner=new Dt(t,void 0,{maxRetries:10,debug:!1,startClosed:!0,connectionTimeout:1e4})}get readyState(){return this.inner.readyState}reconnect(t,A){this.inner.reconnect(t,A)}close(){this.inner.close()}send(t){this.inner.send(t)}addEventListener(t,A){if(t==="close"){let e=A;if(this.closeWrappers.has(e))return;let a=G=>{this.inner.retryCount>=10?e(new CloseEvent("close",{code:G.code,reason:mA,wasClean:G.wasClean})):e(G)};this.closeWrappers.set(e,a),this.inner.addEventListener("close",a);return}this.inner.addEventListener(t,A)}removeEventListener(t,A){if(t==="close"){let e=A,a=this.closeWrappers.get(e);a&&(this.closeWrappers.delete(e),this.inner.removeEventListener("close",a));return}this.inner.removeEventListener(t,A)}},ba=1e4,Sa=1e3,Na=1e4,Ma=1.3,_a=1006,Fa=class{constructor(t,A=()=>({})){C(this,"subscriptions",new _e);C(this,"abortController",null);C(this,"retryTimer",null);C(this,"retryCount",0);C(this,"userClosed",!1);C(this,"state",WebSocket.CLOSED);this.urlProvider=t,this.headersProvider=A}get readyState(){return this.state}reconnect(t,A){var e;this.userClosed=!1,this.retryCount=0,this.clearRetryTimer(),(e=this.abortController)==null||e.abort(),this.connect()}close(){var t;this.userClosed=!0,this.clearRetryTimer(),this.state=WebSocket.CLOSED,(t=this.abortController)==null||t.abort(),this.abortController=null}send(t){Y.warn("SseTransport does not support send(); dropping message")}addEventListener(t,A){this.subscriptions.addSubscription(t,A)}removeEventListener(t,A){this.subscriptions.removeSubscription(t,A)}connect(){this.state=WebSocket.CONNECTING,this.run()}async run(){let t=new AbortController;this.abortController=t;let A=setTimeout(()=>t.abort(),ba),e=null;try{let G=await fetch(this.urlProvider(),{headers:{...this.headersProvider(),Accept:"text/event-stream"},signal:t.signal});if(clearTimeout(A),!G.ok||G.body===null)throw Error(`Unexpected SSE response: ${G.status}`);this.state=WebSocket.OPEN,this.subscriptions.notify("open",new Event("open")),e=await this.readEvents(G.body)}catch(G){if(clearTimeout(A),this.isSuperseded(t))return;Y.warn("SSE connection failed",G),this.subscriptions.notify("error",new Event("error"))}if(this.isSuperseded(t))return;t.abort(),this.state=WebSocket.CLOSED,this.retryCount+=1;let a=this.retryCount>=10;this.subscriptions.notify("close",new CloseEvent("close",{code:(e==null?void 0:e.code)??_a,reason:a?mA:(e==null?void 0:e.reason)??"",wasClean:e!==null})),!(a||this.isSuperseded(t))&&this.scheduleRetry()}isSuperseded(t){return this.userClosed||this.abortController!==t}scheduleRetry(){this.clearRetryTimer(),this.state=WebSocket.CONNECTING;let t=Math.min(Sa*Ma**this.retryCount,Na);this.retryTimer=setTimeout(()=>{this.retryTimer=null,this.connect()},t)}clearRetryTimer(){this.retryTimer!==null&&(clearTimeout(this.retryTimer),this.retryTimer=null)}async readEvents(t){let A=t.getReader(),e=new TextDecoder,a="",G=null,s=[],o=()=>{if(s.length===0)return G=null,null;let i=s.join(`
|
|
2
2
|
`),r=G;return G=null,s=[],r==="close"?Oa(i):(this.retryCount=0,this.subscriptions.notify("message",new MessageEvent("message",{data:i})),null)};for(;;){let{done:i,value:r}=await A.read();if(i)return null;a+=e.decode(r,{stream:!0});let n=0,k=a.indexOf(`
|
|
3
3
|
`,n);for(;k!==-1;){let l=a.slice(n,k);if(n=k+1,k=a.indexOf(`
|
|
4
4
|
`,n),l.endsWith("\r")&&(l=l.slice(0,-1)),l===""){let u=o();if(u!==null)return u;continue}if(l.startsWith(":"))continue;let Z=l.indexOf(":"),d=Z===-1?l:l.slice(0,Z),h=Z===-1?"":l.slice(Z+1);h.startsWith(" ")&&(h=h.slice(1)),d==="data"?s.push(h):d==="event"&&(G=h)}n>0&&(a=a.slice(n))}}};function Oa(t){try{let A=JSON.parse(t);return{code:typeof A.code=="number"?A.code:1e3,reason:typeof A.reason=="string"?A.reason:""}}catch{return Y.warn("Failed to parse SSE close event",t),{code:1e3,reason:""}}}var Qa=B();function ja(t){return t.static?Ee.empty():ZA()?De():t.transportType==="sse"?new Fa(t.url,t.headers):new va(t.url)}function La(t){let A=(0,Qa.c)(15),{onOpen:e,onMessage:a,onClose:G,onError:s,waitToConnect:o}=t,i;A[0]!==G||A[1]!==s||A[2]!==a||A[3]!==e||A[4]!==t?(i=()=>{let l=ja(t);return l.addEventListener("open",e),l.addEventListener("close",G),l.addEventListener("error",s),l.addEventListener("message",a),l},A[0]=G,A[1]=s,A[2]=a,A[3]=e,A[4]=t,A[5]=i):i=A[5];let[r]=(0,g.useState)(i),n;A[6]!==G||A[7]!==s||A[8]!==a||A[9]!==e||A[10]!==r||A[11]!==o?(n=()=>(r.readyState===WebSocket.CLOSED&&o().then(()=>r.reconnect()).catch(l=>{Y.error("Healthy connection never made",l),r.close()}),()=>{Y.warn("useConnectionTransport is unmounting. This likely means there is a bug."),r.close(),r.removeEventListener("open",e),r.removeEventListener("close",G),r.removeEventListener("error",s),r.removeEventListener("message",a)}),A[6]=G,A[7]=s,A[8]=a,A[9]=e,A[10]=r,A[11]=o,A[12]=n):n=A[12];let k;return A[13]===r?k=A[14]:(k=[r],A[13]=r,A[14]=k),(0,g.useEffect)(n,k),r}function Pa(t){let{codes:A,names:e,configs:a,cell_ids:G,last_executed_code:s,last_execution_time:o}=t,i=s||{},r=o||{};return A.map((n,k)=>{let l=G[k],Z=i[l];return le({id:l,code:n,edited:Z?Z!==n:!1,name:e[k],lastCodeRun:i[l]??null,lastExecutionTime:r[l]??null,config:a[k]})})}function Ta(t,A,e){let a=ct(),{layout:G}=t;if(G){let s=G.type,o=Zt({type:s,data:G.data,cells:A});a.selectedLayout=s,a.layoutData[s]=o,e({layoutView:s,data:o})}return a}function Ia(){let t=[],A=[];return T.entries.forEach((e,a)=>{t.push(a),A.push(e.value)}),{objectIds:t,values:A}}function Ka(t,A){let{existingCells:e,autoInstantiate:a,setCells:G,setLayoutData:s,setAppConfig:o,setCapabilities:i,setKernelState:r,onError:n}=A,{resumed:k,ui_values:l,app_config:Z,capabilities:d,auto_instantiated:h}=t,u=e&&e.length>0,S=u&&!k?e:Pa(t);G(S,Ta(t,S,s));let v=Le.safeParse(Z);if(v.success?o(v.data):Y.error("Failed to parse app config",v.error),i(d),h)return;if(k){for(let[E,O]of je.entries(l||{})){let Q=E;T.set(Q,O)}return}let{objectIds:M,values:_}=Ia(),F=u?Object.fromEntries(e.map(E=>[E.id,E.code])):void 0;it().sendInstantiate({objectIds:M,values:_,autoRun:a,codes:F}).then(()=>{r({isInstantiated:!0,error:null})}).catch(E=>{r({isInstantiated:!1,error:E}),n(Error("Failed to instantiate",{cause:E}))})}function Ha(t){let A=t.cell_id;T.removeElementsByCell(A),QA.INSTANCE.removeForCellId(A)}function Wa(t,A){A(t),QA.INSTANCE.track(t)}const aA={append:t=>{let A=new URL(window.location.href);A.searchParams.append(t.key,t.value),window.history.pushState({},"",`${A.pathname}${A.search}`)},set:t=>{let A=new URL(window.location.href);Array.isArray(t.value)?(A.searchParams.delete(t.key),t.value.forEach(e=>A.searchParams.append(t.key,e))):A.searchParams.set(t.key,t.value),window.history.pushState({},"",`${A.pathname}${A.search}`)},delete:t=>{let A=new URL(window.location.href);t.value==null?A.searchParams.delete(t.key):A.searchParams.delete(t.key,t.value),window.history.pushState({},"",`${A.pathname}${A.search}`)},clear:()=>{let t=new URL(window.location.href);t.search="",window.history.pushState({},"",`${t.pathname}${t.search}`)}};var Ua=B();function Va(t){switch(t.reason){case mA:return{kind:"gave-up",status:{state:p.CLOSED,code:D.KERNEL_DISCONNECTED,reason:"kernel not found"}};case"MARIMO_NO_FILE_KEY":case"MARIMO_NO_SESSION_ID":case"MARIMO_NO_SESSION":case"MARIMO_SHUTDOWN":return{kind:"terminal",status:{state:p.CLOSED,code:D.KERNEL_DISCONNECTED,reason:"kernel not found"},closeTransport:!0};case"MARIMO_UNAUTHORIZED":return{kind:"terminal",status:{state:p.CLOSED,code:D.KERNEL_DISCONNECTED,reason:"not authorized"},closeTransport:!0};case"MARIMO_KIOSK_NOT_ALLOWED":return{kind:"terminal",status:{state:p.CLOSED,code:D.KERNEL_DISCONNECTED,reason:"kiosk mode is not available for this session"},closeTransport:!0};case"MARIMO_KERNEL_STARTUP_ERROR":return{kind:"terminal",status:{state:p.CLOSED,code:D.KERNEL_STARTUP_ERROR,reason:"Failed to start kernel sandbox"},closeTransport:!0};default:t.reason&&OA(t.reason)}return{kind:"retry",status:{state:p.CONNECTING}}}function qa(){return Object.values(RA().cellData).filter(t=>t.id!==he)}function Xa(t){let A=(0,Ua.c)(45),e=(0,g.useRef)(!0),{autoInstantiate:a,sessionId:G,setCells:s}=t,{showBoundary:o}=Xe(),{handleCellMessage:i}=wA(),r;A[0]===Symbol.for("react.memo_cache_sentinel")?(r={skipMiddleware:!0},A[0]=r):r=A[0];let n=wA(r),k;A[1]===n?k=A[2]:(k=m=>{Ze(m.changes,n,aG)},A[1]=n,A[2]=k);let l=k,{addCellNotification:Z}=bt(),d=L(qe),h=Te(),{setVariables:u,setMetadata:S}=ie(),{addColumnPreview:v}=EA(),{addDatasets:M,filterDatasetsFromVariables:_}=EA(),{addDataSourceConnection:F,filterDataSourcesFromVariables:E}=se(),{setLayoutData:O}=jA(),[Q,b]=fA(Ue),{addBanner:GA}=Fe(),{addPackageAlert:H,addStartupLog:sA}=XA(),W=L(yA),oA=L(ue),f=We(),U=y(Pe),rA=L(Ct),nA=L(Oe),{setNamespaces:iA,filterFromVariables:lA}=ht(),V;A[3]!==GA||A[4]!==Z||A[5]!==v||A[6]!==F||A[7]!==M||A[8]!==H||A[9]!==sA||A[10]!==a||A[11]!==E||A[12]!==_||A[13]!==lA||A[14]!==i||A[15]!==l||A[16]!==h||A[17]!==rA||A[18]!==oA||A[19]!==s||A[20]!==nA||A[21]!==d||A[22]!==W||A[23]!==O||A[24]!==S||A[25]!==iA||A[26]!==u||A[27]!==o?(V=m=>{let c=me(m.data);switch(c.data.op){case"reload":ft();return;case"kernel-ready":{let x=qa();Ka(c.data,{autoInstantiate:a,setCells:s,setLayoutData:O,setAppConfig:h,setCapabilities:oA,setKernelState:d,onError:o,existingCells:x}),W(c.data.kiosk),xA(null),Ye();return}case"completed-run":return;case"interrupted":return;case"kernel-startup-error":nA(c.data.error);return;case"send-ui-element-message":{let x=c.data.ui_element;if(x){let Ae=ut(c.data);T.broadcastMessage(x,c.data.message,Ae)}return}case"model-lifecycle":xe(Ne,c.data);return;case"remove-ui-elements":Ha(c.data);return;case"completion-result":re.resolve(c.data.completion_id,c.data);return;case"function-call-result":ye.resolve(c.data.function_call_id,c.data);return;case"cell-op":{Wa(c.data,i);let x=RA().cellData[c.data.cell_id];if(!x)return;Z({cellNotification:c.data,code:x.code});return}case"variables":u(c.data.variables.map(tG)),_(c.data.variables.map(eG)),E(c.data.variables.map(AG)),lA(c.data.variables.map($a));return;case"variable-values":S(c.data.variables.map(za));return;case"alert":hA({title:c.data.title,description:pt({html:c.data.description}),variant:c.data.variant});return;case"banner":GA(c.data);return;case"missing-package-alert":H({...c.data,kind:"missing"});return;case"installing-package-alert":H({...c.data,kind:"installing"});return;case"startup-logs":sA({content:c.data.content,status:c.data.status});return;case"query-params-append":aA.append(c.data);return;case"query-params-set":aA.set(c.data);return;case"query-params-delete":aA.delete(c.data);return;case"query-params-clear":aA.clear();return;case"datasets":M(c.data);return;case"data-column-preview":v(c.data);return;case"sql-table-preview":we.resolve(c.data.request_id,c.data);return;case"sql-table-list-preview":oe.resolve(c.data.request_id,c.data);return;case"sql-schema-list-preview":ce.resolve(c.data.request_id,c.data);return;case"validate-sql-result":Re.resolve(c.data.request_id,c.data);return;case"data-source-discovery-result":ke.resolve(c.data.request_id,c.data);return;case"secret-keys-result":yt.resolve(c.data.request_id,c.data);return;case"cache-info":rA(c.data);return;case"cache-cleared":return;case"data-source-connections":F({connections:c.data.connections.map(Ja)});return;case"storage-namespaces":iA(c.data);return;case"storage-entries":dt.resolve(c.data.request_id,c.data);return;case"storage-download-ready":gt.resolve(c.data.request_id,c.data);return;case"reconnected":return;case"focus-cell":fe(c.data.cell_id);return;case"active-line":xA(c.data.line==null?null:{cellId:c.data.cell_id,line:c.data.line});return;case"notebook-document-transaction":l(c.data.transaction);return;case"consumer-capabilities":W(!c.data.consumer_capabilities.edit);return;default:OA(c.data)}},A[3]=GA,A[4]=Z,A[5]=v,A[6]=F,A[7]=M,A[8]=H,A[9]=sA,A[10]=a,A[11]=E,A[12]=_,A[13]=lA,A[14]=i,A[15]=l,A[16]=h,A[17]=rA,A[18]=oA,A[19]=s,A[20]=nA,A[21]=d,A[22]=W,A[23]=O,A[24]=S,A[25]=iA,A[26]=u,A[27]=o,A[28]=V):V=A[28];let kA=V,YA=(m,c)=>{e.current&&(e.current=!1,j.reconnect(m,c))},cA=async()=>{if(!(j.readyState===WebSocket.OPEN||j.readyState===WebSocket.CONNECTING)){if(e.current=!0,b({state:p.CONNECTING}),!await f.reconcileFromHealth()){e.current=!1,b({state:p.CLOSED,code:D.KERNEL_DISCONNECTED,reason:"kernel not found"});return}j.reconnect()}},q;A[29]===Symbol.for("react.memo_cache_sentinel")?(q=DA(),A[29]=q):q=A[29];let X;A[30]!==f||A[31]!==G||A[32]!==U?(X=()=>U==="sse"?f.getSseURL(G).toString():f.getWsURL(G).toString(),A[30]=f,A[31]=G,A[32]=U,A[33]=X):X=A[33];let J;A[34]===f?J=A[35]:(J=()=>f.headers(),A[34]=f,A[35]=J);let z;A[36]===b?z=A[37]:(z=async()=>{e.current=!0,b({state:p.OPEN})},A[36]=b,A[37]=z);let $;A[38]===f?$=A[39]:($=async()=>{DA()||ZA()||f.isSameOrigin||await f.waitForHealthy()},A[38]=f,A[39]=$);let AA;A[40]===kA?AA=A[41]:(AA=m=>{try{kA(m)}catch(c){let x=c;Y.error("Failed to handle message",m.data,x),hA({title:"Failed to handle message",description:LA(x),variant:"danger"})}},A[40]=kA,A[41]=AA);let j=La({static:q,transportType:U,url:X,headers:J,onOpen:z,waitToConnect:$,onMessage:AA,onClose:m=>{Y.warn("WebSocket closed",m.code,m.reason);let c=Va(m);if(b(c.status),c.kind==="terminal"&&c.closeTransport){j.close();return}c.kind==="retry"&&YA(m.code,m.reason)},onError:m=>{Y.warn("WebSocket error",m),b({state:p.CLOSED,code:D.KERNEL_DISCONNECTED,reason:"kernel not found"}),YA()}}),eA;return A[42]!==Q||A[43]!==cA?(eA={connection:Q,reconnect:cA},A[42]=Q,A[43]=cA,A[44]=eA):eA=A[44],eA}function Ja(t){return{...t,name:t.name}}function za(t){return{name:t.name,dataType:t.datatype,value:t.value}}function $a(t){return t.name}function AG(t){return t.name}function eG(t){return t.name}function tG(t){return{name:t.name,declaredBy:t.declared_by,usedBy:t.used_by}}function aG(){return RA().cellIds.inOrderIds}var GG=B();const sG=t=>{let A=(0,GG.c)(2),{children:e}=t,a;return A[0]===e?a=A[1]:(a=(0,R.jsx)("div",{"data-testid":"chrome-wrapper",className:"flex flex-col flex-1 overflow-hidden absolute inset-0 print:relative",children:e}),A[0]=e,A[1]=a),a};export{qA as a,Ca as c,Ot as d,TA as f,zA as i,fa as l,Xa as n,wa as o,Da as r,XA as s,sG as t,IA as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as P}from"./chunk-LvLJmgfZ.js";import{p as $,u as T}from"./useEvent-D91BmmQi.js";import{t as D}from"./react-Bj1aDYRI.js";import{E as F,b as L,h as M,zi as W}from"./cells-CMc2NsXm.js";import"./react-dom-CSu739Rf.js";import{t as R}from"./compiler-runtime-B3qBwwSJ.js";import{C as q}from"./utils-BWBBpCkT.js";import{n as z}from"./constants-CDyU_g2F.js";import{M as V,l as A,m as G,v as H}from"./config-B-Q7J_6d.js";import"./readonly-python-code-Bmo6cMSq.js";import{t as J}from"./cn-DYvqRARy.js";import{t as K}from"./jsx-runtime-Blw4afVn.js";import"./fullscreen-CTDqNQr6.js";import"./popover-Bcz1Zikb.js";import{F as Q,It as X}from"./JsonOutput-E3o1Uk0e.js";import{r as Y}from"./download-U_wgQ8mC.js";import{n as Z,t as I}from"./button-DDGiD1NW.js";import"./dist-12S8I4CH.js";import"./cjs-D5tzp-Y6.js";import"./main-BNL5rxQw.js";import"./useNonce-CbdaHKzX.js";import{r as ee}from"./requests-9-v2bhoi.js";import"./layout-DKUs0ozP.js";import{l as te}from"./state-DDag0B_B.js";import"./markdown-renderer-uWTrQId1.js";import{t as re}from"./copy-3iHFdt22.js";import{d as se,i as oe,l as ae,n as ie,r as O,t as ne,u as me}from"./panels-
|
|
1
|
+
import{s as P}from"./chunk-LvLJmgfZ.js";import{p as $,u as T}from"./useEvent-D91BmmQi.js";import{t as D}from"./react-Bj1aDYRI.js";import{E as F,b as L,h as M,zi as W}from"./cells-CMc2NsXm.js";import"./react-dom-CSu739Rf.js";import{t as R}from"./compiler-runtime-B3qBwwSJ.js";import{C as q}from"./utils-BWBBpCkT.js";import{n as z}from"./constants-CDyU_g2F.js";import{M as V,l as A,m as G,v as H}from"./config-B-Q7J_6d.js";import"./readonly-python-code-Bmo6cMSq.js";import{t as J}from"./cn-DYvqRARy.js";import{t as K}from"./jsx-runtime-Blw4afVn.js";import"./fullscreen-CTDqNQr6.js";import"./popover-Bcz1Zikb.js";import{F as Q,It as X}from"./JsonOutput-E3o1Uk0e.js";import{r as Y}from"./download-U_wgQ8mC.js";import{n as Z,t as I}from"./button-DDGiD1NW.js";import"./dist-12S8I4CH.js";import"./cjs-D5tzp-Y6.js";import"./main-BNL5rxQw.js";import"./useNonce-CbdaHKzX.js";import{r as ee}from"./requests-9-v2bhoi.js";import"./layout-DKUs0ozP.js";import{l as te}from"./state-DDag0B_B.js";import"./markdown-renderer-uWTrQId1.js";import{t as re}from"./copy-3iHFdt22.js";import{d as se,i as oe,l as ae,n as ie,r as O,t as ne,u as me}from"./panels-B07d1xlC.js";import{t as le}from"./spinner-D-V4psAa.js";import"./dist-DcwTQG1A.js";import"./dist-DnjsPBRJ.js";import"./dist-BJZAIIze.js";import"./dist-aRc_dRed.js";import"./dist-CPjTeT8p.js";import{t as ce}from"./use-toast-BwJoaaDM.js";import{t as de}from"./session-BmukRjSi.js";import"./purify.es-CWmnYhGI.js";import"./dates-C2LWzsCZ.js";import{n as pe}from"./copy-Bxb1_Gtw.js";import{a as he,c as fe,l as xe,n as be,r as je,t as ue}from"./dialog-BCVepWLJ.js";import{t as ge}from"./share-852X_cqy.js";import"./tooltip-B7U4xkIN.js";import"./vega-loader.browser-Dun7Qe4B.js";import"./defaultLocale-DOVIEEPN.js";import"./defaultLocale-BUCH2FMc.js";import{a as ye}from"./cell-link-DGv7Q4Mc.js";import"./chunk-5FQGJX7Z-BEbM01OT.js";import"./html-to-image-Dm7huiQj.js";import{n as ke,t as _e}from"./react-resizable-panels.browser.esm-Z-MD3n3J.js";import"./esm-B30N1GS0.js";import"./name-cell-input-BgxcWTfV.js";import{n as Ne,t as ve}from"./marimo-icons-Bq_N9GGs.js";import"./ws-CNqquaud.js";import"./dist-CDFlR-dv.js";import"./dist-DYsXEge_.js";import"./dist-6KRysbQA.js";import"./dist-lCLEUACp.js";import"./dist-B5BlmbY-.js";import"./dist-B4sFEC9P.js";import"./dist-C6uSSUmH.js";import"./dist-C13NfWpP.js";import"./dist-1DJkf78n.js";import"./esm-DqItXpGT.js";var we=R(),Se=P(D(),1),t=P(K(),1),Ce=$(o=>o(M)||!G(o(H).state));const ze=o=>{let e=(0,we.c)(22),{appConfig:s}=o,{setCells:r}=F(),{sendComponentValues:l}=ee(),a;e[0]===l?a=e[1]:(a=()=>(O.INSTANCE.start(l),Ie),e[0]=l,e[1]=a);let i;e[2]===Symbol.for("react.memo_cache_sentinel")?(i=[],e[2]=i):i=e[2],(0,Se.useEffect)(a,i);let c;e[3]===Symbol.for("react.memo_cache_sentinel")?(c=de(),e[3]=c):c=e[3];let g;e[4]===r?g=e[5]:(g={autoInstantiate:!0,setCells:r,sessionId:c},e[4]=r,e[5]=g);let{connection:j,reconnect:k}=ie(g),u=T(L),d;e:{if(typeof window>"u"){d=null;break e}let b,m;if(e[6]===Symbol.for("react.memo_cache_sentinel")){if(m=new URL(window.location.href),!m.searchParams.has("file")){d=null;break e}m.searchParams.delete("file"),b=m.searchParams.toString(),e[6]=b,e[7]=m,e[8]=d}else b=e[6],m=e[7],d=e[8];let y=b;d=y?`${m.pathname}?${y}`:m.pathname}let _=d,p;e[9]===Symbol.for("react.memo_cache_sentinel")?(p=_&&(0,t.jsx)("div",{className:"flex items-center px-6 pt-4 sm:-mt-8",children:(0,t.jsxs)("a",{href:_,"aria-label":"Back to gallery",className:J(Z({variant:"text",size:"sm"}),"gap-2 px-0 text-muted-foreground hover:text-foreground"),children:[(0,t.jsx)(te,{className:"size-4","aria-hidden":!0}),(0,t.jsx)("span",{children:"Back"})]})}),e[9]=p):p=e[9];let h;e[10]===j?h=e[11]:(h=(0,t.jsx)(se,{connection:j,className:"sm:pt-8",children:p}),e[10]=j,e[11]=h);let f;e[12]===Symbol.for("react.memo_cache_sentinel")?(f=(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(le,{className:"mx-auto"}),(0,t.jsx)("p",{className:"text-center text-sm text-muted-foreground mt-2",children:"Connecting..."})]}),e[12]=f):f=e[12];let n;e[13]===s?n=e[14]:(n=(0,t.jsx)(me,{requires:Ce,delay:2e3,fallback:f,children:(0,t.jsx)(oe,{appConfig:s,mode:"read"})}),e[13]=s,e[14]=n);let x;return e[15]!==s.width||e[16]!==j||e[17]!==u||e[18]!==k||e[19]!==h||e[20]!==n?(x=(0,t.jsxs)(ae,{connection:j,isRunning:u,width:s.width,onReconnect:k,children:[h,n]}),e[15]=s.width,e[16]=j,e[17]=u,e[18]=k,e[19]=h,e[20]=n,e[21]=x):x=e[21],x};function Ie(){O.INSTANCE.stop()}var B=R();const Re=()=>{let o=(0,B.c)(3),e=T(W);if(!A()||!e)return null;let s;o[0]===Symbol.for("react.memo_cache_sentinel")?(s=(0,t.jsxs)("span",{children:["Static"," ",(0,t.jsx)("a",{href:z.githubPage,target:"_blank",className:"text-(--sky-11) font-medium underline",children:"marimo"})," ","notebook - Run or edit for full interactivity"]}),o[0]=s):s=o[0];let r;return o[1]===e?r=o[2]:(r=(0,t.jsxs)("div",{className:"px-4 py-2 bg-(--sky-2) border-b border-(--sky-7) text-(--sky-11) flex justify-between items-center gap-4 print:hidden text-sm","data-testid":"static-notebook-banner",children:[s,(0,t.jsx)("span",{className:"shrink-0",children:(0,t.jsx)(Ee,{code:e})})]}),o[1]=e,o[2]=r),r};var Ee=o=>{var E;let e=(0,B.c)(36),{code:s}=o,r=ye()||"notebook.py",l=r.lastIndexOf("/");l!==-1&&(r=r.slice(l+1));let[a]=q(),i=((E=a.sharing)==null?void 0:E.molab)!==!1,c=window.location.href,g;e[0]===s?g=e[1]:(g=ge({code:s,baseUrl:`${z.molab}/new`}),e[0]=s,e[1]=g);let j=g,k;e[2]===Symbol.for("react.memo_cache_sentinel")?(k=(0,t.jsx)(xe,{asChild:!0,children:(0,t.jsx)(I,{"data-testid":"static-notebook-dialog-trigger",variant:"outline",size:"xs",children:"Run or Edit"})}),e[2]=k):k=e[2];let u;e[3]===r?u=e[4]:(u=(0,t.jsx)(fe,{children:r}),e[3]=r,e[4]=u);let d;e[5]===Symbol.for("react.memo_cache_sentinel")?(d=(0,t.jsxs)("p",{children:["This is a static"," ",(0,t.jsx)("a",{href:z.githubPage,target:"_blank",className:"text-(--sky-11) hover:underline font-medium",children:"marimo"})," ","notebook. To run interactively:"]}),e[5]=d):d=e[5];let _;e[6]===Symbol.for("react.memo_cache_sentinel")?(_=(0,t.jsx)("br",{}),e[6]=_):_=e[6];let p;e[7]===r?p=e[8]:(p=(0,t.jsx)("div",{className:"rounded-lg p-3 border bg-(--sky-2) border-(--sky-7)",children:(0,t.jsxs)("div",{className:"font-mono text-(--sky-11) leading-relaxed",children:["pip install marimo",_,"marimo edit ",r]})}),e[7]=r,e[8]=p);let h;e[9]===Symbol.for("react.memo_cache_sentinel")?(h=!c.endsWith(".html")&&(0,t.jsxs)("div",{className:"rounded-lg p-3 border bg-(--sky-2) border-(--sky-7)",children:[(0,t.jsx)("div",{className:"text-sm text-(--sky-12) mb-1",children:"Or run directly from URL:"}),(0,t.jsxs)("div",{className:"font-mono text-(--sky-11) break-all",children:["marimo edit ",window.location.href]})]}),e[9]=h):h=e[9];let f;e[10]!==i||e[11]!==j?(f=i&&(0,t.jsxs)("div",{className:"pt-3 border-t flex gap-2 items-center",children:[(0,t.jsx)(I,{asChild:!0,variant:"outline",size:"xs",className:"shrink-0",children:(0,t.jsxs)("a",{href:j,target:"_blank",rel:"noopener noreferrer",children:[(0,t.jsx)(Ne,{size:12,strokeWidth:1.5,className:"mr-1.5 mt-px text-(--grass-11)"}),"Open in molab"]})}),(0,t.jsxs)("p",{className:"text-sm text-(--sky-12)",children:["Run this notebook in"," ",(0,t.jsx)("span",{className:"font-semibold",children:"molab"}),", marimo's cloud-hosted notebook platform."]})]}),e[10]=i,e[11]=j,e[12]=f):f=e[12];let n;e[13]!==p||e[14]!==f?(n=(0,t.jsxs)(je,{className:"pt-3 text-left space-y-3",children:[d,p,h,f]}),e[13]=p,e[14]=f,e[15]=n):n=e[15];let x;e[16]!==u||e[17]!==n?(x=(0,t.jsxs)(he,{children:[u,n]}),e[16]=u,e[17]=n,e[18]=x):x=e[18];let b;e[19]===s?b=e[20]:(b=async()=>{await pe(s),ce({title:"Copied to clipboard"})},e[19]=s,e[20]=b);let m;e[21]===Symbol.for("react.memo_cache_sentinel")?(m=(0,t.jsx)(re,{className:"w-3 h-3 mr-2"}),e[21]=m):m=e[21];let y;e[22]===b?y=e[23]:(y=(0,t.jsxs)(I,{"data-testid":"copy-static-notebook-dialog-button",variant:"outline",size:"sm",onClick:b,children:[m,"Copy code"]}),e[22]=b,e[23]=y);let N;e[24]!==s||e[25]!==r?(N=()=>{Y(new Blob([s],{type:"text/plain"}),r)},e[24]=s,e[25]=r,e[26]=N):N=e[26];let S;e[27]===Symbol.for("react.memo_cache_sentinel")?(S=(0,t.jsx)(X,{className:"w-3 h-3 mr-2"}),e[27]=S):S=e[27];let v;e[28]===N?v=e[29]:(v=(0,t.jsxs)(I,{"data-testid":"download-static-notebook-dialog-button",variant:"outline",size:"sm",onClick:N,children:[S,"Download"]}),e[28]=N,e[29]=v);let w;e[30]!==y||e[31]!==v?(w=(0,t.jsxs)("div",{className:"flex gap-3 pt-2",children:[y,v]}),e[30]=y,e[31]=v,e[32]=w):w=e[32];let C;return e[33]!==x||e[34]!==w?(C=(0,t.jsxs)(ue,{children:[k,(0,t.jsxs)(be,{children:[x,w]})]}),e[33]=x,e[34]=w,e[35]=C):C=e[35],C},U=R(),Pe=V()||A(),Te=o=>{let e=(0,U.c)(9),s;e[0]===Symbol.for("react.memo_cache_sentinel")?(s=(0,t.jsx)(Re,{}),e[0]=s):s=e[0];let r;e[1]===o.appConfig?r=e[2]:(r=(0,t.jsx)(ze,{appConfig:o.appConfig}),e[1]=o.appConfig,e[2]=r);let l;e[3]===Symbol.for("react.memo_cache_sentinel")?(l=Pe&&(0,t.jsx)(Ae,{}),e[3]=l):l=e[3];let a;e[4]===r?a=e[5]:(a=(0,t.jsxs)(_e,{children:[s,r,l]}),e[4]=r,e[5]=a);let i;e[6]===Symbol.for("react.memo_cache_sentinel")?(i=(0,t.jsx)(Q,{}),e[6]=i):i=e[6];let c;return e[7]===a?c=e[8]:(c=(0,t.jsx)(ne,{children:(0,t.jsxs)(ke,{direction:"horizontal",autoSaveId:"marimo:chrome:v1:run1",children:[a,i]})}),e[7]=a,e[8]=c),c},Ae=()=>{let o=(0,U.c)(1),e;return o[0]===Symbol.for("react.memo_cache_sentinel")?(e=(0,t.jsx)("div",{className:"fixed bottom-0 right-0 z-50 print:hidden","data-testid":"watermark",children:(0,t.jsxs)("a",{href:z.githubPage,target:"_blank",className:"text-sm text-(--grass-11) font-bold tracking-wide transition-colors bg-(--grass-4) hover:bg-(--grass-5) border-t border-l border-(--grass-8) px-3 py-1 rounded-tl-md flex items-center gap-2",children:[(0,t.jsx)("span",{children:"made with marimo"}),(0,t.jsx)(ve,{className:"h-4 w-auto"})]})}),o[0]=e):e=o[0],e},Oe=Te;export{Oe as default};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
var jr=Object.defineProperty;var Rt=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)||Rt("Cannot "+_);var n=(m,y,_)=>(Ue(m,y,"read from private field"),_?_.call(m):y.get(m)),u=(m,y,_)=>y.has(m)?Rt("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,_),_),p=(m,y,_)=>(Ue(m,y,"access private method"),_);import{i as U,p as qt,u as Hr}from"./useEvent-D91BmmQi.js";import{Gt as kt,Ii as Dr,Jn as zr,Kt as ie,Vi as Or,Wi as Br,Xi as _e,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 f,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 Pt,M as ts,c as je,j as rs,l as Ft,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 It,o as At,__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 Nt}from"./Deferred-D2igisxY.js";import{t as Lt}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 Tt,r as bs,t as vs}from"./events-90X9nql5.js";let Ee,He,De,Wt,Ut,jt,$t,ae,oe,Ht,ze,Dt,zt,Ot,Oe,Bt,Fe,Vt,Ie,Be,Qt,Gt,Ss=Promise.all([(()=>{try{return Yr}catch{}})(),(()=>{try{return ls}catch{}})()]).then(async()=>{var St,qe,j,F,Z,q,$,Qe,Jt,Kt,de,ee,O,ke,Xt,_t,te,ue,ce,he,pe,B,re,V,Zt,Ge,se,z,fe,ge,me,ye,I,C,Q,N,L,G,x,we,Y,v,Ye,Je,er,Ke,tr,Xe,Ze,rr,Et,T,be,ve,H,X,xt;function m(t,e,r){return t==null?t:Xr(t,e,r)}Ee=m,Gt=qt(null);var{valueAtom:y,useActions:_}=as(()=>({banners:[]}),{addBanner:(t,e)=>({...t,banners:[...t.banners,{...e,id:Lt()}]}),removeBanner:(t,e)=>({...t,banners:t.banners.filter(r=>r.id!==e)}),clearBanners:t=>({...t,banners:[]})});Wt=()=>Hr(y),Qt=function(){return _()};let le,et;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,et=1e3;function xe(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 i(d){var g;s.unregisterHandler&&s.unregisterHandler(),s=d,(g=s.registerHandler)==null||g.call(s,Ur)}let a;function l(d){if(typeof d=="function"){a=d;return}a=(g,E)=>{let S=d[g];if(S)return S(E);let M=d._;if(!M)throw Error(`The requested method has no handler: ${g}`);return M(g,E)}}let{maxRequestTime:c=et}=t;t.transport&&i(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 D(d,...g){let E=g[0];return new Promise((S,M)=>{var ne;if(!s.send)throw xe(["send"],"make requests");let W=R(),K={type:"request",id:W,method:d,params:E};k.set(W,{resolve:S,reject:M}),c!==1/0&&P.set(W,setTimeout(()=>{P.delete(W),M(Error("RPC request timed out."))},c)),(ne=e.onSend)==null||ne.call(e,K),s.send(K)})}let A=new Proxy(D,{get:(d,g,E)=>g in d?Reflect.get(d,g,E):S=>D(g,S)}),Pe=A;function Se(d,...g){var M;let E=g[0];if(!s.send)throw xe(["send"],"send messages");let S={type:"message",id:d,payload:E};(M=e.onSend)==null||M.call(e,S),s.send(S)}let Mt=new Proxy(Se,{get:(d,g,E)=>g in d?Reflect.get(d,g,E):S=>Se(g,S)}),Ct=Mt,J=new Map,We=new Set;function Tr(d,g){var E;if(!s.registerHandler)throw xe(["registerHandler"],"register message listeners");if(d==="*"){We.add(g);return}J.has(d)||J.set(d,new Set),(E=J.get(d))==null||E.add(g)}function Wr(d,g){var E,S;if(d==="*"){We.delete(g);return}(E=J.get(d))==null||E.delete(g),((S=J.get(d))==null?void 0:S.size)===0&&J.delete(d)}async function Ur(d){var g,E;if((g=e.onReceive)==null||g.call(e,d),!("type"in d))throw Error("Message does not contain a type.");if(d.type==="request"){if(!s.send||!a)throw xe(["send","requestHandler"],"handle requests");let{id:S,method:M,params:W}=d,K;try{K={type:"response",id:S,success:!0,payload:await a(M,W)}}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:W}=k.get(d.id)??{};d.success?M==null||M(d.payload):W==null||W(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:i,setRequestHandler:l,request:A,requestProxy:Pe,send:Mt,sendProxy:Ct,addMessageListener:Tr,removeMessageListener:Wr,proxy:{send:Ct,request:Pe},_setDebugHooks:r}}function ir(t){return nr(t)}var tt="[transport-id]";function ar(t,e){let{transportId:r}=e;return r==null?t:{[tt]:r,data:t}}function or(t,e){let{transportId:r,filter:s}=e,i=s==null?void 0:s();if(r!=null&&i!=null)throw Error("Cannot use both `transportId` and `filter` at the same time");let a=t;if(r){if(t[tt]!==r)return[!0];a=t.data}return i===!1?[!0]:[!1,a]}function lr(t,e={}){let{transportId:r,filter:s,remotePort:i}=e,a=t,l=i??t,c;return{send(w){l.postMessage(ar(w,{transportId:r}))},registerHandler(w){c=R=>{let k=R.data,[P,D]=or(k,{transportId:r,filter:()=>s==null?void 0:s(R)});P||w(D)},a.addEventListener("message",c)},unregisterHandler(){c&&a.removeEventListener("message",c)}}}function dr(t,e){return lr(t,e)}function rt(t){return ir({transport:dr(t,{transportId:"marimo-transport"}),maxRequestTime:2e4,_debugHooks:{onSend:e=>{f.debug("[rpc] Parent -> Worker",e)},onReceive:e=>{f.debug("[rpc] Worker -> Parent",e)}}})}ae=qt({kind:"loading",message:"Initializing..."});var st=ms(),nt="marimo:file",it=new Dr(null);const ur={saveFile(t){it.set(nt,t)},readFile(){return it.get(nt)}};var cr={saveFile(t){_e.setCodeForHash((0,st.compressToEncodedURIComponent)(t))},readFile(){let t=_e.getCodeFromHash()||_e.getCodeFromSearchParam();return t?(0,st.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 U.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
|
+
`)}},at=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 Me;oe=new at([fr,hr,cr]),Me=new at([ur,pr,gr]),Oe=class Yt{constructor(){o(this,"initialized",new Nt);o(this,"sendRename",async({filename:e})=>(e===null||(_e.setFilename(e),await this.rpc.proxy.request.bridge({functionName:"rename_file",payload:e})),null));o(this,"sendSave",async e=>{if(!this.saveRpc)return f.warn("Save RPC not initialized"),null;await this.saveRpc.saveNotebook(e);let r=await this.readCode();return r.contents&&(oe.saveFile(r.contents),Me.saveFile(r.contents)),this.rpc.proxy.request.saveNotebook(e).catch(s=>{f.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=>(U.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=>(f.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),Me.saveFile(e.contents)),ys(),null});o(this,"readCode",async()=>this.saveRpc?{contents:await this.saveRpc.readNotebook()}:(f.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:Lt()}),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=rt(new Worker(new URL(""+new URL("worker-BQo2bijx.js",import.meta.url).href,""+import.meta.url),{type:"module",name:ot()})),this.rpc.addMessageListener("ready",()=>{this.startSession()}),this.rpc.addMessageListener("initialized",()=>{this.saveRpc=this.getSaveWorker(),this.setInterruptBuffer(),U.set(ae,{kind:"ready"}),this.initialized.resolve()}),this.rpc.addMessageListener("initializingMessage",({message:e})=>{U.get(ae).kind==="loading"&&U.set(ae,{kind:"loading",message:e})}),this.rpc.addMessageListener("initializedError",({error:e})=>{if(this.initialized.status==="resolved"){f.error(e),cs({title:"Error initializing",description:e,variant:"danger"});return}U.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 Yt),window[e]}getSaveWorker(){return Pt()==="read"?(f.debug("Using partially disabled SaveWorker in read-mode"),{readFile:b,readNotebook:async()=>await oe.readFile()??"",saveNotebook:b}):rt(new Worker(new URL(""+new URL("save-worker-_Qc1hOeF.js",import.meta.url).href,""+import.meta.url),{type:"module",name:ot()})).proxy.request}async startSession(){let e=await oe.readFile(),r=await Me.readFile(),s=U.get(Or)??_e.getFilename(),i=U.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:{...i,runtime:{...i.runtime,auto_instantiate:Pt()==="read"?!0:i.runtime.auto_instantiate}}})}setInterruptBuffer(){crossOriginIsolated?(this.interruptBuffer=new Uint8Array(new SharedArrayBuffer(1)),this.rpc.proxy.request.setInterruptBuffer(this.interruptBuffer)):f.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})}},Dt=function(){return He.withProducerCallback(t=>{Oe.INSTANCE.attachMessageConsumer(t)})};function ot(){let t=typeof window<"u"&&window.__MARIMO_HAS_WASM_CONTROLLER__===!0;return is()+(t?"::controller":"")}jt=function(t=je()){let e=window.fetch;return window.fetch=async(r,s)=>{let i=r instanceof Request?r.url:r.toString();if(i.startsWith("data:"))return e(r,s);try{let a=Ce(i,t);if(a){let l=await(await e(a)).arrayBuffer();return new Response(l,{headers:{"Content-Type":mr(i)}})}return e(r,s)}catch(a){return f.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"}$t=function(t,e=je()){let r=t.http.bind(t),s=t.load.bind(t);return t.http=async i=>{let a=Ce(i,e);if(a)return await window.fetch(a).then(l=>l.text());try{return await r(i)}catch(l){if(i.startsWith("data:"))return await window.fetch(i).then(c=>c.text());throw l}},t.load=async i=>{let a=Ce(i,e);if(a)return await window.fetch(a).then(l=>l.text());try{return await s(i)}catch(l){if(i.startsWith("data:"))return await window.fetch(i).then(c=>c.text());throw l}},()=>{t.http=r,t.load=s}};function lt(t){return t.startsWith(".")?t.slice(1):t}function yr(t,e=je()){let r=Ce(t,e);if(!r)return t;let s=gs(r);return URL.createObjectURL(s)}function Ce(t,e){let r=document.baseURI;r.startsWith("blob:")&&(r=r.replace("blob:",""));let s=new URL(t,r).pathname,i=dt(t),a=dt(s);return e[t]||e[lt(t)]||e[s]||e[lt(s)]||i&&e[i]||a&&e[a]}function dt(t){let e=t.indexOf("/@file/");return e===-1?null:t.slice(e)}function Re(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 Re(await t.widget_manager.get_model(r),e)}}}}Ie=function(t){return typeof t=="string"&&t.length>0};function ut(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=ut(r);return Re(await t.getModel(s),e)},async getWidget(r){let s=ut(r),i=await t.getWidget(s);return{exports:i.exports,async render({el:a,signal:l}){await i.render({el:a,signal:l??e})}}}}}var ct=Symbol("marimo");function Ae(t){return t[ct]}var ht=(St=ct,ee=class{constructor(e,r,s){u(this,$);u(this,qe,"change");u(this,j);u(this,F);u(this,Z);u(this,q,{});o(this,St,{updateAndEmitDiffs:e=>p(this,$,Jt).call(this,e),emitCustomMessage:(e,r)=>p(this,$,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,de,Kr(()=>{let e=n(this,q)[n(this,qe)];if(e)for(let r of[...e])try{r()}catch(s){f.error("Error emitting event",s)}},0));h(this,F,e),h(this,Z,r),h(this,j,new Set),s&&s.addEventListener("abort",()=>{f.debug("[Model] Signal aborted, clearing all listeners"),h(this,q,{})})}off(e,r){var s;if(!e){h(this,q,{});return}if(!r){n(this,q)[e]=new Set;return}(s=n(this,q)[e])==null||s.delete(r)}send(e,r,s){let i=(s??[]).map(a=>a instanceof ArrayBuffer?new DataView(a):new DataView(a.buffer,a.byteOffset,a.byteLength));return n(this,Z).sendCustomMessage(e,i).then(()=>r==null?void 0:r())}get(e){return n(this,F)[e]}set(e,r){h(this,F,{...n(this,F),[e]:r}),n(this,j).add(e),p(this,$,Qe).call(this,`change:${e}`,r),n(this,de).call(this)}save_changes(){if(n(this,j).size===0)return;let e=Object.fromEntries([...n(this,j)].map(r=>[r,n(this,F)[r]]));n(this,j).clear(),n(this,Z).sendUpdate(e)}on(e,r,s){let i=s==null?void 0:s.signal;i!=null&&i.aborted||(n(this,q)[e]||(n(this,q)[e]=new Set),n(this,q)[e].add(r),i==null||i.addEventListener("abort",()=>this.off(e,r),{once:!0}))}},qe=new WeakMap,j=new WeakMap,F=new WeakMap,Z=new WeakMap,q=new WeakMap,$=new WeakSet,Qe=function(e,r){let s=n(this,q)[e];if(s)for(let i of[...s])try{i(r)}catch(a){f.error("Error emitting event",a)}},Jt=function(e){e!=null&&Object.keys(e).forEach(r=>{let s=r;n(this,j).delete(s),n(this,F)[s]!==e[s]&&(h(this,F,{...n(this,F),[s]:e[s]}),p(this,$,Qe).call(this,`change:${s}`,e[s]),n(this,de).call(this))})},Kt=function(e,r=[]){let s=n(this,q)["msg:custom"];if(s)for(let i of[...s])try{i(e.content,r)}catch(a){f.error("Error emitting event",a)}},de=new WeakMap,ee);function pt(t){return typeof t=="function"}function ft(t){return typeof t=="function"}function br(t){return ie(t)&&(pt(t.render)||ft(t.initialize))}function vr(t){return typeof t=="function"||br(t)}function Sr(t){return ie(t)&&vr(t.default)}var gt=new Set,mt=new WeakMap;function _r(t,e){if(Sr(t))return t.default;if(!ie(t)||t.default!==void 0)return null;let r=pt(t.render)?t.render:void 0,s=ft(t.initialize)?t.initialize:void 0;if(r===void 0&&s===void 0)return null;let i=mt.get(t);if(i)return i;gt.has(e)||(gt.add(e),f.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 mt.set(t,a),a}function Er(t,e){let r="https://anywidget.dev/en/afm/",s=ie(t)&&kt(t,"render"),i=ie(t)&&kt(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||i){let a=[s?"`render`":null,i?"`initialize`":null].filter(Boolean).join(" and "),l=[s?"render":null,i?"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 U.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 yt={invoke:async()=>{let t="anywidget.invoke not supported in marimo. Please file an issue at https://github.com/marimo-team/marimo/issues";throw f.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=(_t=class{constructor(){u(this,ke);u(this,O,new Map)}getModule(t){let{jsUrl:e,jsHash:r,kernelAuthored:s=!1}=t,i=n(this,O).get(r);if(i)return i;let a=p(this,ke,Xt).call(this,e,{kernelAuthored:s}).catch(l=>{throw n(this,O).delete(r),l});return n(this,O).set(r,a),a}invalidate(t){n(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 Ft()&&(r=yr(r)),us(()=>import(r).then(async s=>(await s.__tla,s)),[],import.meta.url)},_t);function Ne(t){return typeof t=="function"}async function wt(t,e){try{await t()}catch(r){f.warn(`[WidgetBinding] ${e} cleanup failed`,r)}}var qr=(se=class{constructor(e){u(this,V);u(this,te);u(this,ue);u(this,ce);u(this,he);u(this,pe);u(this,B,new Set);u(this,re,new Set);h(this,ue,e.widget),h(this,ce,e.model),h(this,he,e.exports),h(this,te,e.controller),h(this,pe,e.createHost)}static async create({widgetDef:e,model:r,createHost:s,controller:i=new AbortController}){var D;let a=i.signal,l=typeof e=="function"?await e():e,c=Promise.resolve((D=l.initialize)==null?void 0:D.call(l,{model:Re(r,a),experimental:yt,signal:a}));c.then(async A=>{a.aborted&&Ne(A)&&await wt(A,"late initialize")}).catch(()=>{});let w=await Promise.race([c,new Promise((A,Pe)=>{let Se=()=>Pe(Error("[anywidget] binding destroyed"));if(a.aborted){Se();return}a.addEventListener("abort",Se,{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:i,createHost:s});return k&&a.addEventListener("abort",()=>{var A;p(A=P,V,Ge).call(A,k,"initialize")},{once:!0}),P}get exports(){return n(this,he)}async createView(e,r){let s=p(this,V,Zt).call(this,e,r);n(this,re).add(s);try{await s}finally{n(this,re).delete(s)}}async destroy(){for(f.debug("[WidgetBinding] Destroying binding generation"),n(this,te).abort(),await Promise.allSettled(n(this,re));n(this,B).size>0;)await Promise.all(n(this,B))}},te=new WeakMap,ue=new WeakMap,ce=new WeakMap,he=new WeakMap,pe=new WeakMap,B=new WeakMap,re=new WeakMap,V=new WeakSet,Zt=async function(e,r){let s=n(this,ue);if(!s.render)return;let i=Cr([r.signal,n(this,te).signal]);if(i.aborted)return;e.el.innerHTML="";let a=n(this,pe).call(this,i),l=await s.render({model:Re(n(this,ce),i),el:e.el,experimental:yt,signal:i,host:a});if(Ne(l)){let c=()=>{let w=r.signal.aborted?"view unmount":"binding destroyed";return f.debug(`[WidgetBinding] Render cleanup triggered (reason: ${w})`),p(this,V,Ge).call(this,l,"render")};if(i.aborted){await c();return}i.addEventListener("abort",()=>{c()},{once:!0})}},Ge=function(e,r){let s=wt(e,r);return n(this,B).add(s),s.finally(()=>n(this,B).delete(s)),s},se);const bt=new Rr;var kr=(Et=class{constructor(t,e){u(this,v);u(this,z);u(this,fe);u(this,ge);u(this,me);u(this,ye);u(this,I,new AbortController);u(this,C,new Nt);u(this,Q,new Set);u(this,N,new Map);u(this,L);u(this,G);u(this,x);u(this,we,Promise.resolve());u(this,Y,"");h(this,z,t),h(this,fe,e.timeout),h(this,ge,e.isEditMode),h(this,me,e.createHost),h(this,ye,e.onModelTimeout)}getModel(){return n(this,C).status==="pending"&&!n(this,L)&&h(this,L,setTimeout(()=>{n(this,C).status==="pending"&&(h(this,L,void 0),n(this,C).reject(Error(`Model not found for key: ${n(this,z)}`)),n(this,ye).call(this))},n(this,fe))),n(this,C).promise}getModelSync(){return n(this,C).status==="resolved"?n(this,C).value:void 0}createModel(t){n(this,C).status==="pending"&&p(this,v,Ye).call(this,t(n(this,I).signal))}setModel(t){n(this,C).status==="pending"&&p(this,v,Ye).call(this,t)}setSpec(t){if(!n(this,G)){h(this,G,t);return}n(this,ge).call(this)&&(h(this,G,t),n(this,x)&&n(this,x).hash!==t.hash&&p(this,v,tr).call(this,t))}async getWidget(){return{exports:(await p(this,v,Je).call(this)).exports,render:async({el:t,signal:e})=>{await this.createView({el:t,signal:e??n(this,I).signal})}}}async createView(t){if(t.signal.aborted||n(this,I).signal.aborted)return;let e={el:t.el,signal:t.signal};n(this,Q).add(e),p(this,v,rr).call(this,e),t.signal.addEventListener("abort",()=>n(this,Q).delete(e),{once:!0}),await p(this,v,Ze).call(this,e)}dispose(){if(!n(this,I).signal.aborted){f.debug(`[WidgetRuntime] Disposing model=${n(this,z)}`),n(this,L)&&h(this,L,(clearTimeout(n(this,L)),void 0)),n(this,C).status==="pending"&&(n(this,C).promise.catch(()=>{}),n(this,C).reject(Error("[anywidget] widget runtime destroyed"))),n(this,x)&&p(this,v,Xe).call(this,n(this,x)),n(this,I).abort(),n(this,Q).clear();for(let t of n(this,N).values())t.dispose();n(this,N).clear()}}},z=new WeakMap,fe=new WeakMap,ge=new WeakMap,me=new WeakMap,ye=new WeakMap,I=new WeakMap,C=new WeakMap,Q=new WeakMap,N=new WeakMap,L=new WeakMap,G=new WeakMap,x=new WeakMap,we=new WeakMap,Y=new WeakMap,v=new WeakSet,Ye=function(t){n(this,L)&&h(this,L,(clearTimeout(n(this,L)),void 0)),n(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 n(this,N).values())s.update(n(this,Y))},{signal:n(this,I).signal})},Je=async function(){for(;!n(this,I).signal.aborted;){let t=await this.getModel(),e=n(this,x);if(!e){let r=n(this,G);if(!r)throw Error(`[anywidget] No ESM spec for model ${n(this,z)}: nothing ever provided this widget's code`);e=p(this,v,Ke).call(this,r,t)}try{let r=await e.promise;if(e===n(this,x))return r}catch(r){if(!n(this,x)||e===n(this,x))throw r}}throw Error("[anywidget] widget runtime destroyed")},er=async function(t){let{spec:e,model:r,controller:s}=t,i=await bt.getModule({jsUrl:e.url,jsHash:e.hash,kernelAuthored:!0}),a=_r(i,e.url);if(!a)throw bt.invalidate(e.hash),Er(i,e.url);return qr.create({widgetDef:a,model:r,createHost:n(this,me),controller:s})},Ke=function(t,e){let r=new AbortController,s={hash:t.hash,controller:r,promise:p(this,v,er).call(this,{spec:t,model:e,controller:r})};return s.promise.catch(()=>{n(this,x)===s&&h(this,x,void 0)}),h(this,x,s),s},tr=function(t){let e=n(this,x);if(!e)return;f.debug(`[WidgetRuntime] Hot-swapping generation for model=${n(this,z)}`);let r=p(this,v,Xe).call(this,e),s=this.getModelSync();if(!s)return;let i=p(this,v,Ke).call(this,t,s);for(let a of n(this,Q))a.generation=void 0,r.then(()=>p(this,v,Ze).call(this,a,i)).catch(l=>{f.error("[WidgetRuntime] Error replacing widget view",l)})},Xe=function(t){t.controller.abort();let e=n(this,we).then(async()=>{try{await(await t.promise).destroy()}catch{}});return h(this,we,e),e},Ze=async function(t,e){if(t.signal.aborted||n(this,I).signal.aborted)return;let r=e??n(this,x),s=r?await r.promise:await p(this,v,Je).call(this),i=n(this,x);if(!(!i||i!==(r??i))&&t.generation!==i){t.generation=i;try{await s.createView({el:t.el},{signal:t.signal})}catch(a){if(i!==n(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=n(this,N).get(e);r||(r=Fr(e,n(this,Y)),n(this,N).set(e,r)),r.references+=1;let s=!1;t.signal.addEventListener("abort",()=>{if(s)return;s=!0;let i=n(this,N).get(e);i&&(--i.references,i.references===0&&(i.dispose(),n(this,N).delete(e)))},{once:!0})},Et);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 i=r.createElement("style");return i.textContent=e,Le(t)?r.head.append(i):t.append(i),{references:0,update(a){i.textContent=a},dispose(){i.remove()}}}function Te(t,e=[]){let r=[];if(t instanceof DataView)r.push(e);else if(Array.isArray(t))for(let[s,i]of t.entries())r.push(...Te(i,[...e,s]));else if(typeof t=="object"&&t)for(let[s,i]of Object.entries(t))r.push(...Te(i,[...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=[],i=[];for(let a of e){let l=Jr(t,a);if(l instanceof DataView){let c=It(l);s.push(c),i.push(a),Ee(r,a,c)}}return{state:r,buffers:s,bufferPaths:i}}function vt(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 i=e;for(let[a,l]of r.entries()){let c=s==null?void 0:s[a];if(c==null){f.warn("[anywidget] Could not find buffer at path",l);continue}typeof c=="string"?Ee(i,l,At(c)):Ee(i,l,c)}return i}function Ar(){let t=U.get(rs).mode;return t==="edit"||t==="present"}Fe=new(xt=class{constructor(t=1e4,e=Ar){u(this,H);u(this,T,new Map);u(this,be);u(this,ve);h(this,be,t),h(this,ve,e)}getModel(t){return p(this,H,X).call(this,t).getModel()}getModelSync(t){var e;return(e=n(this,T).get(t))==null?void 0:e.getModelSync()}createModel(t,e){p(this,H,X).call(this,t).createModel(e)}setModel(t,e){p(this,H,X).call(this,t).setModel(e)}setSpec(t,e){p(this,H,X).call(this,t).setSpec(e)}getWidget(t){return p(this,H,X).call(this,t).getWidget()}createView(t){return p(this,H,X).call(this,t.modelId).createView(t)}delete(t){let e=n(this,T).get(t);e&&(e.dispose(),n(this,T).delete(t))}},T=new WeakMap,be=new WeakMap,ve=new WeakMap,H=new WeakSet,X=function(t){let e=n(this,T).get(t);if(!e){let r=new kr(t,{timeout:n(this,be),isEditMode:n(this,ve),createHost:s=>wr(this,s),onModelTimeout:()=>{n(this,T).get(t)===r&&(r.dispose(),n(this,T).delete(t))}});e=r,n(this,T).set(t,e)}return e},xt),ht._modelManager=Fe,Ut=async function(t,e){let r=e.model_id;if(!Ie(r))throw Error(`[anywidget] Invalid model id: ${String(r)}`);let s=e.message,i=("buffers"in s?s.buffers:[]).map(At);switch(s.method){case"open":{let{state:a,buffer_paths:l=[]}=s;s.esm_spec&&t.setSpec(r,s.esm_spec);let c=vt({state:a,bufferPaths:l,buffers:i}),w=t.getModelSync(r);if(w){Ae(w).updateAndEmitDiffs(c);return}t.createModel(r,R=>new ht(c,Ft()?{sendUpdate:async()=>{},sendCustomMessage:async()=>{}}:{async sendUpdate(k){if(R.aborted){f.debug(`[Model] sendUpdate suppressed for model=${r} (signal aborted)`);return}let{state:P,buffers:D,bufferPaths:A}=Ir(k);await $e().sendModelValue({modelId:r,message:{method:"update",state:P,bufferPaths:A},buffers:D})},async sendCustomMessage(k,P){if(R.aborted){f.debug(`[Model] sendCustomMessage suppressed for model=${r} (signal aborted)`);return}await $e().sendModelValue({modelId:r,message:{method:"custom",content:k},buffers:P.map(It)})}},R));return}case"custom":Ae(await t.getModel(r)).emitCustomMessage({method:"custom",content:s.content},i);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=vt({state:a,bufferPaths:l,buffers:i});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)&&f.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 i=this.entries.get(e);if(i===void 0){f.warn("UIElementRegistry missing entry",e);return}if(Nr(r)){i.value=r.value,i.elements.forEach(a=>{a.dispatchEvent(Tt.create({bubbles:!1,composed:!0,detail:{value:r.value,element:a}}))});return}i.elements.forEach(a=>{a.dispatchEvent(vs.create({bubbles:!1,composed:!0,detail:{objectId:e,message:r,buffers:s}}))})}broadcastValueUpdate(e,r,s){let i=this.entries.get(r);i===void 0?f.warn("UIElementRegistry missing entry",r):(i.value=s,i.elements.forEach(a=>{a!==e&&a.dispatchEvent(Tt.create({bubbles:!1,composed:!0,detail:{value:s,element:a}}))}),document.dispatchEvent(bs.create({bubbles:!0,composed:!0,detail:{objectId:r}})))}},Ot=De.INSTANCE,Ht=new ds("function-call-result",async(t,e)=>{await $e().sendFunctionRequest({functionCallId:t,...e})}),Vt="68px";var Lr="288px";zt=t=>t?/^\d+$/.test(t)?`${t}px`:t:Lr,Bt=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{Ee as S,He as _,Ss as __tla,De as a,Wt as b,Ut as c,jt as d,$t as f,ae as g,oe as h,Ht as i,ze as l,Dt as m,zt as n,Ot as o,Oe as p,Bt as r,Fe as s,Vt as t,Ie as u,Be as v,Qt as x,Gt as y};
|
package/dist/index.html
CHANGED
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
<marimo-server-token data-token="{{ server_token }}" hidden></marimo-server-token>
|
|
67
67
|
<!-- /TODO -->
|
|
68
68
|
<title>{{ title }}</title>
|
|
69
|
-
<script type="module" crossorigin src="./assets/index-
|
|
69
|
+
<script type="module" crossorigin src="./assets/index-D3uUU4bN.js"></script>
|
|
70
70
|
<link rel="modulepreload" crossorigin href="./assets/preload-helper-TXkS1QI3.js">
|
|
71
71
|
<link rel="modulepreload" crossorigin href="./assets/objects-BlG0ZrO0.js">
|
|
72
72
|
<link rel="modulepreload" crossorigin href="./assets/chunk-LvLJmgfZ.js">
|
|
@@ -223,7 +223,7 @@
|
|
|
223
223
|
<link rel="modulepreload" crossorigin href="./assets/memoize-Tp7rARFe.js">
|
|
224
224
|
<link rel="modulepreload" crossorigin href="./assets/get-C-qh_et5.js">
|
|
225
225
|
<link rel="modulepreload" crossorigin href="./assets/_baseSet-CsW0tABf.js">
|
|
226
|
-
<link rel="modulepreload" crossorigin href="./assets/state-
|
|
226
|
+
<link rel="modulepreload" crossorigin href="./assets/state-BuzCk6Z3.js">
|
|
227
227
|
<link rel="modulepreload" crossorigin href="./assets/label-CqjrpwRC.js">
|
|
228
228
|
<link rel="modulepreload" crossorigin href="./assets/form-b4jQBV3T.js">
|
|
229
229
|
<link rel="modulepreload" crossorigin href="./assets/textarea-DZB2bzVL.js">
|
package/package.json
CHANGED
|
@@ -263,6 +263,61 @@ describe("Model", () => {
|
|
|
263
263
|
await TestUtils.nextTick(); // flush
|
|
264
264
|
expect(callback).toHaveBeenCalledTimes(1);
|
|
265
265
|
});
|
|
266
|
+
|
|
267
|
+
it("should not mark kernel-pushed state dirty", () => {
|
|
268
|
+
getMarimoInternal(model).updateAndEmitDiffs({ foo: "changed", bar: 456 });
|
|
269
|
+
|
|
270
|
+
model.save_changes();
|
|
271
|
+
expect(mockComm.sendUpdate).not.toHaveBeenCalled();
|
|
272
|
+
});
|
|
273
|
+
|
|
274
|
+
it("should not echo kernel-pushed state alongside a local set", () => {
|
|
275
|
+
// Kernel pushes a large trait; widget ESM then sets one field.
|
|
276
|
+
getMarimoInternal(model).updateAndEmitDiffs({
|
|
277
|
+
foo: "from kernel",
|
|
278
|
+
bar: 123,
|
|
279
|
+
});
|
|
280
|
+
model.set("bar", 456);
|
|
281
|
+
|
|
282
|
+
model.save_changes();
|
|
283
|
+
expect(mockComm.sendUpdate).toHaveBeenCalledExactlyOnceWith({
|
|
284
|
+
bar: 456,
|
|
285
|
+
});
|
|
286
|
+
});
|
|
287
|
+
|
|
288
|
+
it("should drop a pending local write superseded by a kernel push", () => {
|
|
289
|
+
// Local write, not yet saved...
|
|
290
|
+
model.set("foo", "local");
|
|
291
|
+
// ...then the kernel pushes a newer value for the same key.
|
|
292
|
+
getMarimoInternal(model).updateAndEmitDiffs({
|
|
293
|
+
foo: "from kernel",
|
|
294
|
+
bar: 123,
|
|
295
|
+
});
|
|
296
|
+
expect(model.get("foo")).toBe("from kernel");
|
|
297
|
+
|
|
298
|
+
// Saving must not resend the stale local value.
|
|
299
|
+
model.save_changes();
|
|
300
|
+
expect(mockComm.sendUpdate).not.toHaveBeenCalled();
|
|
301
|
+
});
|
|
302
|
+
|
|
303
|
+
it("should drop a pending local write the kernel pushed the same value for", () => {
|
|
304
|
+
const callback = vi.fn();
|
|
305
|
+
model.on("change:foo", callback);
|
|
306
|
+
|
|
307
|
+
// Local write, not yet saved...
|
|
308
|
+
model.set("foo", "agreed");
|
|
309
|
+
expect(callback).toHaveBeenCalledTimes(1);
|
|
310
|
+
|
|
311
|
+
// ...then the kernel independently pushes the same value.
|
|
312
|
+
getMarimoInternal(model).updateAndEmitDiffs({
|
|
313
|
+
foo: "agreed",
|
|
314
|
+
bar: 123,
|
|
315
|
+
});
|
|
316
|
+
expect(callback).toHaveBeenCalledTimes(1); // no spurious re-emit
|
|
317
|
+
|
|
318
|
+
model.save_changes();
|
|
319
|
+
expect(mockComm.sendUpdate).not.toHaveBeenCalled();
|
|
320
|
+
});
|
|
266
321
|
});
|
|
267
322
|
|
|
268
323
|
describe("emitCustomMessage", () => {
|
|
@@ -53,7 +53,8 @@ export function getMarimoInternal<T extends ModelState>(
|
|
|
53
53
|
|
|
54
54
|
export class Model<T extends ModelState> implements AnyModel<T> {
|
|
55
55
|
#ANY_CHANGE_EVENT = "change";
|
|
56
|
-
|
|
56
|
+
/** Keys last written by the widget that the kernel hasn't seen yet. */
|
|
57
|
+
#dirtyFields: Set<keyof T>;
|
|
57
58
|
#data: T;
|
|
58
59
|
#comm: MarimoComm<T>;
|
|
59
60
|
#listeners: Record<string, Set<EventHandler> | undefined> = {};
|
|
@@ -70,7 +71,7 @@ export class Model<T extends ModelState> implements AnyModel<T> {
|
|
|
70
71
|
constructor(data: T, comm: MarimoComm<T>, signal?: AbortSignal) {
|
|
71
72
|
this.#data = data;
|
|
72
73
|
this.#comm = comm;
|
|
73
|
-
this.#dirtyFields = new
|
|
74
|
+
this.#dirtyFields = new Set();
|
|
74
75
|
if (signal) {
|
|
75
76
|
signal.addEventListener("abort", () => {
|
|
76
77
|
Logger.debug("[Model] Signal aborted, clearing all listeners");
|
|
@@ -140,7 +141,7 @@ export class Model<T extends ModelState> implements AnyModel<T> {
|
|
|
140
141
|
|
|
141
142
|
set<K extends keyof T>(key: K, value: T[K]): void {
|
|
142
143
|
this.#data = { ...this.#data, [key]: value };
|
|
143
|
-
this.#dirtyFields.
|
|
144
|
+
this.#dirtyFields.add(key);
|
|
144
145
|
this.#emit(`change:${key as K & string}`, value);
|
|
145
146
|
this.#emitAnyChange();
|
|
146
147
|
}
|
|
@@ -151,7 +152,7 @@ export class Model<T extends ModelState> implements AnyModel<T> {
|
|
|
151
152
|
}
|
|
152
153
|
// Only send the dirty fields, not the entire state.
|
|
153
154
|
const partialData = Object.fromEntries(
|
|
154
|
-
this.#dirtyFields.
|
|
155
|
+
[...this.#dirtyFields].map((key) => [key, this.#data[key]]),
|
|
155
156
|
) as Partial<T>;
|
|
156
157
|
|
|
157
158
|
// Clear the dirty fields to avoid sending again.
|
|
@@ -204,6 +205,15 @@ export class Model<T extends ModelState> implements AnyModel<T> {
|
|
|
204
205
|
}
|
|
205
206
|
}
|
|
206
207
|
|
|
208
|
+
/**
|
|
209
|
+
* Apply a kernel-originated state update.
|
|
210
|
+
*
|
|
211
|
+
* Unlike `set()`, this never marks fields dirty — the kernel already
|
|
212
|
+
* has these values, so `save_changes()` must not echo them back.
|
|
213
|
+
*
|
|
214
|
+
* The kernel wins conflicts: a pending unsaved widget write to the same
|
|
215
|
+
* key is dropped, not replayed on top.
|
|
216
|
+
*/
|
|
207
217
|
#updateAndEmitDiffs(value: T) {
|
|
208
218
|
if (value == null) {
|
|
209
219
|
return;
|
|
@@ -211,9 +221,14 @@ export class Model<T extends ModelState> implements AnyModel<T> {
|
|
|
211
221
|
|
|
212
222
|
Object.keys(value).forEach((key) => {
|
|
213
223
|
const k = key as keyof T;
|
|
224
|
+
// Unconditional: guarding on inequality would leave a same-valued
|
|
225
|
+
// pending write dirty, and echo it back on save.
|
|
226
|
+
this.#dirtyFields.delete(k);
|
|
214
227
|
// Shallow equal since these can be large objects
|
|
215
228
|
if (this.#data[k] !== value[k]) {
|
|
216
|
-
this
|
|
229
|
+
this.#data = { ...this.#data, [k]: value[k] };
|
|
230
|
+
this.#emit(`change:${k as keyof T & string}`, value[k]);
|
|
231
|
+
this.#emitAnyChange();
|
|
217
232
|
}
|
|
218
233
|
});
|
|
219
234
|
}
|