@marimo-team/frontend 0.23.17-dev7 → 0.23.17-dev9
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/{add-connection-dialog-BZaJAQCM.js → add-connection-dialog-CAgdRfMX.js} +32 -32
- package/dist/assets/{cell-editor-OC7h_nZ3.js → cell-editor-D9Cta8Cu.js} +1 -1
- package/dist/assets/{command-palette-Gv6eCNJQ.js → command-palette-Bs9rYo1j.js} +1 -1
- package/dist/assets/components-Cfpwf2kg.js +1 -0
- package/dist/assets/{edit-page-D3D1nnC5.js → edit-page-dDKqRh-H.js} +4 -4
- package/dist/assets/file-explorer-panel-C7dEqvWb.js +37 -0
- package/dist/assets/{index-BTVjfrRP.js → index-DkWLOXih.js} +2 -2
- package/dist/assets/{layout-yfmf2ZBx.js → layout-CKtzwJnB.js} +2 -2
- package/dist/assets/{panels-B0w23XJS.js → panels-CHPhDL1t.js} +1 -1
- package/dist/assets/{reveal-component-BjgfnO81.js → reveal-component-BIAAv5AD.js} +1 -1
- package/dist/assets/{run-page-DDty5GvQ.js → run-page-DryC_HLt.js} +1 -1
- package/dist/assets/{scratchpad-panel-DJkO5OrI.js → scratchpad-panel-DrMScXy1.js} +1 -1
- package/dist/assets/{session-panel-aMoQPTCB.js → session-panel-CrKpK6L8.js} +1 -1
- package/dist/assets/{skeleton-CPuDx7yn.js → skeleton-BF2YAlLu.js} +1 -1
- package/dist/assets/{useNotebookActions-D0VcNpNG.js → useNotebookActions-0mLeYUwn.js} +1 -1
- package/dist/index.html +1 -1
- package/package.json +1 -1
- package/src/components/databases/icons/huggingface.svg +8 -0
- package/src/components/editor/connections/storage/__tests__/__snapshots__/as-code.test.ts.snap +14 -0
- package/src/components/editor/connections/storage/__tests__/as-code.test.ts +20 -0
- package/src/components/editor/connections/storage/add-storage-form.tsx +10 -0
- package/src/components/editor/connections/storage/as-code.ts +19 -1
- package/src/components/editor/connections/storage/schemas.ts +19 -0
- package/src/components/storage/__tests__/storage-snippets.test.ts +88 -0
- package/src/components/storage/components.tsx +2 -0
- package/src/components/storage/storage-snippets.ts +58 -0
- package/src/core/storage/types.ts +1 -0
- package/dist/assets/components-K_Mi0vdC.js +0 -1
- package/dist/assets/file-explorer-panel-4h-BKKaM.js +0 -26
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import{s as Je}from"./chunk-LvLJmgfZ.js";import{i as Et,l as Fe,n as ae,p as Ye,u as je}from"./useEvent-D91BmmQi.js";import{t as At}from"./react-Bj1aDYRI.js";import{E as Ht,Hr as qt,Kn as Kt,Qi as Ut,na as Wt}from"./cells-DLYs3NiJ.js";import"./react-dom-CSu739Rf.js";import{t as oe}from"./compiler-runtime-B3qBwwSJ.js";import{g as Te}from"./useEventListener-C0195JsF.js";import{t as Gt}from"./invariant-CkiqGLcK.js";import{g as Jt,p as Qe}from"./utils-BWBBpCkT.js";import{N as be,r as Yt}from"./config-DAL-jiRM.js";import{t as le}from"./cn-DYvqRARy.js";import{t as Qt}from"./jsx-runtime-Blw4afVn.js";import"./fullscreen-CTDqNQr6.js";import{r as Xt}from"./config-BJVx3eBW.js";import{o as Zt}from"./alert-dialog-Bb8Lz8ko.js";import"./popover-Bcz1Zikb.js";import{a as Q,c as ue,p as ea,r as ta,t as aa}from"./dropdown-menu-dHmZR8bI.js";import{Lt as Me,a as ra,h as na,i as Xe,o as sa,s as Ze}from"./JsonOutput-Bk2exFh0.js";import{c as oa,n as et,r as ze}from"./download-DenADH0w.js";import{r as tt}from"./radio-group-BGXYy3u5.js";import{t as X}from"./tooltip-4bZlU7jl.js";import{n as la,t as H}from"./button-DDGiD1NW.js";import{Tt as ia}from"./dist-12S8I4CH.js";import"./cjs-D5tzp-Y6.js";import"./main-BNL5rxQw.js";import"./useNonce-CbdaHKzX.js";import{n as ca,r as $e,t as da}from"./requests-9-v2bhoi.js";import{t as ne}from"./createLucideIcon-w-Qo9n0R.js";import{t as at}from"./arrow-left-pVgT2h-8.js";import{n as ma}from"./LazyAnyLanguageCodeMirror-A-Ant1Ad.js";import{t as pa}from"./x-C-Eq0ag8.js";import{a as ha,i as Oe,n as xa,r as rt,t as ve}from"./tree-actions-BwwVyp3l.js";import{a as fa}from"./markdown-renderer-BfLNJGNj.js";import{u as ua}from"./toDate-Ct2FT81-.js";import{t as nt}from"./copy-3iHFdt22.js";import{t as Le}from"./external-link-BOlXZUla.js";import{a as ya,i as st,n as ot,r as ga,t as ja}from"./file-icons-mgXTzM1c.js";import{t as lt}from"./file-CJH9JNGH.js";import{n as it,t as ba}from"./components-Cfpwf2kg.js";import{n as we,t as va}from"./spinner-D-V4psAa.js";import{a as wa,c as Na,d as ka,f as _a,i as Sa,l as Ca,n as Fa,r as Ma,t as Pa,u as Da}from"./file-name-input-Dq7Z_QmU.js";import{t as ct}from"./plus-AgXtozBz.js";import{t as dt}from"./refresh-cw-CYq4mK5a.js";import{t as Ta}from"./save-DBuEmnnF.js";import{t as za}from"./triangle-alert-BL4YVsPy.js";import{n as $a,t as Oa}from"./es-gYgfF8y5.js";import"./dist-DcwTQG1A.js";import"./dist-DnjsPBRJ.js";import"./dist-BJZAIIze.js";import"./dist-aRc_dRed.js";import"./dist-CPjTeT8p.js";import{t as re}from"./use-toast-BwJoaaDM.js";import{t as La}from"./paths-BKO-pHK6.js";import"./session-BmukRjSi.js";import"./purify.es-CWmnYhGI.js";import"./dates-C2LWzsCZ.js";import{n as Ne}from"./copy-Bxb1_Gtw.js";import{t as Ba}from"./copy-icon-neDQUo4Q.js";import{t as Be}from"./context-BFPaAUK_.js";import{n as mt}from"./ImperativeModal-fY-ZfT0b.js";import{t as Ia}from"./blob-B9eg-RfN.js";import"./tooltip-B7U4xkIN.js";import"./vega-loader.browser-Dun7Qe4B.js";import"./defaultLocale-DOVIEEPN.js";import"./defaultLocale-BUCH2FMc.js";import{n as Ra,t as Va}from"./alert-jlwhGxSb.js";import{n as pt}from"./error-banner-BSxEOIn2.js";import"./chunk-5FQGJX7Z-CYQpNADu.js";import"./html-to-image-D_C-hjtC.js";import{o as Ea}from"./focus-0L1nX7M9.js";import{n as Ie}from"./useAsyncData-Bg5iAViP.js";import"./react-resizable-panels.browser.esm-Z-MD3n3J.js";import{a as Aa,f as Ha,o as ht,t as qa}from"./command-Dqxie4gq.js";import{a as Ka}from"./renderShortcut-Bl8_FVn8.js";import{t as Ua}from"./bundle.esm-D0TWQ6iT.js";import{n as Wa}from"./pathUtils-icFgkNy9.js";import{n as Ga}from"./semaphore-C-Nli4KG.js";import{t as Ja}from"./empty-state-JOk_hLQe.js";import{t as Pe}from"./formatting-COz4XEaB.js";import{a as Ya,i as Qa,n as xt,r as ft,t as ut}from"./components-CxEGXaTB.js";import{t as yt}from"./add-connection-dialog-CAgdRfMX.js";import{a as Xa,i as gt,n as De,o as ye,r as Za,s as Re,t as er}from"./state-C4kiwedg.js";import{n as jt,t as tr}from"./marimo-icons-yD_pAOm9.js";import{t as ar}from"./links-ClNQSIal.js";import{n as rr}from"./panel-accordion-state-D1UP17Lk.js";var nr=ne("book-plus",[["path",{d:"M12 7v6",key:"lw1j43"}],["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:"M9 10h6",key:"9gxzsh"}]]),sr=ne("copy-minus",[["line",{x1:"12",x2:"18",y1:"15",y2:"15",key:"1nscbv"}],["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]),bt=ne("file-plus-corner",[["path",{d:"M11.35 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v5.35",key:"17jvcc"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M14 19h6",key:"bvotb8"}],["path",{d:"M17 16v6",key:"18yu1i"}]]),or=ne("file-symlink",[["path",{d:"M4 11V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h7",key:"huwfnr"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"m10 18 3-3-3-3",key:"18f6ys"}]]),vt=ne("folder-plus",[["path",{d:"M12 10v6",key:"1bos4e"}],["path",{d:"M9 13h6",key:"1uhe8q"}],["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]),wt=ne("list-tree",[["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 19h8",key:"c3s6r1"}],["path",{d:"M3 10a2 2 0 0 0 2 2h3",key:"1npucw"}],["path",{d:"M3 5v12a2 2 0 0 0 2 2h3",key:"x1gjn2"}]]),lr=ne("square-play",[["rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",key:"h1oib"}],["path",{d:"M9 9.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997A1 1 0 0 1 9 14.996z",key:"kmsa83"}]]),Nt=ne("view",[["path",{d:"M21 17v2a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-2",key:"mrq65r"}],["path",{d:"M21 7V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v2",key:"be3xqs"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["path",{d:"M18.944 12.33a1 1 0 0 0 0-.66 7.5 7.5 0 0 0-13.888 0 1 1 0 0 0 0 .66 7.5 7.5 0 0 0 13.888 0",key:"11ak4c"}]]),O=Je(At(),1),ir=oe(),a=Je(Qt(),1);const kt=t=>{let e=(0,ir.c)(17),{filename:r,filenameIcon:o,onBack:i,onRefresh:n,onDownload:m,actions:l}=t,c;e[0]===i?c=e[1]:(c=i&&(0,a.jsx)(X,{content:"Back to file list",children:(0,a.jsx)(H,{variant:"text",size:"xs",onClick:i,children:(0,a.jsx)(at,{className:"h-4 w-4"})})}),e[0]=i,e[1]=c);let s;e[2]!==r||e[3]!==o?(s=r?(0,a.jsxs)("span",{className:"flex items-center gap-1.5 flex-1 min-w-0 text-xs font-semibold truncate",children:[o,r]}):(0,a.jsx)("span",{className:"flex-1"}),e[2]=r,e[3]=o,e[4]=s):s=e[4];let f;e[5]===n?f=e[6]:(f=n&&(0,a.jsx)(X,{content:"Refresh",children:(0,a.jsx)(H,{variant:"text",size:"xs",onClick:n,children:(0,a.jsx)(dt,{className:"h-3.5 w-3.5"})})}),e[5]=n,e[6]=f);let p;e[7]===m?p=e[8]:(p=m&&(0,a.jsx)(X,{content:"Download",children:(0,a.jsx)(H,{variant:"text",size:"xs",onClick:m,children:(0,a.jsx)(Me,{className:"h-3.5 w-3.5"})})}),e[7]=m,e[8]=p);let x;e[9]!==l||e[10]!==f||e[11]!==p?(x=(0,a.jsxs)("div",{className:"flex items-center gap-0.5 shrink-0",children:[f,l,p]}),e[9]=l,e[10]=f,e[11]=p,e[12]=x):x=e[12];let u;return e[13]!==c||e[14]!==s||e[15]!==x?(u=(0,a.jsxs)("div",{className:"flex items-center shrink-0 border-b px-1 gap-1",children:[c,s,x]}),e[13]=c,e[14]=s,e[15]=x,e[16]=u):u=e[16],u};var cr=new Set(["http","file","in-memory"]);function ge(t){return JSON.stringify(t).slice(1,-1)}var dr=new Set(["datasets","spaces","buckets"]);function _t(t){let e=t.split("/").filter(Boolean);return e[0]==="datasets"&&e.length>=4?{repoType:"dataset",repoId:`${e[1]}/${e[2]}`,filename:e.slice(3).join("/")}:e[0]==="spaces"&&e.length>=4?{repoType:"space",repoId:`${e[1]}/${e[2]}`,filename:e.slice(3).join("/")}:e.length>=3&&!dr.has(e[0])?{repoType:"model",repoId:`${e[0]}/${e[1]}`,filename:e.slice(2).join("/")}:null}function St(t){return`from huggingface_hub import hf_hub_download
|
|
2
|
+
|
|
3
|
+
local_path = hf_hub_download(
|
|
4
|
+
repo_id="${ge(t.repoId)}",
|
|
5
|
+
filename="${ge(t.filename)}",
|
|
6
|
+
repo_type="${ge(t.repoType)}",
|
|
7
|
+
)`}const Ct=[{id:"read-file",label:"Insert read snippet",icon:nr,getCode:t=>{if(t.entry.kind==="directory")return null;let e=ge(t.entry.path);if(t.backendType==="huggingface"){let r=_t(t.entry.path);return r?`${St(r)}
|
|
8
|
+
|
|
9
|
+
with open(local_path, "rb") as f:
|
|
10
|
+
_data = f.read()
|
|
11
|
+
_data`:null}return t.backendType==="obstore"?`_data = ${t.variableName}.get("${e}").bytes()
|
|
12
|
+
_data`:`_data = ${t.variableName}.cat_file("${e}")
|
|
13
|
+
_data`}},{id:"download-file",label:"Insert download snippet",icon:or,getCode:t=>{if(t.entry.kind==="directory")return null;let e=ge(t.entry.path);if(t.backendType==="huggingface"){let o=_t(t.entry.path);return o?`${St(o)}
|
|
14
|
+
local_path`:null}if(t.backendType==="obstore")return cr.has(t.protocol)?null:`from datetime import timedelta
|
|
15
|
+
from obstore import sign
|
|
16
|
+
|
|
17
|
+
signed_url = sign(
|
|
18
|
+
${t.variableName}, "GET", "${e}",
|
|
19
|
+
expires_in=timedelta(hours=1),
|
|
20
|
+
)
|
|
21
|
+
signed_url`;let r=ge(t.entry.path.split("/").pop()||"download");return`${t.variableName}.get("${e}", "${r}")`}}];var mr=100*1024*1024;function pr(t){let e=t.endsWith("/")?t.slice(0,-1):t,r=e.split("/");return r[r.length-1]||e}const hr=({entry:t,namespace:e,protocol:r,backendType:o,onBack:i})=>{let{locale:n}=Be(),m=tt(),l=pr(t.path),c=t.mimeType||"text/plain",s=Ze(c),f=s&&t.size>mr&&t.size>0,{data:p,isPending:x,error:u,refetch:y}=Ie(async()=>{if(f)return null;let d=await Re.request({namespace:e,path:t.path,preview:!s});if(d.error)throw Error(d.error);if(!d.url)throw Error("No URL returned");if(s)return{type:"media",url:d.url};let v=await fetch(d.url);if(!v.ok)throw Error(`Failed to fetch preview: ${v.statusText}`);return{type:"text",content:await v.text()}},[e,t.path,s,f]),N=(0,O.useCallback)(async()=>{try{let d=await Re.request({namespace:e,path:t.path});if(d.error){re({title:"Download failed",description:d.error,variant:"danger"});return}d.url&&ze(d.url,d.filename??l)}catch(d){Te.error("Failed to download storage entry",d),re({title:"Download failed",description:String(d),variant:"danger"})}},[e,t.path,l]),g=Ct.map(d=>{let v=d.getCode({variableName:e,protocol:r,entry:t,backendType:o});if(v===null)return null;let F=d.icon;return(0,a.jsx)(X,{content:d.label,children:(0,a.jsx)(H,{variant:"text",size:"xs",onClick:()=>m(v),"aria-label":d.label,children:(0,a.jsx)(F,{className:"h-3.5 w-3.5"})})},d.id)}),C=(0,a.jsx)(kt,{filename:l,filenameIcon:st(l),onBack:i,onDownload:N,actions:g}),j=({includeMime:d=!1})=>(0,a.jsxs)("div",{className:"grid grid-cols-[auto_1fr] gap-x-4 gap-y-1.5 p-4 text-xs",children:[(0,a.jsx)("span",{className:"text-muted-foreground font-medium",children:"Path"}),(0,a.jsxs)("div",{className:"truncate flex items-center gap-1.5",children:[(0,a.jsx)("span",{className:"font-mono text-[11px]",children:t.path}),(0,a.jsx)(Ba,{value:t.path,className:"h-3 w-3"})]}),d&&(0,a.jsx)("span",{className:"text-muted-foreground font-medium",children:"Type"}),d&&(0,a.jsx)("span",{children:c}),t.size>0&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"text-muted-foreground font-medium",children:"Size"}),(0,a.jsx)("span",{children:Pe(t.size,n)})]}),t.lastModified!=null&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"text-muted-foreground font-medium",children:"Modified"}),(0,a.jsx)("span",{children:new Date(t.lastModified*1e3).toLocaleString()})]})]});return f?(0,a.jsxs)("div",{className:"flex flex-col h-full",children:[C,j({includeMime:!0}),(0,a.jsxs)("div",{className:"px-4 pb-4 text-xs text-muted-foreground italic",children:["File is too large to preview (",Pe(t.size,n),")."]})]}):x?(0,a.jsxs)("div",{className:"flex flex-col h-full",children:[C,j({}),(0,a.jsxs)("div",{className:"flex-1 flex items-center justify-center gap-2 text-xs text-muted-foreground min-h-24",children:[(0,a.jsx)(we,{className:"h-4 w-4 animate-spin"}),"Loading preview..."]})]}):u?(0,a.jsxs)("div",{className:"flex flex-col h-full",children:[C,j({includeMime:!0}),(0,a.jsxs)("div",{className:"px-4 pb-4 text-xs text-destructive",children:["Failed to load preview: ",u.message]}),(0,a.jsx)("div",{className:"px-4 pb-4",children:(0,a.jsxs)(H,{variant:"secondary",size:"xs",onClick:y,children:[(0,a.jsx)(dt,{className:"h-3 w-3 mr-1"}),"Retry"]})})]}):p?(0,a.jsxs)("div",{className:"flex flex-col h-full",children:[C,j({}),(0,a.jsx)(Xe,{mimeType:c,contents:p.type==="text"?p.content:void 0,mediaSource:p.type==="media"?{url:p.url}:void 0})]}):(0,a.jsxs)("div",{className:"flex flex-col h-full",children:[C,j({includeMime:!0}),(0,a.jsxs)("div",{className:"p-4 flex items-center gap-2 text-xs text-muted-foreground",children:[(0,a.jsx)(lt,{className:"h-4 w-4"}),"Preview not available for this file type."]})]})};var Ve=oe(),xr=16;function ie(t){return{paddingLeft:t*xr}}function fr(t,e){return new Date(t*1e3).toLocaleDateString(e,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function Ee(t){let e=t.endsWith("/")?t.slice(0,-1):t,r=e.split("/");return r[r.length-1]||e}function Ae(t){return t.endsWith("/")?t:`${t}/`}function He(t,e){var o;let r=(o=t.metadata)==null?void 0:o.id;return typeof r=="string"&&r.length>0?r:`${t.path}::${e}`}function qe(t,{namespace:e,searchValue:r,entriesByPath:o}){let i=r.trim().toLowerCase(),n=t.path.toLowerCase();if(Ee(t.path).toLowerCase().includes(i)||n.includes(i))return!0;if(t.kind==="directory"){let m=o.get(ye(e,Ae(t.path)));if(m)return m.some(l=>qe(l,{namespace:e,searchValue:r,entriesByPath:o}))}return!1}function ke(t,e){return e.searchValue.trim()?t.filter(r=>qe(r,e)):t}var ur=5;function yr(t){return{query:t,status:"idle"}}function Ft(t){return t.status==="idle"||t.status==="error"||t.status==="capped"}function Mt(t,e,r){var o;return e.get(t)===void 0||((o=r.get(t))==null?void 0:o.nextPageToken)!=null}function gr({hasSearch:t,hasLoadedMatches:e,isPending:r,remoteSearch:o,searchKey:i,entriesByPath:n,pageMetadataByPath:m}){return!t||e||r||!Ft(o)?!1:Mt(i,n,m)}function Ke(t){let e=t.trim(),r=e.lastIndexOf("/");return r===-1?"":e.slice(0,r+1)}function jr(t,e){let r=e.trim().toLowerCase();return r?t.path.toLowerCase().includes(r)||Ee(t.path).toLowerCase().includes(r):!0}var Pt=t=>{let e=(0,Ve.c)(15),{depth:r,isLoading:o,error:i,onLoadMore:n}=t,m;e[0]===r?m=e[1]:(m=ie(r),e[0]=r,e[1]=m);let l;e[2]===o?l=e[3]:(l=o&&(0,a.jsx)(we,{className:"h-3 w-3 mr-1 animate-spin"}),e[2]=o,e[3]=l);let c=o?"Loading...":"Load more",s;e[4]!==o||e[5]!==n||e[6]!==l||e[7]!==c?(s=(0,a.jsxs)(H,{variant:"text",size:"xs",className:"h-6 px-0 hover:text-blue-600",disabled:o,onClick:n,children:[l,c]}),e[4]=o,e[5]=n,e[6]=l,e[7]=c,e[8]=s):s=e[8];let f;e[9]===i?f=e[10]:(f=i&&(0,a.jsxs)("span",{className:"ml-2 text-destructive",children:["Failed to load: ",i.message]}),e[9]=i,e[10]=f);let p;return e[11]!==m||e[12]!==s||e[13]!==f?(p=(0,a.jsxs)("div",{className:"py-px text-xs",style:m,children:[s,f]}),e[11]=m,e[12]=s,e[13]=f,e[14]=p):p=e[14],p},br=t=>{let e=(0,Ve.c)(44),{namespace:r,protocol:o,rootPath:i,backendType:n,prefix:m,depth:l,locale:c,searchValue:s,onOpenFile:f}=t,{entriesByPath:p}=De(),{entries:x,isPending:u,error:y,hasMore:N,loadMore:g,isLoadingMore:C,loadMoreError:j}=gt(r,m);if(u){let h;e[0]===l?h=e[1]:(h=ie(l),e[0]=l,e[1]=h);let w;e[2]===Symbol.for("react.memo_cache_sentinel")?(w=(0,a.jsx)(we,{className:"h-3 w-3 animate-spin"}),e[2]=w):w=e[2];let _;return e[3]===h?_=e[4]:(_=(0,a.jsxs)("div",{className:"flex items-center gap-1.5 py-1 text-xs text-muted-foreground",style:h,children:[w,"Loading..."]}),e[3]=h,e[4]=_),_}if(y){let h;e[5]===l?h=e[6]:(h=ie(l),e[5]=l,e[6]=h);let w;return e[7]!==y.message||e[8]!==h?(w=(0,a.jsxs)("div",{className:"py-1 text-xs text-destructive",style:h,children:["Failed to load: ",y.message]}),e[7]=y.message,e[8]=h,e[9]=w):w=e[9],w}if(x.length===0){let h;e[10]===l?h=e[11]:(h=ie(l),e[10]=l,e[11]=h);let w;return e[12]===h?w=e[13]:(w=(0,a.jsx)("div",{className:"py-1 text-xs text-muted-foreground italic",style:h,children:"Empty"}),e[12]=h,e[13]=w),w}let d;if(e[14]!==n||e[15]!==x||e[16]!==l||e[17]!==p||e[18]!==c||e[19]!==r||e[20]!==f||e[21]!==o||e[22]!==i||e[23]!==s){let h=ke(x,{namespace:r,searchValue:s,entriesByPath:p}),w;e[25]!==n||e[26]!==x||e[27]!==l||e[28]!==c||e[29]!==r||e[30]!==f||e[31]!==o||e[32]!==i||e[33]!==s?(w=_=>{let M=He(_,x.indexOf(_));return(0,a.jsx)(Ue,{rowKey:M,entry:_,namespace:r,protocol:o,rootPath:i,backendType:n,depth:l,locale:c,searchValue:s,onOpenFile:f},M)},e[25]=n,e[26]=x,e[27]=l,e[28]=c,e[29]=r,e[30]=f,e[31]=o,e[32]=i,e[33]=s,e[34]=w):w=e[34],d=h.map(w),e[14]=n,e[15]=x,e[16]=l,e[17]=p,e[18]=c,e[19]=r,e[20]=f,e[21]=o,e[22]=i,e[23]=s,e[24]=d}else d=e[24];let v;e[35]!==l||e[36]!==N||e[37]!==C||e[38]!==g||e[39]!==j?(v=N&&(0,a.jsx)(Pt,{depth:l,isLoading:C,error:j,onLoadMore:g}),e[35]=l,e[36]=N,e[37]=C,e[38]=g,e[39]=j,e[40]=v):v=e[40];let F;return e[41]!==d||e[42]!==v?(F=(0,a.jsxs)(a.Fragment,{children:[d,v]}),e[41]=d,e[42]=v,e[43]=F):F=e[43],F},Ue=({entry:t,rowKey:e,namespace:r,protocol:o,rootPath:i,backendType:n,depth:m,locale:l,searchValue:c,onOpenFile:s})=>{var F;let[f,p]=(0,O.useState)(!1),{entriesByPath:x}=De(),u=tt(),y=t.kind==="directory",N=Ee(t.path),g=!!c.trim(),C=y&&g&&N.toLowerCase().includes(c.trim().toLowerCase()),j=y&&g&&!!((F=x.get(ye(r,Ae(t.path))))!=null&&F.some(h=>qe(h,{namespace:r,searchValue:c,entriesByPath:x}))),d=f||j,v=(0,O.useCallback)(async()=>{try{let h=await Re.request({namespace:r,path:t.path});if(h.error){re({title:"Download failed",description:h.error,variant:"danger"});return}h.url&&ze(h.url,h.filename??"download")}catch(h){Te.error("Failed to download storage entry",h),re({title:"Download failed",description:String(h),variant:"danger"})}},[r,t.path]);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(ht,{className:le("text-xs flex items-center gap-1.5 cursor-pointer rounded-none group h-6.5",y&&"font-medium"),style:ie(m),value:`${r}:${e}`,onSelect:()=>{y?p(!d):s({entry:t,namespace:r,protocol:o,backendType:n})},children:[y?(0,a.jsx)(Oe,{isExpanded:d,className:"h-3 w-3"}):(0,a.jsx)("span",{className:"w-3 shrink-0"}),y?(0,a.jsx)(ya,{className:le("h-3.5 w-3.5 shrink-0",ot.directory)}):st(N),(0,a.jsx)("span",{className:"truncate flex-1 text-left",children:N}),(0,a.jsxs)("div",{className:"flex items-center",children:[t.size>0&&(0,a.jsx)("span",{className:"text-[10px] text-muted-foreground pr-2 opacity-0 group-hover:opacity-100 transition-opacity tabular-nums",children:Pe(t.size,l)}),t.lastModified!=null&&(0,a.jsx)(X,{content:`Last modified: ${new Date(t.lastModified*1e3).toLocaleString()}`,children:(0,a.jsx)("span",{className:"text-[10px] text-muted-foreground pr-1 opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap",children:fr(t.lastModified,l)})}),(0,a.jsxs)(aa,{children:[(0,a.jsx)(ea,{asChild:!0,children:(0,a.jsx)(xa,{iconClassName:"h-3 w-3",onClick:h=>h.stopPropagation()})}),(0,a.jsxs)(ta,{align:"end",onClick:h=>h.stopPropagation(),onCloseAutoFocus:h=>h.preventDefault(),children:[!y&&(0,a.jsxs)(Q,{onSelect:()=>s({entry:t,namespace:r,protocol:o,backendType:n}),children:[(0,a.jsx)(Nt,{className:"h-3.5 w-3.5 mr-2"}),"View"]}),(0,a.jsxs)(Q,{onSelect:async()=>{await Ne(t.path),re({title:"Copied to clipboard"})},children:[(0,a.jsx)(nt,{className:ve}),"Copy path"]}),!y&&(0,a.jsxs)(Q,{onSelect:()=>v(),children:[(0,a.jsx)(Me,{className:"h-3.5 w-3.5 mr-2"}),"Download"]}),(0,a.jsx)(ue,{}),Ct.map(h=>{let w=h.getCode({variableName:r,protocol:o,entry:t,backendType:n});if(w===null)return null;let _=h.icon;return(0,a.jsxs)(Q,{onSelect:()=>u(w),children:[(0,a.jsx)(_,{className:ve}),h.label]},h.id)})]})]})]})]}),y&&d&&(0,a.jsx)(br,{namespace:r,protocol:o,rootPath:i,backendType:n,prefix:Ae(t.path),depth:m+1,locale:l,searchValue:C?"":c,onOpenFile:s})]})},vr=t=>{let e=(0,Ve.c)(64),{namespace:r,locale:o,searchValue:i,remoteSearch:n,onContinueRemoteSearch:m,onOpenFile:l}=t,[c,s]=(0,O.useState)(!0),{entriesByPath:f,pageMetadataByPath:p}=De(),{clearNamespaceCache:x}=Za(),u=r.name??r.displayName,{entries:y,isPending:N,error:g,hasMore:C,loadMore:j,isLoadingMore:d,loadMoreError:v,refetch:F}=gt(u),h;e[0]!==x||e[1]!==u||e[2]!==F?(h=D=>{D.stopPropagation(),x(u),F()},e[0]=x,e[1]=u,e[2]=F,e[3]=h):h=e[3];let w=h,_=N?r.storageEntries:y,M;if(e[4]!==_||e[5]!==f||e[6]!==g||e[7]!==w||e[8]!==C||e[9]!==c||e[10]!==d||e[11]!==N||e[12]!==j||e[13]!==v||e[14]!==o||e[15]!==r.backendType||e[16]!==r.displayName||e[17]!==r.name||e[18]!==r.protocol||e[19]!==r.rootPath||e[20]!==u||e[21]!==m||e[22]!==l||e[23]!==p||e[24]!==n||e[25]!==i){let D=ke(_,{namespace:u,searchValue:i,entriesByPath:f}),S=Ke(i),P=ye(u,S),B=S===""?[]:f.get(P)??[],z=ke(B,{namespace:u,searchValue:i,entriesByPath:f}),G=!!i.trim(),ee=D.length>0||z.length>0,Z=S!==""&&gr({hasSearch:G,hasLoadedMatches:ee,isPending:N,remoteSearch:n,searchKey:P,entriesByPath:f,pageMetadataByPath:p}),J=G&&D.length===0,I;e:{if(N&&_.length===0){let b;e[27]===Symbol.for("react.memo_cache_sentinel")?(b=(0,a.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,a.jsx)(we,{className:"h-3 w-3 animate-spin"}),"Loading..."]}),e[27]=b):b=e[27],I=b;break e}if(n.status==="searching"){let b;e[28]===Symbol.for("react.memo_cache_sentinel")?(b=(0,a.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,a.jsx)(we,{className:"h-3 w-3 animate-spin"}),"Searching more entries..."]}),e[28]=b):b=e[28],I=b;break e}if(n.status==="error"){let b;e[29]===n.error.message?b=e[30]:(b=(0,a.jsxs)("span",{className:"text-destructive",children:["Search failed: ",n.error.message]}),e[29]=n.error.message,e[30]=b),I=b;break e}if(n.status==="capped"){let b;e[31]===m?b=e[32]:(b=(0,a.jsx)(H,{variant:"text",size:"xs",className:"h-5 px-0 text-xs hover:text-blue-600",onClick:m,children:"Continue searching"}),e[31]=m,e[32]=b);let T;e[33]===Symbol.for("react.memo_cache_sentinel")?(T=(0,a.jsx)("span",{className:"text-[10px]",children:"(or press Enter)"}),e[33]=T):T=e[33];let L;e[34]===b?L=e[35]:(L=(0,a.jsxs)("span",{className:"flex items-center gap-1.5",children:["Searched more entries.",b,T]}),e[34]=b,e[35]=L),I=L;break e}if(n.status==="exhausted"&&!ee){I="No matches";break e}if(!G&&!N&&_.length===0){I="No entries";break e}if(Z){let b;e[36]===m?b=e[37]:(b=(0,a.jsx)(H,{variant:"text",size:"xs",className:"h-5 px-0 text-xs hover:text-blue-600",onClick:m,children:"Search more entries"}),e[36]=m,e[37]=b);let T;e[38]===Symbol.for("react.memo_cache_sentinel")?(T=(0,a.jsx)("span",{className:"text-[10px]",children:"(or press Enter)"}),e[38]=T):T=e[38];let L;e[39]===b?L=e[40]:(L=(0,a.jsxs)("span",{className:"flex items-center gap-1.5",children:["No loaded matches.",b,T]}),e[39]=b,e[40]=L),I=L;break e}if(G&&!ee&&_.length>0){I="No matches";break e}I=null}let W=I,R;e[41]===c?R=e[42]:(R=()=>s(!c),e[41]=c,e[42]=R);let V;e[43]===c?V=e[44]:(V=(0,a.jsx)(Oe,{isExpanded:c,className:"h-3 w-3"}),e[43]=c,e[44]=V);let q;e[45]===r.protocol?q=e[46]:(q=(0,a.jsx)(ba,{protocol:r.protocol}),e[45]=r.protocol,e[46]=q);let E;e[47]===r.displayName?E=e[48]:(E=(0,a.jsx)("span",{children:r.displayName}),e[47]=r.displayName,e[48]=E);let A;e[49]===r.name?A=e[50]:(A=r.name&&(0,a.jsxs)("span",{className:"text-xs text-muted-foreground font-normal",children:["(",(0,a.jsx)(Ya,{variableName:r.name}),")"]}),e[49]=r.name,e[50]=A);let K;e[51]===w?K=e[52]:(K=(0,a.jsx)(rt,{onClick:w,tooltip:"Refresh storage connection",className:"p-0",iconClassName:"h-3 w-3"}),e[51]=w,e[52]=K);let Y=r.rootPath||"(root)",k;e[53]===Y?k=e[54]:(k=(0,a.jsx)("span",{className:"text-[10px] text-muted-foreground font-normal tabular-nums ml-auto",children:Y}),e[53]=Y,e[54]=k);let $;e[55]!==r.name||e[56]!==k||e[57]!==R||e[58]!==V||e[59]!==q||e[60]!==E||e[61]!==A||e[62]!==K?($=(0,a.jsxs)(ht,{value:r.name,onSelect:R,className:"flex flex-row font-semibold h-7 text-xs gap-1.5 bg-(--slate-2) text-muted-foreground rounded-none",children:[V,q,E,A,K,k]}),e[55]=r.name,e[56]=k,e[57]=R,e[58]=V,e[59]=q,e[60]=E,e[61]=A,e[62]=K,e[63]=$):$=e[63],M=(0,a.jsxs)(a.Fragment,{children:[$,c&&(0,a.jsxs)(a.Fragment,{children:[g&&_.length===0&&(0,a.jsx)(na,{error:g,style:ie(1),className:"py-1 text-xs h-auto overflow-auto max-h-32 items-start",showIcon:!1}),!g&&W&&(0,a.jsx)("div",{className:"py-1 text-xs text-muted-foreground italic",style:ie(1),children:W}),D.map(b=>{let T=He(b,_.indexOf(b));return(0,a.jsx)(Ue,{rowKey:T,entry:b,namespace:u,protocol:r.protocol,rootPath:r.rootPath,backendType:r.backendType,depth:1,locale:o,searchValue:i,onOpenFile:l},T)}),J&&z.map(b=>{let T=He(b,B.indexOf(b));return(0,a.jsx)(Ue,{rowKey:`remote-search:${T}`,entry:b,namespace:u,protocol:r.protocol,rootPath:r.rootPath,backendType:r.backendType,depth:1,locale:o,searchValue:i,onOpenFile:l},`remote-search:${T}`)}),C&&!Z&&(0,a.jsx)(Pt,{depth:1,isLoading:d,error:v,onLoadMore:j})]})]}),e[4]=_,e[5]=f,e[6]=g,e[7]=w,e[8]=C,e[9]=c,e[10]=d,e[11]=N,e[12]=j,e[13]=v,e[14]=o,e[15]=r.backendType,e[16]=r.displayName,e[17]=r.name,e[18]=r.protocol,e[19]=r.rootPath,e[20]=u,e[21]=m,e[22]=l,e[23]=p,e[24]=n,e[25]=i,e[26]=M}else M=e[26];return M};const wr=()=>{let{namespaces:t,entriesByPath:e,pageMetadataByPath:r}=De(),{locale:o}=Be(),[i,n]=(0,O.useState)(""),[m,l]=(0,O.useState)({}),[c,s]=(0,O.useState)(null),f=Xa(),p=!!i.trim(),x=i.trim(),u=(0,O.useCallback)(j=>{let d=m[j];return(d==null?void 0:d.query)===x?d:yr(x)},[x,m]),y=(0,O.useCallback)((j,d)=>{l(v=>({...v,[j]:d}))},[]),N=(0,O.useCallback)(j=>{if(!x)return!1;let d=j.name??j.displayName,v=Ke(x);if(v===""||!Ft(u(d))||ke(e.get(ye(d,""))??j.storageEntries,{namespace:d,searchValue:x,entriesByPath:e}).length>0)return!1;let F=ye(d,v);return ke(e.get(F)??[],{namespace:d,searchValue:x,entriesByPath:e}).length>0?!1:Mt(F,e,r)},[x,e,r,u]),g=(0,O.useCallback)(async j=>{var D;if(!N(j))return;let d=x,v=j.name??j.displayName,F=Ke(d),h=ye(v,F),w=e.get(h),_=((D=r.get(h))==null?void 0:D.nextPageToken)??null,M=w!==void 0;y(v,{query:d,status:"searching"});try{for(let S=0;S<ur;S++){let P=!M||_!==null,B=[];if(P){let z=await f({namespace:v,prefix:F,pageToken:_,append:M});B=z.entries,_=z.next_page_token??null,M=!0}if((P?B:w??[]).some(z=>jr(z,d))){y(v,{query:d,status:"found"});return}if(_===null){y(v,{query:d,status:"exhausted"});return}}y(v,{query:d,status:"capped"})}catch(S){y(v,{query:d,status:"error",error:S instanceof Error?S:Error(String(S))})}},[N,x,e,f,r,y]),C=(0,O.useCallback)(()=>{let j=t.filter(N);for(let d of j)g(d)},[N,g,t]);return t.length===0?(0,a.jsx)(Ja,{title:"No storage connected",description:(0,a.jsxs)("span",{children:["Create an obstore or fsspec connection in your notebook. See the"," ",(0,a.jsx)("a",{className:"text-link",href:"https://docs.marimo.io/guides/working_with_data/remote_storage/#quick-start",target:"_blank",rel:"noopener noreferrer",children:"docs"}),"."]}),action:(0,a.jsx)(yt,{defaultTab:"storage",children:(0,a.jsxs)(H,{variant:"outline",size:"sm",children:["Add remote storage",(0,a.jsx)(ct,{className:"h-4 w-4 ml-2"})]})}),icon:(0,a.jsx)(it,{className:"h-8 w-8"})}):(0,a.jsxs)("div",{className:"h-full flex flex-col",children:[c&&(0,a.jsx)(hr,{entry:c.entry,namespace:c.namespace,protocol:c.protocol,backendType:c.backendType,onBack:()=>s(null)}),(0,a.jsxs)(qa,{className:le("border-b bg-background rounded-none h-full pb-10 overflow-auto outline-hidden scrollbar-thin",c&&"hidden"),shouldFilter:!1,children:[(0,a.jsxs)("div",{className:"flex items-center w-full border-b",children:[(0,a.jsx)(Aa,{placeholder:"Search entries...",className:"h-6 m-1",value:i,onValueChange:n,onKeyDown:j=>{j.key==="Enter"&&t.some(N)&&(j.preventDefault(),C())},rootClassName:"flex-1 border-b-0"}),p&&(0,a.jsx)(H,{variant:"text",size:"xs",className:"float-right border-none px-2 m-0 h-full",onClick:()=>n(""),children:(0,a.jsx)(pa,{className:"h-4 w-4"})}),(0,a.jsx)(X,{content:"Search by file name within loaded entries, or by prefix (e.g. 'folder/x') for backend search. Press Enter to fetch more results.",delayDuration:200,children:(0,a.jsx)(ua,{className:"h-3.5 w-3.5 shrink-0 cursor-help text-muted-foreground hover:text-foreground mr-2"})}),(0,a.jsx)(yt,{defaultTab:"storage",children:(0,a.jsx)(H,{variant:"ghost",size:"sm",className:"px-2 border-0 border-l border-muted-background rounded-none focus-visible:ring-0 focus-visible:ring-offset-0",children:(0,a.jsx)(ct,{className:"h-4 w-4"})})})]}),(0,a.jsx)(Ha,{className:"flex flex-col",children:t.map(j=>{let d=j.name??j.displayName;return(0,a.jsx)(vr,{namespace:j,locale:o,searchValue:i,remoteSearch:u(d),onContinueRemoteSearch:()=>{g(j)},onOpenFile:s},d)})})]})]})};var Dt=oe(),Tt=(0,O.createContext)(null);function Nr(){return(0,O.useContext)(Tt)??void 0}var kr=t=>{let e=(0,Dt.c)(3),{children:r}=t,o=ka(),i;return e[0]!==r||e[1]!==o?(i=(0,a.jsx)(Tt.Provider,{value:o,children:r}),e[0]=r,e[1]=o,e[2]=i):i=e[2],i};const _r=t=>{let e=(0,Dt.c)(5),{children:r}=t,[o,i]=(0,O.useState)(null),n;e[0]!==r||e[1]!==o?(n=o&&(0,a.jsx)(_a,{backend:Da,options:{rootElement:o},children:(0,a.jsx)(kr,{children:r})}),e[0]=r,e[1]=o,e[2]=n):n=e[2];let m;return e[3]===n?m=e[4]:(m=(0,a.jsx)("div",{ref:i,className:"contents",children:n}),e[3]=n,e[4]=m),m};async function zt(t,e){if(!be()){ze(Yt().formatNavigableHttpURL("api/files/download",new URLSearchParams({path:t})).toString(),e);return}let r=await da().sendFileDetails({path:t});r.isBase64&&r.contents?et(Ia(fa(r.contents,r.mimeType||"application/octet-stream")),e):et(new Blob([r.contents||""],{type:r.mimeType||"application/octet-stream"}),e)}var Sr=oe();const Cr=t=>{let e=(0,Sr.c)(21),{file:r,mimeType:o,message:i,onDownload:n}=t,{locale:m}=Be(),l;e[0]===Symbol.for("react.memo_cache_sentinel")?(l=(0,a.jsx)("span",{className:"text-muted-foreground font-medium",children:"Path"}),e[0]=l):l=e[0];let c;e[1]===r.path?c=e[2]:(c=(0,a.jsx)("span",{className:"font-mono text-xs break-all",children:r.path}),e[1]=r.path,e[2]=c);let s;e[3]===Symbol.for("react.memo_cache_sentinel")?(s=(0,a.jsx)("span",{className:"text-muted-foreground font-medium",children:"Type"}),e[3]=s):s=e[3];let f;e[4]===o?f=e[5]:(f=(0,a.jsx)("span",{children:o}),e[4]=o,e[5]=f);let p;e[6]!==r.size||e[7]!==m?(p=r.size!=null&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"text-muted-foreground font-medium",children:"Size"}),(0,a.jsx)("span",{children:Pe(r.size,m)})]}),e[6]=r.size,e[7]=m,e[8]=p):p=e[8];let x;e[9]!==c||e[10]!==f||e[11]!==p?(x=(0,a.jsxs)("div",{className:"grid grid-cols-[auto_1fr] gap-x-4 gap-y-2",children:[l,c,s,f,p]}),e[9]=c,e[10]=f,e[11]=p,e[12]=x):x=e[12];let u;e[13]===i?u=e[14]:(u=(0,a.jsx)("div",{className:"mt-4 text-muted-foreground italic",children:i}),e[13]=i,e[14]=u);let y;e[15]===n?y=e[16]:(y=n&&(0,a.jsxs)(H,{variant:"outline",size:"sm",className:"mt-4",onClick:n,children:[(0,a.jsx)(Me,{className:"h-3.5 w-3.5 mr-2"}),"Download"]}),e[15]=n,e[16]=y);let N;return e[17]!==x||e[18]!==u||e[19]!==y?(N=(0,a.jsxs)("div",{className:"p-4 text-sm",children:[x,u,y]}),e[17]=x,e[18]=u,e[19]=y,e[20]=N):N=e[20],N};function We(t,e){let r=t||"text/plain";return Ze(r)?"media":e?"unsupported":r==="text/csv"?"csv":r.startsWith("text/")||r!=="default"&&r in ra||t==null?"text":"unsupported"}var Ge=new Map;const Fr=({file:t,onOpenNotebook:e})=>{let{sendFileDetails:r,sendUpdateFile:o}=$e(),i=je(Jt),n=je(Qe),m=je(Ut),[l,c]=(0,O.useState)(""),{data:s,isPending:f,error:p,setData:x,refetch:u}=Ie(async()=>{let S=await r({path:t.path,maxBytes:10485760}),P=We(S.mimeType,S.isBase64);if(!S.isTooLarge&&P==="text"){let B=S.contents||"";c(Ge.get(t.path)??B)}return S},[t.path]),y=async()=>{l!==(s==null?void 0:s.contents)&&await o({path:t.path,contents:l}).then(S=>{S.success&&(x(P=>({...P,contents:l})),c(l))})},N=(0,O.useRef)(l);if(N.current=l,(0,O.useEffect)(()=>()=>{if((s==null?void 0:s.contents)==null||s.isTooLarge||We(s.mimeType,s.isBase64)!=="text")return;let S=N.current;S===s.contents?Ge.delete(t.path):Ge.set(t.path,S)},[t.path,s==null?void 0:s.contents,s==null?void 0:s.isTooLarge,s==null?void 0:s.mimeType,s==null?void 0:s.isBase64]),p)return(0,a.jsx)(pt,{error:p});if(f||!s)return null;let g=s.mimeType||"text/plain",C=We(s.mimeType,s.isBase64),j=C==="text",d=C==="csv",v=C==="media",F=m&&s.file.isMarimoFile&&(t.path===m||t.path.endsWith(`/${m}`)),h=async()=>{await zt(t.path,s.file.name)},w=ia.of([{key:i.getHotkey("global.save").key,stopPropagation:!0,run:()=>l===s.contents?!1:(y(),!0)}]),_=(0,a.jsx)(kt,{filename:s.file.name,onRefresh:u,onDownload:n?void 0:h,actions:(0,a.jsxs)(a.Fragment,{children:[t.isMarimoFile&&!be()&&(0,a.jsx)(X,{content:"Open notebook",children:(0,a.jsx)(H,{variant:"text",size:"xs",onClick:S=>e(S),children:(0,a.jsx)(Le,{className:"h-3.5 w-3.5"})})}),j&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(X,{content:"Copy contents to clipboard",children:(0,a.jsx)(H,{variant:"text",size:"xs",onClick:async()=>{await Ne(l)},children:(0,a.jsx)(nt,{className:"h-3.5 w-3.5"})})}),(0,a.jsx)(X,{content:Ka("global.save"),children:(0,a.jsx)(H,{variant:"text",size:"xs",onClick:y,disabled:l===s.contents,children:(0,a.jsx)(Ta,{className:"h-3.5 w-3.5"})})})]})]})});if(s.isTooLarge||C==="unsupported")return(0,a.jsxs)(a.Fragment,{children:[_,(0,a.jsx)(Cr,{file:s.file,mimeType:g,message:s.isTooLarge?"File is too large to preview.":"This file type cannot be previewed.",onDownload:n?void 0:h})]});let M=j&&F&&(0,a.jsxs)(Va,{variant:"warning",className:"rounded-none",children:[(0,a.jsx)(za,{className:"h-4 w-4"}),(0,a.jsx)(Ra,{children:"Editing the notebook file directly while running in marimo's editor may cause unintended changes. Please use with caution."})]}),D=v&&s.contents?sa({contents:s.contents,mimeType:g,isBase64:s.isBase64??!1}):void 0;return(0,a.jsxs)(a.Fragment,{children:[_,M,(0,a.jsx)(Xe,{mimeType:g,contents:j?l:d?s.contents??void 0:void 0,mediaSource:D,readOnly:!j,onChange:j?c:void 0,extensions:j?[w]:[]})]})},$t=Ye(t=>{let e=t(ca);return Gt(e,"no requestClientAtom set"),new Na({listFiles:e.sendListFiles,createFileOrFolder:e.sendCreateFileOrFolder,deleteFileOrFolder:e.sendDeleteFileOrFolder,copyFileOrFolder:e.sendCopyFileOrFolder,renameFileOrFolder:e.sendRenameFileOrFolder})}),Mr=Ye({});async function Pr(){await Et.get($t).refreshAll([])}var se=" ";const Ot={directory:t=>`os.listdir("${t}")`,python:t=>`with open("${t}", "r") as _f:
|
|
22
|
+
${se}...
|
|
23
|
+
`,json:t=>`with open("${t}", "r") as _f:
|
|
24
|
+
${se}_data = json.load(_f)
|
|
25
|
+
`,code:t=>`with open("${t}", "r") as _f:
|
|
26
|
+
${se}...
|
|
27
|
+
`,text:t=>`with open("${t}", "r") as _f:
|
|
28
|
+
${se}...
|
|
29
|
+
`,image:t=>`mo.image("${t}")`,audio:t=>`mo.audio("${t}")`,video:t=>`mo.video("${t}")`,pdf:t=>`with open("${t}", "rb") as _f:
|
|
30
|
+
${se}...
|
|
31
|
+
`,zip:t=>`with open("${t}", "rb") as _f:
|
|
32
|
+
${se}...
|
|
33
|
+
`,data:t=>`with open("${t}", "r") as _f:
|
|
34
|
+
${se}...
|
|
35
|
+
`,unknown:t=>`with open("${t}", "r") as _f:
|
|
36
|
+
${se}...
|
|
37
|
+
`};var Dr=oe(),Tr=1024*1024*100,zr=5;function Lt(t){let e=(0,Dr.c)(7),r;e[0]===t?r=e[1]:(r=t===void 0?{}:t,e[0]=t,e[1]=r);let o=r,{sendCreateFileOrFolder:i}=$e(),n;e[2]===i?n=e[3]:(n=async l=>{if(l.length===0)return;let c=l.length===1;await oa(c?"Uploading file...":"Uploading files...",async s=>{s.addTotal(l.length),await Ga(l,zr,async f=>{let p=Rr(Ir(f)),x="";p&&(x=La.guessDeliminator(p).dirname(p)),await i({path:x,type:"file",name:f.name,file:f}),s.increment(1)}),await Pr()},{title:c?"File uploaded":`${l.length} files uploaded`})},e[2]=i,e[3]=n);let m;return e[4]!==o||e[5]!==n?(m={multiple:!0,maxSize:Tr,onError:Br,onDropRejected:$r,onDrop:n,...o},e[4]=o,e[5]=n,e[6]=m):m=e[6],Oa(m)}function $r(t){re({title:"File upload failed",description:(0,a.jsx)("div",{className:"flex flex-col gap-1",children:t.map(Or)}),variant:"danger"})}function Or(t){return(0,a.jsxs)("div",{children:[t.file.name," (",t.errors.map(Lr).join(", "),")"]},t.file.name)}function Lr(t){return t.message}function Br(t){Te.error(t),re({title:"File upload failed",description:t.message,variant:"danger"})}function Ir(t){if(t.webkitRelativePath)return t.webkitRelativePath;if("path"in t&&typeof t.path=="string")return t.path;if("relativePath"in t&&typeof t.relativePath=="string")return t.relativePath}function Rr(t){if(t)return t.replace(/^\/+/,"")}var _e=oe(),Vr=Wt("marimo:showHiddenFiles",!0,Kt,{getOnInit:!0}),Bt=O.createContext(null);const Er=t=>{let e=(0,_e.c)(73),{height:r}=t,o=(0,O.useRef)(null),i=Nr(),[n]=Fe($t),m;e[0]===Symbol.for("react.memo_cache_sentinel")?(m=[],e[0]=m):m=e[0];let[l,c]=(0,O.useState)(m),[s,f]=(0,O.useState)(null),[p,x]=Fe(Vr),{openPrompt:u}=mt(),[y,N]=Fe(Mr),g;e[1]===n?g=e[2]:(g=()=>n.initialize(c),e[1]=n,e[2]=g);let C;e[3]===Symbol.for("react.memo_cache_sentinel")?(C=[],e[3]=C):C=e[3];let{isPending:j,error:d}=Ie(g,C),v;e[4]!==y||e[5]!==n?(v=()=>n.refreshAll(Object.keys(y).filter(k=>y[k])),e[4]=y,e[5]=n,e[6]=v):v=e[6];let F=ae(v),h;e[7]!==x||e[8]!==p?(h=()=>{x(!p)},e[7]=x,e[8]=p,e[9]=h):h=e[9];let w=ae(h),_;e[10]!==u||e[11]!==n?(_=async()=>{u({title:"Folder name",onConfirm:async k=>{n.createFolder(k,null)}})},e[10]=u,e[11]=n,e[12]=_):_=e[12];let M=ae(_),D;e[13]!==u||e[14]!==n?(D=async()=>{u({title:"File name",onConfirm:async k=>{n.createFile({name:k,parentId:null})}})},e[13]=u,e[14]=n,e[15]=D):D=e[15];let S=ae(D),P;e[16]!==u||e[17]!==n?(P=async()=>{u({title:"Notebook name",onConfirm:async k=>{n.createFile({name:k,parentId:null,type:"notebook"})}})},e[16]=u,e[17]=n,e[18]=P):P=e[18];let B=ae(P),z;e[19]===N?z=e[20]:(z=()=>{var k;(k=o.current)==null||k.closeAll(),N({})},e[19]=N,e[20]=z);let G=ae(z),ee;e[21]!==l||e[22]!==p?(ee=Rt(l,p),e[21]=l,e[22]=p,e[23]=ee):ee=e[23];let Z=ee;if(j){let k;return e[24]===Symbol.for("react.memo_cache_sentinel")?(k=(0,a.jsx)(va,{size:"medium",centered:!0}),e[24]=k):k=e[24],k}if(d){let k;return e[25]===d?k=e[26]:(k=(0,a.jsx)(pt,{error:d}),e[25]=d,e[26]=k),k}if(s){let k;e[27]===Symbol.for("react.memo_cache_sentinel")?(k=()=>f(null),e[27]=k):k=e[27];let $;e[28]===Symbol.for("react.memo_cache_sentinel")?($=(0,a.jsx)(H,{onClick:k,"data-testid":"file-explorer-back-button",variant:"text",size:"xs",className:"mb-0",children:(0,a.jsx)(at,{size:16})}),e[28]=$):$=e[28];let b;e[29]===s.name?b=e[30]:(b=(0,a.jsxs)("div",{className:"flex items-center pl-1 pr-3 shrink-0 border-b justify-between",children:[$,(0,a.jsx)("span",{className:"font-bold",children:s.name})]}),e[29]=s.name,e[30]=b);let T;e[31]!==s.path||e[32]!==n?(T=ce=>It(ce,n.relativeFromRoot(s.path)),e[31]=s.path,e[32]=n,e[33]=T):T=e[33];let L;e[34]!==s||e[35]!==T?(L=(0,a.jsx)(O.Suspense,{children:(0,a.jsx)(Fr,{onOpenNotebook:T,file:s})}),e[34]=s,e[35]=T,e[36]=L):L=e[36];let te;return e[37]!==b||e[38]!==L?(te=(0,a.jsxs)(a.Fragment,{children:[b,L]}),e[37]=b,e[38]=L,e[39]=te):te=e[39],te}let J;e[40]!==G||e[41]!==S||e[42]!==M||e[43]!==B||e[44]!==w||e[45]!==F||e[46]!==p||e[47]!==n?(J=(0,a.jsx)(Hr,{onRefresh:F,onHidden:w,showHiddenFiles:p,onCreateFile:S,onCreateNotebook:B,onCreateFolder:M,onCollapseAll:G,tree:n}),e[40]=G,e[41]=S,e[42]=M,e[43]=B,e[44]=w,e[45]=F,e[46]=p,e[47]=n,e[48]=J):J=e[48];let I=r-33,W,R,V;e[49]===n?(W=e[50],R=e[51],V=e[52]):(W=async k=>{let{ids:$}=k;for(let b of $)await n.delete(b)},R=async k=>{let{id:$,name:b}=k;await n.rename($,b)},V=async k=>{let{dragIds:$,parentId:b}=k;await n.move($,b)},e[49]=n,e[50]=W,e[51]=R,e[52]=V);let q;e[53]===Symbol.for("react.memo_cache_sentinel")?(q=k=>{let $=k[0];$&&($.data.isDirectory||f($.data))},e[53]=q):q=e[53];let E;e[54]!==y||e[55]!==N||e[56]!==n?(E=async k=>{if(await n.expand(k)){let $=y[k]??!1;N({...y,[k]:!$})}},e[54]=y,e[55]=N,e[56]=n,e[57]=E):E=e[57];let A;e[58]!==i||e[59]!==y||e[60]!==I||e[61]!==W||e[62]!==R||e[63]!==V||e[64]!==E||e[65]!==Z?(A=(0,a.jsx)(Ca,{width:"100%",ref:o,height:I,className:"h-full",data:Z,initialOpenState:y,openByDefault:!1,dndManager:i,renderCursor:Gr,disableDrop:Jr,onDelete:W,onRename:R,onMove:V,onSelect:q,onToggle:E,padding:15,rowHeight:30,indent:Ar,overscanCount:1e3,disableMultiSelection:!0,children:Kr}),e[58]=i,e[59]=y,e[60]=I,e[61]=W,e[62]=R,e[63]=V,e[64]=E,e[65]=Z,e[66]=A):A=e[66];let K;e[67]!==A||e[68]!==n?(K=(0,a.jsx)(Bt,{value:n,children:A}),e[67]=A,e[68]=n,e[69]=K):K=e[69];let Y;return e[70]!==J||e[71]!==K?(Y=(0,a.jsxs)(a.Fragment,{children:[J,K]}),e[70]=J,e[71]=K,e[72]=Y):Y=e[72],Y};var Ar=15,Hr=t=>{let e=(0,_e.c)(37),{onRefresh:r,onHidden:o,showHiddenFiles:i,onCreateFile:n,onCreateNotebook:m,onCreateFolder:l,onCollapseAll:c}=t,s;e[0]===Symbol.for("react.memo_cache_sentinel")?(s={noDrag:!0,noDragEventsBubbling:!0},e[0]=s):s=e[0];let{getRootProps:f,getInputProps:p}=Lt(s),x;e[1]===Symbol.for("react.memo_cache_sentinel")?(x=(0,a.jsx)(jt,{size:16}),e[1]=x):x=e[1];let u;e[2]===m?u=e[3]:(u=(0,a.jsx)(X,{content:"Add notebook",children:(0,a.jsx)(H,{"data-testid":"file-explorer-add-notebook-button",onClick:m,variant:"text",size:"xs",children:x})}),e[2]=m,e[3]=u);let y;e[4]===Symbol.for("react.memo_cache_sentinel")?(y=(0,a.jsx)(bt,{size:16}),e[4]=y):y=e[4];let N;e[5]===n?N=e[6]:(N=(0,a.jsx)(X,{content:"Add file",children:(0,a.jsx)(H,{"data-testid":"file-explorer-add-file-button",onClick:n,variant:"text",size:"xs",children:y})}),e[5]=n,e[6]=N);let g;e[7]===Symbol.for("react.memo_cache_sentinel")?(g=(0,a.jsx)(vt,{size:16}),e[7]=g):g=e[7];let C;e[8]===l?C=e[9]:(C=(0,a.jsx)(X,{content:"Add folder",children:(0,a.jsx)(H,{"data-testid":"file-explorer-add-folder-button",onClick:l,variant:"text",size:"xs",children:g})}),e[8]=l,e[9]=C);let j;e[10]===f?j=e[11]:(j=f({}),e[10]=f,e[11]=j);let d,v;e[12]===Symbol.for("react.memo_cache_sentinel")?(v=la({variant:"text",size:"xs"}),d=(0,a.jsx)($a,{size:16}),e[12]=d,e[13]=v):(d=e[12],v=e[13]);let F;e[14]===j?F=e[15]:(F=(0,a.jsx)(X,{content:"Upload file",children:(0,a.jsx)("button",{"data-testid":"file-explorer-upload-button",...j,className:v,children:d})}),e[14]=j,e[15]=F);let h;e[16]===p?h=e[17]:(h=p({}),e[16]=p,e[17]=h);let w;e[18]===h?w=e[19]:(w=(0,a.jsx)("input",{...h,type:"file"}),e[18]=h,e[19]=w);let _;e[20]===r?_=e[21]:(_=(0,a.jsx)(rt,{"data-testid":"file-explorer-refresh-button",onClick:r}),e[20]=r,e[21]=_);let M;e[22]!==o||e[23]!==i?(M=(0,a.jsx)(ha,{"data-testid":"file-explorer-hidden-files-button",isVisible:i,onToggle:o,showTooltip:"Show hidden files",hideTooltip:"Hide hidden files"}),e[22]=o,e[23]=i,e[24]=M):M=e[24];let D;e[25]===Symbol.for("react.memo_cache_sentinel")?(D=(0,a.jsx)(sr,{size:16}),e[25]=D):D=e[25];let S;e[26]===c?S=e[27]:(S=(0,a.jsx)(X,{content:"Collapse all folders",children:(0,a.jsx)(H,{"data-testid":"file-explorer-collapse-button",onClick:c,variant:"text",size:"xs",children:D})}),e[26]=c,e[27]=S);let P;return e[28]!==F||e[29]!==w||e[30]!==_||e[31]!==M||e[32]!==S||e[33]!==u||e[34]!==N||e[35]!==C?(P=(0,a.jsxs)("div",{className:"flex items-center justify-end px-2 shrink-0 border-b",children:[u,N,C,F,w,_,M,S]}),e[28]=F,e[29]=w,e[30]=_,e[31]=M,e[32]=S,e[33]=u,e[34]=N,e[35]=C,e[36]=P):P=e[36],P},qr=t=>{let e=(0,_e.c)(9),{node:r,onOpenMarimoFile:o}=t,i;e[0]===r?i=e[1]:(i=l=>{r.data.isDirectory||(l.stopPropagation(),r.select())},e[0]=r,e[1]=i);let n;e[2]!==r.data.isMarimoFile||e[3]!==o?(n=r.data.isMarimoFile&&!be()&&(0,a.jsxs)("span",{"data-testid":"file-explorer-open-marimo-button",className:"shrink-0 ml-2 text-sm hidden group-hover:inline hover:underline",onClick:o,children:["open ",(0,a.jsx)(Le,{className:"inline ml-1",size:12})]}),e[2]=r.data.isMarimoFile,e[3]=o,e[4]=n):n=e[4];let m;return e[5]!==r.data.name||e[6]!==i||e[7]!==n?(m=(0,a.jsxs)("span",{className:"flex-1 overflow-hidden text-ellipsis",onClick:i,children:[r.data.name,n]}),e[5]=r.data.name,e[6]=i,e[7]=n,e[8]=m):m=e[8],m},Kr=t=>{let e=(0,_e.c)(115),{node:r,style:o,dragHandle:i}=t,{openFile:n}=$e(),m=je(Qe),l;e[0]!==r.data.isDirectory||e[1]!==r.data.name?(l=r.data.isDirectory?"directory":ga(r.data.name),e[0]=r.data.isDirectory,e[1]=r.data.name,e[2]=l):l=e[2];let c=l,s=ja[c],{openConfirm:f,openPrompt:p}=mt(),{createNewCell:x}=Ht(),u=Ea(),y;e[3]!==x||e[4]!==u?(y=U=>{x({code:U,before:!1,cellId:u??"__end__"})},e[3]=x,e[4]=u,e[5]=y):y=e[5];let N=y,g=(0,O.use)(Bt),C;e[6]!==r.data.path||e[7]!==g?(C=async U=>{It(U,g?g.relativeFromRoot(r.data.path):r.data.path)},e[6]=r.data.path,e[7]=g,e[8]=C):C=e[8];let j=C,d;e[9]!==r.data.name||e[10]!==r.id||e[11]!==r.tree||e[12]!==f?(d=async U=>{U.stopPropagation(),U.preventDefault(),f({title:"Delete file",description:`Are you sure you want to delete ${r.data.name}?`,confirmAction:(0,a.jsx)(Zt,{onClick:async()=>{await r.tree.delete(r.id)},"aria-label":"Confirm",children:"Delete"})})},e[9]=r.data.name,e[10]=r.id,e[11]=r.tree,e[12]=f,e[13]=d):d=e[13];let v=d,F;e[14]!==r||e[15]!==p||e[16]!==g?(F=async()=>{r.open(),p({title:"Folder name",onConfirm:async U=>{g==null||g.createFolder(U,r.id)}})},e[14]=r,e[15]=p,e[16]=g,e[17]=F):F=e[17];let h=ae(F),w;e[18]!==r||e[19]!==p||e[20]!==g?(w=async()=>{r.open(),p({title:"File name",onConfirm:async U=>{g==null||g.createFile({name:U,parentId:r.id})}})},e[18]=r,e[19]=p,e[20]=g,e[21]=w):w=e[21];let _=ae(w),M;e[22]!==r||e[23]!==p||e[24]!==g?(M=async()=>{r.open(),p({title:"Notebook name",onConfirm:async U=>{g==null||g.createFile({name:U,parentId:r.id,type:"notebook"})}})},e[22]=r,e[23]=p,e[24]=g,e[25]=M):M=e[25];let D=ae(M),S;e[26]!==r.data.name||e[27]!==r.id||e[28]!==g?(S=async()=>{g&&await g.copy(r.id,Wa(r.data.name))},e[26]=r.data.name,e[27]=r.id,e[28]=g,e[29]=S):S=e[29];let P=ae(S),B;e[30]===Symbol.for("react.memo_cache_sentinel")?(B=le("flex items-center cursor-pointer ml-1 text-muted-foreground whitespace-nowrap group"),e[30]=B):B=e[30];let z,G;e[31]===r?(z=e[32],G=e[33]):(z=U=>{U.stopPropagation(),r.data.isDirectory&&r.toggle()},G=(0,a.jsx)(Ur,{node:r}),e[31]=r,e[32]=z,e[33]=G);let ee=r.willReceiveDrop&&r.data.isDirectory&&"bg-accent/80 hover:bg-accent/80 text-accent-foreground",Z;e[34]===ee?Z=e[35]:(Z=le("flex items-center pl-1 py-1 cursor-pointer hover:bg-accent/50 hover:text-accent-foreground rounded-l flex-1 overflow-hidden group",ee),e[34]=ee,e[35]=Z);let J;e[36]!==s||e[37]!==c||e[38]!==r.data.isMarimoFile?(J=r.data.isMarimoFile?(0,a.jsx)(tr,{className:"w-5 h-5 shrink-0 mr-2",strokeWidth:1.5}):(0,a.jsx)(s,{className:le("w-5 h-5 shrink-0 mr-2",ot[c]),strokeWidth:1.5}),e[36]=s,e[37]=c,e[38]=r.data.isMarimoFile,e[39]=J):J=e[39];let I;e[40]!==j||e[41]!==r?(I=r.isEditing?(0,a.jsx)(Pa,{node:r}):(0,a.jsx)(qr,{node:r,onOpenMarimoFile:j}),e[40]=j,e[41]=r,e[42]=I):I=e[42];let W;e[43]===r?W=e[44]:(W=!r.data.isDirectory&&(0,a.jsxs)(Q,{onSelect:()=>r.select(),"data-testid":"file-explorer-open-file-menu-item",children:[(0,a.jsx)(Nt,{className:"h-3.5 w-3.5 mr-2"}),"Open file"]}),e[43]=r,e[44]=W);let R;e[45]!==r.data.isDirectory||e[46]!==r.data.path||e[47]!==n?(R=!r.data.isDirectory&&!be()&&(0,a.jsxs)(Q,{onSelect:()=>{n({path:r.data.path})},"data-testid":"file-explorer-open-external-menu-item",children:[(0,a.jsx)(Le,{className:"h-3.5 w-3.5 mr-2"}),"Open file in external editor"]}),e[45]=r.data.isDirectory,e[46]=r.data.path,e[47]=n,e[48]=R):R=e[48];let V;e[49]!==_||e[50]!==h||e[51]!==D||e[52]!==r.data.isDirectory?(V=r.data.isDirectory&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(Q,{onSelect:()=>D(),"data-testid":"file-explorer-create-notebook-menu-item",children:[(0,a.jsx)(jt,{className:"h-3.5 w-3.5 mr-2"}),"Create notebook"]}),(0,a.jsxs)(Q,{onSelect:()=>_(),"data-testid":"file-explorer-create-file-menu-item",children:[(0,a.jsx)(bt,{className:"h-3.5 w-3.5 mr-2"}),"Create file"]}),(0,a.jsxs)(Q,{onSelect:()=>h(),"data-testid":"file-explorer-create-folder-menu-item",children:[(0,a.jsx)(vt,{className:"h-3.5 w-3.5 mr-2"}),"Create folder"]}),(0,a.jsx)(ue,{})]}),e[49]=_,e[50]=h,e[51]=D,e[52]=r.data.isDirectory,e[53]=V):V=e[53];let q;e[54]===r?q=e[55]:(q=(0,a.jsx)(wa,{onSelect:()=>r.edit(),testId:"file-explorer-rename-menu-item"}),e[54]=r,e[55]=q);let E;e[56]===P?E=e[57]:(E=(0,a.jsx)(Ma,{onSelect:P,testId:"file-explorer-duplicate-menu-item"}),e[56]=P,e[57]=E);let A;e[58]===r.data.path?A=e[59]:(A=async()=>{await Ne(r.data.path),re({title:"Copied to clipboard"})},e[58]=r.data.path,e[59]=A);let K;e[60]===Symbol.for("react.memo_cache_sentinel")?(K=(0,a.jsx)(wt,{className:ve}),e[60]=K):K=e[60];let Y;e[61]===A?Y=e[62]:(Y=(0,a.jsxs)(Q,{onSelect:A,"data-testid":"file-explorer-copy-path-menu-item",children:[K,"Copy path"]}),e[61]=A,e[62]=Y);let k;e[63]!==r.data.path||e[64]!==g?(k=g&&(0,a.jsxs)(Q,{onSelect:async()=>{await Ne(g.relativeFromRoot(r.data.path)),re({title:"Copied to clipboard"})},"data-testid":"file-explorer-copy-relative-path-menu-item",children:[(0,a.jsx)(wt,{className:"h-3.5 w-3.5 mr-2"}),"Copy relative path"]}),e[63]=r.data.path,e[64]=g,e[65]=k):k=e[65];let $;e[66]===Symbol.for("react.memo_cache_sentinel")?($=(0,a.jsx)(ue,{}),e[66]=$):$=e[66];let b;e[67]!==c||e[68]!==N||e[69]!==r.data?(b=()=>{let{path:U}=r.data;N(Ot[c](U))},e[67]=c,e[68]=N,e[69]=r.data,e[70]=b):b=e[70];let T;e[71]===Symbol.for("react.memo_cache_sentinel")?(T=(0,a.jsx)(ma,{className:ve}),e[71]=T):T=e[71];let L;e[72]===b?L=e[73]:(L=(0,a.jsxs)(Q,{onSelect:b,"data-testid":"file-explorer-insert-snippet-menu-item",children:[T,"Insert snippet for reading file"]}),e[72]=b,e[73]=L);let te;e[74]!==c||e[75]!==r.data?(te=async()=>{re({title:"Copied to clipboard",description:"Code to open the file has been copied to your clipboard. You can also drag and drop this file into the editor"});let{path:U}=r.data;await Ne(Ot[c](U))},e[74]=c,e[75]=r.data,e[76]=te):te=e[76];let ce;e[77]===Symbol.for("react.memo_cache_sentinel")?(ce=(0,a.jsx)(qt,{className:ve}),e[77]=ce):ce=e[77];let de;e[78]===te?de=e[79]:(de=(0,a.jsxs)(Q,{onSelect:te,"data-testid":"file-explorer-copy-snippet-menu-item",children:[ce,"Copy snippet for reading file"]}),e[78]=te,e[79]=de);let me;e[80]!==j||e[81]!==r.data.isMarimoFile?(me=r.data.isMarimoFile&&!be()&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(ue,{}),(0,a.jsxs)(Q,{onSelect:j,"data-testid":"file-explorer-open-notebook-menu-item",children:[(0,a.jsx)(lr,{className:"h-3.5 w-3.5 mr-2"}),"Open notebook"]})]}),e[80]=j,e[81]=r.data.isMarimoFile,e[82]=me):me=e[82];let Se;e[83]===Symbol.for("react.memo_cache_sentinel")?(Se=(0,a.jsx)(ue,{}),e[83]=Se):Se=e[83];let pe;e[84]!==m||e[85]!==r.data.isDirectory||e[86]!==r.data.name||e[87]!==r.data.path?(pe=!r.data.isDirectory&&!m&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(Q,{onSelect:async()=>{await zt(r.data.path,r.data.name)},"data-testid":"file-explorer-download-menu-item",children:[(0,a.jsx)(Me,{className:"h-3.5 w-3.5 mr-2"}),"Download"]}),(0,a.jsx)(ue,{})]}),e[84]=m,e[85]=r.data.isDirectory,e[86]=r.data.name,e[87]=r.data.path,e[88]=pe):pe=e[88];let he;e[89]===v?he=e[90]:(he=(0,a.jsx)(Fa,{onSelect:v,testId:"file-explorer-delete-menu-item"}),e[89]=v,e[90]=he);let xe;e[91]!==W||e[92]!==R||e[93]!==V||e[94]!==q||e[95]!==E||e[96]!==Y||e[97]!==k||e[98]!==L||e[99]!==de||e[100]!==me||e[101]!==pe||e[102]!==he?(xe=(0,a.jsxs)(Sa,{testId:"file-explorer-more-button",iconClassName:"w-5 h-5",children:[W,R,V,q,E,Y,k,$,L,de,me,Se,pe,he]}),e[91]=W,e[92]=R,e[93]=V,e[94]=q,e[95]=E,e[96]=Y,e[97]=k,e[98]=L,e[99]=de,e[100]=me,e[101]=pe,e[102]=he,e[103]=xe):xe=e[103];let fe;e[104]!==Z||e[105]!==J||e[106]!==I||e[107]!==xe?(fe=(0,a.jsxs)("span",{className:Z,children:[J,I,xe]}),e[104]=Z,e[105]=J,e[106]=I,e[107]=xe,e[108]=fe):fe=e[108];let Ce;return e[109]!==i||e[110]!==o||e[111]!==z||e[112]!==G||e[113]!==fe?(Ce=(0,a.jsxs)("div",{style:o,ref:i,className:B,draggable:!0,onClick:z,children:[G,fe]}),e[109]=i,e[110]=o,e[111]=z,e[112]=G,e[113]=fe,e[114]=Ce):Ce=e[114],Ce},Ur=t=>{let e=(0,_e.c)(3),{node:r}=t;if(!r.data.isDirectory){let i;return e[0]===Symbol.for("react.memo_cache_sentinel")?(i=(0,a.jsx)("span",{className:"w-4 h-4 shrink-0"}),e[0]=i):i=e[0],i}let o;return e[1]===r.isOpen?o=e[2]:(o=(0,a.jsx)(Oe,{isExpanded:r.isOpen,className:"w-4 h-4"}),e[1]=r.isOpen,e[2]=o),o};function It(t,e){t.stopPropagation(),t.preventDefault(),ar(e)}function Rt(t,e){if(e)return t;let r=[];for(let o of t){if(Wr(o.name))continue;let i=o;if(o.children){let n=Rt(o.children,e);n!==o.children&&(i={...o,children:n})}r.push(i)}return r}function Wr(t){return!!t.startsWith(".")}function Gr(){return null}function Jr(t){let{parentNode:e}=t;return!e.data.isDirectory}var Vt=oe(),Yr=t=>{let e=(0,Vt.c)(20),{height:r}=t,o;e[0]===Symbol.for("react.memo_cache_sentinel")?(o={noClick:!0,noKeyboard:!0},e[0]=o):o=e[0];let{getRootProps:i,getInputProps:n,isDragActive:m}=Lt(o),l;e[1]===i?l=e[2]:(l=i(),e[1]=i,e[2]=l);let c;e[3]===Symbol.for("react.memo_cache_sentinel")?(c=le("flex flex-col overflow-hidden relative"),e[3]=c):c=e[3];let s;e[4]===r?s=e[5]:(s={height:r},e[4]=r,e[5]=s);let f;e[6]===n?f=e[7]:(f=n(),e[6]=n,e[7]=f);let p;e[8]===f?p=e[9]:(p=(0,a.jsx)("input",{...f}),e[8]=f,e[9]=p);let x;e[10]===m?x=e[11]:(x=m&&(0,a.jsx)("div",{className:"absolute inset-0 flex items-center uppercase justify-center text-xl font-bold text-primary/90 bg-accent/85 z-10 border-2 border-dashed border-primary/90 rounded-lg pointer-events-none",children:"Drop files here"}),e[10]=m,e[11]=x);let u;e[12]===r?u=e[13]:(u=(0,a.jsx)(Er,{height:r}),e[12]=r,e[13]=u);let y;return e[14]!==l||e[15]!==s||e[16]!==p||e[17]!==x||e[18]!==u?(y=(0,a.jsx)(_r,{children:(0,a.jsxs)("div",{...l,className:c,style:s,children:[p,x,u]})}),e[14]=l,e[15]=s,e[16]=p,e[17]=x,e[18]=u,e[19]=y):y=e[19],y},Qr=33,Xr=()=>{let t=(0,Vt.c)(36),{ref:e,height:r}=Ua(),o=r===void 0?500:r,[i,n]=Fe(rr),m=je(er).length,l;e:{if(!i.hasUserInteracted&&m>0){if(i.openSections.includes("remote-storage")){l=i.openSections;break e}let z;t[0]===i.openSections?z=t[1]:(z=[...i.openSections,"remote-storage"],t[0]=i.openSections,t[1]=z),l=z;break e}l=i.openSections}let c=l,s;t[2]===n?s=t[3]:(s=z=>{n({openSections:z,hasUserInteracted:!0})},t[2]=n,t[3]=s);let f=s,p=o-Qr*2,x;t[4]===c?x=t[5]:(x=c.includes("remote-storage"),t[4]=c,t[5]=x);let u=x,y;t[6]!==c||t[7]!==u?(y=u&&c.includes("files"),t[6]=c,t[7]=u,t[8]=y):y=t[8];let N=y,g;t[9]!==p||t[10]!==N?(g=N?Math.round(p*.4):p,t[9]=p,t[10]=N,t[11]=g):g=t[11];let C=g,j=Math.max(200,N?p-C:p),d;t[12]===Symbol.for("react.memo_cache_sentinel")?(d=(0,a.jsx)(it,{className:"w-4 h-4"}),t[12]=d):d=t[12];let v;t[13]===m?v=t[14]:(v=m>0&&(0,a.jsx)(Qa,{children:m}),t[13]=m,t[14]=v);let F;t[15]===v?F=t[16]:(F=(0,a.jsxs)(ft,{children:[d," Remote storage",v]}),t[15]=v,t[16]=F);let h;t[17]===C?h=t[18]:(h={maxHeight:C},t[17]=C,t[18]=h);let w;t[19]===Symbol.for("react.memo_cache_sentinel")?(w=(0,a.jsx)(wr,{}),t[19]=w):w=t[19];let _;t[20]===h?_=t[21]:(_=(0,a.jsx)(ut,{className:"overflow-auto",style:h,children:w}),t[20]=h,t[21]=_);let M;t[22]!==_||t[23]!==F?(M=(0,a.jsxs)(xt,{value:"remote-storage",children:[F,_]}),t[22]=_,t[23]=F,t[24]=M):M=t[24];let D;t[25]===Symbol.for("react.memo_cache_sentinel")?(D=(0,a.jsxs)(ft,{children:[(0,a.jsx)(lt,{className:"w-4 h-4"}),"Files"]}),t[25]=D):D=t[25];let S;t[26]===j?S=t[27]:(S=(0,a.jsxs)(xt,{value:"files",children:[D,(0,a.jsx)(ut,{children:(0,a.jsx)(Yr,{height:j})})]}),t[26]=j,t[27]=S);let P;t[28]!==f||t[29]!==c||t[30]!==M||t[31]!==S?(P=(0,a.jsxs)(Xt,{type:"multiple",value:c,onValueChange:f,children:[M,S]}),t[28]=f,t[29]=c,t[30]=M,t[31]=S,t[32]=P):P=t[32];let B;return t[33]!==e||t[34]!==P?(B=(0,a.jsx)("div",{ref:e,className:"h-full overflow-auto",children:P}),t[33]=e,t[34]=P,t[35]=B):B=t[35],B};export{Xr as default};
|