@marimo-team/frontend 0.25.2-dev66 → 0.25.2-dev89
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{CellStatus-CRFBVGjI.js → CellStatus-Bj7PvY_u.js} +1 -1
- package/dist/assets/{ErrorBoundary-BKmN7zye.js → ErrorBoundary-CG6gtgym.js} +2 -2
- package/dist/assets/{JsonOutput-nqqzL-n0.js → JsonOutput-NVH7GWyC.js} +1 -1
- package/dist/assets/{MarimoErrorOutput-DCu6fm2y.js → MarimoErrorOutput-z5iFryzf.js} +1 -1
- package/dist/assets/{RenderHTML-DRMkieKn.js → RenderHTML-C7QcdAgB.js} +1 -1
- package/dist/assets/{RunButton-CPZWjCL9.js → RunButton-A__3wcpF.js} +1 -1
- package/dist/assets/{add-cell-with-ai-D20NyZO4.js → add-cell-with-ai-Wyt6GBhk.js} +1 -1
- package/dist/assets/{add-connection-dialog-pQcdKIlO.js → add-connection-dialog-bl8dqCVs.js} +1 -1
- package/dist/assets/{agent-panel-tNErBgmq.js → agent-panel-BcoO8S6Q.js} +1 -1
- package/dist/assets/{ai-model-dropdown-BIeRPKed.js → ai-model-dropdown-CvJsRj9y.js} +1 -1
- package/dist/assets/{api-DYL9A86_.js → api-DVLtXyp7.js} +1 -1
- package/dist/assets/{app-config-button-DkNGV0b1.js → app-config-button-C7QrZbqr.js} +1 -1
- package/dist/assets/{blob-BIYte8oT.js → blob-Bx8A10xl.js} +1 -1
- package/dist/assets/{cell-editor-C5RTy4Y0.js → cell-editor-CevZDS63.js} +4 -4
- package/dist/assets/cell-link-DC1UZQr_.js +1 -0
- package/dist/assets/{cells-h5u00Nz8.js → cells-CxY8RSp7.js} +2 -2
- package/dist/assets/{chat-display-DzTkUWMw.js → chat-display-YETh6yXV.js} +1 -1
- package/dist/assets/{chat-panel-CKqEpnjN.js → chat-panel-DyaePe7B.js} +1 -1
- package/dist/assets/{chat-ui-CGzOsYVb.js → chat-ui-D_QL46qM.js} +1 -1
- package/dist/assets/code-visibility-DNzJgrTz.js +1 -0
- package/dist/assets/{column-preview-DtrgJzVI.js → column-preview-sL_Jo0hX.js} +1 -1
- package/dist/assets/{command-palette-BKYGTfS5.js → command-palette-DMQFuWz1.js} +1 -1
- package/dist/assets/{common-BMeq0Bqi.js → common-Cy3lJDvJ.js} +1 -1
- package/dist/assets/{components-CWcf8098.js → components-D9ZIJGG8.js} +1 -1
- package/dist/assets/{config-BAnYSdpO.js → config-D_c_6ce1.js} +1 -1
- package/dist/assets/{datasource-BLHGFSsT.js → datasource-Tst92Pzi.js} +1 -1
- package/dist/assets/{dependency-graph-panel-C8X3Nn8W.js → dependency-graph-panel-BwMayTyZ.js} +1 -1
- package/dist/assets/{documentation-panel-C8wrSKlX.js → documentation-panel-OMUbXgKW.js} +1 -1
- package/dist/assets/{download-CUgiCx7s.js → download-CPMAf7re.js} +1 -1
- package/dist/assets/{edit-page-CqPNBpAP.js → edit-page-DD1NFkiu.js} +6 -6
- package/dist/assets/{error-entries-DQD4A9cx.js → error-entries-DBpwg0GC.js} +1 -1
- package/dist/assets/{error-panel-BJYkwYEY.js → error-panel-ByOEJuZN.js} +1 -1
- package/dist/assets/{feedback-button-DbTjGwcX.js → feedback-button-7KY7nL-j.js} +2 -2
- package/dist/assets/feedback-button-DxjoRfo3.js +1 -0
- package/dist/assets/{file-explorer-panel-BQi88S1o.js → file-explorer-panel-B92ugwxr.js} +1 -1
- package/dist/assets/{file-name-input-DPJSxW_X.js → file-name-input-DZehOHLA.js} +1 -1
- package/dist/assets/{floating-outline-3PlTr0K1.js → floating-outline-K7cVdOlC.js} +1 -1
- package/dist/assets/{gallery-page-BqvVmwde.js → gallery-page-DoriMrLH.js} +1 -1
- package/dist/assets/{glide-data-editor-CAa14cIr.js → glide-data-editor-DWyeHe3u.js} +1 -1
- package/dist/assets/{home-page-Bg-WqjiD.js → home-page-BcJJsD_Q.js} +1 -1
- package/dist/assets/{hooks-DLBvBo8c.js → hooks-DNPsQf79.js} +1 -1
- package/dist/assets/index-B7ZZVUcj.css +2 -0
- package/dist/assets/{index-BtV91sqJ.js → index-CqJKdR1j.js} +5 -5
- package/dist/assets/{layout-mWXZofX2.js → layout-BaluekG6.js} +3 -3
- package/dist/assets/{logs-panel-IKL6F2OX.js → logs-panel-OkoO5mbN.js} +1 -1
- package/dist/assets/{markdown-renderer-DHvAXF8E.js → markdown-renderer-mDlWBE1M.js} +1 -1
- package/dist/assets/{name-cell-input-j4eGLLyd.js → name-cell-input-D_Q2IhP9.js} +1 -1
- package/dist/assets/{outline-panel-CprDWmxn.js → outline-panel-Dy2cmYDF.js} +1 -1
- package/dist/assets/packages-panel-CIvhx0hb.js +1 -0
- package/dist/assets/{panel-accordion-state-8xXVhawu.js → panel-accordion-state-BI4SU22L.js} +1 -1
- package/dist/assets/panels-CO6Clgel.js +4 -0
- package/dist/assets/{process-output-DOmeJ1VR.js → process-output-Crm0vqbi.js} +1 -1
- package/dist/assets/{readonly-code-display-xvH6MyT6.js → readonly-code-display-CNbw6v1-.js} +1 -1
- package/dist/assets/{readonly-python-code-D4YGmSvB.js → readonly-python-code-DcYhdd1B.js} +1 -1
- package/dist/assets/{reveal-component-CDUG1x74.js → reveal-component-DeZTBbnn.js} +1 -1
- package/dist/assets/{run-page-BAqLgcq9.js → run-page-BNEg-Ro9.js} +1 -1
- package/dist/assets/runtime-details-state-lxXYwJcI.js +1 -0
- package/dist/assets/{scratchpad-panel-BFbUuzdn.js → scratchpad-panel-lDJWcpVs.js} +1 -1
- package/dist/assets/{session-panel-BdN43Lzi.js → session-panel-BqutyoYd.js} +1 -1
- package/dist/assets/{snippets-panel-5_jR08Zd.js → snippets-panel-YttkYAW9.js} +1 -1
- package/dist/assets/state-B2ZbImvm.js +1 -0
- package/dist/assets/{state-BxJ_FX3k.js → state-B85OOscw.js} +1 -1
- package/dist/assets/{state-7os84dnI.js → state-sbCCk7ZP.js} +1 -1
- package/dist/assets/{terminal-DHWTOXu3.js → terminal-3hxM6K9q.js} +1 -1
- package/dist/assets/{tracing-CRkNpBaH.js → tracing-DZYfCw6p.js} +1 -1
- package/dist/assets/{tracing-panel-DV2-2TUI.js → tracing-panel-BUPJ77jB.js} +2 -2
- package/dist/assets/{tree-actions-CShqSonp.js → tree-actions-D5clvgKl.js} +1 -1
- package/dist/assets/{useAddCell-DesMfnE4.js → useAddCell-Bhv6GT3m.js} +1 -1
- package/dist/assets/{useBoolean-BofUVeKg.js → useBoolean-Co-_MyFz.js} +1 -1
- package/dist/assets/{useCellActionButton-BO5SFMxA.js → useCellActionButton-DwAUf_Cn.js} +1 -1
- package/dist/assets/{useDeleteCell-DSbUjpSC.js → useDeleteCell-BKN7t4DH.js} +1 -1
- package/dist/assets/{useDependencyPanelTab-JIFiQrr2.js → useDependencyPanelTab-CbcGEmqM.js} +1 -1
- package/dist/assets/{useInstallPackage-CCQcFc6U.js → useInstallPackage-HTUlGg0U.js} +1 -1
- package/dist/assets/{useNotebookActions-CjjED3t-.js → useNotebookActions-pXzVjrlk.js} +1 -1
- package/dist/assets/{useRunCells-Bx3wXUWO.js → useRunCells-zMO43eNR.js} +1 -1
- package/dist/assets/{useSplitCell-BRmQP02b.js → useSplitCell-xEtFLByO.js} +1 -1
- package/dist/assets/{vega-component-C28fL5fD.js → vega-component-Chbfi__Q.js} +1 -1
- package/dist/index.html +24 -24
- package/package.json +1 -1
- package/src/__tests__/mount.test.ts +6 -6
- package/src/components/editor/actions/useRestartKernel.tsx +2 -2
- package/src/components/editor/alerts/__tests__/connection-notice.test.tsx +224 -17
- package/src/components/editor/alerts/connection-details.tsx +61 -0
- package/src/components/editor/alerts/connection-notice.tsx +46 -53
- package/src/components/editor/alerts/startup-progress.tsx +73 -129
- package/src/components/editor/app-container.tsx +2 -2
- package/src/components/editor/boundary/__tests__/ErrorBoundary.test.tsx +2 -2
- package/src/components/editor/cell/CreateCellButton.tsx +2 -2
- package/src/components/editor/cell/DeleteButton.tsx +2 -2
- package/src/components/editor/cell/RunButton.tsx +3 -3
- package/src/components/editor/cell/StopButton.tsx +2 -2
- package/src/components/editor/chrome/components/__tests__/feedback-button.test.tsx +4 -4
- package/src/components/editor/chrome/components/feedback-button.tsx +3 -3
- package/src/components/editor/chrome/panels/__tests__/packages-panel.test.tsx +8 -8
- package/src/components/editor/chrome/panels/__tests__/{sandbox-details.test.tsx → runtime-details.test.tsx} +94 -22
- package/src/components/editor/chrome/panels/__tests__/sandbox-recovery.test.tsx +4 -4
- package/src/components/editor/chrome/panels/packages-panel.tsx +8 -29
- package/src/components/editor/chrome/panels/{sandbox-details-state.ts → runtime-details-state.ts} +1 -1
- package/src/components/editor/chrome/panels/{sandbox-panel.tsx → runtime-panel.tsx} +38 -66
- package/src/components/editor/chrome/panels/runtime-status-toggle.tsx +56 -0
- package/src/components/editor/chrome/panels/sandbox-controller.tsx +2 -2
- package/src/components/editor/chrome/wrapper/app-chrome.tsx +3 -3
- package/src/components/editor/chrome/wrapper/footer-items/machine-stats.tsx +2 -2
- package/src/components/editor/controls/Controls.tsx +3 -3
- package/src/components/editor/controls/__tests__/notebook-menu-dropdown.test.tsx +2 -2
- package/src/components/editor/header/__tests__/status.test.tsx +4 -4
- package/src/components/editor/header/app-header.tsx +2 -2
- package/src/components/editor/header/status.tsx +3 -3
- package/src/components/ui/progress-stages.tsx +114 -0
- package/src/core/codemirror/lsp/__tests__/notebook-lsp.test.ts +106 -5
- package/src/core/codemirror/lsp/notebook-lsp.ts +16 -2
- package/src/core/codemirror/readonly/__tests__/extension.test.ts +6 -6
- package/src/core/codemirror/readonly/extension.ts +2 -2
- package/src/core/datasets/__tests__/data-source-discovery.test.ts +2 -2
- package/src/core/edit-app.tsx +5 -1
- package/src/core/export/hooks.ts +2 -2
- package/src/core/network/__tests__/connection.test.ts +3 -3
- package/src/core/network/connection-notice.ts +5 -5
- package/src/core/network/connection.ts +9 -9
- package/src/core/network/requests-lazy.ts +2 -2
- package/src/core/packages/__tests__/useSandboxController.test.tsx +2 -2
- package/src/core/packages/useSandboxController.ts +6 -6
- package/src/core/runtime/__tests__/adapter.test.ts +6 -6
- package/src/core/runtime/adapter.ts +7 -7
- package/src/core/runtime/config.ts +2 -2
- package/src/core/saving/filename.ts +2 -2
- package/src/core/saving/save-component.tsx +5 -5
- package/src/core/saving/useAutoSave.ts +2 -2
- package/src/core/websocket/__tests__/useMarimoKernelConnection.hook.test.tsx +30 -25
- package/src/core/websocket/__tests__/useMarimoKernelConnection.test.ts +5 -5
- package/src/core/websocket/connection-utils.ts +21 -21
- package/src/core/websocket/types.ts +8 -9
- package/src/core/websocket/useMarimoKernelConnection.tsx +21 -21
- package/src/mount.tsx +2 -2
- package/src/plugins/core/__test__/registerReactComponent.test.ts +55 -0
- package/src/plugins/core/registerReactComponent.tsx +3 -1
- package/src/stories/cell.stories.tsx +2 -2
- package/src/stories/layout/vertical/one-column.stories.tsx +5 -5
- package/src/stories/progress-stages.stories.tsx +62 -0
- package/src/stories/runtime-existing.stories.tsx +44 -0
- package/src/stories/runtime-maintenance.stories.tsx +40 -0
- package/src/stories/runtime-pixi.stories.tsx +28 -0
- package/src/stories/{sandbox.stories.tsx → runtime-story.tsx} +191 -152
- package/src/stories/runtime-uv.stories.tsx +56 -0
- package/dist/assets/cell-link-BeZAiE1D.js +0 -1
- package/dist/assets/code-visibility-B5QjA0ie.js +0 -1
- package/dist/assets/feedback-button-JqvnTSfN.js +0 -1
- package/dist/assets/index-CF8Gfz1R.css +0 -2
- package/dist/assets/packages-panel-CDDChziK.js +0 -1
- package/dist/assets/panels-CU7deLqc.js +0 -4
- package/dist/assets/sandbox-panel-D5bRunTM.js +0 -1
- package/dist/assets/state-Bo8h64Rn.js +0 -1
- package/src/components/editor/chrome/panels/sandbox-toggle.tsx +0 -52
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{l as t,t as n,u as r}from"./useEvent-Dc9HkKI2.js";import{t as i}from"./react-CUdNIagt.js";import{uo as a}from"./cells-h5u00Nz8.js";import{t as o}from"./compiler-runtime-BQ9S8nyo.js";import{C as s}from"./config-Cyum2gRs.js";import{r as c}from"./ai-model-dropdown-BIeRPKed.js";import{M as l,v as u}from"./config-BAnYSdpO.js";import{t as d}from"./cn-ldLVeaqm.js";import{t as f}from"./jsx-runtime-B74pBk57.js";import{t as p}from"./tooltip-B5pI8o2n.js";import{r as m}from"./button-M49xxKoi.js";import{a as h}from"./useNumberFormatter-BP99Zbyy.js";import{t as g}from"./chevron-right-DOPs2jx8.js";import{u as _}from"./toDate-BbJ1_N2T.js";import{t as v}from"./spinner-CGdRKCnw.js";import{a as y}from"./input-DPd57MDP.js";import{n as b}from"./copy-D03Y7IMR.js";import{t as x}from"./use-toast-CC89xOwH.js";import{r as S}from"./requests-yTHMxhVa.js";import{n as C}from"./useAsyncData-DucTwMkf.js";import{n as w}from"./package-data-BwaspaKJ.js";import{c as T,d as E,i as D,o as O,r as k,t as A}from"./useInstallPackage-CCQcFc6U.js";import{a as j}from"./errors-D9vyuMar.js";import{n as M}from"./error-banner-D1_bPN9u.js";import{a as N,i as P,n as F,o as I,r as L,t as R}from"./table-Dg1KxH-q.js";import{t as z}from"./empty-state-CzxjZqGW.js";import{l as B,o as V,t as H,u as ee}from"./sandbox-panel-D5bRunTM.js";var U=e(i(),1),W=o();function te(e){let t=e.trim();for(let e of[`pip install`,`pip3 install`,`uv add`,`uv pip install`,`poetry add`,`conda install`,`pipenv install`])if(t.toLowerCase().startsWith(e.toLowerCase()))return t.slice(e.length).trim();return t}function G(e,t,r){let{addPackage:i,removePackage:a}=S(),[o,s]=(0,U.useState)(!1),c=(0,U.useRef)(!1);return{loading:o,run:n(async()=>{if(c.current)return;c.current=!0,s(!0);let n=e===`upgrade`?O:D;try{let o={package:t,group:r?.find(e=>e.kind===`group`)?.value},s=await(e===`upgrade`?i({...o,upgrade:!0}):a(o));s.restartRequired?k():s.success?n(t):n(t,s.error||`Package operation failed.`)}catch(e){n(t,j(e))}finally{c.current=!1,s(!1)}})}}function ne(){let e=(0,W.c)(8),n=t(w),[r]=s(),i=r.package_management.manager,{getDependencyTree:a,getPackageList:o}=S(),c;e[0]!==a||e[1]!==o?(c=async()=>{let{context:e,tree:t}=await a();return{list:e.kind===`sandbox`?[]:(await o()).packages,context:e,tree:t}},e[0]=a,e[1]=o,e[2]=c):c=e[2];let l;return e[3]!==a||e[4]!==o||e[5]!==n||e[6]!==i?(l=[a,o,i,n],e[3]=a,e[4]=o,e[5]=n,e[6]=i,e[7]=l):l=e[7],C(c,l)}var K=f(),q=e=>{let t=(0,W.c)(9),{onClick:n,loading:r,children:i,className:a}=e;if(r){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,K.jsx)(v,{size:`small`,className:`h-4 w-4 shrink-0 opacity-50`}),t[0]=e):e=t[0],e}let o;t[1]===a?o=t[2]:(o=d(`px-2 h-full text-xs text-muted-foreground hover:text-foreground`,`invisible group-hover:visible`,a),t[1]=a,t[2]=o);let s;t[3]===n?s=t[4]:(s=m.stopPropagation(n),t[3]=n,t[4]=s);let c;return t[5]!==i||t[6]!==o||t[7]!==s?(c=(0,K.jsx)(`button`,{type:`button`,className:o,onClick:s,children:i}),t[5]=i,t[6]=o,t[7]=s,t[8]=c):c=t[8],c},J=()=>{let e=(0,W.c)(16),n=t(B),r=t(u),i=V(0);if(n?.backend){let t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,K.jsx)(H,{}),e[0]=t):t=e[0];let n;e[1]===r?n=e[2]:(n=r&&(0,K.jsx)(Y,{}),e[1]=r,e[2]=n);let i;return e[3]===n?i=e[4]:(i=(0,K.jsxs)(`div`,{className:`flex flex-col flex-1 min-h-0 overflow-hidden`,children:[t,n]}),e[3]=n,e[4]=i),i}if(i){let t;e[5]===i.pending?t=e[6]:(t=i.pending&&(0,K.jsx)(v,{className:`size-3`}),e[5]=i.pending,e[6]=t);let n;e[7]!==i.title||e[8]!==t?(n=(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[t,i.title]}),e[7]=i.title,e[8]=t,e[9]=n):n=e[9];let r;e[10]===i.error?r=e[11]:(r=i.error&&(0,K.jsx)(`pre`,{className:`mt-3 text-xs whitespace-pre-wrap break-words max-h-52 overflow-auto`,children:i.error}),e[10]=i.error,e[11]=r);let a;return e[12]!==n||e[13]!==r?(a=(0,K.jsxs)(`div`,{className:`p-4 text-sm text-muted-foreground`,children:[n,r]}),e[12]=n,e[13]=r,e[14]=a):a=e[14],a}let a;return e[15]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,K.jsx)(Y,{}),e[15]=a):a=e[15],a},Y=()=>{let e=(0,W.c)(35),n=t(ee).kind===`running`,[r,i]=U.useState(null),{data:a,error:o,isPending:s}=ne();if(s){let t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,K.jsxs)(`output`,{className:`flex flex-1 items-center justify-center gap-2 text-xs text-muted-foreground`,children:[(0,K.jsx)(v,{className:`size-4`}),`Loading installed packages…`]}),e[0]=t):t=e[0],t}if(o){let t;return e[1]===o?t=e[2]:(t=(0,K.jsx)(M,{error:o}),e[1]=o,e[2]=t),t}let c=a.tree!=null,l=a.tree?.name,u=a?.tree?.version,f=a.context.kind===`sandbox`?a.context.backend:null,p=f!==null,m;e[3]!==p||e[4]!==c||e[5]!==r?(m=p?`tree`:ae(r,c),e[3]=p,e[4]=c,e[5]=r,e[6]=m):m=e[6];let h=m,g=l&&l!==`<root>`?`project`:`environment`,_;e[7]===a.context?_=e[8]:(_=(0,K.jsx)(X,{context:a.context}),e[7]=a.context,e[8]=_);let y;e[9]!==n||e[10]!==_?(y=(0,K.jsx)(`fieldset`,{disabled:n,className:`contents`,children:_}),e[9]=n,e[10]=_,e[11]=y):y=e[11];let b;e[12]!==p||e[13]!==c||e[14]!==l||e[15]!==g||e[16]!==u||e[17]!==h?(b=c&&!p&&(0,K.jsxs)(`div`,{className:`flex items-center justify-between px-2 py-1 border-b`,children:[(0,K.jsxs)(`div`,{className:`flex gap-1`,children:[(0,K.jsx)(`button`,{type:`button`,className:d(`px-2 py-1 text-xs rounded`,h===`list`?`bg-accent text-accent-foreground`:`text-muted-foreground hover:text-foreground`),onClick:()=>i(`list`),children:`List`}),(0,K.jsx)(`button`,{type:`button`,className:d(`px-2 py-1 text-xs rounded`,h===`tree`?`bg-accent text-accent-foreground`:`text-muted-foreground hover:text-foreground`),onClick:()=>i(`tree`),children:`Tree`})]}),(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`div`,{className:`items-center border px-2 py-0.5 text-xs transition-colors focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 text-foreground rounded-sm text-ellipsis block overflow-hidden max-w-fit font-medium`,title:g,children:g}),l&&(0,K.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[l,u&&` v${u}`]})]})]}),e[12]=p,e[13]=c,e[14]=l,e[15]=g,e[16]=u,e[17]=h,e[18]=b):b=e[18];let x;e[19]===n?x=e[20]:(x=n&&(0,K.jsx)(`p`,{className:`px-3 py-2 text-xs text-muted-foreground`,children:`Showing packages from the last sync.`}),e[19]=n,e[20]=x);let S;e[21]!==a.list||e[22]!==a.tree||e[23]!==o||e[24]!==f||e[25]!==h?(S=h===`list`?(0,K.jsx)(re,{packages:a.list}):(0,K.jsx)(Q,{tree:a.tree,error:o,sandboxBackend:f}),e[21]=a.list,e[22]=a.tree,e[23]=o,e[24]=f,e[25]=h,e[26]=S):S=e[26];let C;e[27]!==n||e[28]!==x||e[29]!==S?(C=(0,K.jsxs)(`fieldset`,{disabled:n,className:`flex flex-col flex-1 min-h-0`,"aria-busy":n,children:[x,S]}),e[27]=n,e[28]=x,e[29]=S,e[30]=C):C=e[30];let w;return e[31]!==y||e[32]!==b||e[33]!==C?(w=(0,K.jsxs)(`div`,{className:`flex-1 flex flex-col overflow-hidden`,children:[y,b,C]}),e[31]=y,e[32]=b,e[33]=C,e[34]=w):w=e[34],w},X=e=>{let n=(0,W.c)(50),{context:i}=e,[o,s]=U.useState(``),{handleClick:l}=c(),u=i.kind===`sandbox`,f=u?i.backend:i.name,m=t(E),h=r(E),g,b;n[0]!==m||n[1]!==h?(g=()=>{m&&(s(m),h(null))},b=[m,h],n[0]=m,n[1]=h,n[2]=g,n[3]=b):(g=n[2],b=n[3]),U.useEffect(g,b);let{loading:x,handleInstallPackages:S}=A(),C;n[4]===Symbol.for(`react.memo_cache_sentinel`)?(C=()=>{s(``)},n[4]=C):C=n[4];let w=C,D;n[5]!==S||n[6]!==o?(D=()=>{let e=te(o);S([e],w)},n[5]=S,n[6]=o,n[7]=D):D=n[7];let O=D,k=u?`Add packages to ${f} sandbox...`:`Install packages with ${f}...`,j;n[8]!==u||n[9]!==x||n[10]!==l||n[11]!==f?(j=x?(0,K.jsx)(v,{size:`small`,className:`mr-2 h-4 w-4 shrink-0 opacity-50`}):u?(0,K.jsx)(a,{"aria-hidden":`true`,className:`mr-2 h-4 w-4 shrink-0 opacity-50`}):(0,K.jsx)(p,{content:`Change package manager (currently ${f})`,children:(0,K.jsx)(`button`,{type:`button`,"aria-label":`Change package manager`,onClick:()=>l(`packageManagementAndData`),className:`pointer-events-auto mr-2 rounded-sm opacity-50 hover:opacity-80 focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring`,children:(0,K.jsx)(a,{"aria-hidden":`true`,className:`h-4 w-4 shrink-0`})})}),n[8]=u,n[9]=x,n[10]=l,n[11]=f,n[12]=j):j=n[12];let M;n[13]===O?M=n[14]:(M=e=>{e.key===`Enter`&&(e.preventDefault(),O())},n[13]=O,n[14]=M);let N;n[15]===Symbol.for(`react.memo_cache_sentinel`)?(N=e=>s(e.target.value),n[15]=N):N=n[15];let P;n[16]!==o||n[17]!==k||n[18]!==j||n[19]!==M?(P=(0,K.jsx)(y,{placeholder:k,id:T,icon:j,rootClassName:`flex-1 border-none`,value:o,onKeyDown:M,onChange:N}),n[16]=o,n[17]=k,n[18]=j,n[19]=M,n[20]=P):P=n[20];let F;n[21]!==u||n[22]!==f?(F=u?(0,K.jsxs)(`span`,{children:[`Packages are recorded in this notebook's inline metadata and synchronized with its `,f,` sandbox. To switch backends, restart marimo with a different --sandbox option.`]}):(0,K.jsxs)(`span`,{children:[`Packages are installed using `,f,`, selected in your user configuration.`]}),n[21]=u,n[22]=f,n[23]=F):F=n[23];let I;n[24]===Symbol.for(`react.memo_cache_sentinel`)?(I=(0,K.jsx)(`span`,{className:`mt-2`,children:`You can install packages with various formats:`}),n[24]=I):I=n[24];let L;n[25]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,K.jsx)(`span`,{className:`font-bold tracking-wide`,children:`Package name:`}),n[25]=L):L=n[25];let R,z;n[26]===Symbol.for(`react.memo_cache_sentinel`)?(R=(0,K.jsxs)(`div`,{children:[L,` A package name; this will install the latest version.`,(0,K.jsx)(`div`,{className:`text-muted-foreground`,children:`Example: httpx`})]}),z=(0,K.jsx)(`span`,{className:`font-bold tracking-wide`,children:`Package and version:`}),n[26]=R,n[27]=z):(R=n[26],z=n[27]);let B,V;n[28]===Symbol.for(`react.memo_cache_sentinel`)?(B=(0,K.jsxs)(`div`,{children:[z,` `,`A package with a specific version or version range.`,(0,K.jsx)(`div`,{className:`text-muted-foreground`,children:`Examples: httpx==0.27.0, httpx>=0.27.0`})]}),V=(0,K.jsx)(`span`,{className:`font-bold tracking-wide`,children:`Git:`}),n[28]=B,n[29]=V):(B=n[28],V=n[29]);let H,ee;n[30]===Symbol.for(`react.memo_cache_sentinel`)?(H=(0,K.jsxs)(`div`,{children:[V,` A Git repository`,(0,K.jsx)(`div`,{className:`text-muted-foreground`,children:`Example: git+https://github.com/encode/httpx`})]}),ee=(0,K.jsx)(`span`,{className:`font-bold tracking-wide`,children:`URL:`}),n[30]=H,n[31]=ee):(H=n[30],ee=n[31]);let G,ne;n[32]===Symbol.for(`react.memo_cache_sentinel`)?(G=(0,K.jsxs)(`div`,{children:[ee,` A remote wheel or source distribution.`,(0,K.jsx)(`div`,{className:`text-muted-foreground`,children:`Example: https://example.com/httpx-0.27.0.tar.gz`})]}),ne=(0,K.jsx)(`span`,{className:`font-bold tracking-wide`,children:`Path:`}),n[32]=G,n[33]=ne):(G=n[32],ne=n[33]);let q;n[34]===Symbol.for(`react.memo_cache_sentinel`)?(q=(0,K.jsxs)(`div`,{className:`flex flex-col gap-2 mt-2`,children:[R,B,H,G,(0,K.jsxs)(`div`,{children:[ne,` A local wheel, source distribution, or project directory.`,(0,K.jsx)(`div`,{className:`text-muted-foreground`,children:`Example: /example/foo-0.1.0-py3-none-any.whl`})]})]}),n[34]=q):q=n[34];let J;n[35]===F?J=n[36]:(J=(0,K.jsxs)(`div`,{className:`text-sm flex flex-col w-full max-w-[360px]`,children:[F,I,q]}),n[35]=F,n[36]=J);let Y;n[37]===Symbol.for(`react.memo_cache_sentinel`)?(Y=(0,K.jsx)(_,{className:`h-4 w-4 cursor-help text-muted-foreground hover:text-foreground bg-transparent`}),n[37]=Y):Y=n[37];let X;n[38]===J?X=n[39]:(X=(0,K.jsx)(p,{delayDuration:300,side:`left`,align:`start`,content:J,children:Y}),n[38]=J,n[39]=X);let re=o&&`bg-accent text-accent-foreground`,Z;n[40]===re?Z=n[41]:(Z=d(`float-right px-2 m-0 h-full text-sm text-secondary-foreground ml-2`,re,`disabled:cursor-not-allowed disabled:opacity-50`),n[40]=re,n[41]=Z);let ie=!o,Q;n[42]!==O||n[43]!==Z||n[44]!==ie?(Q=(0,K.jsx)(`button`,{type:`button`,className:Z,onClick:O,disabled:ie,children:`Add`}),n[42]=O,n[43]=Z,n[44]=ie,n[45]=Q):Q=n[45];let $;return n[46]!==X||n[47]!==Q||n[48]!==P?($=(0,K.jsxs)(`div`,{className:`flex items-center w-full border-b`,children:[P,X,Q]}),n[46]=X,n[47]=Q,n[48]=P,n[49]=$):$=n[49],$},re=e=>{let t=(0,W.c)(8),{packages:n}=e,r;t[0]===n?r=t[1]:(r=n.toSorted(oe),t[0]=n,t[1]=r);let i=r;if(n.length===0){let e;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,K.jsx)(z,{title:`No packages`,description:`No packages are installed in this environment.`,icon:(0,K.jsx)(a,{})}),t[2]=e):e=t[2],e}let o;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,K.jsx)(N,{children:(0,K.jsxs)(I,{children:[(0,K.jsx)(P,{children:`Name`}),(0,K.jsx)(P,{children:`Version`}),(0,K.jsx)(P,{})]})}),t[3]=o):o=t[3];let s;t[4]===i?s=t[5]:(s=i.map(se),t[4]=i,t[5]=s);let c;return t[6]===s?c=t[7]:(c=(0,K.jsxs)(R,{className:`overflow-auto flex-1`,children:[o,(0,K.jsx)(F,{children:s})]}),t[6]=s,t[7]=c),c},Z=e=>{let t=(0,W.c)(3),{packageName:n,tags:r}=e,{loading:i,run:a}=G(`upgrade`,n,r);if(l())return null;let o;return t[0]!==i||t[1]!==a?(o=(0,K.jsx)(q,{onClick:a,loading:i,children:`Upgrade`}),t[0]=i,t[1]=a,t[2]=o):o=t[2],o},ie=e=>{let t=(0,W.c)(3),{packageName:n,tags:r}=e,{loading:i,run:a}=G(`remove`,n,r);if(n.toLowerCase()===`marimo`)return null;let o;return t[0]!==i||t[1]!==a?(o=(0,K.jsx)(q,{onClick:a,loading:i,children:`Remove`}),t[0]=i,t[1]=a,t[2]=o):o=t[2],o},Q=e=>{let t=(0,W.c)(17),{tree:n,error:r,sandboxBackend:i}=e,o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=new Set,t[0]=o):o=t[0];let[s,c]=U.useState(o),l;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(l=()=>{c(new Set)},t[1]=l):l=t[1];let u;if(t[2]===n?u=t[3]:(u=[n],t[2]=n,t[3]=u),U.useEffect(l,u),r){let e;return t[4]===r?e=t[5]:(e=(0,K.jsx)(M,{error:r}),t[4]=r,t[5]=e),e}if(!n){let e;return t[6]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,K.jsx)(z,{title:`Dependency tree unavailable`,description:`The sandbox did not return a dependency tree.`,icon:(0,K.jsx)(a,{})}),t[6]=e):e=t[6],e}if(n.dependencies.length===0){if(i===`pixi`){let e;return t[7]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,K.jsx)(z,{title:`No PyPI dependencies`,description:`Conda dependencies are not shown in this panel.`,icon:(0,K.jsx)(a,{})}),t[7]=e):e=t[7],e}let e;return t[8]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,K.jsx)(z,{title:`No dependencies`,description:`No package dependencies found in this environment.`,icon:(0,K.jsx)(a,{})}),t[8]=e):e=t[8],e}let d;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(d=e=>{c(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},t[9]=d):d=t[9];let f=d,p;if(t[10]!==s||t[11]!==n.dependencies){let e;t[13]===s?e=t[14]:(e=(e,t)=>(0,K.jsx)(`div`,{className:`border-b`,children:(0,K.jsx)($,{nodeId:`root-${t}`,node:e,level:0,isTopLevel:!0,expandedNodes:s,onToggle:f})},`${e.name}-${t}`),t[13]=s,t[14]=e),p=n.dependencies.map(e),t[10]=s,t[11]=n.dependencies,t[12]=p}else p=t[12];let m;return t[15]===p?m=t[16]:(m=(0,K.jsx)(`div`,{className:`flex-1 overflow-auto`,children:(0,K.jsx)(`div`,{children:p})}),t[15]=p,t[16]=m),m},$=e=>{let t=(0,W.c)(56),{nodeId:n,node:r,level:i,isTopLevel:a,expandedNodes:o,onToggle:s}=e,c=a!==void 0&&a,l=r.dependencies.length>0,u;t[0]!==o||t[1]!==n?(u=o.has(n),t[0]=o,t[1]=n,t[2]=u):u=t[2];let f=u,p=c?0:16+i*16,m;t[3]!==l||t[4]!==n||t[5]!==s?(m=e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),l&&s(n))},t[3]=l,t[4]=n,t[5]=s,t[6]=m):m=t[6];let _=m,v;t[7]!==l||t[8]!==n||t[9]!==s?(v=e=>{e.stopPropagation(),l&&s(n)},t[7]=l,t[8]=n,t[9]=s,t[10]=v):v=t[10];let y=v,b=l&&`select-none`,x=c?`px-2 py-0.5`:``,S;t[11]!==b||t[12]!==x?(S=d(`flex items-center group cursor-pointer text-sm whitespace-nowrap`,`hover:bg-(--slate-2) focus:bg-(--slate-2) focus:outline-hidden`,b,x),t[11]=b,t[12]=x,t[13]=S):S=t[13];let C;t[14]!==p||t[15]!==c?(C=c?{}:{paddingLeft:`${p}px`},t[14]=p,t[15]=c,t[16]=C):C=t[16];let w=l?f:void 0,T;t[17]!==l||t[18]!==f?(T=l?f?(0,K.jsx)(h,{className:`w-4 h-4 mr-2 shrink-0`}):(0,K.jsx)(g,{className:`w-4 h-4 mr-2 shrink-0`}):(0,K.jsx)(`div`,{className:`w-4 mr-2 shrink-0`}),t[17]=l,t[18]=f,t[19]=T):T=t[19];let E;t[20]===r.name?E=t[21]:(E=(0,K.jsx)(`span`,{className:`font-medium truncate`,children:r.name}),t[20]=r.name,t[21]=E);let D;t[22]===r.version?D=t[23]:(D=r.version&&(0,K.jsxs)(`span`,{className:`text-muted-foreground text-xs`,children:[`v`,r.version]}),t[22]=r.version,t[23]=D);let O;t[24]!==E||t[25]!==D?(O=(0,K.jsxs)(`div`,{className:`flex items-center gap-2 flex-1 min-w-0 py-1.5`,children:[E,D]}),t[24]=E,t[25]=D,t[26]=O):O=t[26];let k;t[27]===r.tags?k=t[28]:(k=r.tags.map(ce),t[27]=r.tags,t[28]=k);let A;t[29]===k?A=t[30]:(A=(0,K.jsx)(`div`,{className:`flex items-center gap-1 ml-2`,children:k}),t[29]=k,t[30]=A);let j;t[31]!==c||t[32]!==r.name||t[33]!==r.tags?(j=c&&(0,K.jsxs)(`div`,{className:`flex gap-1 invisible group-hover:visible`,children:[(0,K.jsx)(Z,{packageName:r.name,tags:r.tags}),(0,K.jsx)(ie,{packageName:r.name,tags:r.tags})]}),t[31]=c,t[32]=r.name,t[33]=r.tags,t[34]=j):j=t[34];let M;t[35]!==y||t[36]!==_||t[37]!==T||t[38]!==O||t[39]!==A||t[40]!==j||t[41]!==S||t[42]!==C||t[43]!==w?(M=(0,K.jsxs)(`div`,{className:S,style:C,onClick:y,onKeyDown:_,tabIndex:0,role:`treeitem`,"aria-selected":!1,"aria-expanded":w,children:[T,O,A,j]}),t[35]=y,t[36]=_,t[37]=T,t[38]=O,t[39]=A,t[40]=j,t[41]=S,t[42]=C,t[43]=w,t[44]=M):M=t[44];let N;t[45]!==o||t[46]!==l||t[47]!==f||t[48]!==i||t[49]!==r.dependencies||t[50]!==n||t[51]!==s?(N=l&&f&&(0,K.jsx)(`div`,{role:`group`,children:r.dependencies.map((e,t)=>(0,K.jsx)($,{nodeId:`${n}-${t}`,node:e,level:i+1,isTopLevel:!1,expandedNodes:o,onToggle:s},`${e.name}-${t}`))}),t[45]=o,t[46]=l,t[47]=f,t[48]=i,t[49]=r.dependencies,t[50]=n,t[51]=s,t[52]=N):N=t[52];let P;return t[53]!==M||t[54]!==N?(P=(0,K.jsxs)(`div`,{children:[M,N]}),t[53]=M,t[54]=N,t[55]=P):P=t[55],P};function ae(e,t){return e===`list`?`list`:t?e||`tree`:`list`}function oe(e,t){return e.name.localeCompare(t.name,void 0,{sensitivity:`base`})}function se(e){return(0,K.jsxs)(I,{className:`group`,onClick:async()=>{await b(`${e.name}==${e.version}`),x({title:`Copied to clipboard`})},children:[(0,K.jsx)(L,{children:e.name}),(0,K.jsx)(L,{children:e.version}),(0,K.jsxs)(L,{className:`flex justify-end`,children:[(0,K.jsx)(Z,{packageName:e.name}),(0,K.jsx)(ie,{packageName:e.name})]})]},e.name)}function ce(e,t){return e.kind===`dedupe`?(0,K.jsx)(`div`,{className:`items-center border px-2 py-0.5 text-xs transition-colors focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 text-muted-foreground rounded-sm text-ellipsis block overflow-hidden max-w-fit font-medium`,title:`Package tree already displayed`,children:`already in tree`},t):e.kind===`cycle`?(0,K.jsx)(`div`,{className:`items-center border px-2 py-0.5 text-xs transition-colors focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 text-foreground rounded-sm text-ellipsis block overflow-hidden max-w-fit font-medium border-orange-300 dark:border-orange-700 text-orange-700 dark:text-orange-300`,title:`cycle`,children:`cycle`},t):e.kind===`extra`?(0,K.jsx)(`div`,{className:`items-center border px-2 py-0.5 text-xs transition-colors focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 text-foreground rounded-sm text-ellipsis block overflow-hidden max-w-fit font-medium border-blue-300 dark:border-blue-700 text-blue-700 dark:text-blue-300`,title:e.value,children:e.value},t):e.kind===`group`?(0,K.jsx)(`div`,{className:`items-center border px-2 py-0.5 text-xs transition-colors focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 text-foreground rounded-sm text-ellipsis block overflow-hidden max-w-fit font-medium border-green-300 dark:border-green-700 text-green-700 dark:text-green-300`,title:e.value,children:e.value},t):null}export{J as default};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{c as t,f as n,l as r,r as i,u as a}from"./useEvent-Dc9HkKI2.js";import{t as o}from"./react-CUdNIagt.js";import{$ as s,A as c,B as l,D as u,Dt as d,Et as f,Gn as p,Hr as m,I as h,Ii as g,Jn as ee,Kn as te,Mr as ne,Oo as re,Ot as ie,R as ae,So as oe,St as se,T as _,Vi as ce,Wn as le,b as v,ei as ue,g as y,h as de,l as fe,mr as pe,pr as me,qn as he}from"./cells-h5u00Nz8.js";import{t as b}from"./compiler-runtime-BQ9S8nyo.js";import{D as ge,d as _e,w as ve}from"./config-Cyum2gRs.js";import{_ as x,c as ye,g as be,i as xe,m as Se,n as Ce,o as S,p as we,r as Te,s as Ee,t as De}from"./state-7os84dnI.js";import{g as C,t as Oe}from"./useEventListener-IRzG-0mH.js";import{t as ke}from"./objects-snlMn4yk.js";import{i as w}from"./utils-B4K466FK.js";import{a as T,f as E,m as Ae,r as je,v as D}from"./session-BykGt6S3.js";import{M as Me,T as O,_ as Ne,l as Pe,o as Fe,w as k,x as Ie}from"./config-BAnYSdpO.js";import{r as Le}from"./state-YaAkDV8S.js";import{i as Re,o as A,r as ze}from"./state-ja7GWeCS.js";import{r as Be}from"./ErrorBoundary-BKmN7zye.js";import{n as j,t as M}from"./cn-ldLVeaqm.js";import{t as N}from"./jsx-runtime-B74pBk57.js";import{i as P,s as Ve}from"./fullscreen-DEBblJKh.js";import{a as F,c as I,i as L,l as He,n as R,o as z,r as Ue,s as B}from"./use-restore-focus-GUh2Nd8Z.js";import{Dt as We,Ot as Ge,St as V}from"./JsonOutput-nqqzL-n0.js";import{p as H}from"./download-CUgiCx7s.js";import{t as U}from"./tooltip-B5pI8o2n.js";import{t as W}from"./button-M49xxKoi.js";import{t as G}from"./createLucideIcon-rHn2EdoM.js";import{P as K,a as q,c as J,i as Y,n as Ke}from"./layout-mWXZofX2.js";import{d as qe,n as Je}from"./markdown-renderer-DHvAXF8E.js";import{v as Ye}from"./write-secret-modal-BcosCmZy.js";import{n as Xe}from"./spinner-CGdRKCnw.js";import{c as Ze,l as Qe,s as $e}from"./readonly-python-code-D4YGmSvB.js";import{t as et}from"./use-toast-CC89xOwH.js";import{i as tt}from"./strings-hlCLC-K1.js";import{t as nt}from"./requests-yTHMxhVa.js";import{n as rt}from"./useAsyncData-DucTwMkf.js";import{t as it}from"./RenderHTML-DRMkieKn.js";import{t as at}from"./package-data-BwaspaKJ.js";import{f as ot}from"./useInstallPackage-CCQcFc6U.js";import{a as st}from"./errors-D9vyuMar.js";import{s as ct}from"./react-icons.esm-C6SMwKZH.js";import{r as lt}from"./events-CbeVJ6OD.js";import{i as ut}from"./cell-link-BeZAiE1D.js";import{t as dt}from"./requests-DFPPfagc.js";import{c as ft,i as pt,l as mt,o as ht}from"./state-Bo8h64Rn.js";import{t as gt}from"./ws-BXWY541V.js";import{n as _t}from"./runs-DyluVj69.js";var vt=G(`hourglass`,[[`path`,{d:`M5 22h14`,key:`ehvnwv`}],[`path`,{d:`M5 2h14`,key:`pdyrp9`}],[`path`,{d:`M17 22v-4.172a2 2 0 0 0-.586-1.414L12 12l-4.414 4.414A2 2 0 0 0 7 17.828V22`,key:`1d314k`}],[`path`,{d:`M7 2v4.172a2 2 0 0 0 .586 1.414L12 12l4.414-4.414A2 2 0 0 0 17 6.172V2`,key:`1vvvr6`}]]),yt=G(`menu`,[[`path`,{d:`M4 5h16`,key:`1tepv9`}],[`path`,{d:`M4 12h16`,key:`1lakjw`}],[`path`,{d:`M4 19h16`,key:`1djgab`}]]),bt=G(`unlink`,[[`path`,{d:`m18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71`,key:`yqzxt4`}],[`path`,{d:`m5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71`,key:`4qinb0`}],[`line`,{x1:`8`,x2:`8`,y1:`2`,y2:`5`,key:`1041cp`}],[`line`,{x1:`2`,x2:`5`,y1:`8`,y2:`8`,key:`14m1p5`}],[`line`,{x1:`16`,x2:`16`,y1:`19`,y2:`22`,key:`rzdirn`}],[`line`,{x1:`19`,x2:`22`,y1:`16`,y2:`16`,key:`ox905f`}]]),X=e(o(),1),Z=b(),Q=N(),xt=e=>{let{requires:t,fallback:n,delay:i,children:a}=e,o=n===void 0?null:n,s=i===void 0?0:i,c=r(t),l=mt(c?0:s);return c?a:l?o:null},St=e=>{let t=(0,Z.c)(10),{title:n}=e,[r,i]=(0,X.useState)(n),[a,o]=(0,X.useState)(!0),s,c;t[0]!==r||t[1]!==n?(s=()=>{if(n!==r){o(!1);let e=setTimeout(()=>{i(n),o(!0)},300);return()=>clearTimeout(e)}},c=[n,r],t[0]=r,t[1]=n,t[2]=s,t[3]=c):(s=t[2],c=t[3]),(0,X.useEffect)(s,c);let l;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,Q.jsx)(Xe,{className:`size-20 animate-spin text-primary`,"data-testid":`large-spinner`,strokeWidth:1}),t[4]=l):l=t[4];let u=a?`opacity-100`:`opacity-0`,d;t[5]===u?d=t[6]:(d=M(`mt-2 text-muted-foreground font-semibold text-lg transition-opacity duration-300`,u),t[5]=u,t[6]=d);let f;return t[7]!==r||t[8]!==d?(f=(0,Q.jsxs)(`div`,{className:`flex flex-col h-full flex-1 items-center justify-center p-4`,children:[l,(0,Q.jsx)(`div`,{className:d,children:r})]}),t[7]=r,t[8]=d,t[9]=f):f=t[9],f};function Ct(e,t){return e===`edit`||e===`home`||e===`gallery`?!0:e===`present`||T(w.includeCode,`false`)||T(w.showCode,`false`)?!1:T(w.showCode,`true`)?!0:t}function wt(e){let t=Ct(e.mode,e.showAppCode),n=e.hasCells&&e.hasCachedOutputs;return{showCode:t,showCachedOutputs:n,canPaint:e.hasCells&&(t||n||e.allCellsIdle)}}var Tt=n(e=>{let t=!1,n=!0;for(let r of Object.values(e(v).cellRuntime))Je(r.output)||(t=!0),r.status!==`idle`&&(n=!1);return{hasCachedOutputs:t,allCellsIdle:n}}),Et=n(e=>e(Tt).hasCachedOutputs),Dt=n(e=>e(Tt).allCellsIdle),Ot=n(e=>wt({mode:e(E),showAppCode:e(Le),hasCells:e(y),hasCachedOutputs:e(Et),allCellsIdle:e(Dt)})),kt=n(e=>e(Ot).canPaint),At=e=>{let t=(0,Z.c)(2),{children:n}=e;if(!Me())return n;let r;return t[0]===n?r=t[1]:(r=(0,Q.jsx)(jt,{children:n}),t[0]=n,t[1]=r),r},jt=e=>{let t=(0,Z.c)(8),{children:n}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=[],t[0]=i):i=t[0];let{error:a}=rt(Nt,i),o=r(kt),s=(0,X.useRef)(!1),c,l;if(t[1]!==o||t[2]!==a?(c=()=>{a&&o&&!s.current&&(s.current=!0,C.error(`Pyodide failed to initialize`,a),et({title:`Failed to start the notebook runtime`,description:st(a),variant:`danger`}))},l=[a,o],t[1]=o,t[2]=a,t[3]=c,t[4]=l):(c=t[3],l=t[4]),(0,X.useEffect)(c,l),a&&!o)throw a;let u;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,Q.jsx)(Mt,{}),t[5]=u):u=t[5];let d;return t[6]===n?d=t[7]:(d=(0,Q.jsx)(xt,{requires:kt,fallback:u,children:n}),t[6]=n,t[7]=d),d},Mt=()=>{let e=(0,Z.c)(2),t=r(A),n=t.kind===`loading`?t.message:`Loading…`,i;return e[0]===n?i=e[1]:(i=(0,Q.jsx)(St,{title:n}),e[0]=n,e[1]=i),i};async function Nt(){return await we.INSTANCE.initialized.promise,!0}var Pt={idle:`./favicon.ico`,success:`data:image/x-icon;base64,AAABAAEAMDAAAAEACACoDgAAFgAAACgAAAAwAAAAYAAAAAEACAAAAAAAAAkAAAAAAAAAAAAAAAEAAAABAAAAAAAAXXQAAFd3AwBWeAQAVngEAFd4AwBXeAQAVnkEAFh3AwBXdwQAVXcGAFd4BQBXeAQAWHgEAFd6AwBXeAMAVnkEAFZ5AwBXdwQAV3cFAFd4BABYeAQAV3gEAFh4BABXeAQA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgMEBQYYGAYFBAMCAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgcYGBgYGBgYGBgYGBgYGAcCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJGBgYGBgYGBgYGBgYGBgYGBgYCQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKBBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgECgAAAAAAAAAAAAAAAAAAAAAAAAAAAAsYGBgYGBgYDA0OChkZGRkKDg0MGBgYGBgYGAsAAAAAAAAAAAAAAAAAAAAAAAAAAxgYGBgYGA8QGRkZGRkZGRkZGRkZEA8YGBgYGBgDAAAAAAAAAAAAAAAAAAAAAAARGBgYGBgSChkZGRkZGRkZGRkZGRkZGRkKEhgYGBgYEQAAAAAAAAAAAAAAAAAAAAMYGBgYGBMZGRkZGRkZGRkZGRkZGRkZGRkZGRMYGBgYGAMAAAAAAAAAAAAAAAAACxgYGBgUEBkZGRkZGRkZGRkZGRkZGRkZGRkZGRkQFBgYGBgLAAAAAAAAAAAAAAAKGBgYGBQKGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZChQYGBgYCgAAAAAAAAAAAAAEGBgYGBAZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRAYGBgYBAAAAAAAAAAAAAgYGBgYExkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkTGBgYGAgAAAAAAAAAAAkYGBgSGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZEhgYGAkAAAAAAAAAAhgYGBgKGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZChgYGBgCAAAAAAAABxgYGA8ZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGQ8YGBgHAAAAAAABGBgYGBAZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRAYGBgYAQAAAAACGBgYDBkZGRkZGRkZGRkZGRkXFhYVGRkZGRkZGRkZGRkZGRkZGRkMGBgYAgAAAAADGBgYDRkZGRkZGRkZGRkZGRcYGBgYFxkZGRkZGRkZGRkZGRkZGRkNGBgYAwAAAAAEGBgYDhkZGRkZGRkZGRkZFxgYGBgYGBcZGRkZGRkZGRkZGRkZGRkOGBgYBAAAAAAFGBgYChkZGRkZGRkZGRkXGBgYGBgYGBgXGRkZGRkZGRkZGRkZGRkKGBgYBQAAAAAGGBgYGRkZGRkZGRkZGRUYGBgYGBgYGBgYFxkZGRkZGRkZGRkZGRkZGBgYBgAAAAAYGBgYGRkZGRkZGRkZGRYYGBgYFxcYGBgYGBcZGRkZGRkZGRkZGRkZGBgYGAAAAAAYGBgYGRkZGRkZGRkZGRYYGBgXGRkXGBgYGBgXGRkZGRkZGRkZGRkZGBgYGAAAAAAGGBgYGRkZGRkZGRkZGRUWFhcZGRkZFxgYGBgYFxkZGRkZGRkZGRkZGBgYBgAAAAAFGBgYChkZGRkZGRkZGRkZGRkZGRkZGRcYGBgYGBcZGRkZGRkZGRkKGBgYBQAAAAAEGBgYDhkZGRkZGRkZGRkZGRkZGRkZGRkXGBgYGBYZGRkZGRkZGRkOGBgYBAAAAAADGBgYDRkZGRkZGRkZGRkZGRkZGRkZGRkZFxgYGBYZGRkZGRkZGRkNGBgYAwAAAAACGBgYDBkZGRkZGRkZGRkZGRkZGRkZGRkZGRUWFhUZGRkZGRkZGRkMGBgYAgAAAAABGBgYGBAZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRAYGBgYAQAAAAAABxgYGA8ZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGQ8YGBgHAAAAAAAAAhgYGBgKGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZChgYGBgCAAAAAAAAAAkYGBgSGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZEhgYGAkAAAAAAAAAAAgYGBgYExkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkTGBgYGAgAAAAAAAAAAAAEGBgYGBAZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRAYGBgYBAAAAAAAAAAAAAAKGBgYGBQKGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZChQYGBgYCgAAAAAAAAAAAAAACxgYGBgUEBkZGRkZGRkZGRkZGRkZGRkZGRkZGRkQFBgYGBgLAAAAAAAAAAAAAAAAAAMYGBgYGBMZGRkZGRkZGRkZGRkZGRkZGRkZGRMYGBgYGAMAAAAAAAAAAAAAAAAAAAARGBgYGBgSChkZGRkZGRkZGRkZGRkZGRkKEhgYGBgYEQAAAAAAAAAAAAAAAAAAAAAAAxgYGBgYGA8QGRkZGRkZGRkZGRkZEA8YGBgYGBgDAAAAAAAAAAAAAAAAAAAAAAAAAAsYGBgYGBgYDA0OChkZGRkKDg0MGBgYGBgYGAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAKBBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgECgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJGBgYGBgYGBgYGBgYGBgYGBgYCQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgcYGBgYGBgYGBgYGBgYGAcCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgMEBQYYGAYFBAMCAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////AAD///////8AAP//gAH//wAA//4AAH//AAD/+AAAH/8AAP/gAAAH/wAA/8AAAAP/AAD/gAAAAf8AAP8AAAAA/wAA/gAAAAB/AAD8AAAAAD8AAPgAAAAAHwAA+AAAAAAfAADwAAAAAA8AAPAAAAAADwAA4AAAAAAHAADgAAAAAAcAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADgAAAAAAcAAOAAAAAABwAA8AAAAAAPAADwAAAAAA8AAPgAAAAAHwAA+AAAAAAfAAD8AAAAAD8AAP4AAAAAfwAA/wAAAAD/AAD/gAAAAf8AAP/AAAAD/wAA/+AAAAf/AAD/+AAAH/8AAP/+AAB//wAA//+AAf//AAD///////8AAP///////wAA`,running:`data:image/x-icon;base64,AAABAAEAMDAAAAEACACoDgAAFgAAACgAAAAwAAAAYAAAAAEACAAAAAAAAAkAAAAAAAAAAAAAAAEAAAABAAAAAAAA0YsAAMWEAwDHgwIAx4QBAMeEAgDGhAIAyIUBAMaFAwDGhAIAxoIAAMaFAgDHhAIAx4QCAMiFAwDHhAIAx4YAAMaFAgDHhQEAxoMCAMeEAgDHgwQAx4QDAMeDAgDHhAIA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgMEBQYYGAYFBAMCAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgcYGBgYGBgYGBgYGBgYGAcCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJGBgYGBgYGBgYGBgYGBgYGBgYCQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKBBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgECgAAAAAAAAAAAAAAAAAAAAAAAAAAAAsYGBgYGBgYDA0OChkZGRkKDg0MGBgYGBgYGAsAAAAAAAAAAAAAAAAAAAAAAAAAAxgYGBgYGA8QGRkZGRkZGRkZGRkZEA8YGBgYGBgDAAAAAAAAAAAAAAAAAAAAAAARGBgYGBgSChkZGRkZGRkZGRkZGRkZGRkKEhgYGBgYEQAAAAAAAAAAAAAAAAAAAAMYGBgYGBMZGRkZGRkZGRkZGRkZGRkZGRkZGRMYGBgYGAMAAAAAAAAAAAAAAAAACxgYGBgUEBkZGRkZGRkZGRkZGRkZGRkZGRkZGRkQFBgYGBgLAAAAAAAAAAAAAAAKGBgYGBQKGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZChQYGBgYCgAAAAAAAAAAAAAEGBgYGBAZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRAYGBgYBAAAAAAAAAAAAAgYGBgYExkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkTGBgYGAgAAAAAAAAAAAkYGBgSGRkZGRkZGRkZFRgWFxkZGRkZGRkZGRkZGRkZGRkZEhgYGAkAAAAAAAAAAhgYGBgKGRkZGRkZGRkZFhgYGBYVGRkZGRkZGRkZGRkZGRkZChgYGBgCAAAAAAAABxgYGA8ZGRkZGRkZGRkZGBgYGBgYFxkZGRkZGRkZGRkZGRkZGQ8YGBgHAAAAAAABGBgYGBAZGRkZGRkZGRkZGBgYGBgYGBYVGRkZGRkZGRkZGRkZGRAYGBgYAQAAAAACGBgYDBkZGRkZGRkZGRkZGBgYGBgYGBgYFxkZGRkZGRkZGRkZGRkMGBgYAgAAAAADGBgYDRkZGRkZGRkZGRkZGBgYGBgYGBgYGBYVGRkZGRkZGRkZGRkNGBgYAwAAAAAEGBgYDhkZGRkZGRkZGRkZGBgYGBUWGBgYGBgYFxkZGRkZGRkZGRkOGBgYBAAAAAAFGBgYChkZGRkZGRkZGRkZGBgYGBkZFxgYGBgYGBYVGRkZGRkZGRkKGBgYBQAAAAAGGBgYGRkZGRkZGRkZGRkZGBgYGBkZGRUWGBgYGBgYFxkZGRkZGRkZGBgYBgAAAAAYGBgYGRkZGRkZGRkZGRkZGBgYGBkZGRkZFxgYGBgYFxkZGRkZGRkZGBgYGAAAAAAYGBgYGRkZGRkZGRkZGRkZGBgYGBkZGRkZFxgYGBgYFhkZGRkZGRkZGBgYGAAAAAAGGBgYGRkZGRkZGRkZGRkZGBgYGBkZGRkXGBgYGBgYFRkZGRkZGRkZGBgYBgAAAAAFGBgYChkZGRkZGRkZGRkZGBgYGBkZFxgYGBgYGBcZGRkZGRkZGRkKGBgYBQAAAAAEGBgYDhkZGRkZGRkZGRkZGBgYGBkXGBgYGBgYFxkZGRkZGRkZGRkOGBgYBAAAAAADGBgYDRkZGRkZGRkZGRkZGBgYGBgYGBgYGBcZGRkZGRkZGRkZGRkNGBgYAwAAAAACGBgYDBkZGRkZGRkZGRkZGBgYGBgYGBgYFxkZGRkZGRkZGRkZGRkMGBgYAgAAAAABGBgYGBAZGRkZGRkZGRkZGBgYGBgYGBcZGRkZGRkZGRkZGRkZGRAYGBgYAQAAAAAABxgYGA8ZGRkZGRkZGRkZGBgYGBgYFxkZGRkZGRkZGRkZGRkZGQ8YGBgHAAAAAAAAAhgYGBgKGRkZGRkZGRkZFhgYGBcZGRkZGRkZGRkZGRkZGRkZChgYGBgCAAAAAAAAAAkYGBgSGRkZGRkZGRkZFRYWFxkZGRkZGRkZGRkZGRkZGRkZEhgYGAkAAAAAAAAAAAgYGBgYExkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkTGBgYGAgAAAAAAAAAAAAEGBgYGBAZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRAYGBgYBAAAAAAAAAAAAAAKGBgYGBQKGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZChQYGBgYCgAAAAAAAAAAAAAACxgYGBgUEBkZGRkZGRkZGRkZGRkZGRkZGRkZGRkQFBgYGBgLAAAAAAAAAAAAAAAAAAMYGBgYGBMZGRkZGRkZGRkZGRkZGRkZGRkZGRMYGBgYGAMAAAAAAAAAAAAAAAAAAAARGBgYGBgSChkZGRkZGRkZGRkZGRkZGRkKEhgYGBgYEQAAAAAAAAAAAAAAAAAAAAAAAxgYGBgYGA8QGRkZGRkZGRkZGRkZEA8YGBgYGBgDAAAAAAAAAAAAAAAAAAAAAAAAAAsYGBgYGBgYDA0OChkZGRkKDg0MGBgYGBgYGAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAKBBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgECgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJGBgYGBgYGBgYGBgYGBgYGBgYCQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgcYGBgYGBgYGBgYGBgYGAcCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgMEBQYYGAYFBAMCAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////AAD///////8AAP//gAH//wAA//4AAH//AAD/+AAAH/8AAP/gAAAH/wAA/8AAAAP/AAD/gAAAAf8AAP8AAAAA/wAA/gAAAAB/AAD8AAAAAD8AAPgAAAAAHwAA+AAAAAAfAADwAAAAAA8AAPAAAAAADwAA4AAAAAAHAADgAAAAAAcAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADgAAAAAAcAAOAAAAAABwAA8AAAAAAPAADwAAAAAA8AAPgAAAAAHwAA+AAAAAAfAAD8AAAAAD8AAP4AAAAAfwAA/wAAAAD/AAD/gAAAAf8AAP/AAAAD/wAA/+AAAAf/AAD/+AAAH/8AAP/+AAB//wAA//+AAf//AAD///////8AAP///////wAA`,error:`data:image/x-icon;base64,AAABAAEAMDAAAAEACACoDgAAFgAAACgAAAAwAAAAYAAAAAEACAAAAAAAAAkAAAAAAAAAAAAAAAEAAAABAAAAAAAALi7oACcn2wAlJdsAJibcACYm3AAmJtsAJyfdACUl3QAmJtsAKCjdACUl3AAmJtwAJyfcACYm3AAoKNcAJibcACcn3AAmJt0AJibcACUl3AAmJtwAKCjbACcn3AAmJtsAJibcAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgMEBQYZGQYFBAMCAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgcZGRkZGRkZGRkZGRkZGQcCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJGRkZGRkZGRkZGRkZGRkZGRkZCQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKBBkZGRkZGRkZGRkZGRkZGRkZGRkZGRkECgAAAAAAAAAAAAAAAAAAAAAAAAAAAAsZGRkZGRkZDA0ODxoaGhoPDg0MGRkZGRkZGQsAAAAAAAAAAAAAAAAAAAAAAAAAAxkZGRkZGRARGhoaGhoaGhoaGhoaERAZGRkZGRkDAAAAAAAAAAAAAAAAAAAAAAASGRkZGRkTDxoaGhoaGhoaGhoaGhoaGhoPExkZGRkZEgAAAAAAAAAAAAAAAAAAAAMZGRkZGRQaGhoaGhoaGhoaGhoaGhoaGhoaGhQZGRkZGQMAAAAAAAAAAAAAAAAACxkZGRkVERoaGhoaGhoaGhoaGhoaGhoaGhoaGhoRFRkZGRkLAAAAAAAAAAAAAAAKGRkZGRUPGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDxUZGRkZCgAAAAAAAAAAAAAEGRkZGREaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhEZGRkZBAAAAAAAAAAAAAgZGRkZFBoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoUGRkZGQgAAAAAAAAAAAkZGRkTGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaExkZGQkAAAAAAAAAAhkZGRkPGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDxkZGRkCAAAAAAAABxkZGRAaGhoaGhoaGhYXFxYaGhoaGhoaGhgXFxYaGhoaGhoaGhAZGRkHAAAAAAABGRkZGREaGhoaGhoaGhcZGRkYGhoaGhoaGBkZGRcaGhoaGhoaGhEZGRkZAQAAAAACGRkZDBoaGhoaGhoaGhcZGRkZGBoaGhoYGRkZGRcaGhoaGhoaGhoMGRkZAgAAAAADGRkZDRoaGhoaGhoaGhgZGRkZGRgaGhgZGRkZGRYaGhoaGhoaGhoNGRkZAwAAAAAEGRkZDhoaGhoaGhoaGhoYGRkZGRkYGBkZGRkZGBoaGhoaGhoaGhoOGRkZBAAAAAAFGRkZDxoaGhoaGhoaGhoaGBkZGRkZGRkZGRkYGhoaGhoaGhoaGhoPGRkZBQAAAAAGGRkZGhoaGhoaGhoaGhoaGhgZGRkZGRkZGRgaGhoaGhoaGhoaGhoaGRkZBgAAAAAZGRkZGhoaGhoaGhoaGhoaGhoYGRkZGRkZGBoaGhoaGhoaGhoaGhoaGRkZGQAAAAAZGRkZGhoaGhoaGhoaGhoaGhoYGRkZGRkZGBoaGhoaGhoaGhoaGhoaGRkZGQAAAAAGGRkZGhoaGhoaGhoaGhoaGhgZGRkZGRkZGRgaGhoaGhoaGhoaGhoaGRkZBgAAAAAFGRkZDxoaGhoaGhoaGhoaGBkZGRkZGRkZGRkYGhoaGhoaGhoaGhoPGRkZBQAAAAAEGRkZDhoaGhoaGhoaGhoYGRkZGRkYGBkZGRkZGBoaGhoaGhoaGhoOGRkZBAAAAAADGRkZDRoaGhoaGhoaGhYZGRkZGRgaGhgZGRkZGRgaGhoaGhoaGhoNGRkZAwAAAAACGRkZDBoaGhoaGhoaGhcZGRkZGBoaGhoYGRkZGRcaGhoaGhoaGhoMGRkZAgAAAAABGRkZGREaGhoaGhoaGhcZGRkYGhoaGhoaGBkZGRcaGhoaGhoaGhEZGRkZAQAAAAAABxkZGRAaGhoaGhoaGhYXFxgaGhoaGhoaGhYXFxYaGhoaGhoaGhAZGRkHAAAAAAAAAhkZGRkPGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDxkZGRkCAAAAAAAAAAkZGRkTGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaExkZGQkAAAAAAAAAAAgZGRkZFBoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoUGRkZGQgAAAAAAAAAAAAEGRkZGREaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhEZGRkZBAAAAAAAAAAAAAAKGRkZGRUPGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDxUZGRkZCgAAAAAAAAAAAAAACxkZGRkVERoaGhoaGhoaGhoaGhoaGhoaGhoaGhoRFRkZGRkLAAAAAAAAAAAAAAAAAAMZGRkZGRQaGhoaGhoaGhoaGhoaGhoaGhoaGhQZGRkZGQMAAAAAAAAAAAAAAAAAAAASGRkZGRkTDxoaGhoaGhoaGhoaGhoaGhoPExkZGRkZEgAAAAAAAAAAAAAAAAAAAAAAAxkZGRkZGRARGhoaGhoaGhoaGhoaERAZGRkZGRkDAAAAAAAAAAAAAAAAAAAAAAAAAAsZGRkZGRkZDA0ODxoaGhoPDg0MGRkZGRkZGQsAAAAAAAAAAAAAAAAAAAAAAAAAAAAKBBkZGRkZGRkZGRkZGRkZGRkZGRkZGRkECgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJGRkZGRkZGRkZGRkZGRkZGRkZCQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgcZGRkZGRkZGRkZGRkZGQcCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgMEBQYZGQYFBAMCAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////AAD///////8AAP//gAH//wAA//4AAH//AAD/+AAAH/8AAP/gAAAH/wAA/8AAAAP/AAD/gAAAAf8AAP8AAAAA/wAA/gAAAAB/AAD8AAAAAD8AAPgAAAAAHwAA+AAAAAAfAADwAAAAAA8AAPAAAAAADwAA4AAAAAAHAADgAAAAAAcAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADgAAAAAAcAAOAAAAAABwAA8AAAAAAPAADwAAAAAA8AAPgAAAAAHwAA+AAAAAAfAAD8AAAAAD8AAP4AAAAAfwAA/wAAAAD/AAD/gAAAAf8AAP/AAAAD/wAA/+AAAAf/AAD/+AAAH/8AAP/+AAB//wAA//+AAf//AAD///////8AAP///////wAA`};async function $(e){return Pt[e]}function Ft(){let e=document.querySelector(`link[rel~='icon']`);if(e)return e;let t=document.createElement(`link`);return t.rel=`icon`,document.head.append(t),t}function It(e){if(document.visibilityState===`visible`)return;let t=async()=>{e===0?new Notification(`Execution completed`,{body:`Your notebook run completed successfully.`,icon:await $(`success`)}):new Notification(`Execution failed`,{body:`Your notebook run encountered ${e} error(s).`,icon:await $(`error`)})};!(`Notification`in window)||Notification.permission===`denied`||(Notification.permission===`granted`?t():Notification.permission==="default"&&Notification.requestPermission().then(e=>{e===`granted`&&t()}))}var Lt=e=>{let t=(0,Z.c)(11),{isRunning:n}=e,r=c(),i,a;t[0]!==r||t[1]!==n?(i=()=>{let e=Ft();!n&&e.href.includes(`favicon`)||(async()=>{let t;if(t=n?`running`:r.length===0?`success`:`error`,e.href=await $(t),!document.hasFocus())return;let i=setTimeout(async()=>{e.href=await $(`idle`)},3e3);return()=>clearTimeout(i)})()},a=[n,r],t[0]=r,t[1]=n,t[2]=i,t[3]=a):(i=t[2],a=t[3]),(0,X.useEffect)(i,a);let o=K(n)??n,s,l;t[4]!==r||t[5]!==n||t[6]!==o?(s=()=>{o&&!n&&It(r.length)},l=[r,o,n],t[4]=r,t[5]=n,t[6]=o,t[7]=s,t[8]=l):(s=t[7],l=t[8]),(0,X.useEffect)(s,l);let u;return t[9]===n?u=t[10]:(u=async e=>{if(!n){let e=Ft();e.href=await $(`idle`)}},t[9]=n,t[10]=u),Oe(window,`focus`,u),null};function Rt(){let{cellIds:e,cellRuntime:t}=i.get(v),n=e.inOrderIds.find(e=>t[e]?.status===`running`);n&&ut(n,`focus`)}var zt=e=>{let t=(0,Z.c)(18),{connection:n,isRunning:i,onReconnect:a}=e,{mode:o}=r(D),s=n.state===O.CLOSED&&(o===`read`||n.code!==k.KERNEL_STARTUP_ERROR),c=n.state===O.OPEN,l=s&&n.code===k.KERNEL_DISCONNECTED,u;t[0]===s?u=t[1]:(u=s&&(0,Q.jsx)(Ut,{}),t[0]=s,t[1]=u);let d=o===`read`?`fixed`:`absolute`,f;t[2]===d?f=t[3]:(f=M(`z-50 top-4 left-4`,d),t[2]=d,t[3]=f);let p;t[4]!==c||t[5]!==i?(p=c&&i&&(0,Q.jsx)(Ht,{}),t[4]=c,t[5]=i,t[6]=p):p=t[6];let m;t[7]!==l||t[8]!==s||t[9]!==a?(m=s&&(0,Q.jsx)(Vt,{onReconnect:l?a:void 0}),t[7]=l,t[8]=s,t[9]=a,t[10]=m):m=t[10];let h;t[11]!==f||t[12]!==p||t[13]!==m?(h=(0,Q.jsxs)(`div`,{className:f,children:[p,m]}),t[11]=f,t[12]=p,t[13]=m,t[14]=h):h=t[14];let g;return t[15]!==u||t[16]!==h?(g=(0,Q.jsxs)(Q.Fragment,{children:[u,h]}),t[15]=u,t[16]=h,t[17]=g):g=t[17],g},Bt=`print:hidden pointer-events-auto hover:cursor-pointer`,Vt=e=>{let t=(0,Z.c)(12),{onReconnect:n}=e,r=!n,i=r?`App disconnected`:`App disconnected — click to reconnect`,a=r?0:-1,o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=M(Bt,`bg-transparent border-0 p-0`),t[0]=o):o=t[0];let s=r?`App disconnected`:`Reconnect to app`,c;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,Q.jsx)(bt,{className:`w-[25px] h-[25px] text-(--red-11)`}),t[1]=c):c=t[1];let l;t[2]!==r||t[3]!==n||t[4]!==s?(l=(0,Q.jsx)(`button`,{type:`button`,className:o,"aria-label":s,"data-testid":`disconnected-indicator`,onClick:n,disabled:r,children:c}),t[2]=r,t[3]=n,t[4]=s,t[5]=l):l=t[5];let u;t[6]!==a||t[7]!==l?(u=(0,Q.jsx)(`span`,{tabIndex:a,children:l}),t[6]=a,t[7]=l,t[8]=u):u=t[8];let d;return t[9]!==i||t[10]!==u?(d=(0,Q.jsx)(U,{content:i,children:u}),t[9]=i,t[10]=u,t[11]=d):d=t[11],d},Ht=()=>{let e=(0,Z.c)(6),t=r(_),n=t?`Scratchpad is running`:`Jump to running cell`,i=t?void 0:Rt,a;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,Q.jsx)(vt,{className:`running-app-icon`,size:30,strokeWidth:1}),e[0]=a):a=e[0];let o;e[1]===i?o=e[2]:(o=(0,Q.jsx)(`div`,{className:Bt,"data-testid":`loading-indicator`,onClick:i,children:a}),e[1]=i,e[2]=o);let s;return e[3]!==o||e[4]!==n?(s=(0,Q.jsx)(U,{content:n,side:`right`,children:o}),e[3]=o,e[4]=n,e[5]=s):s=e[5],s},Ut=()=>{let e=(0,Z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`div`,{className:`noise`}),(0,Q.jsx)(`div`,{className:`disconnected-gradient`})]}),e[0]=t):t=e[0],t},Wt=R,Gt=He,Kt=P(B),qt=X.forwardRef((e,t)=>{let n=(0,Z.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=M(`fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Q.jsx)(z,{className:a,...i,ref:t}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});qt.displayName=z.displayName;var Jt=j(`fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500`,{variants:{side:{top:`inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top`,bottom:`inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom`,left:`inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm`,right:`inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm`}},defaultVariants:{side:`right`}}),Yt=X.forwardRef((e,t)=>{let n=(0,Z.c)(15),r,i,a,o;n[0]===e?(r=n[1],i=n[2],a=n[3],o=n[4]):({side:o,className:i,children:r,...a}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a,n[4]=o);let s=o===void 0?`right`:o,c;n[5]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,Q.jsx)(qt,{}),n[5]=c):c=n[5];let l;n[6]!==i||n[7]!==s?(l=M(Jt({side:s}),i),n[6]=i,n[7]=s,n[8]=l):l=n[8];let u;n[9]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,Q.jsxs)(Ue,{className:`absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary`,children:[(0,Q.jsx)(ct,{className:`h-4 w-4`}),(0,Q.jsx)(`span`,{className:`sr-only`,children:`Close`})]}),n[9]=u):u=n[9];let d;return n[10]!==r||n[11]!==a||n[12]!==t||n[13]!==l?(d=(0,Q.jsx)(Kt,{children:(0,Q.jsxs)(Ve,{children:[c,(0,Q.jsxs)(L,{ref:t,className:l,...a,children:[r,u]})]})}),n[10]=r,n[11]=a,n[12]=t,n[13]=l,n[14]=d):d=n[14],d});Yt.displayName=L.displayName;var Xt=X.forwardRef((e,t)=>{let n=(0,Z.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=M(`text-lg font-semibold text-foreground`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Q.jsx)(I,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Xt.displayName=I.displayName;var Zt=X.forwardRef((e,t)=>{let n=(0,Z.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=M(`text-sm text-muted-foreground`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,Q.jsx)(F,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Zt.displayName=F.displayName;var Qt=(0,X.memo)(()=>{let e=(0,Z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,Q.jsx)(We,{name:V.SIDEBAR}),e[0]=t):t=e[0],t});Qt.displayName=`SidebarSlot`;var $t=e=>{let t=(0,Z.c)(6),{openWidth:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,Q.jsx)(Gt,{className:`lg:hidden`,asChild:!0,children:(0,Q.jsx)(W,{variant:`ghost`,className:`bg-background`,children:(0,Q.jsx)(yt,{className:`w-5 h-5`})})}),t[0]=r):r=t[0];let i;t[1]===n?i=t[2]:(i={maxWidth:n},t[1]=n,t[2]=i);let a;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,Q.jsx)(Qt,{}),t[3]=a):a=t[3];let o;return t[4]===i?o=t[5]:(o=(0,Q.jsxs)(Wt,{children:[r,(0,Q.jsx)(Yt,{className:`w-full px-3 h-full flex flex-col overflow-y-auto`,style:i,side:`left`,children:a})]}),t[4]=i,t[5]=o),o},en=e=>{let t=(0,Z.c)(7),{isOpen:n,toggle:r}=e,i=n?`rotate-0`:`rotate-180`,a;t[0]===i?a=t[1]:(a=M(`h-5 w-5 transition-transform ease-in-out duration-700`,i),t[0]=i,t[1]=a);let o;t[2]===a?o=t[3]:(o=(0,Q.jsx)(H,{className:a}),t[2]=a,t[3]=o);let s;return t[4]!==o||t[5]!==r?(s=(0,Q.jsx)(`div`,{className:`invisible lg:visible absolute top-[12px] right-[16px] z-20`,children:(0,Q.jsx)(W,{onClick:r,className:`w-10 h-8`,variant:`ghost`,size:`icon`,children:o})}),t[4]=o,t[5]=r,t[6]=s):s=t[6],s},tn=e=>{let t=(0,Z.c)(11),{isOpen:n,toggle:r,width:i}=e,a=n?i:De,o;t[0]===a?o=t[1]:(o={width:a},t[0]=a,t[1]=o);let s;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(s=M(`app-sidebar auto-collapse-nav`,`top-0 left-0 z-20 h-full hidden lg:block relative transition-[width] ease-in-out duration-300`),t[2]=s):s=t[2];let c;t[3]!==n||t[4]!==r?(c=(0,Q.jsx)(en,{isOpen:n,toggle:r}),t[3]=n,t[4]=r,t[5]=c):c=t[5];let l;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,Q.jsx)(`div`,{className:`relative h-full flex flex-col px-3 pb-16 pt-14 overflow-y-auto shadow-sm border-l`,children:(0,Q.jsx)(Qt,{})}),t[6]=l):l=t[6];let u;return t[7]!==n||t[8]!==o||t[9]!==c?(u=(0,Q.jsxs)(`aside`,{"data-expanded":n,style:o,className:s,children:[c,l]}),t[7]=n,t[8]=o,t[9]=c,t[10]=u):u=t[10],u},nn=e=>{let n=(0,Z.c)(15),{children:r}=e,[i,a]=t(Te),{isOpen:o,width:s}=i;if(Ge(V.SIDEBAR).length===0)return r;let c;n[0]===s?c=n[1]:(c=Ce(s),n[0]=s,n[1]=c);let l=c,u;n[2]!==a||n[3]!==o?(u=()=>a({type:`toggle`,isOpen:!o}),n[2]=a,n[3]=o,n[4]=u):u=n[4];let d;n[5]!==o||n[6]!==l||n[7]!==u?(d=(0,Q.jsx)(tn,{isOpen:o,width:l,toggle:u}),n[5]=o,n[6]=l,n[7]=u,n[8]=d):d=n[8];let f;n[9]===l?f=n[10]:(f=(0,Q.jsx)(`div`,{className:`absolute top-3 left-4 flex items-center z-50`,children:(0,Q.jsx)($t,{openWidth:l})}),n[9]=l,n[10]=f);let p;return n[11]!==r||n[12]!==d||n[13]!==f?(p=(0,Q.jsxs)(`div`,{className:`inset-0 absolute flex`,children:[d,f,r]}),n[11]=r,n[12]=d,n[13]=f,n[14]=p):p=n[14],p},rn=e=>{let t=(0,Z.c)(19),{width:n,connection:r,isRunning:i,children:a,onReconnect:o}=e,s=r.state,c;t[0]===i?c=t[1]:(c=(0,Q.jsx)(Lt,{isRunning:i}),t[0]=i,t[1]=c);let l;t[2]!==r||t[3]!==i||t[4]!==o?(l=(0,Q.jsx)(zt,{connection:r,isRunning:i,onReconnect:o}),t[2]=r,t[3]=i,t[4]=o,t[5]=l):l=t[5];let u=r.state===O.CLOSED&&r.code!==k.KERNEL_STARTUP_ERROR&&`disconnected`,d=n===`full`&&`config-width-full`,f=n===`columns`?`overflow-x-auto`:`overflow-x-auto sm:overflow-x-hidden`,p;t[6]!==u||t[7]!==d||t[8]!==f?(p=M(`mathjax_ignore`,u,`bg-background w-full h-full text-textColor`,`flex flex-col overflow-y-auto`,d,f,`print:height-fit`),t[6]=u,t[7]=d,t[8]=f,t[9]=p):p=t[9];let m;t[10]!==a||t[11]!==s||t[12]!==p||t[13]!==n?(m=(0,Q.jsx)(At,{children:(0,Q.jsx)(nn,{children:(0,Q.jsx)(`div`,{id:`App`,"data-config-width":n,"data-connection-state":s,className:p,children:a})})}),t[10]=a,t[11]=s,t[12]=p,t[13]=n,t[14]=m):m=t[14];let h;return t[15]!==c||t[16]!==l||t[17]!==m?(h=(0,Q.jsxs)(Q.Fragment,{children:[c,l,m]}),t[15]=c,t[16]=l,t[17]=m,t[18]=h):h=t[18],h},an=(0,X.memo)(e=>{let t=(0,Z.c)(9),{appConfig:n,mode:i,children:a}=e,{selectedLayout:o}=Qe();if(!r(Ae)&&(i===`edit`||i===`present`&&o===`vertical`))return a;let s=i===`read`,c;t[0]!==o||t[1]!==s?(c=$e({selectedLayout:o,isReading:s,searchParams:new URLSearchParams(window.location.search)}),t[0]=o,t[1]=s,t[2]=c):c=t[2];let l=c,u;t[3]===l?u=t[4]:(u=q.find(e=>e.type===l),t[3]=l,t[4]=u);let d=u;if(!d)return a;let f;return t[5]!==n||t[6]!==i||t[7]!==d?(f=(0,Q.jsx)(on,{appConfig:n,mode:i,plugin:d}),t[5]=n,t[6]=i,t[7]=d,t[8]=f):f=t[8],f});an.displayName=`CellsRenderer`;var on=e=>{let t=(0,Z.c)(12),{appConfig:n,mode:r,plugin:i}=e,a=Qe(),o=h(),{setCurrentLayoutData:s}=Ze(),c,l;t[0]!==a||t[1]!==o||t[2]!==i?(c=fe(o),l=Y({state:a,plugin:i,cells:c}),t[0]=a,t[1]=o,t[2]=i,t[3]=c,t[4]=l):(c=t[3],l=t[4]);let u=l,d=i.Component,f;return t[5]!==d||t[6]!==n||t[7]!==c||t[8]!==u||t[9]!==r||t[10]!==s?(f=(0,Q.jsx)(d,{appConfig:n,mode:r,cells:c,layout:u,setLayout:s}),t[5]=d,t[6]=n,t[7]=c,t[8]=u,t[9]=r,t[10]=s,t[11]=f):f=t[11],f},sn=class e{hasStarted=!1;static get INSTANCE(){let t=`_marimo_private_RuntimeState`;return window[t]||(window[t]=new e(S)),window[t]}_sendComponentValues;uiElementRegistry;constructor(e){this.uiElementRegistry=e}get sendComponentValues(){if(!this._sendComponentValues)throw Error(`sendComponentValues is not set`);return this._sendComponentValues}start(e){if(this.hasStarted){C.warn(`RuntimeState already started`);return}this._sendComponentValues=e,document.addEventListener(lt.TYPE,this.handleReadyEvent),this.hasStarted=!0}stop(){if(!this.hasStarted){C.warn(`RuntimeState already stopped`);return}document.removeEventListener(lt.TYPE,this.handleReadyEvent),this.hasStarted=!1}handleReadyEvent=e=>{let t=e.detail.objectId;if(!this.uiElementRegistry.has(t))return;let n=this.uiElementRegistry.lookupValue(t);n!==void 0&&this.sendComponentValues({objectIds:[t],values:[n]}).catch(e=>{C.warn(e)})}},cn=`MARIMO_TRANSPORT_EXHAUSTED`,ln=class{inner;closeWrappers=new WeakMap;constructor(e){this.inner=new gt(e,void 0,{maxRetries:10,debug:!1,startClosed:!0,connectionTimeout:1e4})}get readyState(){return this.inner.readyState}reconnect(e,t){this.inner.reconnect(e,t)}close(){this.inner.close()}send(e){this.inner.send(e)}addEventListener(e,t){if(e===`close`){let e=t;if(this.closeWrappers.has(e))return;let n=t=>{this.inner.retryCount>=10?e(new CloseEvent(`close`,{code:t.code,reason:cn,wasClean:t.wasClean})):e(t)};this.closeWrappers.set(e,n),this.inner.addEventListener(`close`,n);return}this.inner.addEventListener(e,t)}removeEventListener(e,t){if(e===`close`){let e=t,n=this.closeWrappers.get(e);n&&(this.closeWrappers.delete(e),this.inner.removeEventListener(`close`,n));return}this.inner.removeEventListener(e,t)}},un=1e4,dn=1e3,fn=1e4,pn=1.3,mn=1006,hn=class{subscriptions=new x;urlProvider;headersProvider;abortController=null;retryTimer=null;retryCount=0;userClosed=!1;state=WebSocket.CLOSED;constructor(e,t=()=>({})){this.urlProvider=e,this.headersProvider=t}get readyState(){return this.state}reconnect(e,t){this.userClosed=!1,this.retryCount=0,this.clearRetryTimer(),this.abortController?.abort(),this.connect()}close(){this.userClosed=!0,this.clearRetryTimer(),this.state=WebSocket.CLOSED,this.abortController?.abort(),this.abortController=null}send(e){C.warn(`SseTransport does not support send(); dropping message`)}addEventListener(e,t){this.subscriptions.addSubscription(e,t)}removeEventListener(e,t){this.subscriptions.removeSubscription(e,t)}connect(){this.state=WebSocket.CONNECTING,this.run()}async run(){let e=new AbortController;this.abortController=e;let t=setTimeout(()=>e.abort(),un),n=null;try{let r=await fetch(this.urlProvider(),{headers:{...this.headersProvider(),Accept:`text/event-stream`},signal:e.signal});if(clearTimeout(t),!r.ok||r.body===null)throw Error(`Unexpected SSE response: ${r.status}`);this.state=WebSocket.OPEN,this.subscriptions.notify(`open`,new Event(`open`)),n=await this.readEvents(r.body)}catch(n){if(clearTimeout(t),this.isSuperseded(e))return;C.warn(`SSE connection failed`,n),this.subscriptions.notify(`error`,new Event(`error`))}if(this.isSuperseded(e))return;e.abort(),this.state=WebSocket.CLOSED,this.retryCount+=1;let r=this.retryCount>=10;this.subscriptions.notify(`close`,new CloseEvent(`close`,{code:n?.code??mn,reason:r?cn:n?.reason??``,wasClean:n!==null})),!(r||this.isSuperseded(e))&&this.scheduleRetry()}isSuperseded(e){return this.userClosed||this.abortController!==e}scheduleRetry(){this.clearRetryTimer(),this.state=WebSocket.CONNECTING;let e=Math.min(dn*pn**this.retryCount,fn);this.retryTimer=setTimeout(()=>{this.retryTimer=null,this.connect()},e)}clearRetryTimer(){this.retryTimer!==null&&(clearTimeout(this.retryTimer),this.retryTimer=null)}async readEvents(e){let t=e.getReader(),n=new TextDecoder,r=``,i=null,a=[],o=()=>{if(a.length===0)return i=null,null;let e=a.join(`
|
|
2
|
-
`),t=i;return i=null,a=[],t===`close`?gn(e):(this.retryCount=0,this.subscriptions.notify(`message`,new MessageEvent(`message`,{data:e})),null)};for(;;){let{done:e,value:s}=await t.read();if(e)return null;r+=n.decode(s,{stream:!0});let c=0,l=r.indexOf(`
|
|
3
|
-
`,c);for(;l!==-1;){let e=r.slice(c,l);if(c=l+1,l=r.indexOf(`
|
|
4
|
-
`,c),e.endsWith(`\r`)&&(e=e.slice(0,-1)),e===``){let e=o();if(e!==null)return e;continue}if(e.startsWith(`:`))continue;let t=e.indexOf(`:`),n=t===-1?e:e.slice(0,t),s=t===-1?``:e.slice(t+1);s.startsWith(` `)&&(s=s.slice(1)),n===`data`?a.push(s):n===`event`&&(i=s)}c>0&&(r=r.slice(c))}}};function gn(e){try{let t=JSON.parse(e);return{code:typeof t.code==`number`?t.code:1e3,reason:typeof t.reason==`string`?t.reason:``}}catch{return C.warn(`Failed to parse SSE close event`,e),{code:1e3,reason:``}}}function _n(e){return e.static?be.empty():Me()?Se():e.transportType===`sse`?new hn(e.url,e.headers):new ln(e.url)}function vn(e){let{onOpen:t,onMessage:n,onClose:r,onError:i,waitToConnect:a}=e,[o]=(0,X.useState)(()=>{let a=_n(e);return a.addEventListener(`open`,t),a.addEventListener(`close`,r),a.addEventListener(`error`,i),a.addEventListener(`message`,n),a});return(0,X.useEffect)(()=>(o.readyState===WebSocket.CLOSED&&a().then(()=>o.reconnect()).catch(e=>{C.error(`Healthy connection never made`,e),o.close()}),()=>{C.warn(`useConnectionTransport is unmounting. This likely means there is a bug.`),o.close(),o.removeEventListener(`open`,t),o.removeEventListener(`close`,r),o.removeEventListener(`error`,i),o.removeEventListener(`message`,n)}),[o]),o}function yn(e){let{codes:t,names:n,configs:r,cell_ids:i,last_executed_code:a,last_execution_time:o}=e,s=a||{},c=o||{};return t.map((e,t)=>{let a=i[t],o=s[a];return ae({id:a,code:e,edited:o?o!==e:!1,name:n[t],lastCodeRun:s[a]??null,lastExecutionTime:c[a]??null,config:r[t]})})}function bn(e,t,n){let{layout:r}=e,i=Ke(r,t);return r&&r.type===i.selectedLayout&&n({layoutView:i.selectedLayout,data:i.layoutData[i.selectedLayout]}),i}function xn(){let e=[],t=[];return S.entries.forEach((n,r)=>{e.push(r),t.push(n.value)}),{objectIds:e,values:t}}function Sn(e,t){let{existingCells:n,autoInstantiate:r,setCells:i,setLayoutData:a,setAppConfig:o,setCapabilities:s,setKernelState:c,onError:l}=t,{resumed:u,ui_values:d,app_config:f,capabilities:p,auto_instantiated:m}=e,h=n&&n.length>0,g=h&&!u?n:yn(e);i(g,bn(e,g,a));let ee=ge.safeParse(f);if(ee.success?o(ee.data):C.error(`Failed to parse app config`,ee.error),s(p),m)return;if(u){for(let[e,t]of ke.entries(d||{})){let n=e;S.set(n,t)}return}let{objectIds:te,values:ne}=xn(),re=h?Object.fromEntries(n.map(e=>[e.id,e.code])):void 0;nt().sendInstantiate({objectIds:te,values:ne,autoRun:r,codes:re}).then(()=>{c({isInstantiated:!0,error:null})}).catch(e=>{c({isInstantiated:!1,error:e}),l(Error(`Failed to instantiate`,{cause:e}))})}function Cn(e){let t=e.cell_id;S.removeElementsByCell(t),J.INSTANCE.removeForCellId(t)}function wn(e,t){t(e),J.INSTANCE.track(e)}var Tn={append:e=>{let t=new URL(window.location.href);t.searchParams.append(e.key,e.value),window.history.pushState({},``,`${t.pathname}${t.search}`)},set:e=>{let t=new URL(window.location.href);Array.isArray(e.value)?(t.searchParams.delete(e.key),e.value.forEach(n=>t.searchParams.append(e.key,n))):t.searchParams.set(e.key,e.value),window.history.pushState({},``,`${t.pathname}${t.search}`)},delete:e=>{let t=new URL(window.location.href);e.value==null?t.searchParams.delete(e.key):t.searchParams.delete(e.key,e.value),window.history.pushState({},``,`${t.pathname}${t.search}`)},clear:()=>{let e=new URL(window.location.href);e.search=``,window.history.pushState({},``,`${e.pathname}${e.search}`)}};function En(e){switch(e.reason){case cn:return{kind:`gave-up`,status:{state:O.CLOSED,code:k.KERNEL_DISCONNECTED,reason:`kernel not found`}};case`MARIMO_NO_FILE_KEY`:case`MARIMO_NO_SESSION_ID`:case`MARIMO_NO_SESSION`:case`MARIMO_SHUTDOWN`:return{kind:`terminal`,status:{state:O.CLOSED,code:k.KERNEL_DISCONNECTED,reason:`kernel not found`},closeTransport:!0};case`MARIMO_UNAUTHORIZED`:return{kind:`terminal`,status:{state:O.CLOSED,code:k.KERNEL_DISCONNECTED,reason:`not authorized`},closeTransport:!0};case`MARIMO_KIOSK_NOT_ALLOWED`:return{kind:`terminal`,status:{state:O.CLOSED,code:k.KERNEL_DISCONNECTED,reason:`kiosk mode is not available for this session`},closeTransport:!0};case`MARIMO_KERNEL_STARTUP_ERROR`:return{kind:`terminal`,status:{state:O.CLOSED,code:k.KERNEL_STARTUP_ERROR,reason:`Failed to start kernel sandbox`},closeTransport:!0};default:e.reason&&tt(e.reason)}return{kind:`retry`,status:{state:O.CONNECTING}}}function Dn(){return Object.values(de().cellData).filter(e=>e.id!==oe)}function On(e){let n=(0,Z.c)(51),i=(0,X.useRef)(!0),{autoInstantiate:o,sessionId:c,setCells:h}=e,{showBoundary:ae}=Be(),{handleCellMessage:oe}=u(),_;n[0]===Symbol.for(`react.memo_cache_sentinel`)?(_={skipMiddleware:!0},n[0]=_):_=n[0];let v=u(_),y;n[1]===v?y=n[2]:(y=e=>{s(e.changes,v,Nn)},n[1]=v,n[2]=y);let fe=y,{addCellNotification:b}=_t(),ge=a(Re),x=a(ze),be=ve(),{setVariables:Se,setMetadata:Ce}=ue(),{addColumnPreview:we}=ce(),{addDatasets:Te,filterDatasetsFromVariables:De}=ce(),{addDataSourceConnection:Oe,filterDataSourcesFromVariables:ke}=g(),{setLayoutData:w}=Ze(),[T,E]=t(Ne),D=a(Ie),{addBanner:Le}=ft(),{addMissingPackageAlert:A,updateEnvironment:j,setEnvironment:M,addStartupLog:N}=pt(),P=a(Ae),Ve=a(je),F=a(m),I=Fe(),L=r(_e),He=a(dt),R=a(ht),{setNamespaces:z,filterFromVariables:Ue}=se(),B;n[3]!==Le||n[4]!==b||n[5]!==we||n[6]!==Oe||n[7]!==Te||n[8]!==A||n[9]!==N||n[10]!==o||n[11]!==ke||n[12]!==De||n[13]!==Ue||n[14]!==oe||n[15]!==fe||n[16]!==be||n[17]!==He||n[18]!==F||n[19]!==h||n[20]!==E||n[21]!==M||n[22]!==x||n[23]!==R||n[24]!==ge||n[25]!==P||n[26]!==w||n[27]!==Ce||n[28]!==Ve||n[29]!==z||n[30]!==Se||n[31]!==ae||n[32]!==j||n[33]!==D?(B=e=>{let t=re(e.data);switch(t.data.op){case`reload`:ot();return;case`startup-progress`:{let{phase:e}=t.data;D(t.data),E(t=>t.state===O.OPEN||t.state===O.CONNECTING&&t.phase===e?t:{state:O.CONNECTING,phase:e});return}case`kernel-ready`:{R(null),E({state:O.OPEN}),x(!!(t.data.resumed||t.data.auto_instantiated));let e=Dn();Sn(t.data,{autoInstantiate:o,setCells:h,setLayoutData:w,setAppConfig:be,setCapabilities:F,setKernelState:ge,onError:ae,existingCells:e}),t.data.resumed||ie(),P(t.data.kiosk),Ve(t.data.stable_session_id??null),pe(null),me();return}case`completed-run`:x(!0);return;case`execution`:return;case`interrupted`:return;case`kernel-startup-error`:R(t.data.error);return;case`send-ui-element-message`:{let e=t.data.ui_element;if(e){let n=qe(t.data);S.broadcastMessage(e,t.data.message,n)}return}case`model-lifecycle`:ye(Ee,t.data);return;case`remove-ui-elements`:Cn(t.data);return;case`completion-result`:ne.resolve(t.data.completion_id,t.data);return;case`function-call-result`:xe.resolve(t.data.function_call_id,t.data);return;case`cell-op`:{wn(t.data,oe);let e=de().cellData[t.data.cell_id];if(!e)return;b({cellNotification:t.data,code:e.code});return}case`variables`:{let e=t.data.variables.map(Mn);Se(t.data.variables.map(jn)),De(e),ke(e),Ue(e);return}case`variable-values`:Ce(t.data.variables.map(An));return;case`alert`:et({title:t.data.title,description:it({html:t.data.description}),variant:t.data.variant});return;case`banner`:Le(t.data);return;case`missing-package-alert`:A({...t.data,kind:`missing`});return;case`environment-operation`:t.data.source===`kernel`&&t.data.status.kind!==`running`&&at(),j(t.data);return;case`environment-state`:M(t.data),t.data.source===`kernel`&&at();return;case`startup-logs`:N({content:t.data.content,status:t.data.status});return;case`query-params-append`:Tn.append(t.data);return;case`query-params-set`:Tn.set(t.data);return;case`query-params-delete`:Tn.delete(t.data);return;case`query-params-clear`:Tn.clear();return;case`datasets`:Te(t.data);return;case`data-column-preview`:we(t.data);return;case`sql-table-preview`:te.resolve(t.data.request_id,t.data);return;case`sql-table-list-preview`:he.resolve(t.data.request_id,t.data);return;case`sql-schema-list-preview`:p.resolve(t.data.request_id,t.data);return;case`validate-sql-result`:ee.resolve(t.data.request_id,t.data);return;case`data-source-discovery-result`:le.resolve(t.data.request_id,t.data);return;case`secret-keys-result`:Ye.resolve(t.data.request_id,t.data);return;case`cache-info`:He(t.data);return;case`cache-cleared`:return;case`data-source-connections`:Oe({connections:t.data.connections.map(kn)});return;case`storage-namespaces`:z(t.data);return;case`storage-entries`:d.resolve(t.data.request_id,t.data);return;case`storage-download-ready`:f.resolve(t.data.request_id,t.data);return;case`reconnected`:R(null),E({state:O.OPEN});return;case`focus-cell`:l(t.data.cell_id);return;case`active-line`:pe(t.data.line==null?null:{cellId:t.data.cell_id,line:t.data.line});return;case`notebook-document-transaction`:fe(t.data.transaction);return;case`consumer-capabilities`:P(!t.data.consumer_capabilities.edit);return;default:tt(t.data)}},n[3]=Le,n[4]=b,n[5]=we,n[6]=Oe,n[7]=Te,n[8]=A,n[9]=N,n[10]=o,n[11]=ke,n[12]=De,n[13]=Ue,n[14]=oe,n[15]=fe,n[16]=be,n[17]=He,n[18]=F,n[19]=h,n[20]=E,n[21]=M,n[22]=x,n[23]=R,n[24]=ge,n[25]=P,n[26]=w,n[27]=Ce,n[28]=Ve,n[29]=z,n[30]=Se,n[31]=ae,n[32]=j,n[33]=D,n[34]=B):B=n[34];let We=B,Ge=(e,t)=>{i.current&&(i.current=!1,J.reconnect(e,t))},V=async()=>{if(J.readyState!==WebSocket.OPEN&&J.readyState!==WebSocket.CONNECTING){if(i.current=!0,R(null),E({state:O.CONNECTING}),!await I.reconcileFromHealth()){i.current=!1,E({state:O.CLOSED,code:k.KERNEL_DISCONNECTED,reason:`kernel not found`});return}J.reconnect()}},H;n[35]===Symbol.for(`react.memo_cache_sentinel`)?(H=Pe(),n[35]=H):H=n[35];let U;n[36]!==I||n[37]!==c||n[38]!==L?(U=()=>L===`sse`?I.getSseURL(c).toString():I.getWsURL(c).toString(),n[36]=I,n[37]=c,n[38]=L,n[39]=U):U=n[39];let W;n[40]===I?W=n[41]:(W=()=>I.headers(),n[40]=I,n[41]=W);let G;n[42]===D?G=n[43]:(G=async()=>{D(null),i.current=!0},n[42]=D,n[43]=G);let K;n[44]===I?K=n[45]:(K=async()=>{Pe()||Me()||I.isSameOrigin||await I.waitForHealthy()},n[44]=I,n[45]=K);let q;n[46]===We?q=n[47]:(q=e=>{try{We(e)}catch(t){let n=t;C.error(`Failed to handle message`,e.data,n),et({title:`Failed to handle message`,description:st(n),variant:`danger`})}},n[46]=We,n[47]=q);let J=vn({static:H,transportType:L,url:U,headers:W,onOpen:G,waitToConnect:K,onMessage:q,onClose:e=>{C.warn(`WebSocket closed`,e.code,e.reason);let t=En(e);if(E(e=>{let n=t.status;return n.state===O.CLOSED&&n.code===k.KERNEL_STARTUP_ERROR&&(e.state===O.CONNECTING||e.state===O.CLOSED)?{...n,phase:e.phase}:n.state===O.CONNECTING&&(e.state===O.OPEN||e.state===O.CONNECTING&&e.phase===`reconnecting`)?{...n,phase:`reconnecting`}:n}),t.kind===`terminal`&&t.closeTransport){J.close();return}t.kind===`retry`&&Ge(e.code,e.reason)},onError:e=>{C.warn(`WebSocket error`,e),E({state:O.CLOSED,code:k.KERNEL_DISCONNECTED,reason:`kernel not found`}),Ge()}}),Y;return n[48]!==T||n[49]!==V?(Y={connection:T,reconnect:V},n[48]=T,n[49]=V,n[50]=Y):Y=n[50],Y}function kn(e){return{...e,name:e.name}}function An(e){return{name:e.name,dataType:e.datatype,value:e.value}}function jn(e){return{name:e.name,declaredBy:e.declared_by,usedBy:e.used_by}}function Mn(e){return e.name}function Nn(){return de().cellIds.inOrderIds}var Pn=e=>{let t=(0,Z.c)(2),{children:n}=e,r;return t[0]===n?r=t[1]:(r=(0,Q.jsx)(`div`,{"data-testid":`chrome-wrapper`,className:`flex flex-col flex-1 overflow-hidden absolute inset-0 print:relative`,children:n}),t[0]=n,t[1]=r),r};export{rn as a,an as i,On as n,xt as o,sn as r,yt as s,Pn as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{c as t,f as n,l as r}from"./useEvent-Dc9HkKI2.js";import{t as i}from"./react-CUdNIagt.js";import{co as a}from"./cells-h5u00Nz8.js";import{t as o}from"./compiler-runtime-BQ9S8nyo.js";import{t as s}from"./useEventListener-IRzG-0mH.js";import{T as c,_ as l,v as u,w as d,x as f}from"./config-BAnYSdpO.js";import{t as p}from"./cn-ldLVeaqm.js";import{t as m}from"./jsx-runtime-B74pBk57.js";import{t as h}from"./circle-Bb1IbBVn.js";import{t as g}from"./button-M49xxKoi.js";import{t as _}from"./arrow-down-BFFrjzad.js";import{t as v}from"./check-Wea4hZ6R.js";import{i as y}from"./useNumberFormatter-BP99Zbyy.js";import{t as b}from"./spinner-CGdRKCnw.js";import{t as x}from"./refresh-cw-CEGpOrzd.js";import{t as S}from"./copy-icon-wfSGfX8v.js";import{s as C}from"./useInstallPackage-CCQcFc6U.js";import{r as w}from"./panel-context-BPaQeOuV.js";import{l as T,o as E,t as D}from"./state-Bo8h64Rn.js";var O=e(i(),1),k=o(),A=n(null),j=n(e=>e(D).environments.kernel.operations.findLast(e=>e.action===`prepare`)),M=n(e=>{let t=e(D).environments.kernel.operations;return t.findLast(e=>e.action===`sync`&&e.status.kind===`running`)??t.findLast(e=>e.action===`sync`)}),N=n(null),P=n(e=>{let t=e(M),n=e(N),r=n&&n.operation===t&&t?.status.kind!==`running`?n.state:t?.status??{kind:`idle`};return e(D).environments.kernel.restart_required&&(r.kind===`idle`||r.kind===`succeeded`)?{kind:`restart-required`,reason:`Dependency changes are saved; restart the kernel to apply them.`}:r},(e,t,n)=>{t(N,{state:n,operation:e(M)})}),F=n(null),I=n(e=>{let t=e(l),n=!!e(A)?.backend,r=e(P),i=r.kind===`running`,a=r.kind===`restart-required`,o=r.kind===`failed`?r.error:r.kind===`cancelled`?`Sandbox sync was interrupted.`:a?r.reason:null;if(n&&(i||o!==null)&&t.state===c.OPEN)return{kind:`sync`,sandbox:n,title:i?`Syncing sandbox…`:a?`Sandbox restart required`:`Sandbox sync failed`,description:i?`Applying the saved manifest to this notebook’s environment.`:a?`Restart the kernel to use the updated environment.`:`Review the error details, then try again.`,pending:i,error:o};if(t.state===c.CONNECTING)return{kind:t.phase===`reconnecting`?`connection`:`startup`,phase:t.phase,sandbox:n,...t.phase?{"preparing-environment":{title:`Preparing environment…`,description:`Getting this notebook’s Python environment ready. The first start can take a few minutes.`},"starting-kernel":{title:`Starting kernel…`,description:`The environment is prepared. Waiting for the Python kernel to connect to this notebook.`},reconnecting:{title:`Reconnecting…`,description:`The connection was interrupted. Your notebook and existing outputs stay visible while the kernel reconnects.`}}[t.phase]:{title:`Connecting…`,description:`Waiting for the notebook’s kernel to connect.`},pending:!0,error:null};if(t.state===c.CLOSED){let r=t.code===d.KERNEL_STARTUP_ERROR,i=r&&t.phase===`preparing-environment`;return{kind:r?`startup`:`connection`,phase:t.phase,sandbox:n,title:i?`Sandbox setup failed`:r?`Kernel failed to start`:t.reason,description:i?`The notebook can’t run yet.`:r?`The Python kernel could not start. Check the error details, then try again.`:`The connection to the notebook’s kernel was lost.`,pending:!1,error:r?e(E)??t.reason:null}}return null});function L(e){let t=(0,k.c)(11),n=e===void 0?500:e,i=r(I),a=r(u),o=T(i?.pending?n:0),[s,c]=(0,O.useState)(null),l,d;if(t[0]!==a||t[1]!==o||t[2]!==i?(l=()=>{if(i||!a){c(o?i:null);return}let e=setTimeout(()=>c(null),1500);return()=>clearTimeout(e)},d=[i,a,o],t[0]=a,t[1]=o,t[2]=i,t[3]=l,t[4]=d):(l=t[3],d=t[4]),(0,O.useEffect)(l,d),i){let e;return t[5]!==o||t[6]!==i?(e=o?{...i,ready:!1}:null,t[5]=o,t[6]=i,t[7]=e):e=t[7],e}if(a&&s?.pending&&s.sandbox&&s.kind!==`connection`){let e=s.kind===`sync`?`Environment synced`:`Your notebook is ready`,n;return t[8]!==s||t[9]!==e?(n={...s,pending:!1,ready:!0,title:e,description:`The notebook is ready to run.`,error:null},t[8]=s,t[9]=e,t[10]=n):n=t[10],n}return null}var R=n(null),z=n(e=>{let t=e(I);return{preparationId:e(j)?.operation_id,error:t&&!t.pending?t.error??t.title:null}}),B=n(e=>{let t=e(z),n=e(R);return n&&n.preparationId===t.preparationId&&n.error===t.error?n.expanded:e(I)!==null},(e,t,n)=>{t(R,{...e(z),expanded:n})}),V=m();function H(e){let t=e.ownerDocument.getSelection();return t&&!t.isCollapsed&&t.containsNode(e,!0)}function U(e){let t=(0,k.c)(44),{logs:n,label:r,state:i}=e,a=i===void 0?`running`:i,[o,c]=(0,O.useState)(!1),[l,u]=(0,O.useState)(!0),d=(0,O.useRef)(null),f=(0,O.useRef)(null),m=(0,O.useId)(),h=n.trimEnd().split(/\r?\n/),g=a===`failed`?`text-foreground`:a===`running`?`last:text-foreground`:void 0,v;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(v=e=>{e.key===`Escape`&&(e.preventDefault(),c(!1),f.current?.focus())},t[0]=v):v=t[0],s(d,`keydown`,v);let b;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(b=()=>{d.current&&H(d.current)&&u(!1)},t[1]=b):b=t[1],s(document,`selectionchange`,b);let x,C;if(t[2]!==o||t[3]!==l||t[4]!==n?(x=()=>{let e=d.current;if(!e)return;let t=e.textContent??``;n.startsWith(t)?n.length>t.length&&e.append(document.createTextNode(n.slice(t.length))):e.textContent=n,o&&l&&!H(e)&&(e.scrollTop=e.scrollHeight)},C=[n,o,l],t[2]=o,t[3]=l,t[4]=n,t[5]=x,t[6]=C):(x=t[5],C=t[6]),(0,O.useLayoutEffect)(x,C),!n.trim())return null;let w=o?`bg-muted/40`:`hover:bg-muted/40`,T;t[7]===w?T=t[8]:(T=p(`relative mt-2.5 min-w-0 contain-inline-size rounded text-muted-foreground`,w),t[7]=w,t[8]=T);let E=o&&`flex items-center pr-1`,D;t[9]===E?D=t[10]:(D=p(E),t[9]=E,t[10]=D);let A=`${o?`Collapse`:`Expand`} ${r}`,j=o?`Collapse output`:`Expand output`,M=o&&`items-center justify-between gap-2 text-xs hover:text-foreground`,N;t[11]===M?N=t[12]:(N=p(`flex w-full min-w-0 rounded px-2.5 py-1 text-left focus-visible:outline-2 focus-visible:outline-ring`,M),t[11]=M,t[12]=N);let P;t[13]===o?P=t[14]:(P=()=>{c(!o),u(!0)},t[13]=o,t[14]=P);let F=o?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`span`,{className:`leading-5`,children:`Logs`}),(0,V.jsx)(y,{className:`size-3.5 shrink-0`,"aria-hidden":!0})]}):(0,V.jsx)(`span`,{className:p(`min-w-0 flex-1 font-mono text-[11px] leading-5`,h.length>1&&`[mask-image:linear-gradient(to_bottom,transparent,#000_70%)]`),"aria-hidden":!0,children:h.slice(-3).map((e,t)=>(0,V.jsx)(`span`,{className:p(`block truncate`,g),children:e||`\xA0`},t))}),I;t[15]!==o||t[16]!==m||t[17]!==A||t[18]!==j||t[19]!==N||t[20]!==P||t[21]!==F?(I=(0,V.jsx)(`button`,{ref:f,type:`button`,"aria-label":A,"aria-expanded":o,"aria-controls":m,title:j,className:N,onClick:P,children:F}),t[15]=o,t[16]=m,t[17]=A,t[18]=j,t[19]=N,t[20]=P,t[21]=F,t[22]=I):I=t[22];let L;t[23]!==o||t[24]!==r||t[25]!==n?(L=o&&(0,V.jsx)(S,{value:n,ariaLabel:`Copy ${r}`,tooltip:`Copy output`,className:`size-3.5`,buttonClassName:`size-6 shrink-0 flex items-center justify-center rounded hover:bg-accent focus-visible:outline-2 focus-visible:outline-ring`}),t[23]=o,t[24]=r,t[25]=n,t[26]=L):L=t[26];let R;t[27]!==I||t[28]!==L||t[29]!==D?(R=(0,V.jsxs)(`div`,{className:D,children:[I,L]}),t[27]=I,t[28]=L,t[29]=D,t[30]=R):R=t[30];let z=!o,B;t[31]===Symbol.for(`react.memo_cache_sentinel`)?(B=e=>{let t=e.currentTarget;u(!H(t)&&t.scrollHeight-t.scrollTop-t.clientHeight<12)},t[31]=B):B=t[31];let U;t[32]!==r||t[33]!==m||t[34]!==z?(U=(0,V.jsx)(`pre`,{id:m,ref:d,hidden:z,tabIndex:0,"aria-label":r,className:`max-h-48 overflow-auto overscroll-contain whitespace-pre px-2.5 pb-2.5 font-mono text-[11px] leading-5 scrollbar-thin focus-visible:outline-2 focus-visible:outline-ring`,onScroll:B}),t[32]=r,t[33]=m,t[34]=z,t[35]=U):U=t[35];let W;t[36]!==o||t[37]!==l?(W=o&&!l&&(0,V.jsxs)(`button`,{type:`button`,className:`absolute bottom-2 left-1/2 -translate-x-1/2 flex items-center gap-1 whitespace-nowrap rounded-full border bg-background px-2 py-1 text-xs shadow-xs hover:text-foreground focus-visible:outline-2 focus-visible:outline-ring`,onClick:()=>{let e=d.current;e&&(H(e)&&e.ownerDocument.getSelection()?.removeAllRanges(),e.focus({preventScroll:!0})),u(!0)},children:[(0,V.jsx)(_,{className:`size-3`,"aria-hidden":!0}),`Jump to latest`]}),t[36]=o,t[37]=l,t[38]=W):W=t[38];let G;return t[39]!==R||t[40]!==U||t[41]!==W||t[42]!==T?(G=(0,V.jsxs)(`div`,{className:T,children:[R,U,W]}),t[39]=R,t[40]=U,t[41]=W,t[42]=T,t[43]=G):G=t[43],G}var W=[{phase:`preparing-environment`,titles:{complete:`Environment prepared`,failed:`Environment setup failed`,pending:`Preparing environment`,waiting:`Prepare environment`},descriptions:{complete:`Python and dependencies are available.`,failed:`Setup could not finish.`,pending:`Set up Python and dependencies.`,waiting:`Set up Python and dependencies.`}},{phase:`starting-kernel`,titles:{complete:`Kernel started`,failed:`Kernel failed to start`,pending:`Starting kernel`,waiting:`Start kernel`},descriptions:{complete:`The notebook is ready to run.`,failed:`The kernel could not connect.`,pending:`Connecting to this notebook.`,waiting:`After the environment is ready.`}}];function G(e){let t=(0,k.c)(5),{phase:n,state:i}=e,a=r(j),o=r(f),s=n===`preparing-environment`,c=s?a?.logs.environment??``:o?.phase===n?o.logs:``,l=a?.operation_id,u=s?`environment preparation output`:`kernel startup output`,d;return t[0]!==c||t[1]!==i||t[2]!==l||t[3]!==u?(d=(0,V.jsx)(U,{logs:c,state:i,label:u},l),t[0]=c,t[1]=i,t[2]=l,t[3]=u,t[4]=d):d=t[4],d}function K(e){let t=(0,k.c)(10),{notice:n}=e,r;t[0]===n.title?r=t[1]:(r=(0,V.jsx)(`output`,{className:`sr-only`,children:n.title}),t[0]=n.title,t[1]=r);let i=n.ready?`Your notebook is ready`:`Getting your notebook ready`,a;t[2]===i?a=t[3]:(a=(0,V.jsx)(`h2`,{className:`text-foreground font-heading text-2xl leading-8 tracking-tight font-normal`,children:i}),t[2]=i,t[3]=a);let o=n.ready?`Your environment and kernel are ready.`:n.pending?`Preparing Python and dependencies for this notebook.`:`Review the setup details below to continue.`,s;t[4]===o?s=t[5]:(s=(0,V.jsx)(`p`,{className:`text-muted-foreground mt-3 text-sm leading-6`,children:o}),t[4]=o,t[5]=s);let c;return t[6]!==r||t[7]!==a||t[8]!==s?(c=(0,V.jsxs)(`header`,{children:[r,a,s]}),t[6]=r,t[7]=a,t[8]=s,t[9]=c):c=t[9],c}function q(e){let t=(0,k.c)(3),{notice:n}=e;if(n.ready){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,V.jsx)(v,{className:`size-4 shrink-0 text-(--grass-11)`,"aria-hidden":!0}),t[0]=e):e=t[0],e}if(n.pending){let e;return t[1]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,V.jsx)(b,{className:`size-4 shrink-0 motion-reduce:animate-none`,"aria-hidden":!0}),t[1]=e):e=t[1],e}let r;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,V.jsx)(a,{className:`size-4 shrink-0 text-(--red-11)`,"aria-hidden":!0}),t[2]=r):r=t[2],r}function J(e){let t=(0,k.c)(14),{notice:n,surface:r}=e,i;t[0]!==n||t[1]!==r?(i=r===`notebook`&&(0,V.jsx)(K,{notice:n}),t[0]=n,t[1]=r,t[2]=i):i=t[2];let a=r===`notebook`&&`mt-8`,o;t[3]===a?o=t[4]:(o=p(`space-y-6`,a),t[3]=a,t[4]=o);let s;t[5]!==n||t[6]!==r?(s=W.map((e,t)=>{let{phase:i,titles:a,descriptions:o}=e,s=n.ready||t===0&&n.phase===`starting-kernel`,c=!n.ready&&n.phase===i,l=c&&!n.pending,u=s?`complete`:l?`failed`:c?`pending`:`waiting`;return(0,V.jsxs)(`li`,{"aria-current":c?`step`:void 0,className:`relative flex items-start gap-3`,children:[t===0&&(0,V.jsx)(`span`,{"aria-hidden":!0,className:`absolute left-2 top-6 -bottom-4 border-l border-border`}),(0,V.jsx)(`span`,{className:p(`mt-0.5`,s?`text-(--grass-11)`:`text-muted-foreground`),children:s?(0,V.jsx)(v,{className:`size-4`,"aria-hidden":!0}):c?(0,V.jsx)(q,{notice:n}):(0,V.jsx)(h,{className:`size-4 text-muted-foreground/50`,"aria-hidden":!0})}),(0,V.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,V.jsx)(`div`,{className:p(`text-sm`,l?`text-(--red-11)`:s||c?`text-foreground`:`text-muted-foreground`),children:a[u]}),(0,V.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:o[u]}),r===`sidebar`&&(0,V.jsx)(G,{phase:i,state:l?`failed`:c?`running`:`succeeded`})]})]},i)}),t[5]=n,t[6]=r,t[7]=s):s=t[7];let c;t[8]!==o||t[9]!==s?(c=(0,V.jsx)(`ol`,{className:o,"aria-label":`Notebook startup stages`,children:s}),t[8]=o,t[9]=s,t[10]=c):c=t[10];let l;return t[11]!==i||t[12]!==c?(l=(0,V.jsxs)(V.Fragment,{children:[i,c]}),t[11]=i,t[12]=c,t[13]=l):l=t[13],l}function Y(e){let t=(0,k.c)(2),{error:n}=e,r;return t[0]===n?r=t[1]:(r=(0,V.jsx)(`pre`,{tabIndex:0,"aria-label":`Error details`,className:`mt-3 p-3 rounded border bg-muted/30 text-xs text-muted-foreground whitespace-pre min-w-0 max-w-full max-h-52 overflow-auto`,children:n}),t[0]=n,t[1]=r),r}function X(e){let t=(0,k.c)(23),{notice:n}=e,i=r(A),a=r(F),o=r(P);if(n.pending||n.ready)return null;let s;t[0]===n.description?s=t[1]:(s=(0,V.jsx)(`p`,{className:`mt-2 text-foreground`,children:n.description}),t[0]=n.description,t[1]=s);let c;t[2]===n.error?c=t[3]:(c=n.error&&(0,V.jsx)(Y,{error:n.error}),t[2]=n.error,t[3]=c);let l=!a||i?.manifest==null,u;t[4]===a?u=t[5]:(u=()=>a?.editManifest(),t[4]=a,t[5]=u);let d;t[6]!==l||t[7]!==u?(d=(0,V.jsx)(g,{variant:`outline`,size:`xs`,disabled:l,onClick:u,children:`Edit manifest…`}),t[6]=l,t[7]=u,t[8]=d):d=t[8];let f;t[9]!==a||t[10]!==n.kind||t[11]!==o?(f=n.kind===`sync`&&o.kind===`restart-required`?(0,V.jsx)(Z,{}):(0,V.jsx)(g,{variant:`text`,size:`xs`,disabled:!a,onClick:()=>a?.sync(),children:`Retry sync`}),t[9]=a,t[10]=n.kind,t[11]=o,t[12]=f):f=t[12];let p;t[13]!==d||t[14]!==f?(p=(0,V.jsxs)(`div`,{className:`flex items-center gap-2 mt-3`,children:[d,f]}),t[13]=d,t[14]=f,t[15]=p):p=t[15];let m;t[16]===i?.manifest?m=t[17]:(m=i?.manifest==null&&(0,V.jsx)(`p`,{className:`mt-3 text-xs text-muted-foreground`,children:`A manifest will be available once this new notebook starts.`}),t[16]=i?.manifest,t[17]=m);let h;return t[18]!==s||t[19]!==c||t[20]!==p||t[21]!==m?(h=(0,V.jsxs)(V.Fragment,{children:[s,c,p,m]}),t[18]=s,t[19]=c,t[20]=p,t[21]=m,t[22]=h):h=t[22],h}function Z(){let e=(0,k.c)(2),t=C(),n;return e[0]===t?n=e[1]:(n=(0,V.jsx)(g,{variant:`text`,size:`xs`,onClick:t,children:`Restart Kernel`}),e[0]=t,e[1]=n),n}function Q(e){let t=(0,k.c)(8),{notice:n}=e,r=n.kind===`startup`&&(n.ready||n.phase===`preparing-environment`||n.phase===`starting-kernel`),i;t[0]!==n||t[1]!==r?(i=r?(0,V.jsx)(J,{notice:n,surface:`sidebar`}):(0,V.jsxs)(`div`,{className:`flex items-center gap-2`,role:`status`,children:[(0,V.jsx)(q,{notice:n}),(0,V.jsx)(`h2`,{children:n.title})]}),t[0]=n,t[1]=r,t[2]=i):i=t[2];let a;t[3]===n?a=t[4]:(a=(0,V.jsx)(X,{notice:n}),t[3]=n,t[4]=a);let o;return t[5]!==i||t[6]!==a?(o=(0,V.jsxs)(`div`,{className:`min-w-0 text-sm`,children:[i,a]}),t[5]=i,t[6]=a,t[7]=o):o=t[7],o}function $(e){let t=(0,k.c)(12),{notice:n}=e,r;t[0]===n?r=t[1]:(r=(0,V.jsx)(q,{notice:n}),t[0]=n,t[1]=r);let i;t[2]===n.title?i=t[3]:(i=(0,V.jsx)(`span`,{children:n.title}),t[2]=n.title,t[3]=i);let a;t[4]!==r||t[5]!==i?(a=(0,V.jsxs)(`output`,{className:`flex items-center gap-2 text-xs`,children:[r,i]}),t[4]=r,t[5]=i,t[6]=a):a=t[6];let o;t[7]===n?o=t[8]:(o=(0,V.jsx)(X,{notice:n}),t[7]=n,t[8]=o);let s;return t[9]!==a||t[10]!==o?(s=(0,V.jsxs)(`div`,{className:`mb-5 text-sm`,children:[a,o]}),t[9]=a,t[10]=o,t[11]=s):s=t[11],s}function ee(e){let t=(0,k.c)(9),{notice:n}=e,i=r(M);if(!i&&!n)return null;let a;t[0]===n?a=t[1]:(a=n?(0,V.jsx)($,{notice:n}):(0,V.jsx)(`p`,{className:`text-sm`,children:`Environment synced`}),t[0]=n,t[1]=a);let o=i?.operation_id,s=i?.logs.environment??``,c=i?.status.kind===`running`?`running`:i?.status.kind===`succeeded`?`succeeded`:`failed`,l;t[2]!==o||t[3]!==s||t[4]!==c?(l=(0,V.jsx)(U,{logs:s,state:c,label:`sandbox sync output`},o),t[2]=o,t[3]=s,t[4]=c,t[5]=l):l=t[5];let u;return t[6]!==a||t[7]!==l?(u=(0,V.jsxs)(`div`,{className:`mt-5 min-w-0`,children:[a,l]}),t[6]=a,t[7]=l,t[8]=u):u=t[8],u}function te(){let e=(0,k.c)(29),n=w(),i=r(u),a=r(I),o=r(j),s=r(f),[c,l]=t(B),d;e[0]!==a||e[1]!==o||e[2]!==s?(d=a?.kind===`startup`?{...a,ready:!1}:o||s?{kind:`startup`,sandbox:!0,title:`Notebook started`,description:`The notebook is ready to run.`,pending:!1,ready:!0,error:null}:null,e[0]=a,e[1]=o,e[2]=s,e[3]=d):d=e[3];let m=d,h=`sandbox-details-${n}`,g=!c,_=i?`shrink-0 max-h-[65%] border-b`:`flex-1`,v;e[4]===_?v=e[5]:(v=p(`min-w-0 overflow-auto p-4`,_),e[4]=_,e[5]=v);let y,b;e[6]===l?(y=e[7],b=e[8]):(y=()=>l(!0),b=()=>l(!0),e[6]=l,e[7]=y,e[8]=b);let x;e[9]===a?x=e[10]:(x=a?.kind===`connection`&&(0,V.jsx)($,{notice:{...a,ready:!1}}),e[9]=a,e[10]=x);let S;e[11]===m?S=e[12]:(S=m&&(0,V.jsx)(Q,{notice:m}),e[11]=m,e[12]=S);let C;e[13]!==i||e[14]!==a?(C=i&&(0,V.jsx)(ee,{notice:a?.kind===`sync`?{...a,ready:!1}:null}),e[13]=i,e[14]=a,e[15]=C):C=e[15];let T;e[16]!==i||e[17]!==a?(T=i&&(!a||a.pending)&&(0,V.jsx)(ne,{}),e[16]=i,e[17]=a,e[18]=T):T=e[18];let E;return e[19]!==h||e[20]!==T||e[21]!==g||e[22]!==v||e[23]!==y||e[24]!==b||e[25]!==x||e[26]!==S||e[27]!==C?(E=(0,V.jsxs)(`section`,{id:h,"aria-label":`Sandbox details`,hidden:g,className:v,onPointerDownCapture:y,onFocusCapture:b,children:[x,S,C,T]}),e[19]=h,e[20]=T,e[21]=g,e[22]=v,e[23]=y,e[24]=b,e[25]=x,e[26]=S,e[27]=C,e[28]=E):E=e[28],E}function ne(){let e=(0,k.c)(14),t=r(A),n=r(F),i=r(P).kind===`running`||!n,a;e[0]===n?a=e[1]:(a=()=>n?.sync(),e[0]=n,e[1]=a);let o;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,V.jsx)(x,{className:`size-3`,"aria-hidden":!0}),e[2]=o):o=e[2];let s;e[3]!==i||e[4]!==a?(s=(0,V.jsxs)(g,{variant:`text`,size:`xs`,className:`text-muted-foreground gap-1.5 p-0`,disabled:i,onClick:a,children:[o,`Sync`]}),e[3]=i,e[4]=a,e[5]=s):s=e[5];let c=!n||t?.manifest==null,l;e[6]===n?l=e[7]:(l=()=>n?.editManifest(),e[6]=n,e[7]=l);let u;e[8]!==c||e[9]!==l?(u=(0,V.jsx)(g,{variant:`text`,size:`xs`,className:`text-muted-foreground p-0`,disabled:c,onClick:l,children:`Edit manifest…`}),e[8]=c,e[9]=l,e[10]=u):u=e[10];let d;return e[11]!==s||e[12]!==u?(d=(0,V.jsxs)(`div`,{className:`flex items-center gap-4 mt-5 border-t pt-3`,children:[s,u]}),e[11]=s,e[12]=u,e[13]=d):d=e[13],d}export{B as a,F as c,J as i,A as l,Y as n,L as o,q as r,I as s,te as t,P as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{f as t,l as n}from"./useEvent-Dc9HkKI2.js";import{t as r}from"./react-CUdNIagt.js";import{t as i}from"./compiler-runtime-BQ9S8nyo.js";import{t as a}from"./createReducer-W5dowuCe.js";import{t as o}from"./uuid-k9DpjH68.js";var s=i(),c=e(r(),1);function l(e){let t=(0,s.c)(3),[n,r]=(0,c.useState)(e<=0),i,a;return t[0]===e?(i=t[1],a=t[2]):(i=()=>{if(e<=0){r(!0);return}r(!1);let t=setTimeout(()=>r(!0),e);return()=>clearTimeout(t)},a=[e],t[0]=e,t[1]=i,t[2]=a),(0,c.useLayoutEffect)(i,a),n}var u=t(null),{valueAtom:d,useActions:f}=a(()=>({banners:[]}),{addBanner:(e,t)=>({...e,banners:[...e.banners,{...t,id:o()}]}),removeBanner:(e,t)=>({...e,banners:e.banners.filter(e=>e.id!==t)}),clearBanners:e=>({...e,banners:[]})}),p=()=>n(d);function m(){return f()}function h(){return{restart_required:!1,operations:[]}}function g(e,t){let n=e.operations.find(e=>e.operation_id===t.operation_id),r={...n?.logs};for(let[e,n]of Object.entries(t.logs))r[e]=t.log_mode===`replace`?n:(r[e]??``)+n;let i={operation_id:t.operation_id,action:t.action,status:t.status,packages:t.packages,logs:r,source:t.source},a=e.operations.filter(e=>n&&t.status.kind===`running`||e.status.kind===`running`||e.action===`prepare`&&t.action!==`prepare`),o=a.findIndex(e=>e.operation_id===t.operation_id);return o===-1?a.push(i):a[o]=i,{restart_required:e.restart_required||t.status.kind===`restart-required`||Object.values(t.packages).includes(`restart-required`),operations:a}}function _(e){return e.action===`install`||e.action===`remove`}function v(e){return e.kind===`missing`}function y(e){return e.kind===`environment`}function b(e,t,n){let r={...e.environments,[t]:n},i=Object.values(r).flatMap(e=>e.operations).filter(_),a=n.operations.filter(_),o=e.packageAlert,s=o?.kind===`environment`?i.find(e=>e.operation_id===o.id&&e.source===o.source):void 0,c=e=>e.status.kind!==`succeeded`||r[e.source].restart_required,l=(s?.status.kind===`running`?s:void 0)??a.findLast(e=>e.status.kind===`running`)??i.findLast(e=>e.status.kind===`running`)??s??a.findLast(c)??i.findLast(c);return{...e,environments:r,packageAlert:l?{kind:`environment`,id:l.operation_id,source:l.source}:e.packageAlert?.kind===`missing`?e.packageAlert:null}}var{valueAtom:x,useActions:S}=a(()=>({packageAlert:null,startupLogsAlert:null,environments:{kernel:h(),server:h()}}),{addMissingPackageAlert:(e,t)=>({...e,packageAlert:{id:o(),...t}}),updateEnvironment:(e,t)=>{let n=t.source,r=g(e.environments[n],t);return _(t)?b({...e,packageAlert:{kind:`environment`,id:t.operation_id,source:n}},n,r):{...e,environments:{...e.environments,[n]:r}}},setEnvironment:(e,t)=>b(e,t.source,t.state),clearPackageAlert:(e,t)=>e.packageAlert?.id===t?{...e,packageAlert:null}:e,addStartupLog:(e,t)=>({...e,startupLogsAlert:{content:(e.startupLogsAlert?.content??``)+t.content,status:t.status}}),clearStartupLogsAlert:e=>({...e,startupLogsAlert:null})});function C(e){let t=e.packageAlert;if(t?.kind!==`environment`)return t;let n=e.environments[t.source],r=n.operations.find(e=>e.operation_id===t.id);return r&&_(r)?{...r,...t,restartRequired:n.restart_required}:null}function w(){let e=(0,s.c)(5),t=n(x),r;e[0]===t?r=e[1]:(r=C(t),e[0]=t,e[1]=r);let i;return e[2]!==t.startupLogsAlert||e[3]!==r?(i={packageAlert:r,startupLogsAlert:t.startupLogsAlert},e[2]=t.startupLogsAlert,e[3]=r,e[4]=i):i=e[4],i}export{w as a,m as c,S as i,l,y as n,u as o,v as r,p as s,x as t};
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
/* Copyright 2026 Marimo. All rights reserved. */
|
|
2
|
-
import { useAtom, useAtomValue } from "jotai";
|
|
3
|
-
import { ChevronDownIcon } from "lucide-react";
|
|
4
|
-
import { connectionNoticeAtom } from "@/core/network/connection-notice";
|
|
5
|
-
import { sandboxAtom } from "@/core/packages/sandbox-state";
|
|
6
|
-
import { cn } from "@/utils/cn";
|
|
7
|
-
import type { PanelSection } from "./panel-context";
|
|
8
|
-
import { sandboxDetailsExpandedAtom } from "./sandbox-details-state";
|
|
9
|
-
|
|
10
|
-
export function SandboxToggle({ section }: { section: PanelSection }) {
|
|
11
|
-
const sandbox = useAtomValue(sandboxAtom);
|
|
12
|
-
const notice = useAtomValue(connectionNoticeAtom);
|
|
13
|
-
const [expanded, setExpanded] = useAtom(sandboxDetailsExpandedAtom);
|
|
14
|
-
if (!sandbox?.backend) {
|
|
15
|
-
return null;
|
|
16
|
-
}
|
|
17
|
-
const status = notice ? (notice.pending ? "pending" : "error") : "healthy";
|
|
18
|
-
return (
|
|
19
|
-
<button
|
|
20
|
-
type="button"
|
|
21
|
-
aria-label={`${sandbox.backend} sandbox`}
|
|
22
|
-
aria-expanded={expanded}
|
|
23
|
-
aria-controls={`sandbox-details-${section}`}
|
|
24
|
-
title={notice?.title ?? "Sandbox details"}
|
|
25
|
-
className={cn(
|
|
26
|
-
"flex items-center gap-1.5 rounded px-1.5 py-1 text-xs whitespace-nowrap hover:bg-accent focus-visible:outline-2 focus-visible:outline-ring",
|
|
27
|
-
status === "error" ? "text-(--red-11)" : "text-foreground",
|
|
28
|
-
)}
|
|
29
|
-
onClick={() => setExpanded(!expanded)}
|
|
30
|
-
>
|
|
31
|
-
<output
|
|
32
|
-
aria-label={notice?.title ?? "Sandbox healthy"}
|
|
33
|
-
className={cn(
|
|
34
|
-
"size-1.5 shrink-0 rounded-full",
|
|
35
|
-
status === "error"
|
|
36
|
-
? "bg-(--red-9)"
|
|
37
|
-
: status === "pending"
|
|
38
|
-
? "bg-muted-foreground motion-safe:animate-pulse"
|
|
39
|
-
: "bg-(--grass-9)",
|
|
40
|
-
)}
|
|
41
|
-
/>
|
|
42
|
-
{sandbox.backend} sandbox
|
|
43
|
-
<ChevronDownIcon
|
|
44
|
-
aria-hidden={true}
|
|
45
|
-
className={cn(
|
|
46
|
-
"size-3 shrink-0 text-muted-foreground",
|
|
47
|
-
expanded && "rotate-180",
|
|
48
|
-
)}
|
|
49
|
-
/>
|
|
50
|
-
</button>
|
|
51
|
-
);
|
|
52
|
-
}
|