@marimo-team/frontend 0.23.2-dev21 → 0.23.2-dev24

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 (80) hide show
  1. package/dist/assets/{CellStatus-BvL64bS5.js → CellStatus-DeF3Yt9c.js} +1 -1
  2. package/dist/assets/{ErrorBoundary-Cg1jAW_O.js → ErrorBoundary-BB1jw72T.js} +1 -1
  3. package/dist/assets/{JsonOutput-BquC7Hx9.js → JsonOutput-BEqVi4Tv.js} +1 -1
  4. package/dist/assets/{MarimoErrorOutput-B3BGiMIG.js → MarimoErrorOutput-CqfRNFl6.js} +1 -1
  5. package/dist/assets/{RenderHTML-Bk1VwPJp.js → RenderHTML-B0R0iGuJ.js} +1 -1
  6. package/dist/assets/{add-cell-with-ai-fBaf1mGA.js → add-cell-with-ai-7PizChYl.js} +1 -1
  7. package/dist/assets/{add-connection-dialog-BLVsSASB.js → add-connection-dialog-Y6b-vKus.js} +1 -1
  8. package/dist/assets/{agent-panel-CKrehUib.js → agent-panel-HDpBKqEw.js} +1 -1
  9. package/dist/assets/{ai-model-dropdown-fWWswEFq.js → ai-model-dropdown-Cvc4Tt2A.js} +1 -1
  10. package/dist/assets/{app-config-button-f2SIt0wH.js → app-config-button-QMGIVLCt.js} +1 -1
  11. package/dist/assets/{cell-editor-BvO4VoL8.js → cell-editor-BO4OCaeK.js} +1 -1
  12. package/dist/assets/{cell-link-CySPtY7P.js → cell-link-Dv_KtdBn.js} +1 -1
  13. package/dist/assets/{cells-CN4JOik9.js → cells-CjMq7Ben.js} +1 -1
  14. package/dist/assets/{chat-display-Dl2y-jxb.js → chat-display-DZzDxgY3.js} +1 -1
  15. package/dist/assets/{chat-panel-DehYD5Ar.js → chat-panel-D2e5zJla.js} +1 -1
  16. package/dist/assets/{chat-ui-D0D_Tgrg.js → chat-ui-CcWKeHFA.js} +1 -1
  17. package/dist/assets/{column-preview-1XDTrVH6.js → column-preview-BSZiY_3c.js} +1 -1
  18. package/dist/assets/{command-palette-imKIqkvX.js → command-palette-DG1U1ccU.js} +1 -1
  19. package/dist/assets/{common-BgwczVLf.js → common-DGX-r1qB.js} +1 -1
  20. package/dist/assets/{components-B1Jvw8_u.js → components-BgqBBoj1.js} +1 -1
  21. package/dist/assets/{components-CVrxppLm.js → components-C3pJ-LE1.js} +1 -1
  22. package/dist/assets/{config-CkVlfvRx.js → config-CwFllgX7.js} +1 -1
  23. package/dist/assets/{constants-DWFgp1e4.js → constants-BKqVABV7.js} +1 -1
  24. package/dist/assets/{datasource-DWCvUXwI.js → datasource-mA_7y0mc.js} +1 -1
  25. package/dist/assets/{dependency-graph-panel-C3YQnK_2.js → dependency-graph-panel-DacznpcC.js} +1 -1
  26. package/dist/assets/{documentation-panel-CoPdjwTI.js → documentation-panel-BiyLQG3M.js} +1 -1
  27. package/dist/assets/{download-CH6PUCSY.js → download-DtbnVlWH.js} +1 -1
  28. package/dist/assets/{edit-page-BjsTTiqH.js → edit-page-CXsD0itx.js} +3 -3
  29. package/dist/assets/{error-panel-BoMNfYwb.js → error-panel-BUR1NUhu.js} +1 -1
  30. package/dist/assets/{file-explorer-panel-D_SB7122.js → file-explorer-panel-DMGTsLGV.js} +1 -1
  31. package/dist/assets/{file-icons-BycqkWhw.js → file-icons-DAkVxxY8.js} +1 -1
  32. package/dist/assets/{floating-outline-C4dt1jl4.js → floating-outline-OYQYvs9I.js} +1 -1
  33. package/dist/assets/{focus-BE82vdGd.js → focus-C-zxJ7HG.js} +1 -1
  34. package/dist/assets/{form-BGmIf9Es.js → form-B16XbwAT.js} +1 -1
  35. package/dist/assets/{gallery-page-Bmi2KIqR.js → gallery-page-wuiZIzWJ.js} +1 -1
  36. package/dist/assets/{glide-data-editor-BZ6Y2pFa.js → glide-data-editor-BBujJw-y.js} +1 -1
  37. package/dist/assets/{globals-0zSNxwQt.js → globals-DzRjmUrN.js} +1 -1
  38. package/dist/assets/{home-page-Cp2Z6wh4.js → home-page-5lvsZkmy.js} +1 -1
  39. package/dist/assets/{hooks-DMOBb9Q_.js → hooks-B0zKOo0q.js} +1 -1
  40. package/dist/assets/{html-to-image-C7wSf7pF.js → html-to-image-BRaZJw5p.js} +1 -1
  41. package/dist/assets/{index-BY7K9ILo.js → index-Cirq9H2S.js} +15 -15
  42. package/dist/assets/{kiosk-mode-DL0LBabq.js → kiosk-mode-CSF94Ln6.js} +1 -1
  43. package/dist/assets/{layout-DKYga6K1.js → layout-CauPzZ-X.js} +1 -1
  44. package/dist/assets/{links-BIGPU8xf.js → links-BDKBPHFA.js} +1 -1
  45. package/dist/assets/{logs-panel-BbKndiXR.js → logs-panel-CpyeJ9VT.js} +1 -1
  46. package/dist/assets/{markdown-renderer-D_1o4iKe.js → markdown-renderer-CwgOVSk3.js} +1 -1
  47. package/dist/assets/{name-cell-input-BiK_2x8J.js → name-cell-input-D35niRNI.js} +1 -1
  48. package/dist/assets/{outline-panel-DZF1B0eZ.js → outline-panel-BF7Ay2AH.js} +1 -1
  49. package/dist/assets/{packages-panel-DmFEdzEr.js → packages-panel-R3a1U_Xl.js} +1 -1
  50. package/dist/assets/{panels-C_BxuFvQ.js → panels-DnIlXVqT.js} +1 -1
  51. package/dist/assets/{process-output-DdKsNtZ4.js → process-output-DM0jG9Gu.js} +1 -1
  52. package/dist/assets/{readonly-python-code-9BGqT8OP.js → readonly-python-code-B-EP3c3e.js} +1 -1
  53. package/dist/assets/{run-page-Clf67Ril.js → run-page-BwW5txln.js} +1 -1
  54. package/dist/assets/{scratchpad-panel-DC8iF-LF.js → scratchpad-panel-DdEE06P0.js} +1 -1
  55. package/dist/assets/{session-DfoGrBjA.js → session-BW-irhFD.js} +1 -1
  56. package/dist/assets/{session-panel-B_rAAceA.js → session-panel-ADGY48Rh.js} +1 -1
  57. package/dist/assets/{snippets-panel-CKQeEqe5.js → snippets-panel-O_qaF0F3.js} +1 -1
  58. package/dist/assets/{state-DjRHh7TA.js → state-CYRi4Tmn.js} +1 -1
  59. package/dist/assets/{state-CXy0QO_B.js → state-DtbyH1O2.js} +1 -1
  60. package/dist/assets/{switch-JUwRcs7x.js → switch-CGy0ENED.js} +1 -1
  61. package/dist/assets/{terminal-BGENI76X.js → terminal-DJ86w99G.js} +1 -1
  62. package/dist/assets/{textarea-fSjjU253.js → textarea-mL3OKL7B.js} +1 -1
  63. package/dist/assets/{tracing-BE0u07y8.js → tracing-H1igKEBs.js} +1 -1
  64. package/dist/assets/{tracing-panel-ubHwtLKM.js → tracing-panel-B71qoh61.js} +2 -2
  65. package/dist/assets/{useAddCell-CuX1FWbO.js → useAddCell-BtoTyJxA.js} +1 -1
  66. package/dist/assets/{useBoolean-DogbZVm8.js → useBoolean-DV4TJRr3.js} +1 -1
  67. package/dist/assets/{useCellActionButton-Vec15a70.js → useCellActionButton-TGTA8Sr7.js} +1 -1
  68. package/dist/assets/{useDeleteCell-CYrf0eBQ.js → useDeleteCell-D7inwr6u.js} +1 -1
  69. package/dist/assets/{useDependencyPanelTab-B7icvn-H.js → useDependencyPanelTab-BZ7uDSP6.js} +1 -1
  70. package/dist/assets/useNotebookActions-C2S0dCWj.js +1 -0
  71. package/dist/assets/{useRunCells-erCNrS6-.js → useRunCells-CWOv4yZS.js} +1 -1
  72. package/dist/assets/{useSplitCell-BBTNeIO1.js → useSplitCell-c4zhuIEb.js} +1 -1
  73. package/dist/assets/{vega-component-C0zntEWx.js → vega-component-sUwgClGq.js} +1 -1
  74. package/dist/index.html +29 -29
  75. package/package.json +1 -1
  76. package/src/components/editor/actions/useNotebookActions.tsx +12 -0
  77. package/src/core/constants.ts +1 -0
  78. package/src/plugins/impl/TabsPlugin.tsx +18 -12
  79. package/src/plugins/impl/matplotlib/matplotlib-renderer.ts +16 -0
  80. package/dist/assets/useNotebookActions-DUxZwNHa.js +0 -1
