@marimo-team/frontend 0.23.7-dev13 → 0.23.7-dev15

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.
Files changed (40) hide show
  1. package/dist/assets/__vite-browser-external-DuZehUbK.js +1 -0
  2. package/dist/assets/__vite-browser-external-Jpm67kL1.js +1 -0
  3. package/dist/assets/{cell-editor-DOImf428.js → cell-editor-BN3D1_w1.js} +1 -1
  4. package/dist/assets/{command-palette-CSa-ZC8t.js → command-palette-DuPUk7of.js} +1 -1
  5. package/dist/assets/{edit-page-CMzqgK6j.js → edit-page-hJAbnd__.js} +6 -6
  6. package/dist/assets/{hooks-BpoZRNxw.js → hooks-DbPDczTe.js} +1 -1
  7. package/dist/assets/{index-fXenSTRv.js → index-CH2ZE_q-.js} +3 -3
  8. package/dist/assets/{layout-D5myrs5s.js → layout-C1dvirgi.js} +2 -2
  9. package/dist/assets/panels-Z5fVmDRY.js +1 -0
  10. package/dist/assets/{reveal-component-CJYRD8Yf.js → reveal-component-DLRiYfBj.js} +1 -1
  11. package/dist/assets/run-page-DDMPBh9O.js +1 -0
  12. package/dist/assets/{save-worker-CvbUHJh7.js → save-worker-D2iQi-UK.js} +4 -4
  13. package/dist/assets/{scratchpad-panel-SgUSM06x.js → scratchpad-panel-CUMSD7sH.js} +1 -1
  14. package/dist/assets/{state-B_kYpAQh.js → state-xEqF8Q3P.js} +3 -3
  15. package/dist/assets/{useNotebookActions-CrtC0jVZ.js → useNotebookActions-CZ7s2FNR.js} +1 -1
  16. package/dist/assets/{worker-CF8V9c2V.js → worker-B38WhSlZ.js} +4 -4
  17. package/dist/assets/ws-BV7dcs53.js +22 -0
  18. package/dist/index.html +2 -2
  19. package/package.json +2 -2
  20. package/src/components/editor/app-container.tsx +7 -1
  21. package/src/components/editor/header/__tests__/status.test.tsx +108 -0
  22. package/src/components/editor/header/status.tsx +44 -10
  23. package/src/core/edit-app.tsx +2 -1
  24. package/src/core/islands/worker/worker.tsx +3 -2
  25. package/src/core/run-app.tsx +2 -1
  26. package/src/core/wasm/__tests__/utils.test.ts +34 -0
  27. package/src/core/wasm/utils.ts +14 -0
  28. package/src/core/wasm/worker/bootstrap.ts +3 -2
  29. package/src/core/wasm/worker/worker.ts +3 -2
  30. package/src/core/websocket/__tests__/useMarimoKernelConnection.hook.test.tsx +155 -0
  31. package/src/core/websocket/__tests__/useMarimoKernelConnection.test.ts +137 -0
  32. package/src/core/websocket/transports/basic.ts +2 -0
  33. package/src/core/websocket/transports/transport.ts +1 -0
  34. package/src/core/websocket/useMarimoKernelConnection.tsx +130 -55
  35. package/src/core/websocket/useWebSocket.tsx +5 -2
  36. package/dist/assets/__vite-browser-external-D0cSGXjR.js +0 -1
  37. package/dist/assets/__vite-browser-external-DQc2JVNq.js +0 -1
  38. package/dist/assets/panels-COAp5_gz.js +0 -1
  39. package/dist/assets/run-page-CTQJzZGR.js +0 -1
  40. package/dist/assets/ws-BZQmQxZ7.js +0 -22
