Files
stack/infra/marimo/home-page-patched.js
kert 31c430388b
Some checks failed
CI / skinny-install (aco) (push) Successful in 52s
CI / skinny-install (api) (push) Successful in 31s
CI / skinny-install (bcda) (push) Successful in 27s
CI / skinny-install (bib) (push) Successful in 27s
CI / skinny-install (bls) (push) Successful in 21s
CI / skinny-install (ccw) (push) Successful in 22s
CI / skinny-install (conf) (push) Successful in 25s
CI / skinny-install (cli) (push) Successful in 48s
CI / skinny-install (cms) (push) Successful in 25s
CI / skinny-install (pfs) (push) Successful in 24s
CI / skinny-install (rex) (push) Successful in 23s
CI / lint-test (push) Successful in 6m1s
Infra CI / notebooks (push) Successful in 6s
Infra CI / zotero (push) Successful in 6s
Infra CI / docs (push) Successful in 13s
Infra CI / api (push) Successful in 9s
Infra CI / mc (push) Successful in 6s
Package Supply Chain / pkg-supply-chain (push) Failing after 27s
Deploy / build-scan-report (push) Successful in 3m59s
refactor: separate notebooks content from server config
Move marimo server config, snippets, and patched assets out of
notebooks/ into infra/marimo/, keeping notebooks/ as pure .py content.

- infra/marimo/marimo.toml: merged authoritative config (was split
  across .marimo.toml and .marimo-config/marimo.toml)
- infra/marimo/snippets/: 10 code templates (was notebooks/snippets/)
- infra/marimo/home-page-patched.js: custom home page (was in notebooks/)
- Deleted duplicate loch.css (already served from assets/css/marimo.css)
- Updated compose.yml volume mounts, Dockerfile, stack.toml path_filter
- 18 layout tests enforce separation going forward

Closes #214, closes #215, closes #216, closes #217, closes #218
2026-03-24 21:43:04 -04:00

5 lines
21 KiB
JavaScript