@@ -1,4 +1,4 @@
1
- import{s as Z}from"./chunk-LvLJmgfZ.js";import{d as xe,l as ee}from"./useEvent-D91BmmQi.js";import{t as ge}from"./react-Bj1aDYRI.js";import{Fi as ye,Lt as je,Mn as te,_i as re,cr as ae,fr as be,ur as ve,vr as ke,yr as we}from"./cells-CN4JOik9.js";import"./react-dom-CSu739Rf.js";import{t as oe}from"./compiler-runtime-B3qBwwSJ.js";import{d as Ne,v as _e}from"./useEventListener-BnjleyM2.js";import{n as O}from"./constants-DWFgp1e4.js";import{t as Se}from"./ErrorBoundary-Cg1jAW_O.js";import{t as Ce}from"./cn-F7c1N498.js";import{t as ze}from"./jsx-runtime-BO1WBD9_.js";import"./fullscreen-C3QZHzf_.js";import{o as Me}from"./alert-dialog-TGjcoGIT.js";import"./popover-DI3qDiGn.js";import{a as Ie,p as Pe,r as De,t as Re}from"./dropdown-menu-BP3RNh23.js";import{t as Ae}from"./label-BoqPL2-A.js";import{t as Te}from"./tooltip-vbfMvhVs.js";import{t as E}from"./button-C5UWwVi3.js";import"./dist-DI1SwJ3i.js";import"./cjs-Du347go0.js";import"./main-BwbZtaFo.js";import"./useNonce-Byj61IpU.js";import{r as H}from"./requests-eZGK4-3l.js";import{t as W}from"./createLucideIcon-DoRarqC9.js";import{t as Oe}from"./chart-no-axes-column-Blov7aJ9.js";import{r as We}from"./x-K8zRP7z5.js";import{t as Fe}from"./chevron-right-DAaXkAc7.js";import{n as B,r as Ue,t as se}from"./maps-BeNfViz9.js";import{t as Le}from"./circle-play-CasLhFtW.js";import{r as $e,t as Ee}from"./file-icons-BycqkWhw.js";import{t as He}from"./file-D43aig5H.js";import{t as Ve}from"./github-DXdCB4uA.js";import{n as Ye,r as qe,t as Be}from"./youtube-BaPTbToy.js";import{t as Je}from"./link-nUeo3sOu.js";import{t as J}from"./spinner-DQEP8eZv.js";import{n as Ge,r as Qe,t as Ke}from"./app-config-button-f2SIt0wH.js";import{t as Xe}from"./refresh-ccw-C5Uh6Z-V.js";import{dt as Ze,r as et}from"./input-p1wVgVWX.js";import"./dist-CqMOHejN.js";import"./dist-CUcSIJdp.js";import"./dist-4c1E2iDA.js";import"./dist-DIDnjWhs.js";import"./dist-QEHtgNKs.js";import{t as tt}from"./use-toast-DZOInYtM.js";import{n as ie}from"./paths-DPsNG1C-.js";import{c as le,n as rt,o as at,t as ot}from"./session-DfoGrBjA.js";import"./purify.es-CkrIK2SQ.js";import{i as st}from"./dates-BGHzOR1A.js";import{t as it}from"./context-DgMiuV-M.js";import{n as lt}from"./ImperativeModal-CGCXLZNQ.js";import{r as nt}from"./errors-pt9sYxVM.js";import{n as ct}from"./react-icons.esm-CwO5-6Hf.js";import{t as mt}from"./tree-7vNO_Kbo.js";import{t as ne}from"./error-banner-D_mjMaFz.js";import{n as G,t as dt}from"./useAsyncData-Dfrk_sGQ.js";import{t as Q}from"./icons-CXtFyW1a.js";import{t as ht}from"./links-BIGPU8xf.js";import"./Inputs-Bdp-cCL5.js";import{t as pt}from"./useInterval-t3DJ9J0q.js";var ft=W("book-open",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]),ut=W("book-text",[["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}],["path",{d:"M8 11h8",key:"vwpz6n"}],["path",{d:"M8 7h6",key:"1f0q6e"}]]),xt=W("graduation-cap",[["path",{d:"M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z",key:"j76jl0"}],["path",{d:"M22 10v6",key:"1lu8f3"}],["path",{d:"M6 12.5V16a6 3 0 0 0 12 0v-3.5",key:"1r8lef"}]]),gt=W("orbit",[["path",{d:"M20.341 6.484A10 10 0 0 1 10.266 21.85",key:"1enhxb"}],["path",{d:"M3.659 17.516A10 10 0 0 1 13.74 2.152",key:"1crzgf"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["circle",{cx:"19",cy:"5",r:"2",key:"mhkx31"}],["circle",{cx:"5",cy:"19",r:"2",key:"v8kfzx"}]]),yt=W("panels-top-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M9 21V9",key:"1oto5p"}]]),A=Z(ge(),1),K=oe(),a=Z(ze(),1),jt={intro:["Introduction",ft,"Get started with marimo basics"],dataflow:["Dataflow",we,"Learn how cells interact with each other"],ui:["UI Elements",yt,"Create interactive UI components"],markdown:["Markdown",ae,"Format text with parameterized markdown"],plots:["Plots",Oe,"Create interactive visualizations"],sql:["SQL",ve,"Query databases directly in marimo"],layout:["Layout",qe,"Customize the layout of your cells' output"],fileformat:["File format",He,"Understand marimo's pure-Python file format"],"for-jupyter-users":["For Jupyter users",gt,"Transiting from Jupyter to marimo"],"markdown-format":["Markdown format",Q,"Using marimo to edit markdown files"]};const bt=()=>{let e=(0,K.c)(6),{openTutorial:t}=H(),r;e[0]===Symbol.for("react.memo_cache_sentinel")?(r=(0,a.jsx)(xt,{className:"w-4 h-4 mr-2"}),e[0]=r):r=e[0];let s;e[1]===Symbol.for("react.memo_cache_sentinel")?(s=(0,a.jsx)(Pe,{asChild:!0,children:(0,a.jsxs)(E,{"data-testid":"open-tutorial-button",size:"xs",variant:"outline",children:[r,"Tutorials",(0,a.jsx)(ct,{className:"w-3 h-3 ml-1"})]})}),e[1]=s):s=e[1];let o;e[2]===t?o=e[3]:(o=Ne.entries(jt).map(i=>{let[m,d]=i,[c,h,p]=d;return(0,a.jsxs)(Ie,{onSelect:async()=>{let n=await t({tutorialId:m});n&&ht(n.path)},children:[(0,a.jsx)(h,{strokeWidth:1.5,className:"w-4 h-4 mr-3 self-start mt-1.5 text-muted-foreground"}),(0,a.jsx)("div",{className:"flex items-center",children:(0,a.jsxs)("div",{className:"flex flex-col",children:[(0,a.jsx)("span",{children:c}),(0,a.jsx)("span",{className:"text-xs text-muted-foreground pr-1",children:p})]})})]},m)}),e[2]=t,e[3]=o);let l;return e[4]===o?l=e[5]:(l=(0,a.jsxs)(Re,{children:[s,(0,a.jsx)(De,{side:"bottom",align:"end",className:"print:hidden",children:o})]}),e[4]=o,e[5]=l),l};var vt=[{title:"Documentation",description:"Official marimo documentation and API reference",icon:ke,url:O.docsPage},{title:"GitHub",description:"View source code, report issues, or contribute",icon:Ve,url:O.githubPage},{title:"Community",description:"Join the marimo Discord community",icon:Ye,url:O.discordLink},{title:"YouTube",description:"Watch tutorials and demos",icon:Be,url:O.youtube},{title:"Changelog",description:"See what's new in marimo",icon:ae,url:O.releasesPage}];const kt=()=>{let e=(0,K.c)(2),t;e[0]===Symbol.for("react.memo_cache_sentinel")?(t=(0,a.jsx)(V,{Icon:Je,children:"Resources"}),e[0]=t):t=e[0];let r;return e[1]===Symbol.for("react.memo_cache_sentinel")?(r=(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[t,(0,a.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3",children:vt.map(wt)})]}),e[1]=r):r=e[1],r},V=e=>{let t=(0,K.c)(8),{Icon:r,control:s,children:o}=e,l;t[0]===r?l=t[1]:(l=(0,a.jsx)(r,{className:"h-5 w-5"}),t[0]=r,t[1]=l);let i;t[2]!==o||t[3]!==l?(i=(0,a.jsxs)("h2",{className:"flex items-center gap-2 text-xl font-semibold text-muted-foreground select-none",children:[l,o]}),t[2]=o,t[3]=l,t[4]=i):i=t[4];let m;return t[5]!==s||t[6]!==i?(m=(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[i,s]}),t[5]=s,t[6]=i,t[7]=m):m=t[7],m};function wt(e){return(0,a.jsxs)("a",{href:e.url,target:"_blank",className:"flex items-start gap-3 py-3 px-3 rounded-lg border hover:bg-accent/20 transition-colors shadow-xs",children:[(0,a.jsx)(e.icon,{className:"w-5 h-5 mt-1.5 text-primary"}),(0,a.jsxs)("div",{children:[(0,a.jsx)("h3",{className:"font-medium",children:e.title}),(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:e.description})]})]},e.title)}const ce=A.createContext({runningNotebooks:new Map,setRunningNotebooks:_e.NOOP}),me=A.createContext(""),Nt=re("marimo:home:include-markdown",!1,te,{getOnInit:!0}),de=re("marimo:home:expanded-folders",{},te,{getOnInit:!0});var D=oe();function he(e){return`${ot()}-${encodeURIComponent(e)}`}var _t=()=>{let e=(0,D.c)(56),[t,r]=(0,A.useState)(0),{getRecentFiles:s,getRunningNotebooks:o}=H(),l;e[0]===s?l=e[1]:(l=()=>s(),e[0]=s,e[1]=l);let i;e[2]===Symbol.for("react.memo_cache_sentinel")?(i=[],e[2]=i):i=e[2];let m=G(l,i),d,c;e[3]===Symbol.for("react.memo_cache_sentinel")?(d=()=>{r(At)},c={delayMs:1e4,whenVisible:!0},e[3]=d,e[4]=c):(d=e[3],c=e[4]),pt(d,c);let h;e[5]===o?h=e[6]:(h=async()=>{let T=await o();return se.keyBy(T.files,Tt)},e[5]=o,e[6]=h);let p;e[7]===t?p=e[8]:(p=[t],e[7]=t,e[8]=p);let n=G(h,p),f,x,u,g,k,y,b,v,w,N,_,C,S;if(e[9]!==m||e[10]!==n){w=Symbol.for("react.early_return_sentinel");e:{let T=dt(m,n);if(T.error)throw T.error;let X=T.data;if(!X){let $;e[24]===Symbol.for("react.memo_cache_sentinel")?($=(0,a.jsx)(J,{centered:!0,size:"xlarge"}),e[24]=$):$=e[24],w=$;break e}let[ue,Y]=X;g=ue,u=A.Suspense,x=ce,b={runningNotebooks:Y,setRunningNotebooks:n.setData};let U,L;e[25]===Symbol.for("react.memo_cache_sentinel")?(U=(0,a.jsx)(bt,{}),L=(0,a.jsx)(Ke,{showAppConfig:!1}),e[25]=U,e[26]=L):(U=e[25],L=e[26]);let q=`This will shutdown the notebook server and terminate all running notebooks (${Y.size}). You'll lose all data that's in memory.`;e[27]===q?v=e[28]:(v=(0,a.jsxs)("div",{className:"absolute top-3 right-5 flex gap-3 z-50",children:[U,L,(0,a.jsx)(Ge,{description:q})]}),e[27]=q,e[28]=v),C="flex flex-col gap-6 max-w-6xl container pt-5 pb-20 z-10",e[29]===Symbol.for("react.memo_cache_sentinel")?(S=(0,a.jsx)("img",{src:"logo.png",alt:"marimo logo",className:"w-48 mb-2"}),k=(0,a.jsx)(Dt,{}),y=(0,a.jsx)(kt,{}),e[29]=k,e[30]=y,e[31]=S):(k=e[29],y=e[30],S=e[31]),f=pe,e[32]===Symbol.for("react.memo_cache_sentinel")?(N=(0,a.jsx)(V,{Icon:Le,children:"Running notebooks"}),e[32]=N):N=e[32],_=[...Y.values()]}e[9]=m,e[10]=n,e[11]=f,e[12]=x,e[13]=u,e[14]=g,e[15]=k,e[16]=y,e[17]=b,e[18]=v,e[19]=w,e[20]=N,e[21]=_,e[22]=C,e[23]=S}else f=e[11],x=e[12],u=e[13],g=e[14],k=e[15],y=e[16],b=e[17],v=e[18],w=e[19],N=e[20],_=e[21],C=e[22],S=e[23];if(w!==Symbol.for("react.early_return_sentinel"))return w;let z;e[33]!==f||e[34]!==N||e[35]!==_?(z=(0,a.jsx)(f,{header:N,files:_}),e[33]=f,e[34]=N,e[35]=_,e[36]=z):z=e[36];let I;e[37]===Symbol.for("react.memo_cache_sentinel")?(I=(0,a.jsx)(V,{Icon:be,children:"Recent notebooks"}),e[37]=I):I=e[37];let M;e[38]===g.files?M=e[39]:(M=(0,a.jsx)(pe,{header:I,files:g.files}),e[38]=g.files,e[39]=M);let R;e[40]===Symbol.for("react.memo_cache_sentinel")?(R=(0,a.jsx)(Se,{children:(0,a.jsx)(St,{})}),e[40]=R):R=e[40];let j;e[41]!==k||e[42]!==y||e[43]!==z||e[44]!==M||e[45]!==C||e[46]!==S?(j=(0,a.jsxs)("div",{className:C,children:[S,k,y,z,M,R]}),e[41]=k,e[42]=y,e[43]=z,e[44]=M,e[45]=C,e[46]=S,e[47]=j):j=e[47];let P;e[48]!==x||e[49]!==b||e[50]!==v||e[51]!==j?(P=(0,a.jsxs)(x,{value:b,children:[v,j]}),e[48]=x,e[49]=b,e[50]=v,e[51]=j,e[52]=P):P=e[52];let F;return e[53]!==u||e[54]!==P?(F=(0,a.jsx)(u,{children:P}),e[53]=u,e[54]=P,e[55]=F):F=e[55],F},St=()=>{let e=(0,D.c)(48),{getWorkspaceFiles:t}=H(),[r,s]=ee(Nt),[o,l]=(0,A.useState)(""),i;e[0]!==t||e[1]!==r?(i=()=>t({includeMarkdown:r}),e[0]=t,e[1]=r,e[2]=i):i=e[2];let m;e[3]===r?m=e[4]:(m=[r],e[3]=r,e[4]=m);let{isPending:d,data:c,error:h,isFetching:p,refetch:n}=G(i,m);if(d){let j;return e[5]===Symbol.for("react.memo_cache_sentinel")?(j=(0,a.jsx)(J,{centered:!0,size:"xlarge",className:"mt-6"}),e[5]=j):j=e[5],j}if(h){let j;e[6]===h?j=e[7]:(j=nt(h),e[6]=h,e[7]=j);let P;return e[8]===j?P=e[9]:(P=(0,a.jsx)(ne,{kind:"danger",className:"rounded p-4",children:j}),e[8]=j,e[9]=P),P}let f;e[10]!==c.fileCount||e[11]!==c.hasMore?(f=c.hasMore&&(0,a.jsxs)(ne,{kind:"warn",className:"rounded p-4",children:["Showing first ",c.fileCount," files. Your workspace has more files."]}),e[10]=c.fileCount,e[11]=c.hasMore,e[12]=f):f=e[12];let x,u;e[13]===Symbol.for("react.memo_cache_sentinel")?(x=(0,a.jsx)(Ze,{size:13}),u=j=>l(j.target.value),e[13]=x,e[14]=u):(x=e[13],u=e[14]);let g;e[15]===o?g=e[16]:(g=(0,a.jsx)(et,{id:"search",value:o,icon:x,onChange:u,placeholder:"Search",className:"mb-0 border-border"}),e[15]=o,e[16]=g);let k;e[17]===Symbol.for("react.memo_cache_sentinel")?(k=(0,a.jsx)(Ct,{}),e[17]=k):k=e[17];let y;e[18]===s?y=e[19]:(y=j=>s(!!j),e[18]=s,e[19]=y);let b;e[20]!==r||e[21]!==y?(b=(0,a.jsx)(je,{"data-testid":"include-markdown-checkbox",id:"include-markdown",checked:r,onCheckedChange:y}),e[20]=r,e[21]=y,e[22]=b):b=e[22];let v;e[23]===Symbol.for("react.memo_cache_sentinel")?(v=(0,a.jsx)(Ae,{htmlFor:"include-markdown",children:"Include markdown"}),e[23]=v):v=e[23];let w;e[24]!==g||e[25]!==b?(w=(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[g,k,b,v]}),e[24]=g,e[25]=b,e[26]=w):w=e[26];let N;e[27]===n?N=e[28]:(N=()=>n(),e[27]=n,e[28]=N);let _;e[29]===Symbol.for("react.memo_cache_sentinel")?(_=(0,a.jsx)(Xe,{className:"w-4 h-4"}),e[29]=_):_=e[29];let C;e[30]===N?C=e[31]:(C=(0,a.jsx)(E,{variant:"text",size:"icon",className:"w-4 h-4 ml-1 p-0 opacity-70 hover:opacity-100",onClick:N,"aria-label":"Refresh workspace",children:_}),e[30]=N,e[31]=C);let S;e[32]===p?S=e[33]:(S=p&&(0,a.jsx)(J,{size:"small"}),e[32]=p,e[33]=S);let z;e[34]!==w||e[35]!==C||e[36]!==S?(z=(0,a.jsxs)(V,{Icon:ut,control:w,children:["Workspace",C,S]}),e[34]=w,e[35]=C,e[36]=S,e[37]=z):z=e[37];let I;e[38]!==o||e[39]!==c.files?(I=(0,a.jsx)("div",{className:"flex flex-col divide-y divide-(--slate-3) border rounded overflow-hidden max-h-192 overflow-y-auto shadow-sm bg-background",children:(0,a.jsx)(zt,{searchText:o,files:c.files})}),e[38]=o,e[39]=c.files,e[40]=I):I=e[40];let M;e[41]!==z||e[42]!==I||e[43]!==f?(M=(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[f,z,I]}),e[41]=z,e[42]=I,e[43]=f,e[44]=M):M=e[44];let R;return e[45]!==M||e[46]!==c.root?(R=(0,a.jsx)(me,{value:c.root,children:M}),e[45]=M,e[46]=c.root,e[47]=R):R=e[47],R},Ct=()=>{let e=(0,D.c)(5),t=xe(de),r;e[0]===t?r=e[1]:(r=()=>{t({})},e[0]=t,e[1]=r);let s;e[2]===Symbol.for("react.memo_cache_sentinel")?(s=(0,a.jsx)(Ue,{className:"w-4 h-4 mr-1"}),e[2]=s):s=e[2];let o;return e[3]===r?o=e[4]:(o=(0,a.jsxs)(E,{variant:"text",size:"sm",className:"h-fit hidden sm:flex",onClick:r,children:[s,"Collapse all"]}),e[3]=r,e[4]=o),o},zt=e=>{let t=(0,D.c)(12),{files:r,searchText:s}=e,[o,l]=ee(de),i=Object.keys(o).length===0,m=(0,A.useRef)(void 0),d,c;if(t[0]===i?(d=t[1],c=t[2]):(d=()=>{var n;i&&((n=m.current)==null||n.closeAll())},c=[i],t[0]=i,t[1]=d,t[2]=c),(0,A.useEffect)(d,c),r.length===0){let n;return t[3]===Symbol.for("react.memo_cache_sentinel")?(n=(0,a.jsx)("div",{className:"flex flex-col px-5 py-10 items-center justify-center",children:(0,a.jsx)("p",{className:"text-center text-muted-foreground",children:"No files in this workspace"})}),t[3]=n):n=t[3],n}let h;t[4]!==o||t[5]!==l?(h=async n=>{let f=o[n]??!1;l({...o,[n]:!f})},t[4]=o,t[5]=l,t[6]=h):h=t[6];let p;return t[7]!==r||t[8]!==o||t[9]!==s||t[10]!==h?(p=(0,a.jsx)(mt,{ref:m,width:"100%",height:500,searchTerm:s,className:"h-full",idAccessor:Ot,data:r,openByDefault:!1,initialOpenState:o,onToggle:h,padding:5,rowHeight:35,indent:15,overscanCount:1e3,renderCursor:Wt,disableDrop:!0,disableDrag:!0,disableEdit:!0,disableMultiSelection:!0,children:Mt}),t[7]=r,t[8]=o,t[9]=s,t[10]=h,t[11]=p):p=t[11],p},Mt=e=>{let t=(0,D.c)(19),{node:r,style:s}=e,o=Ee[r.data.isDirectory?"directory":$e(r.data.name)],l;t[0]===o?l=t[1]:(l=(0,a.jsx)(o,{className:"w-5 h-5 shrink-0",strokeWidth:1.5}),t[0]=o,t[1]=l);let i=l,m=(0,A.use)(me),d;t[2]!==i||t[3]!==r.data.isDirectory||t[4]!==r.data.name||t[5]!==r.data.path||t[6]!==m?(d=()=>{if(r.data.isDirectory)return(0,a.jsxs)("span",{className:"flex items-center pl-1 cursor-pointer hover:bg-accent/50 hover:text-accent-foreground rounded-l flex-1 overflow-hidden h-full pr-3 gap-2",children:[i,r.data.name]});let u=r.data.path.startsWith(m)&&ie.isAbsolute(r.data.path)?ie.rest(r.data.path,m):r.data.path,g=u.endsWith(".md")||u.endsWith(".qmd");return(0,a.jsxs)("a",{className:"flex items-center pl-1 cursor-pointer hover:bg-accent/50 hover:text-accent-foreground rounded-l flex-1 overflow-hidden h-full pr-3 gap-2",href:le(`?file=${encodeURIComponent(u)}`).toString(),target:he(u),children:[i,(0,a.jsxs)("span",{className:"flex-1 overflow-hidden text-ellipsis",children:[r.data.name,g&&(0,a.jsx)(Q,{className:"ml-2 inline opacity-80"})]}),(0,a.jsx)(fe,{filePath:u}),(0,a.jsx)(B,{size:20,className:"group-hover:opacity-100 opacity-0 text-primary"})]})},t[2]=i,t[3]=r.data.isDirectory,t[4]=r.data.name,t[5]=r.data.path,t[6]=m,t[7]=d):d=t[7];let c=d,h;t[8]===Symbol.for("react.memo_cache_sentinel")?(h=Ce("flex items-center cursor-pointer ml-1 text-muted-foreground whitespace-nowrap group h-full"),t[8]=h):h=t[8];let p,n;t[9]===r?(p=t[10],n=t[11]):(p=u=>{u.stopPropagation(),r.data.isDirectory&&r.toggle()},n=(0,a.jsx)(It,{node:r}),t[9]=r,t[10]=p,t[11]=n);let f;t[12]===c?f=t[13]:(f=c(),t[12]=c,t[13]=f);let x;return t[14]!==s||t[15]!==p||t[16]!==n||t[17]!==f?(x=(0,a.jsxs)("div",{style:s,className:h,onClick:p,children:[n,f]}),t[14]=s,t[15]=p,t[16]=n,t[17]=f,t[18]=x):x=t[18],x},It=e=>{let t=(0,D.c)(3),{node:r}=e;if(!r.data.isDirectory){let o;return t[0]===Symbol.for("react.memo_cache_sentinel")?(o=(0,a.jsx)("span",{className:"w-5 h-5 shrink-0"}),t[0]=o):o=t[0],o}let s;return t[1]===r.isOpen?s=t[2]:(s=r.isOpen?(0,a.jsx)(We,{className:"w-5 h-5 shrink-0"}):(0,a.jsx)(Fe,{className:"w-5 h-5 shrink-0"}),t[1]=r.isOpen,t[2]=s),s},pe=e=>{let t=(0,D.c)(7),{header:r,files:s}=e;if(s.length===0)return null;let o;t[0]===s?o=t[1]:(o=s.map(Ft),t[0]=s,t[1]=o);let l;t[2]===o?l=t[3]:(l=(0,a.jsx)("div",{className:"flex flex-col divide-y divide-(--slate-3) border rounded overflow-hidden max-h-192 overflow-y-auto shadow-sm bg-background",children:o}),t[2]=o,t[3]=l);let i;return t[4]!==r||t[5]!==l?(i=(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[r,l]}),t[4]=r,t[5]=l,t[6]=i):i=t[6],i},Pt=e=>{let t=(0,D.c)(41),{file:r}=e,{locale:s}=it(),o;t[0]===r.path?o=t[1]:(o=rt(r.path),t[0]=r.path,t[1]=o);let l=o,i,m,d,c;if(t[2]!==r.initializationId||t[3]!==r.path||t[4]!==l){let N=le(l?`?file=${encodeURIComponent(r.initializationId??r.path)}&session_id=${r.path}`:`?file=${encodeURIComponent(r.path)}`),_;t[9]===r.path?_=t[10]:(_=r.path.endsWith(".md"),t[9]=r.path,t[10]=_),i=_,m="py-1.5 px-4 hover:bg-(--blue-2) hover:text-primary transition-all duration-300 cursor-pointer group relative flex gap-4 items-center",d=r.path,c=N.toString(),t[2]=r.initializationId,t[3]=r.path,t[4]=l,t[5]=i,t[6]=m,t[7]=d,t[8]=c}else i=t[5],m=t[6],d=t[7],c=t[8];let h=r.initializationId||r.path,p;t[11]===h?p=t[12]:(p=he(h),t[11]=h,t[12]=p);let n;t[13]===i?n=t[14]:(n=i&&(0,a.jsx)("span",{className:"opacity-80",children:(0,a.jsx)(Q,{})}),t[13]=i,t[14]=n);let f;t[15]!==r.name||t[16]!==n?(f=(0,a.jsxs)("span",{className:"flex items-center gap-2",children:[r.name,n]}),t[15]=r.name,t[16]=n,t[17]=f):f=t[17];let x;t[18]===r.path?x=t[19]:(x=(0,a.jsx)("p",{title:r.path,className:"text-sm text-muted-foreground overflow-hidden whitespace-nowrap text-ellipsis",children:r.path}),t[18]=r.path,t[19]=x);let u;t[20]!==f||t[21]!==x?(u=(0,a.jsxs)("div",{className:"flex flex-col justify-between flex-1",children:[f,x]}),t[20]=f,t[21]=x,t[22]=u):u=t[22];let g;t[23]===r.path?g=t[24]:(g=(0,a.jsx)("div",{children:(0,a.jsx)(fe,{filePath:r.path})}),t[23]=r.path,t[24]=g);let k;t[25]===Symbol.for("react.memo_cache_sentinel")?(k=(0,a.jsx)(B,{size:20,className:"group-hover:opacity-100 opacity-0 transition-all duration-300 text-primary"}),t[25]=k):k=t[25];let y;t[26]===g?y=t[27]:(y=(0,a.jsxs)("div",{className:"flex gap-3 items-center",children:[g,k]}),t[26]=g,t[27]=y);let b;t[28]!==r.lastModified||t[29]!==s?(b=!!r.lastModified&&(0,a.jsx)("div",{className:"text-xs text-muted-foreground opacity-80",children:st(r.lastModified*1e3,s)}),t[28]=r.lastModified,t[29]=s,t[30]=b):b=t[30];let v;t[31]!==y||t[32]!==b?(v=(0,a.jsxs)("div",{className:"flex flex-col gap-1 items-end",children:[y,b]}),t[31]=y,t[32]=b,t[33]=v):v=t[33];let w;return t[34]!==u||t[35]!==v||t[36]!==m||t[37]!==d||t[38]!==c||t[39]!==p?(w=(0,a.jsxs)("a",{className:m,href:c,target:p,children:[u,v]},d),t[34]=u,t[35]=v,t[36]=m,t[37]=d,t[38]=c,t[39]=p,t[40]=w):w=t[40],w},fe=e=>{let t=(0,D.c)(10),{filePath:r}=e,{openConfirm:s,closeModal:o}=lt(),{shutdownSession:l}=H(),{runningNotebooks:i,setRunningNotebooks:m}=(0,A.use)(ce);if(!i.has(r))return null;let d;t[0]!==o||t[1]!==r||t[2]!==s||t[3]!==i||t[4]!==m||t[5]!==l?(d=p=>{p.stopPropagation(),p.preventDefault(),s({title:"Shutdown",description:"This will terminate the Python kernel. You'll lose all data that's in memory.",variant:"destructive",confirmAction:(0,a.jsx)(Me,{onClick:()=>{let n=i.get(r);ye(n==null?void 0:n.sessionId),l({sessionId:n.sessionId}).then(f=>{m(se.keyBy(f.files,Ut))}),o(),tt({description:"Notebook has been shutdown."})},"aria-label":"Confirm Shutdown",children:"Shutdown"})})},t[0]=o,t[1]=r,t[2]=s,t[3]=i,t[4]=m,t[5]=l,t[6]=d):d=t[6];let c;t[7]===Symbol.for("react.memo_cache_sentinel")?(c=(0,a.jsx)(Qe,{size:14}),t[7]=c):c=t[7];let h;return t[8]===d?h=t[9]:(h=(0,a.jsx)(Te,{content:"Shutdown",children:(0,a.jsx)(E,{size:"icon",variant:"outline",className:"opacity-80 hover:opacity-100 hover:bg-accent text-destructive border-destructive hover:border-destructive hover:text-destructive bg-background hover:bg-(--red-1)",onClick:d,children:c})}),t[8]=d,t[9]=h),h},Dt=()=>{let e=(0,D.c)(3),t;e[0]===Symbol.for("react.memo_cache_sentinel")?(t=at(),e[0]=t):t=e[0];let r=t,s;e[1]===Symbol.for("react.memo_cache_sentinel")?(s=(0,a.jsx)("h2",{className:"text-lg font-semibold",children:"Create a new notebook"}),e[1]=s):s=e[1];let o;return e[2]===Symbol.for("react.memo_cache_sentinel")?(o=(0,a.jsxs)("a",{className:`relative rounded-lg p-6 group
1
+ import{s as Z}from"./chunk-LvLJmgfZ.js";import{d as xe,l as ee}from"./useEvent-D91BmmQi.js";import{t as ge}from"./react-Bj1aDYRI.js";import{Fi as ye,Lt as je,Mn as te,_i as re,cr as ae,fr as be,ur as ve,vr as ke,yr as we}from"./cells-CjMq7Ben.js";import"./react-dom-CSu739Rf.js";import{t as oe}from"./compiler-runtime-B3qBwwSJ.js";import{d as Ne,v as _e}from"./useEventListener-BnjleyM2.js";import{n as O}from"./constants-BKqVABV7.js";import{t as Se}from"./ErrorBoundary-BB1jw72T.js";import{t as Ce}from"./cn-F7c1N498.js";import{t as ze}from"./jsx-runtime-BO1WBD9_.js";import"./fullscreen-C3QZHzf_.js";import{o as Me}from"./alert-dialog-TGjcoGIT.js";import"./popover-DI3qDiGn.js";import{a as Ie,p as Pe,r as De,t as Re}from"./dropdown-menu-BP3RNh23.js";import{t as Ae}from"./label-BoqPL2-A.js";import{t as Te}from"./tooltip-vbfMvhVs.js";import{t as E}from"./button-C5UWwVi3.js";import"./dist-DI1SwJ3i.js";import"./cjs-Du347go0.js";import"./main-BwbZtaFo.js";import"./useNonce-Byj61IpU.js";import{r as H}from"./requests-eZGK4-3l.js";import{t as W}from"./createLucideIcon-DoRarqC9.js";import{t as Oe}from"./chart-no-axes-column-Blov7aJ9.js";import{r as We}from"./x-K8zRP7z5.js";import{t as Fe}from"./chevron-right-DAaXkAc7.js";import{n as B,r as Ue,t as se}from"./maps-BeNfViz9.js";import{t as Le}from"./circle-play-CasLhFtW.js";import{r as $e,t as Ee}from"./file-icons-DAkVxxY8.js";import{t as He}from"./file-D43aig5H.js";import{t as Ve}from"./github-DXdCB4uA.js";import{n as Ye,r as qe,t as Be}from"./youtube-BaPTbToy.js";import{t as Je}from"./link-nUeo3sOu.js";import{t as J}from"./spinner-DQEP8eZv.js";import{n as Ge,r as Qe,t as Ke}from"./app-config-button-QMGIVLCt.js";import{t as Xe}from"./refresh-ccw-C5Uh6Z-V.js";import{dt as Ze,r as et}from"./input-p1wVgVWX.js";import"./dist-CqMOHejN.js";import"./dist-CUcSIJdp.js";import"./dist-4c1E2iDA.js";import"./dist-DIDnjWhs.js";import"./dist-QEHtgNKs.js";import{t as tt}from"./use-toast-DZOInYtM.js";import{n as ie}from"./paths-DPsNG1C-.js";import{c as le,n as rt,o as at,t as ot}from"./session-BW-irhFD.js";import"./purify.es-CkrIK2SQ.js";import{i as st}from"./dates-BGHzOR1A.js";import{t as it}from"./context-DgMiuV-M.js";import{n as lt}from"./ImperativeModal-CGCXLZNQ.js";import{r as nt}from"./errors-pt9sYxVM.js";import{n as ct}from"./react-icons.esm-CwO5-6Hf.js";import{t as mt}from"./tree-7vNO_Kbo.js";import{t as ne}from"./error-banner-D_mjMaFz.js";import{n as G,t as dt}from"./useAsyncData-Dfrk_sGQ.js";import{t as Q}from"./icons-CXtFyW1a.js";import{t as ht}from"./links-BDKBPHFA.js";import"./Inputs-Bdp-cCL5.js";import{t as pt}from"./useInterval-t3DJ9J0q.js";var ft=W("book-open",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]),ut=W("book-text",[["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}],["path",{d:"M8 11h8",key:"vwpz6n"}],["path",{d:"M8 7h6",key:"1f0q6e"}]]),xt=W("graduation-cap",[["path",{d:"M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z",key:"j76jl0"}],["path",{d:"M22 10v6",key:"1lu8f3"}],["path",{d:"M6 12.5V16a6 3 0 0 0 12 0v-3.5",key:"1r8lef"}]]),gt=W("orbit",[["path",{d:"M20.341 6.484A10 10 0 0 1 10.266 21.85",key:"1enhxb"}],["path",{d:"M3.659 17.516A10 10 0 0 1 13.74 2.152",key:"1crzgf"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["circle",{cx:"19",cy:"5",r:"2",key:"mhkx31"}],["circle",{cx:"5",cy:"19",r:"2",key:"v8kfzx"}]]),yt=W("panels-top-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M9 21V9",key:"1oto5p"}]]),A=Z(ge(),1),K=oe(),a=Z(ze(),1),jt={intro:["Introduction",ft,"Get started with marimo basics"],dataflow:["Dataflow",we,"Learn how cells interact with each other"],ui:["UI Elements",yt,"Create interactive UI components"],markdown:["Markdown",ae,"Format text with parameterized markdown"],plots:["Plots",Oe,"Create interactive visualizations"],sql:["SQL",ve,"Query databases directly in marimo"],layout:["Layout",qe,"Customize the layout of your cells' output"],fileformat:["File format",He,"Understand marimo's pure-Python file format"],"for-jupyter-users":["For Jupyter users",gt,"Transiting from Jupyter to marimo"],"markdown-format":["Markdown format",Q,"Using marimo to edit markdown files"]};const bt=()=>{let e=(0,K.c)(6),{openTutorial:t}=H(),r;e[0]===Symbol.for("react.memo_cache_sentinel")?(r=(0,a.jsx)(xt,{className:"w-4 h-4 mr-2"}),e[0]=r):r=e[0];let s;e[1]===Symbol.for("react.memo_cache_sentinel")?(s=(0,a.jsx)(Pe,{asChild:!0,children:(0,a.jsxs)(E,{"data-testid":"open-tutorial-button",size:"xs",variant:"outline",children:[r,"Tutorials",(0,a.jsx)(ct,{className:"w-3 h-3 ml-1"})]})}),e[1]=s):s=e[1];let o;e[2]===t?o=e[3]:(o=Ne.entries(jt).map(i=>{let[m,d]=i,[c,h,p]=d;return(0,a.jsxs)(Ie,{onSelect:async()=>{let n=await t({tutorialId:m});n&&ht(n.path)},children:[(0,a.jsx)(h,{strokeWidth:1.5,className:"w-4 h-4 mr-3 self-start mt-1.5 text-muted-foreground"}),(0,a.jsx)("div",{className:"flex items-center",children:(0,a.jsxs)("div",{className:"flex flex-col",children:[(0,a.jsx)("span",{children:c}),(0,a.jsx)("span",{className:"text-xs text-muted-foreground pr-1",children:p})]})})]},m)}),e[2]=t,e[3]=o);let l;return e[4]===o?l=e[5]:(l=(0,a.jsxs)(Re,{children:[s,(0,a.jsx)(De,{side:"bottom",align:"end",className:"print:hidden",children:o})]}),e[4]=o,e[5]=l),l};var vt=[{title:"Documentation",description:"Official marimo documentation and API reference",icon:ke,url:O.docsPage},{title:"GitHub",description:"View source code, report issues, or contribute",icon:Ve,url:O.githubPage},{title:"Community",description:"Join the marimo Discord community",icon:Ye,url:O.discordLink},{title:"YouTube",description:"Watch tutorials and demos",icon:Be,url:O.youtube},{title:"Changelog",description:"See what's new in marimo",icon:ae,url:O.releasesPage}];const kt=()=>{let e=(0,K.c)(2),t;e[0]===Symbol.for("react.memo_cache_sentinel")?(t=(0,a.jsx)(V,{Icon:Je,children:"Resources"}),e[0]=t):t=e[0];let r;return e[1]===Symbol.for("react.memo_cache_sentinel")?(r=(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[t,(0,a.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3",children:vt.map(wt)})]}),e[1]=r):r=e[1],r},V=e=>{let t=(0,K.c)(8),{Icon:r,control:s,children:o}=e,l;t[0]===r?l=t[1]:(l=(0,a.jsx)(r,{className:"h-5 w-5"}),t[0]=r,t[1]=l);let i;t[2]!==o||t[3]!==l?(i=(0,a.jsxs)("h2",{className:"flex items-center gap-2 text-xl font-semibold text-muted-foreground select-none",children:[l,o]}),t[2]=o,t[3]=l,t[4]=i):i=t[4];let m;return t[5]!==s||t[6]!==i?(m=(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[i,s]}),t[5]=s,t[6]=i,t[7]=m):m=t[7],m};function wt(e){return(0,a.jsxs)("a",{href:e.url,target:"_blank",className:"flex items-start gap-3 py-3 px-3 rounded-lg border hover:bg-accent/20 transition-colors shadow-xs",children:[(0,a.jsx)(e.icon,{className:"w-5 h-5 mt-1.5 text-primary"}),(0,a.jsxs)("div",{children:[(0,a.jsx)("h3",{className:"font-medium",children:e.title}),(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:e.description})]})]},e.title)}const ce=A.createContext({runningNotebooks:new Map,setRunningNotebooks:_e.NOOP}),me=A.createContext(""),Nt=re("marimo:home:include-markdown",!1,te,{getOnInit:!0}),de=re("marimo:home:expanded-folders",{},te,{getOnInit:!0});var D=oe();function he(e){return`${ot()}-${encodeURIComponent(e)}`}var _t=()=>{let e=(0,D.c)(56),[t,r]=(0,A.useState)(0),{getRecentFiles:s,getRunningNotebooks:o}=H(),l;e[0]===s?l=e[1]:(l=()=>s(),e[0]=s,e[1]=l);let i;e[2]===Symbol.for("react.memo_cache_sentinel")?(i=[],e[2]=i):i=e[2];let m=G(l,i),d,c;e[3]===Symbol.for("react.memo_cache_sentinel")?(d=()=>{r(At)},c={delayMs:1e4,whenVisible:!0},e[3]=d,e[4]=c):(d=e[3],c=e[4]),pt(d,c);let h;e[5]===o?h=e[6]:(h=async()=>{let T=await o();return se.keyBy(T.files,Tt)},e[5]=o,e[6]=h);let p;e[7]===t?p=e[8]:(p=[t],e[7]=t,e[8]=p);let n=G(h,p),f,x,u,g,k,y,b,v,w,N,_,C,S;if(e[9]!==m||e[10]!==n){w=Symbol.for("react.early_return_sentinel");e:{let T=dt(m,n);if(T.error)throw T.error;let X=T.data;if(!X){let $;e[24]===Symbol.for("react.memo_cache_sentinel")?($=(0,a.jsx)(J,{centered:!0,size:"xlarge"}),e[24]=$):$=e[24],w=$;break e}let[ue,Y]=X;g=ue,u=A.Suspense,x=ce,b={runningNotebooks:Y,setRunningNotebooks:n.setData};let U,L;e[25]===Symbol.for("react.memo_cache_sentinel")?(U=(0,a.jsx)(bt,{}),L=(0,a.jsx)(Ke,{showAppConfig:!1}),e[25]=U,e[26]=L):(U=e[25],L=e[26]);let q=`This will shutdown the notebook server and terminate all running notebooks (${Y.size}). You'll lose all data that's in memory.`;e[27]===q?v=e[28]:(v=(0,a.jsxs)("div",{className:"absolute top-3 right-5 flex gap-3 z-50",children:[U,L,(0,a.jsx)(Ge,{description:q})]}),e[27]=q,e[28]=v),C="flex flex-col gap-6 max-w-6xl container pt-5 pb-20 z-10",e[29]===Symbol.for("react.memo_cache_sentinel")?(S=(0,a.jsx)("img",{src:"logo.png",alt:"marimo logo",className:"w-48 mb-2"}),k=(0,a.jsx)(Dt,{}),y=(0,a.jsx)(kt,{}),e[29]=k,e[30]=y,e[31]=S):(k=e[29],y=e[30],S=e[31]),f=pe,e[32]===Symbol.for("react.memo_cache_sentinel")?(N=(0,a.jsx)(V,{Icon:Le,children:"Running notebooks"}),e[32]=N):N=e[32],_=[...Y.values()]}e[9]=m,e[10]=n,e[11]=f,e[12]=x,e[13]=u,e[14]=g,e[15]=k,e[16]=y,e[17]=b,e[18]=v,e[19]=w,e[20]=N,e[21]=_,e[22]=C,e[23]=S}else f=e[11],x=e[12],u=e[13],g=e[14],k=e[15],y=e[16],b=e[17],v=e[18],w=e[19],N=e[20],_=e[21],C=e[22],S=e[23];if(w!==Symbol.for("react.early_return_sentinel"))return w;let z;e[33]!==f||e[34]!==N||e[35]!==_?(z=(0,a.jsx)(f,{header:N,files:_}),e[33]=f,e[34]=N,e[35]=_,e[36]=z):z=e[36];let I;e[37]===Symbol.for("react.memo_cache_sentinel")?(I=(0,a.jsx)(V,{Icon:be,children:"Recent notebooks"}),e[37]=I):I=e[37];let M;e[38]===g.files?M=e[39]:(M=(0,a.jsx)(pe,{header:I,files:g.files}),e[38]=g.files,e[39]=M);let R;e[40]===Symbol.for("react.memo_cache_sentinel")?(R=(0,a.jsx)(Se,{children:(0,a.jsx)(St,{})}),e[40]=R):R=e[40];let j;e[41]!==k||e[42]!==y||e[43]!==z||e[44]!==M||e[45]!==C||e[46]!==S?(j=(0,a.jsxs)("div",{className:C,children:[S,k,y,z,M,R]}),e[41]=k,e[42]=y,e[43]=z,e[44]=M,e[45]=C,e[46]=S,e[47]=j):j=e[47];let P;e[48]!==x||e[49]!==b||e[50]!==v||e[51]!==j?(P=(0,a.jsxs)(x,{value:b,children:[v,j]}),e[48]=x,e[49]=b,e[50]=v,e[51]=j,e[52]=P):P=e[52];let F;return e[53]!==u||e[54]!==P?(F=(0,a.jsx)(u,{children:P}),e[53]=u,e[54]=P,e[55]=F):F=e[55],F},St=()=>{let e=(0,D.c)(48),{getWorkspaceFiles:t}=H(),[r,s]=ee(Nt),[o,l]=(0,A.useState)(""),i;e[0]!==t||e[1]!==r?(i=()=>t({includeMarkdown:r}),e[0]=t,e[1]=r,e[2]=i):i=e[2];let m;e[3]===r?m=e[4]:(m=[r],e[3]=r,e[4]=m);let{isPending:d,data:c,error:h,isFetching:p,refetch:n}=G(i,m);if(d){let j;return e[5]===Symbol.for("react.memo_cache_sentinel")?(j=(0,a.jsx)(J,{centered:!0,size:"xlarge",className:"mt-6"}),e[5]=j):j=e[5],j}if(h){let j;e[6]===h?j=e[7]:(j=nt(h),e[6]=h,e[7]=j);let P;return e[8]===j?P=e[9]:(P=(0,a.jsx)(ne,{kind:"danger",className:"rounded p-4",children:j}),e[8]=j,e[9]=P),P}let f;e[10]!==c.fileCount||e[11]!==c.hasMore?(f=c.hasMore&&(0,a.jsxs)(ne,{kind:"warn",className:"rounded p-4",children:["Showing first ",c.fileCount," files. Your workspace has more files."]}),e[10]=c.fileCount,e[11]=c.hasMore,e[12]=f):f=e[12];let x,u;e[13]===Symbol.for("react.memo_cache_sentinel")?(x=(0,a.jsx)(Ze,{size:13}),u=j=>l(j.target.value),e[13]=x,e[14]=u):(x=e[13],u=e[14]);let g;e[15]===o?g=e[16]:(g=(0,a.jsx)(et,{id:"search",value:o,icon:x,onChange:u,placeholder:"Search",className:"mb-0 border-border"}),e[15]=o,e[16]=g);let k;e[17]===Symbol.for("react.memo_cache_sentinel")?(k=(0,a.jsx)(Ct,{}),e[17]=k):k=e[17];let y;e[18]===s?y=e[19]:(y=j=>s(!!j),e[18]=s,e[19]=y);let b;e[20]!==r||e[21]!==y?(b=(0,a.jsx)(je,{"data-testid":"include-markdown-checkbox",id:"include-markdown",checked:r,onCheckedChange:y}),e[20]=r,e[21]=y,e[22]=b):b=e[22];let v;e[23]===Symbol.for("react.memo_cache_sentinel")?(v=(0,a.jsx)(Ae,{htmlFor:"include-markdown",children:"Include markdown"}),e[23]=v):v=e[23];let w;e[24]!==g||e[25]!==b?(w=(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[g,k,b,v]}),e[24]=g,e[25]=b,e[26]=w):w=e[26];let N;e[27]===n?N=e[28]:(N=()=>n(),e[27]=n,e[28]=N);let _;e[29]===Symbol.for("react.memo_cache_sentinel")?(_=(0,a.jsx)(Xe,{className:"w-4 h-4"}),e[29]=_):_=e[29];let C;e[30]===N?C=e[31]:(C=(0,a.jsx)(E,{variant:"text",size:"icon",className:"w-4 h-4 ml-1 p-0 opacity-70 hover:opacity-100",onClick:N,"aria-label":"Refresh workspace",children:_}),e[30]=N,e[31]=C);let S;e[32]===p?S=e[33]:(S=p&&(0,a.jsx)(J,{size:"small"}),e[32]=p,e[33]=S);let z;e[34]!==w||e[35]!==C||e[36]!==S?(z=(0,a.jsxs)(V,{Icon:ut,control:w,children:["Workspace",C,S]}),e[34]=w,e[35]=C,e[36]=S,e[37]=z):z=e[37];let I;e[38]!==o||e[39]!==c.files?(I=(0,a.jsx)("div",{className:"flex flex-col divide-y divide-(--slate-3) border rounded overflow-hidden max-h-192 overflow-y-auto shadow-sm bg-background",children:(0,a.jsx)(zt,{searchText:o,files:c.files})}),e[38]=o,e[39]=c.files,e[40]=I):I=e[40];let M;e[41]!==z||e[42]!==I||e[43]!==f?(M=(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[f,z,I]}),e[41]=z,e[42]=I,e[43]=f,e[44]=M):M=e[44];let R;return e[45]!==M||e[46]!==c.root?(R=(0,a.jsx)(me,{value:c.root,children:M}),e[45]=M,e[46]=c.root,e[47]=R):R=e[47],R},Ct=()=>{let e=(0,D.c)(5),t=xe(de),r;e[0]===t?r=e[1]:(r=()=>{t({})},e[0]=t,e[1]=r);let s;e[2]===Symbol.for("react.memo_cache_sentinel")?(s=(0,a.jsx)(Ue,{className:"w-4 h-4 mr-1"}),e[2]=s):s=e[2];let o;return e[3]===r?o=e[4]:(o=(0,a.jsxs)(E,{variant:"text",size:"sm",className:"h-fit hidden sm:flex",onClick:r,children:[s,"Collapse all"]}),e[3]=r,e[4]=o),o},zt=e=>{let t=(0,D.c)(12),{files:r,searchText:s}=e,[o,l]=ee(de),i=Object.keys(o).length===0,m=(0,A.useRef)(void 0),d,c;if(t[0]===i?(d=t[1],c=t[2]):(d=()=>{var n;i&&((n=m.current)==null||n.closeAll())},c=[i],t[0]=i,t[1]=d,t[2]=c),(0,A.useEffect)(d,c),r.length===0){let n;return t[3]===Symbol.for("react.memo_cache_sentinel")?(n=(0,a.jsx)("div",{className:"flex flex-col px-5 py-10 items-center justify-center",children:(0,a.jsx)("p",{className:"text-center text-muted-foreground",children:"No files in this workspace"})}),t[3]=n):n=t[3],n}let h;t[4]!==o||t[5]!==l?(h=async n=>{let f=o[n]??!1;l({...o,[n]:!f})},t[4]=o,t[5]=l,t[6]=h):h=t[6];let p;return t[7]!==r||t[8]!==o||t[9]!==s||t[10]!==h?(p=(0,a.jsx)(mt,{ref:m,width:"100%",height:500,searchTerm:s,className:"h-full",idAccessor:Ot,data:r,openByDefault:!1,initialOpenState:o,onToggle:h,padding:5,rowHeight:35,indent:15,overscanCount:1e3,renderCursor:Wt,disableDrop:!0,disableDrag:!0,disableEdit:!0,disableMultiSelection:!0,children:Mt}),t[7]=r,t[8]=o,t[9]=s,t[10]=h,t[11]=p):p=t[11],p},Mt=e=>{let t=(0,D.c)(19),{node:r,style:s}=e,o=Ee[r.data.isDirectory?"directory":$e(r.data.name)],l;t[0]===o?l=t[1]:(l=(0,a.jsx)(o,{className:"w-5 h-5 shrink-0",strokeWidth:1.5}),t[0]=o,t[1]=l);let i=l,m=(0,A.use)(me),d;t[2]!==i||t[3]!==r.data.isDirectory||t[4]!==r.data.name||t[5]!==r.data.path||t[6]!==m?(d=()=>{if(r.data.isDirectory)return(0,a.jsxs)("span",{className:"flex items-center pl-1 cursor-pointer hover:bg-accent/50 hover:text-accent-foreground rounded-l flex-1 overflow-hidden h-full pr-3 gap-2",children:[i,r.data.name]});let u=r.data.path.startsWith(m)&&ie.isAbsolute(r.data.path)?ie.rest(r.data.path,m):r.data.path,g=u.endsWith(".md")||u.endsWith(".qmd");return(0,a.jsxs)("a",{className:"flex items-center pl-1 cursor-pointer hover:bg-accent/50 hover:text-accent-foreground rounded-l flex-1 overflow-hidden h-full pr-3 gap-2",href:le(`?file=${encodeURIComponent(u)}`).toString(),target:he(u),children:[i,(0,a.jsxs)("span",{className:"flex-1 overflow-hidden text-ellipsis",children:[r.data.name,g&&(0,a.jsx)(Q,{className:"ml-2 inline opacity-80"})]}),(0,a.jsx)(fe,{filePath:u}),(0,a.jsx)(B,{size:20,className:"group-hover:opacity-100 opacity-0 text-primary"})]})},t[2]=i,t[3]=r.data.isDirectory,t[4]=r.data.name,t[5]=r.data.path,t[6]=m,t[7]=d):d=t[7];let c=d,h;t[8]===Symbol.for("react.memo_cache_sentinel")?(h=Ce("flex items-center cursor-pointer ml-1 text-muted-foreground whitespace-nowrap group h-full"),t[8]=h):h=t[8];let p,n;t[9]===r?(p=t[10],n=t[11]):(p=u=>{u.stopPropagation(),r.data.isDirectory&&r.toggle()},n=(0,a.jsx)(It,{node:r}),t[9]=r,t[10]=p,t[11]=n);let f;t[12]===c?f=t[13]:(f=c(),t[12]=c,t[13]=f);let x;return t[14]!==s||t[15]!==p||t[16]!==n||t[17]!==f?(x=(0,a.jsxs)("div",{style:s,className:h,onClick:p,children:[n,f]}),t[14]=s,t[15]=p,t[16]=n,t[17]=f,t[18]=x):x=t[18],x},It=e=>{let t=(0,D.c)(3),{node:r}=e;if(!r.data.isDirectory){let o;return t[0]===Symbol.for("react.memo_cache_sentinel")?(o=(0,a.jsx)("span",{className:"w-5 h-5 shrink-0"}),t[0]=o):o=t[0],o}let s;return t[1]===r.isOpen?s=t[2]:(s=r.isOpen?(0,a.jsx)(We,{className:"w-5 h-5 shrink-0"}):(0,a.jsx)(Fe,{className:"w-5 h-5 shrink-0"}),t[1]=r.isOpen,t[2]=s),s},pe=e=>{let t=(0,D.c)(7),{header:r,files:s}=e;if(s.length===0)return null;let o;t[0]===s?o=t[1]:(o=s.map(Ft),t[0]=s,t[1]=o);let l;t[2]===o?l=t[3]:(l=(0,a.jsx)("div",{className:"flex flex-col divide-y divide-(--slate-3) border rounded overflow-hidden max-h-192 overflow-y-auto shadow-sm bg-background",children:o}),t[2]=o,t[3]=l);let i;return t[4]!==r||t[5]!==l?(i=(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[r,l]}),t[4]=r,t[5]=l,t[6]=i):i=t[6],i},Pt=e=>{let t=(0,D.c)(41),{file:r}=e,{locale:s}=it(),o;t[0]===r.path?o=t[1]:(o=rt(r.path),t[0]=r.path,t[1]=o);let l=o,i,m,d,c;if(t[2]!==r.initializationId||t[3]!==r.path||t[4]!==l){let N=le(l?`?file=${encodeURIComponent(r.initializationId??r.path)}&session_id=${r.path}`:`?file=${encodeURIComponent(r.path)}`),_;t[9]===r.path?_=t[10]:(_=r.path.endsWith(".md"),t[9]=r.path,t[10]=_),i=_,m="py-1.5 px-4 hover:bg-(--blue-2) hover:text-primary transition-all duration-300 cursor-pointer group relative flex gap-4 items-center",d=r.path,c=N.toString(),t[2]=r.initializationId,t[3]=r.path,t[4]=l,t[5]=i,t[6]=m,t[7]=d,t[8]=c}else i=t[5],m=t[6],d=t[7],c=t[8];let h=r.initializationId||r.path,p;t[11]===h?p=t[12]:(p=he(h),t[11]=h,t[12]=p);let n;t[13]===i?n=t[14]:(n=i&&(0,a.jsx)("span",{className:"opacity-80",children:(0,a.jsx)(Q,{})}),t[13]=i,t[14]=n);let f;t[15]!==r.name||t[16]!==n?(f=(0,a.jsxs)("span",{className:"flex items-center gap-2",children:[r.name,n]}),t[15]=r.name,t[16]=n,t[17]=f):f=t[17];let x;t[18]===r.path?x=t[19]:(x=(0,a.jsx)("p",{title:r.path,className:"text-sm text-muted-foreground overflow-hidden whitespace-nowrap text-ellipsis",children:r.path}),t[18]=r.path,t[19]=x);let u;t[20]!==f||t[21]!==x?(u=(0,a.jsxs)("div",{className:"flex flex-col justify-between flex-1",children:[f,x]}),t[20]=f,t[21]=x,t[22]=u):u=t[22];let g;t[23]===r.path?g=t[24]:(g=(0,a.jsx)("div",{children:(0,a.jsx)(fe,{filePath:r.path})}),t[23]=r.path,t[24]=g);let k;t[25]===Symbol.for("react.memo_cache_sentinel")?(k=(0,a.jsx)(B,{size:20,className:"group-hover:opacity-100 opacity-0 transition-all duration-300 text-primary"}),t[25]=k):k=t[25];let y;t[26]===g?y=t[27]:(y=(0,a.jsxs)("div",{className:"flex gap-3 items-center",children:[g,k]}),t[26]=g,t[27]=y);let b;t[28]!==r.lastModified||t[29]!==s?(b=!!r.lastModified&&(0,a.jsx)("div",{className:"text-xs text-muted-foreground opacity-80",children:st(r.lastModified*1e3,s)}),t[28]=r.lastModified,t[29]=s,t[30]=b):b=t[30];let v;t[31]!==y||t[32]!==b?(v=(0,a.jsxs)("div",{className:"flex flex-col gap-1 items-end",children:[y,b]}),t[31]=y,t[32]=b,t[33]=v):v=t[33];let w;return t[34]!==u||t[35]!==v||t[36]!==m||t[37]!==d||t[38]!==c||t[39]!==p?(w=(0,a.jsxs)("a",{className:m,href:c,target:p,children:[u,v]},d),t[34]=u,t[35]=v,t[36]=m,t[37]=d,t[38]=c,t[39]=p,t[40]=w):w=t[40],w},fe=e=>{let t=(0,D.c)(10),{filePath:r}=e,{openConfirm:s,closeModal:o}=lt(),{shutdownSession:l}=H(),{runningNotebooks:i,setRunningNotebooks:m}=(0,A.use)(ce);if(!i.has(r))return null;let d;t[0]!==o||t[1]!==r||t[2]!==s||t[3]!==i||t[4]!==m||t[5]!==l?(d=p=>{p.stopPropagation(),p.preventDefault(),s({title:"Shutdown",description:"This will terminate the Python kernel. You'll lose all data that's in memory.",variant:"destructive",confirmAction:(0,a.jsx)(Me,{onClick:()=>{let n=i.get(r);ye(n==null?void 0:n.sessionId),l({sessionId:n.sessionId}).then(f=>{m(se.keyBy(f.files,Ut))}),o(),tt({description:"Notebook has been shutdown."})},"aria-label":"Confirm Shutdown",children:"Shutdown"})})},t[0]=o,t[1]=r,t[2]=s,t[3]=i,t[4]=m,t[5]=l,t[6]=d):d=t[6];let c;t[7]===Symbol.for("react.memo_cache_sentinel")?(c=(0,a.jsx)(Qe,{size:14}),t[7]=c):c=t[7];let h;return t[8]===d?h=t[9]:(h=(0,a.jsx)(Te,{content:"Shutdown",children:(0,a.jsx)(E,{size:"icon",variant:"outline",className:"opacity-80 hover:opacity-100 hover:bg-accent text-destructive border-destructive hover:border-destructive hover:text-destructive bg-background hover:bg-(--red-1)",onClick:d,children:c})}),t[8]=d,t[9]=h),h},Dt=()=>{let e=(0,D.c)(3),t;e[0]===Symbol.for("react.memo_cache_sentinel")?(t=at(),e[0]=t):t=e[0];let r=t,s;e[1]===Symbol.for("react.memo_cache_sentinel")?(s=(0,a.jsx)("h2",{className:"text-lg font-semibold",children:"Create a new notebook"}),e[1]=s):s=e[1];let o;return e[2]===Symbol.for("react.memo_cache_sentinel")?(o=(0,a.jsxs)("a",{className:`relative rounded-lg p-6 group
2
2
  text-primary hover:bg-(--blue-2) shadow-md-solid shadow-accent border bg-(--blue-1)
3
3
  transition-all duration-300 cursor-pointer
4
4
  `,href:r,target:"_blank",rel:"noreferrer",children:[s,(0,a.jsx)("div",{className:"group-hover:opacity-100 opacity-0 absolute right-5 top-0 bottom-0 rounded-lg flex items-center justify-center transition-all duration-300",children:(0,a.jsx)(B,{size:24})})]}),e[2]=o):o=e[2],o},Rt=_t;function At(e){return e+1}function Tt(e){return e.path}function Ot(e){return e.path}function Wt(){return null}function Ft(e){return(0,a.jsx)(Pt,{file:e},e.path)}function Ut(e){return e.path}export{Rt as default};
@@ -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 k}from"./useEvent-D91BmmQi.js";import{o as j}from"./cells-CN4JOik9.js";import{t as T}from"./compiler-runtime-B3qBwwSJ.js";import{_ as I,d as E}from"./useEventListener-BnjleyM2.js";import{i as _}from"./utils-CmtLzRmR.js";import{h as N,x as P}from"./config-CkVlfvRx.js";import{s as z,u as D}from"./download-CH6PUCSY.js";import{r as $}from"./requests-eZGK4-3l.js";import{k as B}from"./layout-DKYga6K1.js";import{t as H}from"./Deferred-CcWopv8N.js";import{t as L}from"./use-toast-DZOInYtM.js";import{t as x}from"./useInterval-t3DJ9J0q.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=T(),M=5e3;function q(){let t=(0,Y.c)(14),e=k(_),{state:i}=k(N),n=e.auto_download.includes("markdown"),l=e.auto_download.includes("html"),u=e.auto_download.includes("ipynb"),p=i===P.OPEN,m=!n||!p,d=!l||!p,h=!u||!p,{autoExportAsHTML:a,autoExportAsIPYNB:s,autoExportAsMarkdown:r,updateCellOutputs:o}=$(),c=S(),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:M,whenVisible:!0,disabled:m},t[2]=m,t[3]=g),x(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:M,whenVisible:!0,disabled:d},t[6]=d,t[7]=v),x(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:M,whenVisible:!0,disabled:h,skipIfRunning:!0},t[12]=h,t[13]=y),x(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 S(){let t=k(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){I.error(`Failed to capture screenshot for cell ${a}`),r.markFailed();continue}let c=["image/png",o];p[a]=c,r.markCaptured(c)}catch(o){I.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){I.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,S 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 k}from"./useEvent-D91BmmQi.js";import{o as j}from"./cells-CjMq7Ben.js";import{t as T}from"./compiler-runtime-B3qBwwSJ.js";import{_ as I,d as E}from"./useEventListener-BnjleyM2.js";import{i as _}from"./utils-CmtLzRmR.js";import{h as N,x as P}from"./config-CwFllgX7.js";import{s as z,u as D}from"./download-DtbnVlWH.js";import{r as $}from"./requests-eZGK4-3l.js";import{k as B}from"./layout-CauPzZ-X.js";import{t as H}from"./Deferred-CcWopv8N.js";import{t as L}from"./use-toast-DZOInYtM.js";import{t as x}from"./useInterval-t3DJ9J0q.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=T(),M=5e3;function q(){let t=(0,Y.c)(14),e=k(_),{state:i}=k(N),n=e.auto_download.includes("markdown"),l=e.auto_download.includes("html"),u=e.auto_download.includes("ipynb"),p=i===P.OPEN,m=!n||!p,d=!l||!p,h=!u||!p,{autoExportAsHTML:a,autoExportAsIPYNB:s,autoExportAsMarkdown:r,updateCellOutputs:o}=$(),c=S(),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:M,whenVisible:!0,disabled:m},t[2]=m,t[3]=g),x(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:M,whenVisible:!0,disabled:d},t[6]=d,t[7]=v),x(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:M,whenVisible:!0,disabled:h,skipIfRunning:!0},t[12]=h,t[13]=y),x(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 S(){let t=k(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){I.error(`Failed to capture screenshot for cell ${a}`),r.markFailed();continue}let c=["image/png",o];p[a]=c,r.markCaptured(c)}catch(o){I.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){I.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,S as r,A as t};
@@ -1,2 +1,2 @@
1
- import{i as q}from"./useEvent-D91BmmQi.js";import{Ci as C,Fn as W,b as G}from"./cells-CN4JOik9.js";import{_ as v}from"./useEventListener-BnjleyM2.js";import{t as $}from"./requests-eZGK4-3l.js";function I({moduleName:e,variableName:t,onAddImport:r,appStore:n=q}){if(t in n.get(W))return!1;let{cellData:i,cellIds:o}=n.get(G),a=RegExp(`import[ ]+${e}[ ]+as[ ]+${t}`,"g");for(let l of o.inOrderIds)if(a.test(i[l].code))return!1;return r(`import ${e} as ${t}`),!0}function J({autoInstantiate:e,createNewCell:t,fromCellId:r,before:n}){let i=$(),o=null;return I({moduleName:"marimo",variableName:"mo",onAddImport:a=>{o=C.create(),t({cellId:r??"__end__",before:n??!1,code:a,lastCodeRun:e?a:void 0,newCellId:o,skipIfCodeExists:!0,autoFocus:!1}),e&&i.sendRun({cellIds:[o],codes:[a]})}})?o:null}function K({autoInstantiate:e,createNewCell:t,fromCellId:r}){let n=$(),i=null;return I({moduleName:"altair",variableName:"alt",onAddImport:o=>{i=C.create(),t({cellId:r??"__end__",before:!1,code:o,lastCodeRun:e?o:void 0,newCellId:i,skipIfCodeExists:!0,autoFocus:!1}),e&&n.sendRun({cellIds:[i],codes:[o]})}})?i:null}function X(e,t){if(e.match(/^[a-z]+:\/\//i))return e;if(e.match(/^\/\//))return window.location.protocol+e;if(e.match(/^[a-z]+:/i))return e;let r=document.implementation.createHTMLDocument(),n=r.createElement("base"),i=r.createElement("a");return r.head.appendChild(n),r.body.appendChild(i),t&&(n.href=t),i.href=e,i.href}const Y=(()=>{let e=0,t=()=>`0000${(Math.random()*36**4<<0).toString(36)}`.slice(-4);return()=>(e+=1,`u${t()}${e}`)})();function d(e){let t=[];for(let r=0,n=e.length;r<n;r++)t.push(e[r]);return t}var m=null;function R(e={}){return m||(e.includeStyleProperties?(m=e.includeStyleProperties,m):(m=d(window.getComputedStyle(document.documentElement)),m))}function p(e,t){let r=(e.ownerDocument.defaultView||window).getComputedStyle(e).getPropertyValue(t);return r?parseFloat(r.replace("px","")):0}function Z(e){let t=p(e,"border-left-width"),r=p(e,"border-right-width");return e.clientWidth+t+r}function ee(e){let t=p(e,"border-top-width"),r=p(e,"border-bottom-width");return e.clientHeight+t+r}function k(e,t={}){return{width:t.width||Z(e),height:t.height||ee(e)}}function te(){let e,t;try{t=process}catch{}let r=t&&t.env?t.env.devicePixelRatio:null;return r&&(e=parseInt(r,10),Number.isNaN(e)&&(e=1)),e||window.devicePixelRatio||1}var u=16384;function re(e){(e.width>u||e.height>u)&&(e.width>u&&e.height>u?e.width>e.height?(e.height*=u/e.width,e.width=u):(e.width*=u/e.height,e.height=u):e.width>u?(e.height*=u/e.width,e.width=u):(e.width*=u/e.height,e.height=u))}function w(e){return new Promise((t,r)=>{let n=new Image;n.onload=()=>{n.decode().then(()=>{requestAnimationFrame(()=>t(n))})},n.onerror=r,n.crossOrigin="anonymous",n.decoding="async",n.src=e})}async function ne(e){return Promise.resolve().then(()=>new XMLSerializer().serializeToString(e)).then(encodeURIComponent).then(t=>`data:image/svg+xml;charset=utf-8,${t}`)}async function ie(e,t,r){let n="http://www.w3.org/2000/svg",i=document.createElementNS(n,"svg"),o=document.createElementNS(n,"foreignObject");return i.setAttribute("width",`${t}`),i.setAttribute("height",`${r}`),i.setAttribute("viewBox",`0 0 ${t} ${r}`),o.setAttribute("width","100%"),o.setAttribute("height","100%"),o.setAttribute("x","0"),o.setAttribute("y","0"),o.setAttribute("externalResourcesRequired","true"),i.appendChild(o),o.appendChild(e),ne(i)}const c=(e,t)=>{if(e instanceof t)return!0;let r=Object.getPrototypeOf(e);return r===null?!1:r.constructor.name===t.name||c(r,t)};function oe(e){let t=e.getPropertyValue("content");return`${e.cssText} content: '${t.replace(/'|"/g,"")}';`}function ae(e,t){return R(t).map(r=>`${r}: ${e.getPropertyValue(r)}${e.getPropertyPriority(r)?" !important":""};`).join(" ")}function le(e,t,r,n){let i=`.${e}:${t}`,o=r.cssText?oe(r):ae(r,n);return document.createTextNode(`${i}{${o}}`)}function P(e,t,r,n){let i=window.getComputedStyle(e,r),o=i.getPropertyValue("content");if(o===""||o==="none")return;let a=Y();try{t.className=`${t.className} ${a}`}catch{return}let l=document.createElement("style");l.appendChild(le(a,r,i,n)),t.appendChild(l)}function se(e,t,r){P(e,t,":before",r),P(e,t,":after",r)}var N="application/font-woff",T="image/jpeg",ce={woff:N,woff2:N,ttf:"application/font-truetype",eot:"application/vnd.ms-fontobject",png:"image/png",jpg:T,jpeg:T,gif:"image/gif",tiff:"image/tiff",svg:"image/svg+xml",webp:"image/webp"};function ue(e){let t=/\.([^./]*?)$/g.exec(e);return t?t[1]:""}function A(e){return ce[ue(e).toLowerCase()]||""}function de(e){return e.split(/,/)[1]}function x(e){return e.search(/^(data:)/)!==-1}function L(e,t){return`data:${t};base64,${e}`}async function F(e,t,r){let n=await fetch(e,t);if(n.status===404)throw Error(`Resource "${n.url}" not found`);let i=await n.blob();return new Promise((o,a)=>{let l=new FileReader;l.onerror=a,l.onloadend=()=>{try{o(r({res:n,result:l.result}))}catch(s){a(s)}},l.readAsDataURL(i)})}var E={};function fe(e,t,r){let n=e.replace(/\?.*/,"");return r&&(n=e),/ttf|otf|eot|woff2?/i.test(n)&&(n=n.replace(/.*\//,"")),t?`[${t}]${n}`:n}async function S(e,t,r){let n=fe(e,t,r.includeQueryParams);if(E[n]!=null)return E[n];r.cacheBust&&(e+=(/\?/.test(e)?"&":"?")+new Date().getTime());let i;try{i=L(await F(e,r.fetchRequestInit,({res:o,result:a})=>(t||(t=o.headers.get("Content-Type")||""),de(a))),t)}catch(o){i=r.imagePlaceholder||"";let a=`Failed to fetch resource: ${e}`;o&&(a=typeof o=="string"?o:o.message),a&&console.warn(a)}return E[n]=i,i}async function he(e){let t=e.toDataURL();return t==="data:,"?e.cloneNode(!1):w(t)}async function ge(e,t){if(e.currentSrc){let n=document.createElement("canvas"),i=n.getContext("2d");return n.width=e.clientWidth,n.height=e.clientHeight,i==null||i.drawImage(e,0,0,n.width,n.height),w(n.toDataURL())}let r=e.poster;return w(await S(r,A(r),t))}async function me(e,t){var r;try{if((r=e==null?void 0:e.contentDocument)!=null&&r.body)return await y(e.contentDocument.body,t,!0)}catch{}return e.cloneNode(!1)}async function pe(e,t){return c(e,HTMLCanvasElement)?he(e):c(e,HTMLVideoElement)?ge(e,t):c(e,HTMLIFrameElement)?me(e,t):e.cloneNode(H(e))}var we=e=>e.tagName!=null&&e.tagName.toUpperCase()==="SLOT",H=e=>e.tagName!=null&&e.tagName.toUpperCase()==="SVG";async function ye(e,t,r){var i;if(H(t))return t;let n=[];if(we(e)&&e.assignedNodes)n=d(e.assignedNodes());else if(c(e,HTMLIFrameElement))try{(i=e.contentDocument)!=null&&i.body&&(n=d(e.contentDocument.body.childNodes))}catch{}else n=d((e.shadowRoot??e).childNodes);return n.length===0||c(e,HTMLVideoElement)||await n.reduce((o,a)=>o.then(()=>y(a,r)).then(l=>{l&&t.appendChild(l)}),Promise.resolve()),t}function be(e,t,r){let n=t.style;if(!n)return;let i=window.getComputedStyle(e);i.cssText?(n.cssText=i.cssText,n.transformOrigin=i.transformOrigin):R(r).forEach(o=>{let a=i.getPropertyValue(o);o==="font-size"&&a.endsWith("px")&&(a=`${Math.floor(parseFloat(a.substring(0,a.length-2)))-.1}px`),c(e,HTMLIFrameElement)&&o==="display"&&a==="inline"&&(a="block"),o==="d"&&t.getAttribute("d")&&(a=`path(${t.getAttribute("d")})`),n.setProperty(o,a,i.getPropertyPriority(o))})}function Ae(e,t){c(e,HTMLTextAreaElement)&&(t.innerHTML=e.value),c(e,HTMLInputElement)&&t.setAttribute("value",e.value)}function xe(e,t){if(c(e,HTMLSelectElement)){let r=t,n=Array.from(r.children).find(i=>e.value===i.getAttribute("value"));n&&n.setAttribute("selected","")}}function Ee(e,t,r){return c(t,Element)&&(be(e,t,r),se(e,t,r),Ae(e,t),xe(e,t)),t}async function Se(e,t){let r=e.querySelectorAll?e.querySelectorAll("use"):[];if(r.length===0)return e;let n={};for(let o=0;o<r.length;o++){let a=r[o].getAttribute("xlink:href");if(a){let l=e.querySelector(a),s=document.querySelector(a);!l&&s&&!n[a]&&(n[a]=await y(s,t,!0))}}let i=Object.values(n);if(i.length){let o="http://www.w3.org/1999/xhtml",a=document.createElementNS(o,"svg");a.setAttribute("xmlns",o),a.style.position="absolute",a.style.width="0",a.style.height="0",a.style.overflow="hidden",a.style.display="none";let l=document.createElementNS(o,"defs");a.appendChild(l);for(let s=0;s<i.length;s++)l.appendChild(i[s]);e.appendChild(a)}return e}async function y(e,t,r){return!r&&t.filter&&!t.filter(e)?null:Promise.resolve(e).then(n=>pe(n,t)).then(n=>ye(e,n,t)).then(n=>Ee(e,n,t)).then(n=>Se(n,t))}var V=/url\((['"]?)([^'"]+?)\1\)/g,Ce=/url\([^)]+\)\s*format\((["']?)([^"']+)\1\)/g,ve=/src:\s*(?:url\([^)]+\)\s*format\([^)]+\)[,;]\s*)+/g;function $e(e){let t=e.replace(/([.*+?^${}()|\[\]\/\\])/g,"\\$1");return RegExp(`(url\\(['"]?)(${t})(['"]?\\))`,"g")}function Ie(e){let t=[];return e.replace(V,(r,n,i)=>(t.push(i),r)),t.filter(r=>!x(r))}async function Re(e,t,r,n,i){try{let o=r?X(t,r):t,a=A(t),l;return l=i?L(await i(o),a):await S(o,a,n),e.replace($e(t),`$1${l}$3`)}catch{}return e}function ke(e,{preferredFontFormat:t}){return t?e.replace(ve,r=>{for(;;){let[n,,i]=Ce.exec(r)||[];if(!i)return"";if(i===t)return`src: ${n};`}}):e}function D(e){return e.search(V)!==-1}async function M(e,t,r){if(!D(e))return e;let n=ke(e,r);return Ie(n).reduce((i,o)=>i.then(a=>Re(a,o,t,r)),Promise.resolve(n))}async function h(e,t,r){var i;let n=(i=t.style)==null?void 0:i.getPropertyValue(e);if(n){let o=await M(n,null,r);return t.style.setProperty(e,o,t.style.getPropertyPriority(e)),!0}return!1}async function Pe(e,t){await h("background",e,t)||await h("background-image",e,t),await h("mask",e,t)||await h("-webkit-mask",e,t)||await h("mask-image",e,t)||await h("-webkit-mask-image",e,t)}async function Ne(e,t){let r=c(e,HTMLImageElement);if(!(r&&!x(e.src))&&!(c(e,SVGImageElement)&&!x(e.href.baseVal)))return;let n=r?e.src:e.href.baseVal,i=await S(n,A(n),t);await new Promise((o,a)=>{e.onload=o,e.onerror=t.onImageErrorHandler?(...s)=>{try{o(t.onImageErrorHandler(...s))}catch(f){a(f)}}:a;let l=e;l.decode&&(l.decode=o),l.loading==="lazy"&&(l.loading="eager"),r?(e.srcset="",e.src=i):e.href.baseVal=i})}async function Te(e,t){let r=d(e.childNodes).map(n=>j(n,t));await Promise.all(r).then(()=>e)}async function j(e,t){c(e,Element)&&(await Pe(e,t),await Ne(e,t),await Te(e,t))}function Le(e,t){let{style:r}=e;t.backgroundColor&&(r.backgroundColor=t.backgroundColor),t.width&&(r.width=`${t.width}px`),t.height&&(r.height=`${t.height}px`);let n=t.style;return n!=null&&Object.keys(n).forEach(i=>{r[i]=n[i]}),e}var O={};async function U(e){let t=O[e];return t??(t={url:e,cssText:await(await fetch(e)).text()},O[e]=t,t)}async function _(e,t){let r=e.cssText,n=/url\(["']?([^"')]+)["']?\)/g,i=(r.match(/url\([^)]+\)/g)||[]).map(async o=>{let a=o.replace(n,"$1");return a.startsWith("https://")||(a=new URL(a,e.url).href),F(a,t.fetchRequestInit,({result:l})=>(r=r.replace(o,`url(${l})`),[o,l]))});return Promise.all(i).then(()=>r)}function z(e){if(e==null)return[];let t=[],r=e.replace(/(\/\*[\s\S]*?\*\/)/gi,""),n=RegExp("((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})","gi");for(;;){let a=n.exec(r);if(a===null)break;t.push(a[0])}r=r.replace(n,"");let i=/@import[\s\S]*?url\([^)]*\)[\s\S]*?;/gi,o=RegExp("((\\s*?(?:\\/\\*[\\s\\S]*?\\*\\/)?\\s*?@media[\\s\\S]*?){([\\s\\S]*?)}\\s*?})|(([\\s\\S]*?){([\\s\\S]*?)})","gi");for(;;){let a=i.exec(r);if(a===null){if(a=o.exec(r),a===null)break;i.lastIndex=o.lastIndex}else o.lastIndex=i.lastIndex;t.push(a[0])}return t}async function Fe(e,t){let r=[],n=[];return e.forEach(i=>{if("cssRules"in i)try{d(i.cssRules||[]).forEach((o,a)=>{if(o.type===CSSRule.IMPORT_RULE){let l=a+1,s=o.href,f=U(s).then(g=>_(g,t)).then(g=>z(g).forEach(b=>{try{i.insertRule(b,b.startsWith("@import")?l+=1:i.cssRules.length)}catch(B){console.error("Error inserting rule from remote css",{rule:b,error:B})}})).catch(g=>{console.error("Error loading remote css",g.toString())});n.push(f)}})}catch(o){let a=e.find(l=>l.href==null)||document.styleSheets[0];i.href!=null&&n.push(U(i.href).then(l=>_(l,t)).then(l=>z(l).forEach(s=>{a.insertRule(s,a.cssRules.length)})).catch(l=>{console.error("Error loading remote stylesheet",l)})),console.error("Error inlining remote css file",o)}}),Promise.all(n).then(()=>(e.forEach(i=>{if("cssRules"in i)try{d(i.cssRules||[]).forEach(o=>{r.push(o)})}catch(o){console.error(`Error while reading CSS rules from ${i.href}`,o)}}),r))}function He(e){return e.filter(t=>t.type===CSSRule.FONT_FACE_RULE).filter(t=>D(t.style.getPropertyValue("src")))}async function Ve(e,t){if(e.ownerDocument==null)throw Error("Provided element is not within a Document");return He(await Fe(d(e.ownerDocument.styleSheets),t))}function Q(e){return(e||"").trim().replace(/["']/g,"")}function De(e){let t=new Set;function r(n){let i=n.style.fontFamily||getComputedStyle(n).fontFamily;i&&i.split(",").forEach(o=>{t.add(Q(o))}),Array.from(n.children).forEach(o=>{o instanceof HTMLElement&&r(o)})}return r(e),t}async function Me(e,t){let r=await Ve(e,t),n=De(e);return(await Promise.all(r.filter(i=>n.has(Q(i.style.fontFamily))).map(i=>{let o=i.parentStyleSheet?i.parentStyleSheet.href:null;return M(i.cssText,o,t)}))).join(`
1
+ import{i as q}from"./useEvent-D91BmmQi.js";import{Ci as C,Fn as W,b as G}from"./cells-CjMq7Ben.js";import{_ as v}from"./useEventListener-BnjleyM2.js";import{t as $}from"./requests-eZGK4-3l.js";function I({moduleName:e,variableName:t,onAddImport:r,appStore:n=q}){if(t in n.get(W))return!1;let{cellData:i,cellIds:o}=n.get(G),a=RegExp(`import[ ]+${e}[ ]+as[ ]+${t}`,"g");for(let l of o.inOrderIds)if(a.test(i[l].code))return!1;return r(`import ${e} as ${t}`),!0}function J({autoInstantiate:e,createNewCell:t,fromCellId:r,before:n}){let i=$(),o=null;return I({moduleName:"marimo",variableName:"mo",onAddImport:a=>{o=C.create(),t({cellId:r??"__end__",before:n??!1,code:a,lastCodeRun:e?a:void 0,newCellId:o,skipIfCodeExists:!0,autoFocus:!1}),e&&i.sendRun({cellIds:[o],codes:[a]})}})?o:null}function K({autoInstantiate:e,createNewCell:t,fromCellId:r}){let n=$(),i=null;return I({moduleName:"altair",variableName:"alt",onAddImport:o=>{i=C.create(),t({cellId:r??"__end__",before:!1,code:o,lastCodeRun:e?o:void 0,newCellId:i,skipIfCodeExists:!0,autoFocus:!1}),e&&n.sendRun({cellIds:[i],codes:[o]})}})?i:null}function X(e,t){if(e.match(/^[a-z]+:\/\//i))return e;if(e.match(/^\/\//))return window.location.protocol+e;if(e.match(/^[a-z]+:/i))return e;let r=document.implementation.createHTMLDocument(),n=r.createElement("base"),i=r.createElement("a");return r.head.appendChild(n),r.body.appendChild(i),t&&(n.href=t),i.href=e,i.href}const Y=(()=>{let e=0,t=()=>`0000${(Math.random()*36**4<<0).toString(36)}`.slice(-4);return()=>(e+=1,`u${t()}${e}`)})();function d(e){let t=[];for(let r=0,n=e.length;r<n;r++)t.push(e[r]);return t}var m=null;function R(e={}){return m||(e.includeStyleProperties?(m=e.includeStyleProperties,m):(m=d(window.getComputedStyle(document.documentElement)),m))}function p(e,t){let r=(e.ownerDocument.defaultView||window).getComputedStyle(e).getPropertyValue(t);return r?parseFloat(r.replace("px","")):0}function Z(e){let t=p(e,"border-left-width"),r=p(e,"border-right-width");return e.clientWidth+t+r}function ee(e){let t=p(e,"border-top-width"),r=p(e,"border-bottom-width");return e.clientHeight+t+r}function k(e,t={}){return{width:t.width||Z(e),height:t.height||ee(e)}}function te(){let e,t;try{t=process}catch{}let r=t&&t.env?t.env.devicePixelRatio:null;return r&&(e=parseInt(r,10),Number.isNaN(e)&&(e=1)),e||window.devicePixelRatio||1}var u=16384;function re(e){(e.width>u||e.height>u)&&(e.width>u&&e.height>u?e.width>e.height?(e.height*=u/e.width,e.width=u):(e.width*=u/e.height,e.height=u):e.width>u?(e.height*=u/e.width,e.width=u):(e.width*=u/e.height,e.height=u))}function w(e){return new Promise((t,r)=>{let n=new Image;n.onload=()=>{n.decode().then(()=>{requestAnimationFrame(()=>t(n))})},n.onerror=r,n.crossOrigin="anonymous",n.decoding="async",n.src=e})}async function ne(e){return Promise.resolve().then(()=>new XMLSerializer().serializeToString(e)).then(encodeURIComponent).then(t=>`data:image/svg+xml;charset=utf-8,${t}`)}async function ie(e,t,r){let n="http://www.w3.org/2000/svg",i=document.createElementNS(n,"svg"),o=document.createElementNS(n,"foreignObject");return i.setAttribute("width",`${t}`),i.setAttribute("height",`${r}`),i.setAttribute("viewBox",`0 0 ${t} ${r}`),o.setAttribute("width","100%"),o.setAttribute("height","100%"),o.setAttribute("x","0"),o.setAttribute("y","0"),o.setAttribute("externalResourcesRequired","true"),i.appendChild(o),o.appendChild(e),ne(i)}const c=(e,t)=>{if(e instanceof t)return!0;let r=Object.getPrototypeOf(e);return r===null?!1:r.constructor.name===t.name||c(r,t)};function oe(e){let t=e.getPropertyValue("content");return`${e.cssText} content: '${t.replace(/'|"/g,"")}';`}function ae(e,t){return R(t).map(r=>`${r}: ${e.getPropertyValue(r)}${e.getPropertyPriority(r)?" !important":""};`).join(" ")}function le(e,t,r,n){let i=`.${e}:${t}`,o=r.cssText?oe(r):ae(r,n);return document.createTextNode(`${i}{${o}}`)}function P(e,t,r,n){let i=window.getComputedStyle(e,r),o=i.getPropertyValue("content");if(o===""||o==="none")return;let a=Y();try{t.className=`${t.className} ${a}`}catch{return}let l=document.createElement("style");l.appendChild(le(a,r,i,n)),t.appendChild(l)}function se(e,t,r){P(e,t,":before",r),P(e,t,":after",r)}var N="application/font-woff",T="image/jpeg",ce={woff:N,woff2:N,ttf:"application/font-truetype",eot:"application/vnd.ms-fontobject",png:"image/png",jpg:T,jpeg:T,gif:"image/gif",tiff:"image/tiff",svg:"image/svg+xml",webp:"image/webp"};function ue(e){let t=/\.([^./]*?)$/g.exec(e);return t?t[1]:""}function A(e){return ce[ue(e).toLowerCase()]||""}function de(e){return e.split(/,/)[1]}function x(e){return e.search(/^(data:)/)!==-1}function L(e,t){return`data:${t};base64,${e}`}async function F(e,t,r){let n=await fetch(e,t);if(n.status===404)throw Error(`Resource "${n.url}" not found`);let i=await n.blob();return new Promise((o,a)=>{let l=new FileReader;l.onerror=a,l.onloadend=()=>{try{o(r({res:n,result:l.result}))}catch(s){a(s)}},l.readAsDataURL(i)})}var E={};function fe(e,t,r){let n=e.replace(/\?.*/,"");return r&&(n=e),/ttf|otf|eot|woff2?/i.test(n)&&(n=n.replace(/.*\//,"")),t?`[${t}]${n}`:n}async function S(e,t,r){let n=fe(e,t,r.includeQueryParams);if(E[n]!=null)return E[n];r.cacheBust&&(e+=(/\?/.test(e)?"&":"?")+new Date().getTime());let i;try{i=L(await F(e,r.fetchRequestInit,({res:o,result:a})=>(t||(t=o.headers.get("Content-Type")||""),de(a))),t)}catch(o){i=r.imagePlaceholder||"";let a=`Failed to fetch resource: ${e}`;o&&(a=typeof o=="string"?o:o.message),a&&console.warn(a)}return E[n]=i,i}async function he(e){let t=e.toDataURL();return t==="data:,"?e.cloneNode(!1):w(t)}async function ge(e,t){if(e.currentSrc){let n=document.createElement("canvas"),i=n.getContext("2d");return n.width=e.clientWidth,n.height=e.clientHeight,i==null||i.drawImage(e,0,0,n.width,n.height),w(n.toDataURL())}let r=e.poster;return w(await S(r,A(r),t))}async function me(e,t){var r;try{if((r=e==null?void 0:e.contentDocument)!=null&&r.body)return await y(e.contentDocument.body,t,!0)}catch{}return e.cloneNode(!1)}async function pe(e,t){return c(e,HTMLCanvasElement)?he(e):c(e,HTMLVideoElement)?ge(e,t):c(e,HTMLIFrameElement)?me(e,t):e.cloneNode(H(e))}var we=e=>e.tagName!=null&&e.tagName.toUpperCase()==="SLOT",H=e=>e.tagName!=null&&e.tagName.toUpperCase()==="SVG";async function ye(e,t,r){var i;if(H(t))return t;let n=[];if(we(e)&&e.assignedNodes)n=d(e.assignedNodes());else if(c(e,HTMLIFrameElement))try{(i=e.contentDocument)!=null&&i.body&&(n=d(e.contentDocument.body.childNodes))}catch{}else n=d((e.shadowRoot??e).childNodes);return n.length===0||c(e,HTMLVideoElement)||await n.reduce((o,a)=>o.then(()=>y(a,r)).then(l=>{l&&t.appendChild(l)}),Promise.resolve()),t}function be(e,t,r){let n=t.style;if(!n)return;let i=window.getComputedStyle(e);i.cssText?(n.cssText=i.cssText,n.transformOrigin=i.transformOrigin):R(r).forEach(o=>{let a=i.getPropertyValue(o);o==="font-size"&&a.endsWith("px")&&(a=`${Math.floor(parseFloat(a.substring(0,a.length-2)))-.1}px`),c(e,HTMLIFrameElement)&&o==="display"&&a==="inline"&&(a="block"),o==="d"&&t.getAttribute("d")&&(a=`path(${t.getAttribute("d")})`),n.setProperty(o,a,i.getPropertyPriority(o))})}function Ae(e,t){c(e,HTMLTextAreaElement)&&(t.innerHTML=e.value),c(e,HTMLInputElement)&&t.setAttribute("value",e.value)}function xe(e,t){if(c(e,HTMLSelectElement)){let r=t,n=Array.from(r.children).find(i=>e.value===i.getAttribute("value"));n&&n.setAttribute("selected","")}}function Ee(e,t,r){return c(t,Element)&&(be(e,t,r),se(e,t,r),Ae(e,t),xe(e,t)),t}async function Se(e,t){let r=e.querySelectorAll?e.querySelectorAll("use"):[];if(r.length===0)return e;let n={};for(let o=0;o<r.length;o++){let a=r[o].getAttribute("xlink:href");if(a){let l=e.querySelector(a),s=document.querySelector(a);!l&&s&&!n[a]&&(n[a]=await y(s,t,!0))}}let i=Object.values(n);if(i.length){let o="http://www.w3.org/1999/xhtml",a=document.createElementNS(o,"svg");a.setAttribute("xmlns",o),a.style.position="absolute",a.style.width="0",a.style.height="0",a.style.overflow="hidden",a.style.display="none";let l=document.createElementNS(o,"defs");a.appendChild(l);for(let s=0;s<i.length;s++)l.appendChild(i[s]);e.appendChild(a)}return e}async function y(e,t,r){return!r&&t.filter&&!t.filter(e)?null:Promise.resolve(e).then(n=>pe(n,t)).then(n=>ye(e,n,t)).then(n=>Ee(e,n,t)).then(n=>Se(n,t))}var V=/url\((['"]?)([^'"]+?)\1\)/g,Ce=/url\([^)]+\)\s*format\((["']?)([^"']+)\1\)/g,ve=/src:\s*(?:url\([^)]+\)\s*format\([^)]+\)[,;]\s*)+/g;function $e(e){let t=e.replace(/([.*+?^${}()|\[\]\/\\])/g,"\\$1");return RegExp(`(url\\(['"]?)(${t})(['"]?\\))`,"g")}function Ie(e){let t=[];return e.replace(V,(r,n,i)=>(t.push(i),r)),t.filter(r=>!x(r))}async function Re(e,t,r,n,i){try{let o=r?X(t,r):t,a=A(t),l;return l=i?L(await i(o),a):await S(o,a,n),e.replace($e(t),`$1${l}$3`)}catch{}return e}function ke(e,{preferredFontFormat:t}){return t?e.replace(ve,r=>{for(;;){let[n,,i]=Ce.exec(r)||[];if(!i)return"";if(i===t)return`src: ${n};`}}):e}function D(e){return e.search(V)!==-1}async function M(e,t,r){if(!D(e))return e;let n=ke(e,r);return Ie(n).reduce((i,o)=>i.then(a=>Re(a,o,t,r)),Promise.resolve(n))}async function h(e,t,r){var i;let n=(i=t.style)==null?void 0:i.getPropertyValue(e);if(n){let o=await M(n,null,r);return t.style.setProperty(e,o,t.style.getPropertyPriority(e)),!0}return!1}async function Pe(e,t){await h("background",e,t)||await h("background-image",e,t),await h("mask",e,t)||await h("-webkit-mask",e,t)||await h("mask-image",e,t)||await h("-webkit-mask-image",e,t)}async function Ne(e,t){let r=c(e,HTMLImageElement);if(!(r&&!x(e.src))&&!(c(e,SVGImageElement)&&!x(e.href.baseVal)))return;let n=r?e.src:e.href.baseVal,i=await S(n,A(n),t);await new Promise((o,a)=>{e.onload=o,e.onerror=t.onImageErrorHandler?(...s)=>{try{o(t.onImageErrorHandler(...s))}catch(f){a(f)}}:a;let l=e;l.decode&&(l.decode=o),l.loading==="lazy"&&(l.loading="eager"),r?(e.srcset="",e.src=i):e.href.baseVal=i})}async function Te(e,t){let r=d(e.childNodes).map(n=>j(n,t));await Promise.all(r).then(()=>e)}async function j(e,t){c(e,Element)&&(await Pe(e,t),await Ne(e,t),await Te(e,t))}function Le(e,t){let{style:r}=e;t.backgroundColor&&(r.backgroundColor=t.backgroundColor),t.width&&(r.width=`${t.width}px`),t.height&&(r.height=`${t.height}px`);let n=t.style;return n!=null&&Object.keys(n).forEach(i=>{r[i]=n[i]}),e}var O={};async function U(e){let t=O[e];return t??(t={url:e,cssText:await(await fetch(e)).text()},O[e]=t,t)}async function _(e,t){let r=e.cssText,n=/url\(["']?([^"')]+)["']?\)/g,i=(r.match(/url\([^)]+\)/g)||[]).map(async o=>{let a=o.replace(n,"$1");return a.startsWith("https://")||(a=new URL(a,e.url).href),F(a,t.fetchRequestInit,({result:l})=>(r=r.replace(o,`url(${l})`),[o,l]))});return Promise.all(i).then(()=>r)}function z(e){if(e==null)return[];let t=[],r=e.replace(/(\/\*[\s\S]*?\*\/)/gi,""),n=RegExp("((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})","gi");for(;;){let a=n.exec(r);if(a===null)break;t.push(a[0])}r=r.replace(n,"");let i=/@import[\s\S]*?url\([^)]*\)[\s\S]*?;/gi,o=RegExp("((\\s*?(?:\\/\\*[\\s\\S]*?\\*\\/)?\\s*?@media[\\s\\S]*?){([\\s\\S]*?)}\\s*?})|(([\\s\\S]*?){([\\s\\S]*?)})","gi");for(;;){let a=i.exec(r);if(a===null){if(a=o.exec(r),a===null)break;i.lastIndex=o.lastIndex}else o.lastIndex=i.lastIndex;t.push(a[0])}return t}async function Fe(e,t){let r=[],n=[];return e.forEach(i=>{if("cssRules"in i)try{d(i.cssRules||[]).forEach((o,a)=>{if(o.type===CSSRule.IMPORT_RULE){let l=a+1,s=o.href,f=U(s).then(g=>_(g,t)).then(g=>z(g).forEach(b=>{try{i.insertRule(b,b.startsWith("@import")?l+=1:i.cssRules.length)}catch(B){console.error("Error inserting rule from remote css",{rule:b,error:B})}})).catch(g=>{console.error("Error loading remote css",g.toString())});n.push(f)}})}catch(o){let a=e.find(l=>l.href==null)||document.styleSheets[0];i.href!=null&&n.push(U(i.href).then(l=>_(l,t)).then(l=>z(l).forEach(s=>{a.insertRule(s,a.cssRules.length)})).catch(l=>{console.error("Error loading remote stylesheet",l)})),console.error("Error inlining remote css file",o)}}),Promise.all(n).then(()=>(e.forEach(i=>{if("cssRules"in i)try{d(i.cssRules||[]).forEach(o=>{r.push(o)})}catch(o){console.error(`Error while reading CSS rules from ${i.href}`,o)}}),r))}function He(e){return e.filter(t=>t.type===CSSRule.FONT_FACE_RULE).filter(t=>D(t.style.getPropertyValue("src")))}async function Ve(e,t){if(e.ownerDocument==null)throw Error("Provided element is not within a Document");return He(await Fe(d(e.ownerDocument.styleSheets),t))}function Q(e){return(e||"").trim().replace(/["']/g,"")}function De(e){let t=new Set;function r(n){let i=n.style.fontFamily||getComputedStyle(n).fontFamily;i&&i.split(",").forEach(o=>{t.add(Q(o))}),Array.from(n.children).forEach(o=>{o instanceof HTMLElement&&r(o)})}return r(e),t}async function Me(e,t){let r=await Ve(e,t),n=De(e);return(await Promise.all(r.filter(i=>n.has(Q(i.style.fontFamily))).map(i=>{let o=i.parentStyleSheet?i.parentStyleSheet.href:null;return M(i.cssText,o,t)}))).join(`
2
2
  `)}async function je(e,t){let r=t.fontEmbedCSS==null?t.skipFonts?null:await Me(e,t):t.fontEmbedCSS,n=t.extraStyleContent==null?r:(r||"").concat(t.extraStyleContent);if(n){let i=document.createElement("style"),o=document.createTextNode(n);i.appendChild(o),e.firstChild?e.insertBefore(i,e.firstChild):e.appendChild(i)}}async function Oe(e,t={}){let{width:r,height:n}=k(e,t),i=await y(e,t,!0);return await je(i,t),await j(i,t),Le(i,t),await ie(i,r,n)}async function Ue(e,t={}){let{width:r,height:n}=k(e,t),i=await w(await Oe(e,t)),o=document.createElement("canvas"),a=o.getContext("2d"),l=t.pixelRatio||te(),s=t.canvasWidth||r,f=t.canvasHeight||n;return o.width=s*l,o.height=f*l,t.skipAutoScale||re(o),o.style.width=`${s}`,o.style.height=`${f}`,t.backgroundColor&&(a.fillStyle=t.backgroundColor,a.fillRect(0,0,o.width,o.height)),a.drawImage(i,0,0,o.width,o.height),o}async function _e(e,t={}){return(await Ue(e,t)).toDataURL()}const ze={filter:e=>{try{if("classList"in e){let t=e.classList;if(t.contains("mpl-toolbar")||t.contains("print:hidden"))return!1}return!0}catch(t){return v.error("Error filtering node:",t),!0}},imagePlaceholder:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQI12NgAAIABQABNjN9GQAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAAA0lEQVQI12P4z8BQDwAEgAF/QualIQAAAABJRU5ErkJggg==",onImageErrorHandler:e=>{v.error("Error loading image:",e)},includeStyleProperties:"width.height.min-width.min-height.max-width.max-height.box-sizing.aspect-ratio.display.position.top.left.bottom.right.z-index.float.clear.flex.flex-direction.flex-wrap.flex-grow.flex-shrink.flex-basis.align-items.align-self.justify-content.gap.order.grid-template-columns.grid-template-rows.grid-column.grid-row.row-gap.column-gap.margin.margin-top.margin-right.margin-bottom.margin-left.padding.padding-top.padding-right.padding-bottom.padding-left.font.font-family.font-size.font-weight.font-style.line-height.letter-spacing.word-spacing.text-align.text-decoration.text-transform.text-indent.text-shadow.white-space.text-wrap.word-break.text-overflow.vertical-align.color.background.background-color.background-image.background-size.background-position.background-repeat.background-clip.border.border-width.border-style.border-color.border-top.border-right.border-bottom.border-left.border-radius.outline.box-shadow.text-shadow.opacity.filter.backdrop-filter.mix-blend-mode.transform.clip-path.overflow.overflow-x.overflow-y.visibility.fill.stroke.stroke-width.object-fit.object-position.list-style.list-style-type.border-collapse.border-spacing.content.cursor".split(".")};async function Qe(e,t){return _e(e,{...ze,...t})}export{K as n,J as r,Qe as t};