@@ -1 +1 @@
1
- var O=Object.defineProperty;var V=(t,e,i)=>e in t?O(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i;var b=(t,e,i)=>V(t,typeof e!="symbol"?e+"":e,i);import{u as I}from"./useEvent-D91BmmQi.js";import{o as j}from"./cells-BBDzmUIS.js";import{t as P}from"./compiler-runtime-B3qBwwSJ.js";import{_ as k,d as E}from"./useEventListener-BR0C1MaI.js";import{i as T}from"./utils-BrXijSdZ.js";import{v as _,w as N}from"./config-CPqw1wUv.js";import{s as z,u as D}from"./download-QGh9oR1D.js";import{r as $}from"./requests-DIwGYs0l.js";import{P as B}from"./layout-D5myrs5s.js";import{t as H}from"./Deferred-DMWKlZOV.js";import{t as L}from"./use-toast-T0_cQDma.js";import{t as M}from"./useInterval-CvFz96h2.js";var R=class{constructor(){b(this,"capturedInputs",new Map);b(this,"inFlight",new Map)}cancelEntry(t){t.controller.abort(),t.deferred.status==="pending"&&t.deferred.resolve(void 0)}needsCapture(t,e){if(this.capturedInputs.get(t)===e)return!1;let i=this.inFlight.get(t);return!(i&&i.inputValue===e)}waitForInFlight(t,e){let i=this.inFlight.get(t);return i&&i.inputValue===e?i.deferred.promise:null}startCapture(t,e){let i=this.inFlight.get(t);i&&this.cancelEntry(i);let n=new AbortController,l=new H,u={controller:n,inputValue:e,deferred:l};return this.inFlight.set(t,u),{signal:n.signal,markCaptured:p=>{this.inFlight.get(t)===u&&(l.resolve(p),this.capturedInputs.set(t,e),this.inFlight.delete(t))},markFailed:()=>{this.inFlight.get(t)===u&&(l.resolve(void 0),this.inFlight.delete(t))}}}prune(t){for(let e of this.capturedInputs.keys())t.has(e)||this.capturedInputs.delete(e);for(let[e,i]of this.inFlight)t.has(e)||(this.cancelEntry(i),this.inFlight.delete(e))}get isCapturing(){return this.inFlight.size>0}abort(){for(let t of this.inFlight.values())this.cancelEntry(t);this.inFlight.clear()}reset(){this.abort(),this.capturedInputs.clear()}},Y=P(),S=5e3;function q(){let t=(0,Y.c)(14),e=I(T),{state:i}=I(_),n=e.auto_download.includes("markdown"),l=e.auto_download.includes("html"),u=e.auto_download.includes("ipynb"),p=i===N.OPEN,m=!n||!p,d=!l||!p,h=!u||!p,{autoExportAsHTML:a,autoExportAsIPYNB:s,autoExportAsMarkdown:r,updateCellOutputs:o}=$(),c=x(),f;t[0]===r?f=t[1]:(f=async()=>{await r({download:!1})},t[0]=r,t[1]=f);let g;t[2]===m?g=t[3]:(g={delayMs:S,whenVisible:!0,disabled:m},t[2]=m,t[3]=g),M(f,g);let w;t[4]===a?w=t[5]:(w=async()=>{await a({download:!1,includeCode:!0,files:B.INSTANCE.filenames()})},t[4]=a,t[5]=w);let v;t[6]===d?v=t[7]:(v={delayMs:S,whenVisible:!0,disabled:d},t[6]=d,t[7]=v),M(w,v);let F;t[8]!==s||t[9]!==c||t[10]!==o?(F=async()=>{await A({takeScreenshots:()=>c({progress:D.indeterminate()}),updateCellOutputs:o}),await s({download:!1})},t[8]=s,t[9]=c,t[10]=o,t[11]=F):F=t[11];let y;t[12]===h?y=t[13]:(y={delayMs:S,whenVisible:!0,disabled:h,skipIfRunning:!0},t[12]=h,t[13]=y),M(F,y)}var G=new Set(["text/html","application/vnd.vegalite.v5+json","application/vnd.vega.v5+json","application/vnd.vegalite.v6+json","application/vnd.vega.v6+json"]);const C=new R;function x(){let t=I(j);return async e=>{var d,h;let{progress:i}=e,n=new Set(E.keys(t));C.prune(n);let l=[],u=[];for(let[a,s]of E.entries(t)){let r=(d=s.output)==null?void 0:d.data;if((h=s.output)!=null&&h.mimetype&&G.has(s.output.mimetype)&&r)if(C.needsCapture(a,r))l.push([a,r]);else{let o=C.waitForInFlight(a,r);o&&u.push({cellId:a,promise:o})}}if(l.length===0&&u.length===0)return{};l.length>0&&i.addTotal(l.length);let p={};for(let[a,s]of l){let r=C.startCapture(a,s);try{let o=await z(a);if(r.signal.aborted)continue;if(!o){k.error(`Failed to capture screenshot for cell ${a}`),r.markFailed();continue}let c=["image/png",o];p[a]=c,r.markCaptured(c)}catch(o){k.error(`Error screenshotting cell ${a}:`,o),r.markFailed()}finally{i.increment(1)}}let m=await Promise.allSettled(u.map(({promise:a})=>a));for(let[a,{cellId:s}]of u.entries()){let r=m[a];r.status==="fulfilled"&&r.value&&(p[s]=r.value)}return p}}async function A(t){let{takeScreenshots:e,updateCellOutputs:i}=t;try{let n=await e();E.size(n)>0&&await i({cellIdsToOutput:n})}catch(n){k.error("Error updating cell outputs with screenshots:",n),L({title:"Failed to capture cell outputs",description:"Some outputs may not appear in the PDF. Continuing with export.",variant:"danger"})}}export{q as n,x as r,A as t};
1
+ var O=Object.defineProperty;var V=(t,e,i)=>e in t?O(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i;var b=(t,e,i)=>V(t,typeof e!="symbol"?e+"":e,i);import{u as I}from"./useEvent-D91BmmQi.js";import{o as j}from"./cells-BBDzmUIS.js";import{t as P}from"./compiler-runtime-B3qBwwSJ.js";import{_ as k,d as E}from"./useEventListener-BR0C1MaI.js";import{i as T}from"./utils-BrXijSdZ.js";import{v as _,w as N}from"./config-CPqw1wUv.js";import{s as z,u as D}from"./download-QGh9oR1D.js";import{r as $}from"./requests-DIwGYs0l.js";import{P as B}from"./layout-C1dvirgi.js";import{t as H}from"./Deferred-DMWKlZOV.js";import{t as L}from"./use-toast-T0_cQDma.js";import{t as M}from"./useInterval-CvFz96h2.js";var R=class{constructor(){b(this,"capturedInputs",new Map);b(this,"inFlight",new Map)}cancelEntry(t){t.controller.abort(),t.deferred.status==="pending"&&t.deferred.resolve(void 0)}needsCapture(t,e){if(this.capturedInputs.get(t)===e)return!1;let i=this.inFlight.get(t);return!(i&&i.inputValue===e)}waitForInFlight(t,e){let i=this.inFlight.get(t);return i&&i.inputValue===e?i.deferred.promise:null}startCapture(t,e){let i=this.inFlight.get(t);i&&this.cancelEntry(i);let n=new AbortController,l=new H,u={controller:n,inputValue:e,deferred:l};return this.inFlight.set(t,u),{signal:n.signal,markCaptured:p=>{this.inFlight.get(t)===u&&(l.resolve(p),this.capturedInputs.set(t,e),this.inFlight.delete(t))},markFailed:()=>{this.inFlight.get(t)===u&&(l.resolve(void 0),this.inFlight.delete(t))}}}prune(t){for(let e of this.capturedInputs.keys())t.has(e)||this.capturedInputs.delete(e);for(let[e,i]of this.inFlight)t.has(e)||(this.cancelEntry(i),this.inFlight.delete(e))}get isCapturing(){return this.inFlight.size>0}abort(){for(let t of this.inFlight.values())this.cancelEntry(t);this.inFlight.clear()}reset(){this.abort(),this.capturedInputs.clear()}},Y=P(),S=5e3;function q(){let t=(0,Y.c)(14),e=I(T),{state:i}=I(_),n=e.auto_download.includes("markdown"),l=e.auto_download.includes("html"),u=e.auto_download.includes("ipynb"),p=i===N.OPEN,m=!n||!p,d=!l||!p,h=!u||!p,{autoExportAsHTML:a,autoExportAsIPYNB:s,autoExportAsMarkdown:r,updateCellOutputs:o}=$(),c=x(),f;t[0]===r?f=t[1]:(f=async()=>{await r({download:!1})},t[0]=r,t[1]=f);let g;t[2]===m?g=t[3]:(g={delayMs:S,whenVisible:!0,disabled:m},t[2]=m,t[3]=g),M(f,g);let w;t[4]===a?w=t[5]:(w=async()=>{await a({download:!1,includeCode:!0,files:B.INSTANCE.filenames()})},t[4]=a,t[5]=w);let v;t[6]===d?v=t[7]:(v={delayMs:S,whenVisible:!0,disabled:d},t[6]=d,t[7]=v),M(w,v);let F;t[8]!==s||t[9]!==c||t[10]!==o?(F=async()=>{await A({takeScreenshots:()=>c({progress:D.indeterminate()}),updateCellOutputs:o}),await s({download:!1})},t[8]=s,t[9]=c,t[10]=o,t[11]=F):F=t[11];let y;t[12]===h?y=t[13]:(y={delayMs:S,whenVisible:!0,disabled:h,skipIfRunning:!0},t[12]=h,t[13]=y),M(F,y)}var G=new Set(["text/html","application/vnd.vegalite.v5+json","application/vnd.vega.v5+json","application/vnd.vegalite.v6+json","application/vnd.vega.v6+json"]);const C=new R;function x(){let t=I(j);return async e=>{var d,h;let{progress:i}=e,n=new Set(E.keys(t));C.prune(n);let l=[],u=[];for(let[a,s]of E.entries(t)){let r=(d=s.output)==null?void 0:d.data;if((h=s.output)!=null&&h.mimetype&&G.has(s.output.mimetype)&&r)if(C.needsCapture(a,r))l.push([a,r]);else{let o=C.waitForInFlight(a,r);o&&u.push({cellId:a,promise:o})}}if(l.length===0&&u.length===0)return{};l.length>0&&i.addTotal(l.length);let p={};for(let[a,s]of l){let r=C.startCapture(a,s);try{let o=await z(a);if(r.signal.aborted)continue;if(!o){k.error(`Failed to capture screenshot for cell ${a}`),r.markFailed();continue}let c=["image/png",o];p[a]=c,r.markCaptured(c)}catch(o){k.error(`Error screenshotting cell ${a}:`,o),r.markFailed()}finally{i.increment(1)}}let m=await Promise.allSettled(u.map(({promise:a})=>a));for(let[a,{cellId:s}]of u.entries()){let r=m[a];r.status==="fulfilled"&&r.value&&(p[s]=r.value)}return p}}async function A(t){let{takeScreenshots:e,updateCellOutputs:i}=t;try{let n=await e();E.size(n)>0&&await i({cellIdsToOutput:n})}catch(n){k.error("Error updating cell outputs with screenshots:",n),L({title:"Failed to capture cell outputs",description:"Some outputs may not appear in the PDF. Continuing with export.",variant:"danger"})}}export{q as n,x as r,A as t};