import{s as X}from"./chunk-LvLJmgfZ.js";import{d as xe,l as ee}from"./useEvent-O0nX5vok.js";import{t as ge}from"./react-Bj1aDYRI.js";import{Tt as ye,Yn as je,Zn as be,ir as ve,qn as te,rr as we,ti as re,yi as ke,yn as ae}from"./cells-fq1RMGX_.js";import"./react-dom-CSu739Rf.js";import{t as oe}from"./compiler-runtime-B3qBwwSJ.js";import{c as Ne,h as _e}from"./useEventListener-Dy81QR4n.js";import{n as A}from"./constants-Rz_lD4HK.js";import{t as Se}from"./ErrorBoundary-Ba0LbbH4.js";import{t as Ce}from"./jsx-runtime-icT_Ltz2.js";import{t as $}from"./button-Ej3vmCIF.js";import{t as ze}from"./cn-BoaCR37F.js";import"./dist-B_cxg-E4.js";import"./cjs-BU2qXMKx.js";import"./main-DrBRErTM.js";import"./useNonce-BtW-rR_1.js";import{r as E}from"./requests-Bgjtqo_1.js";import{t as H}from"./createLucideIcon-Cm-Z7dYr.js";import{o as Ie,t as Me}from"./tree-Ch2-GuhG.js";import{t as De}from"./chart-no-axes-column-DV8gdCvH.js";import{r as Pe}from"./x-BI1M8X_v.js";import{t as Re}from"./chevron-right-D0GQBpTb.js";import{f as B,p as Te,r as Oe,t as se}from"./maps-OKerBHH8.js";import{t as Ae}from"./circle-play-DYGULlKZ.js";import{a as We,p as Fe,r as Ue,t as Le}from"./dropdown-menu-DdPu5Kfu.js";import{r as $e,t as Ee}from"./file-icons-CWLHDa1J.js";import{t as He}from"./file-DzHkbIdO.js";import{t as Ye}from"./github-BVtI-3F1.js";import{n as qe,r as Ve,t as Be}from"./youtube-DE-Ej6FR.js";import{t as Je}from"./link-Cf10mh3t.js";import{t as J}from"./spinner-C5JoisA7.js";import{n as Ge,r as Qe,t as Ze}from"./app-config-button-rDu-lCIB.js";import{t as Ke}from"./refresh-ccw-DLpfIr8v.js";import{dt as Xe,r as et}from"./input-CUwqpKjd.js";import"./dist-BNC_tnlW.js";import"./dist-CXLJUPFl.js";import"./dist-CQqv2gQL.js";import"./dist-8UD0A5sU.js";import"./dist-apDpadc4.js";import{t as tt}from"./use-toast-Hc8CXlvz.js";import{n as ie}from"./paths-D2lG83Oh.js";import{c as le,n as rt,o as at,t as ot}from"./session-BrEm7qNv.js";import"./Combination-Cs9nbinQ.js";import{t as st}from"./tooltip-D9723Brr.js";import"./purify.es-BBn8CPhf.js";import{i as it}from"./dates-CHaNfieI.js";import{o as lt}from"./alert-dialog-9WfvUF7e.js";import{t as nt}from"./context-CIAP2NOh.js";import"./popover-BPGG2gPG.js";import{n as ct}from"./ImperativeModal-qEtcJ95s.js";import{r as mt}from"./errors-Bfogio62.js";import{t as ne}from"./error-banner-BRG6IPhC.js";import{n as G,t as dt}from"./useAsyncData-D-4ifFXh.js";import{t as ht}from"./label-TNNaT1M9.js";import{t as Q}from"./icons-CrUXojcA.js";import{t as pt}from"./links-CIQwYQ48.js";import"./Inputs-D5kI9GwB.js";import{t as ft}from"./useInterval-BJucVdV-.js";var ut=H("book-text",[["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}],["path",{d:"M8 11h8",key:"vwpz6n"}],["path",{d:"M8 7h6",key:"1f0q6e"}]]),xt=H("graduation-cap",[["path",{d:"M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z",key:"j76jl0"}],["path",{d:"M22 10v6",key:"1lu8f3"}],["path",{d:"M6 12.5V16a6 3 0 0 0 12 0v-3.5",key:"1r8lef"}]]),gt=H("orbit",[["path",{d:"M20.341 6.484A10 10 0 0 1 10.266 21.85",key:"1enhxb"}],["path",{d:"M3.659 17.516A10 10 0 0 1 13.74 2.152",key:"1crzgf"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["circle",{cx:"19",cy:"5",r:"2",key:"mhkx31"}],["circle",{cx:"5",cy:"19",r:"2",key:"v8kfzx"}]]),yt=H("panels-top-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M9 21V9",key:"1oto5p"}]]),T=X(ge(),1),Z=oe(),a=X(Ce(),1),jt={intro:["Introduction",Ie,"Get started with marimo basics"],dataflow:["Dataflow",ve,"Learn how cells interact with each other"],ui:["UI Elements",yt,"Create interactive UI components"],markdown:["Markdown",te,"Format text with parameterized markdown"],plots:["Plots",De,"Create interactive visualizations"],sql:["SQL",je,"Query databases directly in marimo"],layout:["Layout",Ve,"Customize the layout of your cells' output"],fileformat:["File format",He,"Understand marimo's pure-Python file format"],"for-jupyter-users":["For Jupyter users",gt,"Transiting from Jupyter to marimo"],"markdown-format":["Markdown format",Q,"Using marimo to edit markdown files"]};const bt=()=>{let e=(0,Z.c)(6),{openTutorial:t}=E(),r;e[0]===Symbol.for("react.memo_cache_sentinel")?(r=(0,a.jsx)(xt,{className:"w-4 h-4 mr-2"}),e[0]=r):r=e[0];let s;e[1]===Symbol.for("react.memo_cache_sentinel")?(s=(0,a.jsx)(Fe,{asChild:!0,children:(0,a.jsxs)($,{"data-testid":"open-tutorial-button",size:"xs",variant:"outline",children:[r,"Tutorials",(0,a.jsx)(Oe,{className:"w-3 h-3 ml-1"})]})}),e[1]=s):s=e[1];let o;e[2]===t?o=e[3]:(o=Ne.entries(jt).map(i=>{let[m,d]=i,[c,h,p]=d;return(0,a.jsxs)(We,{onSelect:async()=>{let n=await t({tutorialId:m});n&&pt(n.path)},children:[(0,a.jsx)(h,{strokeWidth:1.5,className:"w-4 h-4 mr-3 self-start mt-1.5 text-muted-foreground"}),(0,a.jsx)("div",{className:"flex items-center",children:(0,a.jsxs)("div",{className:"flex flex-col",children:[(0,a.jsx)("span",{children:c}),(0,a.jsx)("span",{className:"text-xs text-muted-foreground pr-1",children:p})]})})]},m)}),e[2]=t,e[3]=o);let l;return e[4]===o?l=e[5]:(l=(0,a.jsxs)(Le,{children:[s,(0,a.jsx)(Ue,{side:"bottom",align:"end",className:"print:hidden",children:o})]}),e[4]=o,e[5]=l),l};var vt=[];const wt=()=>{let e=(0,Z.c)(2),t;e[0]===Symbol.for("react.memo_cache_sentinel")?(t=(0,a.jsx)(Y,{Icon:Je,children:"Resources"}),e[0]=t):t=e[0];let r;return e[1]===Symbol.for("react.memo_cache_sentinel")?(r=(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[t,(0,a.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3",children:vt.map(kt)})]}),e[1]=r):r=e[1],r},Y=e=>{let t=(0,Z.c)(8),{Icon:r,control:s,children:o}=e,l;t[0]===r?l=t[1]:(l=(0,a.jsx)(r,{className:"h-5 w-5"}),t[0]=r,t[1]=l);let i;t[2]!==o||t[3]!==l?(i=(0,a.jsxs)("h2",{className:"flex items-center gap-2 text-xl font-semibold text-muted-foreground select-none",children:[l,o]}),t[2]=o,t[3]=l,t[4]=i):i=t[4];let m;return t[5]!==s||t[6]!==i?(m=(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[i,s]}),t[5]=s,t[6]=i,t[7]=m):m=t[7],m};function kt(e){return(0,a.jsxs)("a",{href:e.url,target:"_blank",className:"flex items-start gap-3 py-3 px-3 rounded-lg border hover:bg-accent/20 transition-colors shadow-xs",children:[(0,a.jsx)(e.icon,{className:"w-5 h-5 mt-1.5 text-primary"}),(0,a.jsxs)("div",{children:[(0,a.jsx)("h3",{className:"font-medium",children:e.title}),(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:e.description})]})]},e.title)}const ce=T.createContext({runningNotebooks:new Map,setRunningNotebooks:_e.NOOP}),me=T.createContext(""),Nt=re("marimo:home:include-markdown",!1,ae,{getOnInit:!0}),de=re("marimo:home:expanded-folders",{},ae,{getOnInit:!0});var P=oe();function he(e){return`${ot()}-${encodeURIComponent(e)}`}var _t=()=>{let e=(0,P.c)(56),[t,r]=(0,T.useState)(0),{getRecentFiles:s,getRunningNotebooks:o}=E(),l;e[0]===s?l=e[1]:(l=()=>s(),e[0]=s,e[1]=l);let i;e[2]===Symbol.for("react.memo_cache_sentinel")?(i=[],e[2]=i):i=e[2];let m=G(l,i),d,c;e[3]===Symbol.for("react.memo_cache_sentinel")?(d=()=>{r(Tt)},c={delayMs:1e4,whenVisible:!0},e[3]=d,e[4]=c):(d=e[3],c=e[4]),ft(d,c);let h;e[5]===o?h=e[6]:(h=async()=>{let O=await o();return se.keyBy(O.files,Ot)},e[5]=o,e[6]=h);let p;e[7]===t?p=e[8]:(p=[t],e[7]=t,e[8]=p);let n=G(h,p),f,x,u,g,w,y,b,v,k,N,_,C,S;if(e[9]!==m||e[10]!==n){k=Symbol.for("react.early_return_sentinel");e:{let O=dt(m,n);if(O.error)throw O.error;let K=O.data;if(!K){let L;e[24]===Symbol.for("react.memo_cache_sentinel")?(L=(0,a.jsx)(J,{centered:!0,size:"xlarge"}),e[24]=L):L=e[24],k=L;break e}let[ue,q]=K;g=ue,u=T.Suspense,x=ce,b={runningNotebooks:q,setRunningNotebooks:n.setData};let F,U;e[25]===Symbol.for("react.memo_cache_sentinel")?(F=(0,a.jsx)(bt,{}),U=(0,a.jsx)(Ze,{showAppConfig:!1}),e[25]=F,e[26]=U):(F=e[25],U=e[26]);let V=`This will shutdown the notebook server and terminate all running notebooks (${q.size}). You'll lose all data that's in memory.`;e[27]===V?v=e[28]:(v=(0,a.jsxs)("div",{className:"absolute top-3 right-5 flex gap-3 z-50",children:[F,U,(0,a.jsx)(Ge,{description:V})]}),e[27]=V,e[28]=v),C="flex flex-col gap-6 max-w-6xl container pt-5 pb-20 z-10",e[29]===Symbol.for("react.memo_cache_sentinel")?(S=(0,a.jsx)("img",{src:"logo.png",alt:"Stack",className:"w-48 mb-2"}),w=(0,a.jsx)(Pt,{}),y=(0,a.jsx)(wt,{}),e[29]=w,e[30]=y,e[31]=S):(w=e[29],y=e[30],S=e[31]),f=pe,e[32]===Symbol.for("react.memo_cache_sentinel")?(N=(0,a.jsx)(Y,{Icon:Ae,children:"Running notebooks"}),e[32]=N):N=e[32],_=[...q.values()]}e[9]=m,e[10]=n,e[11]=f,e[12]=x,e[13]=u,e[14]=g,e[15]=w,e[16]=y,e[17]=b,e[18]=v,e[19]=k,e[20]=N,e[21]=_,e[22]=C,e[23]=S}else f=e[11],x=e[12],u=e[13],g=e[14],w=e[15],y=e[16],b=e[17],v=e[18],k=e[19],N=e[20],_=e[21],C=e[22],S=e[23];if(k!==Symbol.for("react.early_return_sentinel"))return k;let z;e[33]!==f||e[34]!==N||e[35]!==_?(z=(0,a.jsx)(f,{header:N,files:_}),e[33]=f,e[34]=N,e[35]=_,e[36]=z):z=e[36];let M;e[37]===Symbol.for("react.memo_cache_sentinel")?(M=(0,a.jsx)(Y,{Icon:be,children:"Recent notebooks"}),e[37]=M):M=e[37];let I;e[38]===g.files?I=e[39]:(I=(0,a.jsx)(pe,{header:M,files:g.files}),e[38]=g.files,e[39]=I);let R;e[40]===Symbol.for("react.memo_cache_sentinel")?(R=(0,a.jsx)(Se,{children:(0,a.jsx)(St,{})}),e[40]=R):R=e[40];let j;e[41]!==w||e[42]!==y||e[43]!==z||e[44]!==I||e[45]!==C||e[46]!==S?(j=(0,a.jsxs)("div",{className:C,children:[S,w,y,z,I,R]}),e[41]=w,e[42]=y,e[43]=z,e[44]=I,e[45]=C,e[46]=S,e[47]=j):j=e[47];let D;e[48]!==x||e[49]!==b||e[50]!==v||e[51]!==j?(D=(0,a.jsxs)(x,{value:b,children:[v,j]}),e[48]=x,e[49]=b,e[50]=v,e[51]=j,e[52]=D):D=e[52];let W;return e[53]!==u||e[54]!==D?(W=(0,a.jsx)(u,{children:D}),e[53]=u,e[54]=D,e[55]=W):W=e[55],W},St=()=>{let e=(0,P.c)(48),{getWorkspaceFiles:t}=E(),[r,s]=ee(Nt),[o,l]=(0,T.useState)(""),i;e[0]!==t||e[1]!==r?(i=()=>t({includeMarkdown:r}),e[0]=t,e[1]=r,e[2]=i):i=e[2];let m;e[3]===r?m=e[4]:(m=[r],e[3]=r,e[4]=m);let{isPending:d,data:c,error:h,isFetching:p,refetch:n}=G(i,m);if(d){let j;return e[5]===Symbol.for("react.memo_cache_sentinel")?(j=(0,a.jsx)(J,{centered:!0,size:"xlarge",className:"mt-6"}),e[5]=j):j=e[5],j}if(h){let j;e[6]===h?j=e[7]:(j=mt(h),e[6]=h,e[7]=j);let D;return e[8]===j?D=e[9]:(D=(0,a.jsx)(ne,{kind:"danger",className:"rounded p-4",children:j}),e[8]=j,e[9]=D),D}let f;e[10]!==c.fileCount||e[11]!==c.hasMore?(f=c.hasMore&&(0,a.jsxs)(ne,{kind:"warn",className:"rounded p-4",children:["Showing first ",c.fileCount," files. Your workspace has more files."]}),e[10]=c.fileCount,e[11]=c.hasMore,e[12]=f):f=e[12];let x,u;e[13]===Symbol.for("react.memo_cache_sentinel")?(x=(0,a.jsx)(Xe,{size:13}),u=j=>l(j.target.value),e[13]=x,e[14]=u):(x=e[13],u=e[14]);let g;e[15]===o?g=e[16]:(g=(0,a.jsx)(et,{id:"search",value:o,icon:x,onChange:u,placeholder:"Search",className:"mb-0 border-border"}),e[15]=o,e[16]=g);let w;e[17]===Symbol.for("react.memo_cache_sentinel")?(w=(0,a.jsx)(Ct,{}),e[17]=w):w=e[17];let y;e[18]===s?y=e[19]:(y=j=>s(!!j),e[18]=s,e[19]=y);let b;e[20]!==r||e[21]!==y?(b=(0,a.jsx)(ye,{"data-testid":"include-markdown-checkbox",id:"include-markdown",checked:r,onCheckedChange:y}),e[20]=r,e[21]=y,e[22]=b):b=e[22];let v;e[23]===Symbol.for("react.memo_cache_sentinel")?(v=(0,a.jsx)(ht,{htmlFor:"include-markdown",children:"Include markdown"}),e[23]=v):v=e[23];let k;e[24]!==g||e[25]!==b?(k=(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[g,w,b,v]}),e[24]=g,e[25]=b,e[26]=k):k=e[26];let N;e[27]===n?N=e[28]:(N=()=>n(),e[27]=n,e[28]=N);let _;e[29]===Symbol.for("react.memo_cache_sentinel")?(_=(0,a.jsx)(Ke,{className:"w-4 h-4"}),e[29]=_):_=e[29];let C;e[30]===N?C=e[31]:(C=(0,a.jsx)($,{variant:"text",size:"icon",className:"w-4 h-4 ml-1 p-0 opacity-70 hover:opacity-100",onClick:N,"aria-label":"Refresh workspace",children:_}),e[30]=N,e[31]=C);let S;e[32]===p?S=e[33]:(S=p&&(0,a.jsx)(J,{size:"small"}),e[32]=p,e[33]=S);let z;e[34]!==k||e[35]!==C||e[36]!==S?(z=(0,a.jsxs)(Y,{Icon:ut,control:k,children:["Workspace",C,S]}),e[34]=k,e[35]=C,e[36]=S,e[37]=z):z=e[37];let M;e[38]!==o||e[39]!==c.files?(M=(0,a.jsx)("div",{className:"flex flex-col divide-y divide-(--slate-3) border rounded overflow-hidden max-h-192 overflow-y-auto shadow-sm bg-background",children:(0,a.jsx)(zt,{searchText:o,files:c.files})}),e[38]=o,e[39]=c.files,e[40]=M):M=e[40];let I;e[41]!==z||e[42]!==M||e[43]!==f?(I=(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[f,z,M]}),e[41]=z,e[42]=M,e[43]=f,e[44]=I):I=e[44];let R;return e[45]!==I||e[46]!==c.root?(R=(0,a.jsx)(me,{value:c.root,children:I}),e[45]=I,e[46]=c.root,e[47]=R):R=e[47],R},Ct=()=>{let e=(0,P.c)(5),t=xe(de),r;e[0]===t?r=e[1]:(r=()=>{t({})},e[0]=t,e[1]=r);let s;e[2]===Symbol.for("react.memo_cache_sentinel")?(s=(0,a.jsx)(Te,{className:"w-4 h-4 mr-1"}),e[2]=s):s=e[2];let o;return e[3]===r?o=e[4]:(o=(0,a.jsxs)($,{variant:"text",size:"sm",className:"h-fit hidden sm:flex",onClick:r,children:[s,"Collapse all"]}),e[3]=r,e[4]=o),o},zt=e=>{let t=(0,P.c)(12),{files:r,searchText:s}=e,[o,l]=ee(de),i=Object.keys(o).length===0,m=(0,T.useRef)(void 0),d,c;if(t[0]===i?(d=t[1],c=t[2]):(d=()=>{var n;i&&((n=m.current)==null||n.closeAll())},c=[i],t[0]=i,t[1]=d,t[2]=c),(0,T.useEffect)(d,c),r.length===0){let n;return t[3]===Symbol.for("react.memo_cache_sentinel")?(n=(0,a.jsx)("div",{className:"flex flex-col px-5 py-10 items-center justify-center",children:(0,a.jsx)("p",{className:"text-center text-muted-foreground",children:"No files in this workspace"})}),t[3]=n):n=t[3],n}let h;t[4]!==o||t[5]!==l?(h=async n=>{let f=o[n]??!1;l({...o,[n]:!f})},t[4]=o,t[5]=l,t[6]=h):h=t[6];let p;return t[7]!==r||t[8]!==o||t[9]!==s||t[10]!==h?(p=(0,a.jsx)(Me,{ref:m,width:"100%",height:500,searchTerm:s,className:"h-full",idAccessor:At,data:r,openByDefault:!1,initialOpenState:o,onToggle:h,padding:5,rowHeight:35,indent:15,overscanCount:1e3,renderCursor:Wt,disableDrop:!0,disableDrag:!0,disableEdit:!0,disableMultiSelection:!0,children:It}),t[7]=r,t[8]=o,t[9]=s,t[10]=h,t[11]=p):p=t[11],p},It=e=>{let t=(0,P.c)(19),{node:r,style:s}=e,o=Ee[r.data.isDirectory?"directory":$e(r.data.name)],l;t[0]===o?l=t[1]:(l=(0,a.jsx)(o,{className:"w-5 h-5 shrink-0",strokeWidth:1.5}),t[0]=o,t[1]=l);let i=l,m=(0,T.use)(me),d;t[2]!==i||t[3]!==r.data.isDirectory||t[4]!==r.data.name||t[5]!==r.data.path||t[6]!==m?(d=()=>{if(r.data.isDirectory)return(0,a.jsxs)("span",{className:"flex items-center pl-1 cursor-pointer hover:bg-accent/50 hover:text-accent-foreground rounded-l flex-1 overflow-hidden h-full pr-3 gap-2",children:[i,r.data.name]});let u=r.data.path.startsWith(m)&&ie.isAbsolute(r.data.path)?ie.rest(r.data.path,m):r.data.path,g=u.endsWith(".md")||u.endsWith(".qmd");return(0,a.jsxs)("a",{className:"flex items-center pl-1 cursor-pointer hover:bg-accent/50 hover:text-accent-foreground rounded-l flex-1 overflow-hidden h-full pr-3 gap-2",href:le(`?file=${encodeURIComponent(u)}`).toString(),target:he(u),children:[i,(0,a.jsxs)("span",{className:"flex-1 overflow-hidden text-ellipsis",children:[r.data.name,g&&(0,a.jsx)(Q,{className:"ml-2 inline opacity-80"})]}),(0,a.jsx)(fe,{filePath:u}),(0,a.jsx)(B,{size:20,className:"group-hover:opacity-100 opacity-0 text-primary"})]})},t[2]=i,t[3]=r.data.isDirectory,t[4]=r.data.name,t[5]=r.data.path,t[6]=m,t[7]=d):d=t[7];let c=d,h;t[8]===Symbol.for("react.memo_cache_sentinel")?(h=ze("flex items-center cursor-pointer ml-1 text-muted-foreground whitespace-nowrap group h-full"),t[8]=h):h=t[8];let p,n;t[9]===r?(p=t[10],n=t[11]):(p=u=>{u.stopPropagation(),r.data.isDirectory&&r.toggle()},n=(0,a.jsx)(Mt,{node:r}),t[9]=r,t[10]=p,t[11]=n);let f;t[12]===c?f=t[13]:(f=c(),t[12]=c,t[13]=f);let x;return t[14]!==s||t[15]!==p||t[16]!==n||t[17]!==f?(x=(0,a.jsxs)("div",{style:s,className:h,onClick:p,children:[n,f]}),t[14]=s,t[15]=p,t[16]=n,t[17]=f,t[18]=x):x=t[18],x},Mt=e=>{let t=(0,P.c)(3),{node:r}=e;if(!r.data.isDirectory){let o;return t[0]===Symbol.for("react.memo_cache_sentinel")?(o=(0,a.jsx)("span",{className:"w-5 h-5 shrink-0"}),t[0]=o):o=t[0],o}let s;return t[1]===r.isOpen?s=t[2]:(s=r.isOpen?(0,a.jsx)(Pe,{className:"w-5 h-5 shrink-0"}):(0,a.jsx)(Re,{className:"w-5 h-5 shrink-0"}),t[1]=r.isOpen,t[2]=s),s},pe=e=>{let t=(0,P.c)(7),{header:r,files:s}=e;if(s.length===0)return null;let o;t[0]===s?o=t[1]:(o=s.map(Ft),t[0]=s,t[1]=o);let l;t[2]===o?l=t[3]:(l=(0,a.jsx)("div",{className:"flex flex-col divide-y divide-(--slate-3) border rounded overflow-hidden max-h-192 overflow-y-auto shadow-sm bg-background",children:o}),t[2]=o,t[3]=l);let i;return t[4]!==r||t[5]!==l?(i=(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[r,l]}),t[4]=r,t[5]=l,t[6]=i):i=t[6],i},Dt=e=>{let t=(0,P.c)(41),{file:r}=e,{locale:s}=nt(),o;t[0]===r.path?o=t[1]:(o=rt(r.path),t[0]=r.path,t[1]=o);let l=o,i,m,d,c;if(t[2]!==r.initializationId||t[3]!==r.path||t[4]!==l){let N=le(l?`?file=${encodeURIComponent(r.initializationId??r.path)}&session_id=${r.path}`:`?file=${encodeURIComponent(r.path)}`),_;t[9]===r.path?_=t[10]:(_=r.path.endsWith(".md"),t[9]=r.path,t[10]=_),i=_,m="py-1.5 px-4 hover:bg-(--blue-2) hover:text-primary transition-all duration-300 cursor-pointer group relative flex gap-4 items-center",d=r.path,c=N.toString(),t[2]=r.initializationId,t[3]=r.path,t[4]=l,t[5]=i,t[6]=m,t[7]=d,t[8]=c}else i=t[5],m=t[6],d=t[7],c=t[8];let h=r.initializationId||r.path,p;t[11]===h?p=t[12]:(p=he(h),t[11]=h,t[12]=p);let n;t[13]===i?n=t[14]:(n=i&&(0,a.jsx)("span",{className:"opacity-80",children:(0,a.jsx)(Q,{})}),t[13]=i,t[14]=n);let f;t[15]!==r.name||t[16]!==n?(f=(0,a.jsxs)("span",{className:"flex items-center gap-2",children:[r.name,n]}),t[15]=r.name,t[16]=n,t[17]=f):f=t[17];let x;t[18]===r.path?x=t[19]:(x=(0,a.jsx)("p",{title:r.path,className:"text-sm text-muted-foreground overflow-hidden whitespace-nowrap text-ellipsis",children:r.path}),t[18]=r.path,t[19]=x);let u;t[20]!==f||t[21]!==x?(u=(0,a.jsxs)("div",{className:"flex flex-col justify-between flex-1",children:[f,x]}),t[20]=f,t[21]=x,t[22]=u):u=t[22];let g;t[23]===r.path?g=t[24]:(g=(0,a.jsx)("div",{children:(0,a.jsx)(fe,{filePath:r.path})}),t[23]=r.path,t[24]=g);let w;t[25]===Symbol.for("react.memo_cache_sentinel")?(w=(0,a.jsx)(B,{size:20,className:"group-hover:opacity-100 opacity-0 transition-all duration-300 text-primary"}),t[25]=w):w=t[25];let y;t[26]===g?y=t[27]:(y=(0,a.jsxs)("div",{className:"flex gap-3 items-center",children:[g,w]}),t[26]=g,t[27]=y);let b;t[28]!==r.lastModified||t[29]!==s?(b=!!r.lastModified&&(0,a.jsx)("div",{className:"text-xs text-muted-foreground opacity-80",children:it(r.lastModified*1e3,s)}),t[28]=r.lastModified,t[29]=s,t[30]=b):b=t[30];let v;t[31]!==y||t[32]!==b?(v=(0,a.jsxs)("div",{className:"flex flex-col gap-1 items-end",children:[y,b]}),t[31]=y,t[32]=b,t[33]=v):v=t[33];let k;return t[34]!==u||t[35]!==v||t[36]!==m||t[37]!==d||t[38]!==c||t[39]!==p?(k=(0,a.jsxs)("a",{className:m,href:c,target:p,children:[u,v]},d),t[34]=u,t[35]=v,t[36]=m,t[37]=d,t[38]=c,t[39]=p,t[40]=k):k=t[40],k},fe=e=>{let t=(0,P.c)(10),{filePath:r}=e,{openConfirm:s,closeModal:o}=ct(),{shutdownSession:l}=E(),{runningNotebooks:i,setRunningNotebooks:m}=(0,T.use)(ce);if(!i.has(r))return null;let d;t[0]!==o||t[1]!==r||t[2]!==s||t[3]!==i||t[4]!==m||t[5]!==l?(d=p=>{p.stopPropagation(),p.preventDefault(),s({title:"Shutdown",description:"This will terminate the Python kernel. You'll lose all data that's in memory.",variant:"destructive",confirmAction:(0,a.jsx)(lt,{onClick:()=>{let n=i.get(r);ke(n==null?void 0:n.sessionId),l({sessionId:n.sessionId}).then(f=>{m(se.keyBy(f.files,Ut))}),o(),tt({description:"Notebook has been shutdown."})},"aria-label":"Confirm Shutdown",children:"Shutdown"})})},t[0]=o,t[1]=r,t[2]=s,t[3]=i,t[4]=m,t[5]=l,t[6]=d):d=t[6];let c;t[7]===Symbol.for("react.memo_cache_sentinel")?(c=(0,a.jsx)(Qe,{size:14}),t[7]=c):c=t[7];let h;return t[8]===d?h=t[9]:(h=(0,a.jsx)(st,{content:"Shutdown",children:(0,a.jsx)($,{size:"icon",variant:"outline",className:"opacity-80 hover:opacity-100 hover:bg-accent text-destructive border-destructive hover:border-destructive hover:text-destructive bg-background hover:bg-(--red-1)",onClick:d,children:c})}),t[8]=d,t[9]=h),h},Pt=()=>{let e=(0,P.c)(3),t;e[0]===Symbol.for("react.memo_cache_sentinel")?(t=at(),e[0]=t):t=e[0];let r=t,s;e[1]===Symbol.for("react.memo_cache_sentinel")?(s=(0,a.jsx)("h2",{className:"text-lg font-semibold",children:"Create a new notebook"}),e[1]=s):s=e[1];let o;return e[2]===Symbol.for("react.memo_cache_sentinel")?(o=(0,a.jsxs)("a",{className:`relative rounded-lg p-6 group
text-primary hover:bg-(--blue-2) shadow-md-solid shadow-accent border bg-(--blue-1)
transition-all duration-300 cursor-pointer
`,href:r,target:"_blank",rel:"noreferrer",children:[s,(0,a.jsx)("div",{className:"group-hover:opacity-100 opacity-0 absolute right-5 top-0 bottom-0 rounded-lg flex items-center justify-center transition-all duration-300",children:(0,a.jsx)(B,{size:24})})]}),e[2]=o):o=e[2],o},Rt=_t;function Tt(e){return e+1}function Ot(e){return e.path}function At(e){return e.path}function Wt(){return null}function Ft(e){return(0,a.jsx)(Dt,{file:e},e.path)}function Ut(e){return e.path}export{Rt as default};