@marimo-team/frontend 0.23.16-dev3 → 0.23.16-dev5
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/{edit-page-DSEkwJ4O.js → edit-page-7X3HYey7.js} +2 -2
- package/dist/assets/file-explorer-panel-Ntq1-VbF.js +26 -0
- package/dist/assets/{index-Dbc5mg7a.js → index-CMZzy-dF.js} +2 -2
- package/dist/index.html +1 -1
- package/package.json +1 -1
- package/src/components/editor/file-tree/__tests__/file-render-mode.test.ts +27 -0
- package/src/components/editor/file-tree/__tests__/file-viewer.test.tsx +150 -0
- package/src/components/editor/file-tree/file-preview-metadata.tsx +51 -0
- package/src/components/editor/file-tree/file-render-mode.ts +32 -0
- package/src/components/editor/file-tree/file-viewer.tsx +76 -50
- package/src/core/network/types.ts +3 -1
- package/dist/assets/file-explorer-panel-BfXM2BOd.js +0 -26
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import{s as Je}from"./chunk-LvLJmgfZ.js";import{i as Et,l as _e,n as ae,p as Ye,u as ge}from"./useEvent-D91BmmQi.js";import{t as At}from"./react-Bj1aDYRI.js";import{Ar as Ht,E as qt,Hi as Ut,Ki as Xe,zn as Ze}from"./cells-Cf7bHHq3.js";import"./react-dom-CSu739Rf.js";import{t as oe}from"./compiler-runtime-B3qBwwSJ.js";import{g as De}from"./useEventListener-B_w3A283.js";import{t as Kt}from"./invariant-CkiqGLcK.js";import{g as Wt,p as Qe}from"./utils-Z80SV4_d.js";import{T as je,r as Gt}from"./config-BbOTTCYY.js";import{t as le}from"./cn-DYvqRARy.js";import{t as Jt}from"./jsx-runtime-Blw4afVn.js";import"./fullscreen-dUjPYOmm.js";import{r as Yt}from"./config-COUOIPEq.js";import{o as Xt}from"./alert-dialog-BXegNC0I.js";import"./popover-DrHQ3KEt.js";import{a as X,c as ue,p as Zt,r as Qt,t as ea}from"./dropdown-menu-BFZLnWeO.js";import{Lt as Fe,a as ta,i as et,m as aa,o as tt}from"./JsonOutput-CkCD-FgM.js";import{c as ra,i as Te,r as at}from"./download-BomYt3nl.js";import{r as rt}from"./radio-group-CLBjGkt5.js";import{t as Z}from"./tooltip-CFX4fYHU.js";import{n as na,t as A}from"./button-eIihcbUw.js";import{Tt as sa}from"./dist-12S8I4CH.js";import"./cjs-D5tzp-Y6.js";import"./main-BNL5rxQw.js";import"./useNonce-CbdaHKzX.js";import{n as oa,r as ze,t as la}from"./requests-9-v2bhoi.js";import{t as ne}from"./createLucideIcon-w-Qo9n0R.js";import{a as ia,i as nt,l as st,n as Me,o as ye,r as ca,s as Le,t as da}from"./state-WBgc7MiA.js";import{n as ma}from"./LazyAnyLanguageCodeMirror-sVm_hz8A.js";import{t as pa}from"./x-C-Eq0ag8.js";import{a as ha,i as Oe,n as xa,r as ot,t as be}from"./tree-actions-CsC2XmGo.js";import{a as fa}from"./markdown-renderer-QvXG0CRk.js";import{u as ua}from"./toDate-Ct2FT81-.js";import{t as lt}from"./copy-3iHFdt22.js";import{t as $e}from"./external-link-BOlXZUla.js";import{a as ya,i as it,n as ct,r as ga,t as ja}from"./file-icons-Cb54mIL8.js";import{t as dt}from"./file-CJH9JNGH.js";import{i as mt,r as ba,t as pt}from"./add-connection-dialog-B-jCRNTN.js";import{n as ve,t as va}from"./spinner-D-V4psAa.js";import{a as wa,c as Na,d as ka,f as Sa,i as Ca,l as _a,n as Fa,r as Ma,t as Pa,u as Da}from"./file-name-input-BWFcK1ey.js";import{t as ht}from"./plus-AgXtozBz.js";import{t as xt}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 La,t as Oa}from"./es-1D83cgiu.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 $a}from"./paths-BKO-pHK6.js";import"./session-CEFnN9Cq.js";import"./purify.es-CWmnYhGI.js";import"./dates-D-kIKDYA.js";import{n as we}from"./copy-BtTOqPTS.js";import{t as Ba}from"./copy-icon-C2pG0ZNK.js";import{t as Be}from"./context-BFPaAUK_.js";import{n as ft}from"./ImperativeModal-BIavOiUv.js";import{t as Ra}from"./blob-C3EfaMOb.js";import"./tooltip-HLb6RxVp.js";import"./vega-loader.browser-Dun7Qe4B.js";import"./defaultLocale-DOVIEEPN.js";import"./defaultLocale-BUCH2FMc.js";import{n as Va,t as Ia}from"./alert-jlwhGxSb.js";import{n as ut}from"./error-banner-B6eIlxzg.js";import"./chunk-5FQGJX7Z-Cp0LZT-a.js";import"./html-to-image-CwmX28T9.js";import{o as Ea}from"./focus-DiEyfiAG.js";import{n as Re}from"./useAsyncData-Bg5iAViP.js";import"./react-resizable-panels.browser.esm-Z-MD3n3J.js";import{a as Aa,f as Ha,o as yt,t as qa}from"./command-CAJLPEBq.js";import{a as Ua}from"./renderShortcut-BZLr8D7H.js";import{t as Ka}from"./bundle.esm-D0TWQ6iT.js";import{n as Wa}from"./pathUtils-Bfcp5m-a.js";import{n as Ga}from"./semaphore-DtBYRzWS.js";import{t as Ja}from"./empty-state-CqJvEFRk.js";import{t as Pe}from"./formatting-B_41gSF5.js";import{a as Ya,i as Xa,n as gt,r as jt,t as bt}from"./components-BH6gDVv6.js";import{n as vt,t as Za}from"./marimo-icons-C_nFooxr.js";import{t as Qa}from"./links-CToBjIIj.js";var er=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"}]]),tr=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"}]]),wt=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"}]]),ar=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"}]]),Nt=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"}]]),kt=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"}]]),rr=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"}]]),St=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),nr=oe(),a=Je(Jt(),1);const Ct=t=>{let e=(0,nr.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)(Z,{content:"Back to file list",children:(0,a.jsx)(A,{variant:"text",size:"xs",onClick:i,children:(0,a.jsx)(st,{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)(Z,{content:"Refresh",children:(0,a.jsx)(A,{variant:"text",size:"xs",onClick:n,children:(0,a.jsx)(xt,{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)(Z,{content:"Download",children:(0,a.jsx)(A,{variant:"text",size:"xs",onClick:m,children:(0,a.jsx)(Fe,{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 sr=new Set(["http","file","in-memory"]);function Ve(t){return JSON.stringify(t).slice(1,-1)}const _t=[{id:"read-file",label:"Insert read snippet",icon:er,getCode:t=>{if(t.entry.kind==="directory")return null;let e=Ve(t.entry.path);return t.backendType==="obstore"?`_data = ${t.variableName}.get("${e}").bytes()
|
|
2
|
+
_data`:`_data = ${t.variableName}.cat_file("${e}")
|
|
3
|
+
_data`}},{id:"download-file",label:"Insert download snippet",icon:ar,getCode:t=>{if(t.entry.kind==="directory")return null;let e=Ve(t.entry.path);if(t.backendType==="obstore")return sr.has(t.protocol)?null:`from datetime import timedelta
|
|
4
|
+
from obstore import sign
|
|
5
|
+
|
|
6
|
+
signed_url = sign(
|
|
7
|
+
${t.variableName}, "GET", "${e}",
|
|
8
|
+
expires_in=timedelta(hours=1),
|
|
9
|
+
)
|
|
10
|
+
signed_url`;let r=Ve(t.entry.path.split("/").pop()||"download");return`${t.variableName}.get("${e}", "${r}")`}}];var or=100*1024*1024;function lr(t){let e=t.endsWith("/")?t.slice(0,-1):t,r=e.split("/");return r[r.length-1]||e}const ir=({entry:t,namespace:e,protocol:r,backendType:o,onBack:i})=>{let{locale:n}=Be(),m=rt(),l=lr(t.path),c=t.mimeType||"text/plain",s=tt(c),f=s&&t.size>or&&t.size>0,{data:p,isPending:x,error:u,refetch:y}=Re(async()=>{if(f)return null;let d=await Le.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 Le.request({namespace:e,path:t.path});if(d.error){re({title:"Download failed",description:d.error,variant:"danger"});return}d.url&&Te(d.url,d.filename??l)}catch(d){De.error("Failed to download storage entry",d),re({title:"Download failed",description:String(d),variant:"danger"})}},[e,t.path,l]),g=_t.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)(Z,{content:d.label,children:(0,a.jsx)(A,{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)}),_=(0,a.jsx)(Ct,{filename:l,filenameIcon:it(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:[_,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:[_,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)(ve,{className:"h-4 w-4 animate-spin"}),"Loading preview..."]})]}):u?(0,a.jsxs)("div",{className:"flex flex-col h-full",children:[_,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)(A,{variant:"secondary",size:"xs",onClick:y,children:[(0,a.jsx)(xt,{className:"h-3 w-3 mr-1"}),"Retry"]})})]}):p?(0,a.jsxs)("div",{className:"flex flex-col h-full",children:[_,j({}),(0,a.jsx)(et,{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:[_,j({includeMime:!0}),(0,a.jsxs)("div",{className:"p-4 flex items-center gap-2 text-xs text-muted-foreground",children:[(0,a.jsx)(dt,{className:"h-4 w-4"}),"Preview not available for this file type."]})]})};var Ie=oe(),cr=16;function ie(t){return{paddingLeft:t*cr}}function dr(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 Ne(t,e){return e.searchValue.trim()?t.filter(r=>qe(r,e)):t}var mr=5;function pr(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 hr({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 Ue(t){let e=t.trim(),r=e.lastIndexOf("/");return r===-1?"":e.slice(0,r+1)}function xr(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,Ie.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)(ve,{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)(A,{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},fr=t=>{let e=(0,Ie.c)(44),{namespace:r,protocol:o,rootPath:i,backendType:n,prefix:m,depth:l,locale:c,searchValue:s,onOpenFile:f}=t,{entriesByPath:p}=Me(),{entries:x,isPending:u,error:y,hasMore:N,loadMore:g,isLoadingMore:_,loadMoreError:j}=nt(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)(ve,{className:"h-3 w-3 animate-spin"}),e[2]=w):w=e[2];let S;return e[3]===h?S=e[4]:(S=(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]=S),S}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=Ne(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=S=>{let C=He(S,x.indexOf(S));return(0,a.jsx)(Ke,{rowKey:C,entry:S,namespace:r,protocol:o,rootPath:i,backendType:n,depth:l,locale:c,searchValue:s,onOpenFile:f},C)},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]!==_||e[38]!==g||e[39]!==j?(v=N&&(0,a.jsx)(Pt,{depth:l,isLoading:_,error:j,onLoadMore:g}),e[35]=l,e[36]=N,e[37]=_,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},Ke=({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}=Me(),u=rt(),y=t.kind==="directory",N=Ee(t.path),g=!!c.trim(),_=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 Le.request({namespace:r,path:t.path});if(h.error){re({title:"Download failed",description:h.error,variant:"danger"});return}h.url&&Te(h.url,h.filename??"download")}catch(h){De.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)(yt,{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",ct.directory)}):it(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)(Z,{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:dr(t.lastModified,l)})}),(0,a.jsxs)(ea,{children:[(0,a.jsx)(Zt,{asChild:!0,children:(0,a.jsx)(xa,{iconClassName:"h-3 w-3",onClick:h=>h.stopPropagation()})}),(0,a.jsxs)(Qt,{align:"end",onClick:h=>h.stopPropagation(),onCloseAutoFocus:h=>h.preventDefault(),children:[!y&&(0,a.jsxs)(X,{onSelect:()=>s({entry:t,namespace:r,protocol:o,backendType:n}),children:[(0,a.jsx)(St,{className:"h-3.5 w-3.5 mr-2"}),"View"]}),(0,a.jsxs)(X,{onSelect:async()=>{await we(t.path),re({title:"Copied to clipboard"})},children:[(0,a.jsx)(lt,{className:be}),"Copy path"]}),!y&&(0,a.jsxs)(X,{onSelect:()=>v(),children:[(0,a.jsx)(Fe,{className:"h-3.5 w-3.5 mr-2"}),"Download"]}),(0,a.jsx)(ue,{}),_t.map(h=>{let w=h.getCode({variableName:r,protocol:o,entry:t,backendType:n});if(w===null)return null;let S=h.icon;return(0,a.jsxs)(X,{onSelect:()=>u(w),children:[(0,a.jsx)(S,{className:be}),h.label]},h.id)})]})]})]})]}),y&&d&&(0,a.jsx)(fr,{namespace:r,protocol:o,rootPath:i,backendType:n,prefix:Ae(t.path),depth:m+1,locale:l,searchValue:_?"":c,onOpenFile:s})]})},ur=t=>{let e=(0,Ie.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}=Me(),{clearNamespaceCache:x}=ca(),u=r.name??r.displayName,{entries:y,isPending:N,error:g,hasMore:_,loadMore:j,isLoadingMore:d,loadMoreError:v,refetch:F}=nt(u),h;e[0]!==x||e[1]!==u||e[2]!==F?(h=P=>{P.stopPropagation(),x(u),F()},e[0]=x,e[1]=u,e[2]=F,e[3]=h):h=e[3];let w=h,S=N?r.storageEntries:y,C;if(e[4]!==S||e[5]!==f||e[6]!==g||e[7]!==w||e[8]!==_||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 P=Ne(S,{namespace:u,searchValue:i,entriesByPath:f}),M=Ue(i),T=ye(u,M),H=M===""?[]:f.get(T)??[],z=Ne(H,{namespace:u,searchValue:i,entriesByPath:f}),G=!!i.trim(),ee=P.length>0||z.length>0,Q=M!==""&&hr({hasSearch:G,hasLoadedMatches:ee,isPending:N,remoteSearch:n,searchKey:T,entriesByPath:f,pageMetadataByPath:p}),J=G&&P.length===0,B;e:{if(N&&S.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)(ve,{className:"h-3 w-3 animate-spin"}),"Loading..."]}),e[27]=b):b=e[27],B=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)(ve,{className:"h-3 w-3 animate-spin"}),"Searching more entries..."]}),e[28]=b):b=e[28],B=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),B=b;break e}if(n.status==="capped"){let b;e[31]===m?b=e[32]:(b=(0,a.jsx)(A,{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 D;e[33]===Symbol.for("react.memo_cache_sentinel")?(D=(0,a.jsx)("span",{className:"text-[10px]",children:"(or press Enter)"}),e[33]=D):D=e[33];let $;e[34]===b?$=e[35]:($=(0,a.jsxs)("span",{className:"flex items-center gap-1.5",children:["Searched more entries.",b,D]}),e[34]=b,e[35]=$),B=$;break e}if(n.status==="exhausted"&&!ee){B="No matches";break e}if(!G&&!N&&S.length===0){B="No entries";break e}if(Q){let b;e[36]===m?b=e[37]:(b=(0,a.jsx)(A,{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 D;e[38]===Symbol.for("react.memo_cache_sentinel")?(D=(0,a.jsx)("span",{className:"text-[10px]",children:"(or press Enter)"}),e[38]=D):D=e[38];let $;e[39]===b?$=e[40]:($=(0,a.jsxs)("span",{className:"flex items-center gap-1.5",children:["No loaded matches.",b,D]}),e[39]=b,e[40]=$),B=$;break e}if(G&&!ee&&S.length>0){B="No matches";break e}B=null}let W=B,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 I;e[47]===r.displayName?I=e[48]:(I=(0,a.jsx)("span",{children:r.displayName}),e[47]=r.displayName,e[48]=I);let E;e[49]===r.name?E=e[50]:(E=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]=E);let U;e[51]===w?U=e[52]:(U=(0,a.jsx)(ot,{onClick:w,tooltip:"Refresh storage connection",className:"p-0",iconClassName:"h-3 w-3"}),e[51]=w,e[52]=U);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 L;e[55]!==r.name||e[56]!==k||e[57]!==R||e[58]!==V||e[59]!==q||e[60]!==I||e[61]!==E||e[62]!==U?(L=(0,a.jsxs)(yt,{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,I,E,U,k]}),e[55]=r.name,e[56]=k,e[57]=R,e[58]=V,e[59]=q,e[60]=I,e[61]=E,e[62]=U,e[63]=L):L=e[63],C=(0,a.jsxs)(a.Fragment,{children:[L,c&&(0,a.jsxs)(a.Fragment,{children:[g&&S.length===0&&(0,a.jsx)(aa,{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}),P.map(b=>{let D=He(b,S.indexOf(b));return(0,a.jsx)(Ke,{rowKey:D,entry:b,namespace:u,protocol:r.protocol,rootPath:r.rootPath,backendType:r.backendType,depth:1,locale:o,searchValue:i,onOpenFile:l},D)}),J&&z.map(b=>{let D=He(b,H.indexOf(b));return(0,a.jsx)(Ke,{rowKey:`remote-search:${D}`,entry:b,namespace:u,protocol:r.protocol,rootPath:r.rootPath,backendType:r.backendType,depth:1,locale:o,searchValue:i,onOpenFile:l},`remote-search:${D}`)}),_&&!Q&&(0,a.jsx)(Pt,{depth:1,isLoading:d,error:v,onLoadMore:j})]})]}),e[4]=S,e[5]=f,e[6]=g,e[7]=w,e[8]=_,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]=C}else C=e[26];return C};const yr=()=>{let{namespaces:t,entriesByPath:e,pageMetadataByPath:r}=Me(),{locale:o}=Be(),[i,n]=(0,O.useState)(""),[m,l]=(0,O.useState)({}),[c,s]=(0,O.useState)(null),f=ia(),p=!!i.trim(),x=i.trim(),u=(0,O.useCallback)(j=>{let d=m[j];return(d==null?void 0:d.query)===x?d:pr(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=Ue(x);if(v===""||!Ft(u(d))||Ne(e.get(ye(d,""))??j.storageEntries,{namespace:d,searchValue:x,entriesByPath:e}).length>0)return!1;let F=ye(d,v);return Ne(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 P;if(!N(j))return;let d=x,v=j.name??j.displayName,F=Ue(d),h=ye(v,F),w=e.get(h),S=((P=r.get(h))==null?void 0:P.nextPageToken)??null,C=w!==void 0;y(v,{query:d,status:"searching"});try{for(let M=0;M<mr;M++){let T=!C||S!==null,H=[];if(T){let z=await f({namespace:v,prefix:F,pageToken:S,append:C});H=z.entries,S=z.next_page_token??null,C=!0}if((T?H:w??[]).some(z=>xr(z,d))){y(v,{query:d,status:"found"});return}if(S===null){y(v,{query:d,status:"exhausted"});return}}y(v,{query:d,status:"capped"})}catch(M){y(v,{query:d,status:"error",error:M instanceof Error?M:Error(String(M))})}},[N,x,e,f,r,y]),_=(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)(pt,{defaultTab:"storage",children:(0,a.jsxs)(A,{variant:"outline",size:"sm",children:["Add remote storage",(0,a.jsx)(ht,{className:"h-4 w-4 ml-2"})]})}),icon:(0,a.jsx)(mt,{className:"h-8 w-8"})}):(0,a.jsxs)("div",{className:"h-full flex flex-col",children:[c&&(0,a.jsx)(ir,{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(),_())},rootClassName:"flex-1 border-b-0"}),p&&(0,a.jsx)(A,{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)(Z,{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)(pt,{defaultTab:"storage",children:(0,a.jsx)(A,{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)(ht,{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)(ur,{namespace:j,locale:o,searchValue:i,remoteSearch:u(d),onContinueRemoteSearch:()=>{g(j)},onOpenFile:s},d)})})]})]})};var Dt=oe(),Tt=(0,O.createContext)(null);function gr(){return(0,O.useContext)(Tt)??void 0}var jr=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 br=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)(Sa,{backend:Da,options:{rootElement:o},children:(0,a.jsx)(jr,{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(!je()){Te(Gt().formatNavigableHttpURL("api/files/download",new URLSearchParams({path:t})).toString(),e);return}let r=await la().sendFileDetails({path:t});r.isBase64&&r.contents?at(Ra(fa(r.contents,r.mimeType||"application/octet-stream")),e):at(new Blob([r.contents||""],{type:r.mimeType||"application/octet-stream"}),e)}var vr=oe();const wr=t=>{let e=(0,vr.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)(A,{variant:"outline",size:"sm",className:"mt-4",onClick:n,children:[(0,a.jsx)(Fe,{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 tt(r)?"media":e?"unsupported":r==="text/csv"?"csv":r.startsWith("text/")||r!=="default"&&r in ta||t==null?"text":"unsupported"}var Ge=new Map;const Nr=({file:t,onOpenNotebook:e})=>{let{sendFileDetails:r,sendUpdateFile:o}=ze(),i=ge(Wt),n=ge(Qe),m=ge(Ut),[l,c]=(0,O.useState)(""),{data:s,isPending:f,error:p,setData:x,refetch:u}=Re(async()=>{let C=await r({path:t.path,maxBytes:10485760}),P=We(C.mimeType,C.isBase64);if(!C.isTooLarge&&P==="text"){let M=C.contents||"";c(Ge.get(t.path)??M)}return C},[t.path]),y=async()=>{l!==(s==null?void 0:s.contents)&&await o({path:t.path,contents:l}).then(C=>{C.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 C=N.current;C===s.contents?Ge.delete(t.path):Ge.set(t.path,C)},[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)(ut,{error:p});if(f||!s)return null;let g=s.mimeType||"text/plain",_=We(s.mimeType,s.isBase64),j=_==="text",d=_==="csv",v=_==="media",F=m&&s.file.isMarimoFile&&(t.path===m||t.path.endsWith(`/${m}`)),h=async()=>{await zt(t.path,s.file.name)},w=sa.of([{key:i.getHotkey("global.save").key,stopPropagation:!0,run:()=>l===s.contents?!1:(y(),!0)}]),S=(0,a.jsx)(Ct,{filename:s.file.name,onRefresh:u,onDownload:n?void 0:h,actions:(0,a.jsxs)(a.Fragment,{children:[t.isMarimoFile&&!je()&&(0,a.jsx)(Z,{content:"Open notebook",children:(0,a.jsx)(A,{variant:"text",size:"xs",onClick:C=>e(C),children:(0,a.jsx)($e,{className:"h-3.5 w-3.5"})})}),j&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(Z,{content:"Copy contents to clipboard",children:(0,a.jsx)(A,{variant:"text",size:"xs",onClick:async()=>{await we(l)},children:(0,a.jsx)(lt,{className:"h-3.5 w-3.5"})})}),(0,a.jsx)(Z,{content:Ua("global.save"),children:(0,a.jsx)(A,{variant:"text",size:"xs",onClick:y,disabled:l===s.contents,children:(0,a.jsx)(Ta,{className:"h-3.5 w-3.5"})})})]})]})});return s.isTooLarge||_==="unsupported"?(0,a.jsxs)(a.Fragment,{children:[S,(0,a.jsx)(wr,{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})]}):(0,a.jsxs)(a.Fragment,{children:[S,j&&F&&(0,a.jsxs)(Ia,{variant:"warning",className:"rounded-none",children:[(0,a.jsx)(za,{className:"h-4 w-4"}),(0,a.jsx)(Va,{children:"Editing the notebook file directly while running in marimo's editor may cause unintended changes. Please use with caution."})]}),(0,a.jsx)(et,{mimeType:g,contents:j?l:d?s.contents??void 0:void 0,mediaSource:v&&s.contents?{base64:s.contents,mime:g}:void 0,readOnly:!j,onChange:j?c:void 0,extensions:j?[w]:[]})]})},Lt=Ye(t=>{let e=t(oa);return Kt(e,"no requestClientAtom set"),new Na({listFiles:e.sendListFiles,createFileOrFolder:e.sendCreateFileOrFolder,deleteFileOrFolder:e.sendDeleteFileOrFolder,copyFileOrFolder:e.sendCopyFileOrFolder,renameFileOrFolder:e.sendRenameFileOrFolder})}),kr=Ye({});async function Sr(){await Et.get(Lt).refreshAll([])}var se=" ";const Ot={directory:t=>`os.listdir("${t}")`,python:t=>`with open("${t}", "r") as _f:
|
|
11
|
+
${se}...
|
|
12
|
+
`,json:t=>`with open("${t}", "r") as _f:
|
|
13
|
+
${se}_data = json.load(_f)
|
|
14
|
+
`,code:t=>`with open("${t}", "r") as _f:
|
|
15
|
+
${se}...
|
|
16
|
+
`,text:t=>`with open("${t}", "r") as _f:
|
|
17
|
+
${se}...
|
|
18
|
+
`,image:t=>`mo.image("${t}")`,audio:t=>`mo.audio("${t}")`,video:t=>`mo.video("${t}")`,pdf:t=>`with open("${t}", "rb") as _f:
|
|
19
|
+
${se}...
|
|
20
|
+
`,zip:t=>`with open("${t}", "rb") as _f:
|
|
21
|
+
${se}...
|
|
22
|
+
`,data:t=>`with open("${t}", "r") as _f:
|
|
23
|
+
${se}...
|
|
24
|
+
`,unknown:t=>`with open("${t}", "r") as _f:
|
|
25
|
+
${se}...
|
|
26
|
+
`};var Cr=oe(),_r=1024*1024*100,Fr=5;function $t(t){let e=(0,Cr.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}=ze(),n;e[2]===i?n=e[3]:(n=async l=>{if(l.length===0)return;let c=l.length===1;await ra(c?"Uploading file...":"Uploading files...",async s=>{s.addTotal(l.length),await Ga(l,Fr,async f=>{let p=Lr(zr(f)),x="";p&&(x=$a.guessDeliminator(p).dirname(p)),await i({path:x,type:"file",name:f.name,file:f}),s.increment(1)}),await Sr()},{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:_r,onError:Tr,onDropRejected:Mr,onDrop:n,...o},e[4]=o,e[5]=n,e[6]=m):m=e[6],Oa(m)}function Mr(t){re({title:"File upload failed",description:(0,a.jsx)("div",{className:"flex flex-col gap-1",children:t.map(Pr)}),variant:"danger"})}function Pr(t){return(0,a.jsxs)("div",{children:[t.file.name," (",t.errors.map(Dr).join(", "),")"]},t.file.name)}function Dr(t){return t.message}function Tr(t){De.error(t),re({title:"File upload failed",description:t.message,variant:"danger"})}function zr(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 Lr(t){if(t)return t.replace(/^\/+/,"")}var ke=oe(),Or=Xe("marimo:showHiddenFiles",!0,Ze,{getOnInit:!0}),Bt=O.createContext(null);const $r=t=>{let e=(0,ke.c)(73),{height:r}=t,o=(0,O.useRef)(null),i=gr(),[n]=_e(Lt),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]=_e(Or),{openPrompt:u}=ft(),[y,N]=_e(kr),g;e[1]===n?g=e[2]:(g=()=>n.initialize(c),e[1]=n,e[2]=g);let _;e[3]===Symbol.for("react.memo_cache_sentinel")?(_=[],e[3]=_):_=e[3];let{isPending:j,error:d}=Re(g,_),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),S;e[10]!==u||e[11]!==n?(S=async()=>{u({title:"Folder name",onConfirm:async k=>{n.createFolder(k,null)}})},e[10]=u,e[11]=n,e[12]=S):S=e[12];let C=ae(S),P;e[13]!==u||e[14]!==n?(P=async()=>{u({title:"File name",onConfirm:async k=>{n.createFile({name:k,parentId:null})}})},e[13]=u,e[14]=n,e[15]=P):P=e[15];let M=ae(P),T;e[16]!==u||e[17]!==n?(T=async()=>{u({title:"Notebook name",onConfirm:async k=>{n.createFile({name:k,parentId:null,type:"notebook"})}})},e[16]=u,e[17]=n,e[18]=T):T=e[18];let H=ae(T),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=Vt(l,p),e[21]=l,e[22]=p,e[23]=ee):ee=e[23];let Q=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)(ut,{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 L;e[28]===Symbol.for("react.memo_cache_sentinel")?(L=(0,a.jsx)(A,{onClick:k,"data-testid":"file-explorer-back-button",variant:"text",size:"xs",className:"mb-0",children:(0,a.jsx)(st,{size:16})}),e[28]=L):L=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:[L,(0,a.jsx)("span",{className:"font-bold",children:s.name})]}),e[29]=s.name,e[30]=b);let D;e[31]!==s.path||e[32]!==n?(D=ce=>Rt(ce,n.relativeFromRoot(s.path)),e[31]=s.path,e[32]=n,e[33]=D):D=e[33];let $;e[34]!==s||e[35]!==D?($=(0,a.jsx)(O.Suspense,{children:(0,a.jsx)(Nr,{onOpenNotebook:D,file:s})}),e[34]=s,e[35]=D,e[36]=$):$=e[36];let te;return e[37]!==b||e[38]!==$?(te=(0,a.jsxs)(a.Fragment,{children:[b,$]}),e[37]=b,e[38]=$,e[39]=te):te=e[39],te}let J;e[40]!==G||e[41]!==M||e[42]!==C||e[43]!==H||e[44]!==w||e[45]!==F||e[46]!==p||e[47]!==n?(J=(0,a.jsx)(Rr,{onRefresh:F,onHidden:w,showHiddenFiles:p,onCreateFile:M,onCreateNotebook:H,onCreateFolder:C,onCollapseAll:G,tree:n}),e[40]=G,e[41]=M,e[42]=C,e[43]=H,e[44]=w,e[45]=F,e[46]=p,e[47]=n,e[48]=J):J=e[48];let B=r-33,W,R,V;e[49]===n?(W=e[50],R=e[51],V=e[52]):(W=async k=>{let{ids:L}=k;for(let b of L)await n.delete(b)},R=async k=>{let{id:L,name:b}=k;await n.rename(L,b)},V=async k=>{let{dragIds:L,parentId:b}=k;await n.move(L,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 L=k[0];L&&(L.data.isDirectory||f(L.data))},e[53]=q):q=e[53];let I;e[54]!==y||e[55]!==N||e[56]!==n?(I=async k=>{if(await n.expand(k)){let L=y[k]??!1;N({...y,[k]:!L})}},e[54]=y,e[55]=N,e[56]=n,e[57]=I):I=e[57];let E;e[58]!==i||e[59]!==y||e[60]!==B||e[61]!==W||e[62]!==R||e[63]!==V||e[64]!==I||e[65]!==Q?(E=(0,a.jsx)(_a,{width:"100%",ref:o,height:B,className:"h-full",data:Q,initialOpenState:y,openByDefault:!1,dndManager:i,renderCursor:Hr,disableDrop:qr,onDelete:W,onRename:R,onMove:V,onSelect:q,onToggle:I,padding:15,rowHeight:30,indent:Br,overscanCount:1e3,disableMultiSelection:!0,children:Ir}),e[58]=i,e[59]=y,e[60]=B,e[61]=W,e[62]=R,e[63]=V,e[64]=I,e[65]=Q,e[66]=E):E=e[66];let U;e[67]!==E||e[68]!==n?(U=(0,a.jsx)(Bt,{value:n,children:E}),e[67]=E,e[68]=n,e[69]=U):U=e[69];let Y;return e[70]!==J||e[71]!==U?(Y=(0,a.jsxs)(a.Fragment,{children:[J,U]}),e[70]=J,e[71]=U,e[72]=Y):Y=e[72],Y};var Br=15,Rr=t=>{let e=(0,ke.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}=$t(s),x;e[1]===Symbol.for("react.memo_cache_sentinel")?(x=(0,a.jsx)(vt,{size:16}),e[1]=x):x=e[1];let u;e[2]===m?u=e[3]:(u=(0,a.jsx)(Z,{content:"Add notebook",children:(0,a.jsx)(A,{"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)(wt,{size:16}),e[4]=y):y=e[4];let N;e[5]===n?N=e[6]:(N=(0,a.jsx)(Z,{content:"Add file",children:(0,a.jsx)(A,{"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)(Nt,{size:16}),e[7]=g):g=e[7];let _;e[8]===l?_=e[9]:(_=(0,a.jsx)(Z,{content:"Add folder",children:(0,a.jsx)(A,{"data-testid":"file-explorer-add-folder-button",onClick:l,variant:"text",size:"xs",children:g})}),e[8]=l,e[9]=_);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=na({variant:"text",size:"xs"}),d=(0,a.jsx)(La,{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)(Z,{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 S;e[20]===r?S=e[21]:(S=(0,a.jsx)(ot,{"data-testid":"file-explorer-refresh-button",onClick:r}),e[20]=r,e[21]=S);let C;e[22]!==o||e[23]!==i?(C=(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]=C):C=e[24];let P;e[25]===Symbol.for("react.memo_cache_sentinel")?(P=(0,a.jsx)(tr,{size:16}),e[25]=P):P=e[25];let M;e[26]===c?M=e[27]:(M=(0,a.jsx)(Z,{content:"Collapse all folders",children:(0,a.jsx)(A,{"data-testid":"file-explorer-collapse-button",onClick:c,variant:"text",size:"xs",children:P})}),e[26]=c,e[27]=M);let T;return e[28]!==F||e[29]!==w||e[30]!==S||e[31]!==C||e[32]!==M||e[33]!==u||e[34]!==N||e[35]!==_?(T=(0,a.jsxs)("div",{className:"flex items-center justify-end px-2 shrink-0 border-b",children:[u,N,_,F,w,S,C,M]}),e[28]=F,e[29]=w,e[30]=S,e[31]=C,e[32]=M,e[33]=u,e[34]=N,e[35]=_,e[36]=T):T=e[36],T},Vr=t=>{let e=(0,ke.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&&!je()&&(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)($e,{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},Ir=t=>{let e=(0,ke.c)(115),{node:r,style:o,dragHandle:i}=t,{openFile:n}=ze(),m=ge(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}=ft(),{createNewCell:x}=qt(),u=Ea(),y;e[3]!==x||e[4]!==u?(y=K=>{x({code:K,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),_;e[6]!==r.data.path||e[7]!==g?(_=async K=>{Rt(K,g?g.relativeFromRoot(r.data.path):r.data.path)},e[6]=r.data.path,e[7]=g,e[8]=_):_=e[8];let j=_,d;e[9]!==r.data.name||e[10]!==r.id||e[11]!==r.tree||e[12]!==f?(d=async K=>{K.stopPropagation(),K.preventDefault(),f({title:"Delete file",description:`Are you sure you want to delete ${r.data.name}?`,confirmAction:(0,a.jsx)(Xt,{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 K=>{g==null||g.createFolder(K,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 K=>{g==null||g.createFile({name:K,parentId:r.id})}})},e[18]=r,e[19]=p,e[20]=g,e[21]=w):w=e[21];let S=ae(w),C;e[22]!==r||e[23]!==p||e[24]!==g?(C=async()=>{r.open(),p({title:"Notebook name",onConfirm:async K=>{g==null||g.createFile({name:K,parentId:r.id,type:"notebook"})}})},e[22]=r,e[23]=p,e[24]=g,e[25]=C):C=e[25];let P=ae(C),M;e[26]!==r.data.name||e[27]!==r.id||e[28]!==g?(M=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]=M):M=e[29];let T=ae(M),H;e[30]===Symbol.for("react.memo_cache_sentinel")?(H=le("flex items-center cursor-pointer ml-1 text-muted-foreground whitespace-nowrap group"),e[30]=H):H=e[30];let z,G;e[31]===r?(z=e[32],G=e[33]):(z=K=>{K.stopPropagation(),r.data.isDirectory&&r.toggle()},G=(0,a.jsx)(Er,{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",Q;e[34]===ee?Q=e[35]:(Q=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]=Q);let J;e[36]!==s||e[37]!==c||e[38]!==r.data.isMarimoFile?(J=r.data.isMarimoFile?(0,a.jsx)(Za,{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",ct[c]),strokeWidth:1.5}),e[36]=s,e[37]=c,e[38]=r.data.isMarimoFile,e[39]=J):J=e[39];let B;e[40]!==j||e[41]!==r?(B=r.isEditing?(0,a.jsx)(Pa,{node:r}):(0,a.jsx)(Vr,{node:r,onOpenMarimoFile:j}),e[40]=j,e[41]=r,e[42]=B):B=e[42];let W;e[43]===r?W=e[44]:(W=!r.data.isDirectory&&(0,a.jsxs)(X,{onSelect:()=>r.select(),"data-testid":"file-explorer-open-file-menu-item",children:[(0,a.jsx)(St,{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&&!je()&&(0,a.jsxs)(X,{onSelect:()=>{n({path:r.data.path})},"data-testid":"file-explorer-open-external-menu-item",children:[(0,a.jsx)($e,{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]!==S||e[50]!==h||e[51]!==P||e[52]!==r.data.isDirectory?(V=r.data.isDirectory&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(X,{onSelect:()=>P(),"data-testid":"file-explorer-create-notebook-menu-item",children:[(0,a.jsx)(vt,{className:"h-3.5 w-3.5 mr-2"}),"Create notebook"]}),(0,a.jsxs)(X,{onSelect:()=>S(),"data-testid":"file-explorer-create-file-menu-item",children:[(0,a.jsx)(wt,{className:"h-3.5 w-3.5 mr-2"}),"Create file"]}),(0,a.jsxs)(X,{onSelect:()=>h(),"data-testid":"file-explorer-create-folder-menu-item",children:[(0,a.jsx)(Nt,{className:"h-3.5 w-3.5 mr-2"}),"Create folder"]}),(0,a.jsx)(ue,{})]}),e[49]=S,e[50]=h,e[51]=P,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 I;e[56]===T?I=e[57]:(I=(0,a.jsx)(Ma,{onSelect:T,testId:"file-explorer-duplicate-menu-item"}),e[56]=T,e[57]=I);let E;e[58]===r.data.path?E=e[59]:(E=async()=>{await we(r.data.path),re({title:"Copied to clipboard"})},e[58]=r.data.path,e[59]=E);let U;e[60]===Symbol.for("react.memo_cache_sentinel")?(U=(0,a.jsx)(kt,{className:be}),e[60]=U):U=e[60];let Y;e[61]===E?Y=e[62]:(Y=(0,a.jsxs)(X,{onSelect:E,"data-testid":"file-explorer-copy-path-menu-item",children:[U,"Copy path"]}),e[61]=E,e[62]=Y);let k;e[63]!==r.data.path||e[64]!==g?(k=g&&(0,a.jsxs)(X,{onSelect:async()=>{await we(g.relativeFromRoot(r.data.path)),re({title:"Copied to clipboard"})},"data-testid":"file-explorer-copy-relative-path-menu-item",children:[(0,a.jsx)(kt,{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 L;e[66]===Symbol.for("react.memo_cache_sentinel")?(L=(0,a.jsx)(ue,{}),e[66]=L):L=e[66];let b;e[67]!==c||e[68]!==N||e[69]!==r.data?(b=()=>{let{path:K}=r.data;N(Ot[c](K))},e[67]=c,e[68]=N,e[69]=r.data,e[70]=b):b=e[70];let D;e[71]===Symbol.for("react.memo_cache_sentinel")?(D=(0,a.jsx)(ma,{className:be}),e[71]=D):D=e[71];let $;e[72]===b?$=e[73]:($=(0,a.jsxs)(X,{onSelect:b,"data-testid":"file-explorer-insert-snippet-menu-item",children:[D,"Insert snippet for reading file"]}),e[72]=b,e[73]=$);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:K}=r.data;await we(Ot[c](K))},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)(Ht,{className:be}),e[77]=ce):ce=e[77];let de;e[78]===te?de=e[79]:(de=(0,a.jsxs)(X,{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&&!je()&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(ue,{}),(0,a.jsxs)(X,{onSelect:j,"data-testid":"file-explorer-open-notebook-menu-item",children:[(0,a.jsx)(rr,{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)(X,{onSelect:async()=>{await zt(r.data.path,r.data.name)},"data-testid":"file-explorer-download-menu-item",children:[(0,a.jsx)(Fe,{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]!==I||e[96]!==Y||e[97]!==k||e[98]!==$||e[99]!==de||e[100]!==me||e[101]!==pe||e[102]!==he?(xe=(0,a.jsxs)(Ca,{testId:"file-explorer-more-button",iconClassName:"w-5 h-5",children:[W,R,V,q,I,Y,k,L,$,de,me,Se,pe,he]}),e[91]=W,e[92]=R,e[93]=V,e[94]=q,e[95]=I,e[96]=Y,e[97]=k,e[98]=$,e[99]=de,e[100]=me,e[101]=pe,e[102]=he,e[103]=xe):xe=e[103];let fe;e[104]!==Q||e[105]!==J||e[106]!==B||e[107]!==xe?(fe=(0,a.jsxs)("span",{className:Q,children:[J,B,xe]}),e[104]=Q,e[105]=J,e[106]=B,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:H,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},Er=t=>{let e=(0,ke.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 Rt(t,e){t.stopPropagation(),t.preventDefault(),Qa(e)}function Vt(t,e){if(e)return t;let r=[];for(let o of t){if(Ar(o.name))continue;let i=o;if(o.children){let n=Vt(o.children,e);n!==o.children&&(i={...o,children:n})}r.push(i)}return r}function Ar(t){return!!t.startsWith(".")}function Hr(){return null}function qr(t){let{parentNode:e}=t;return!e.data.isDirectory}var It=oe(),Ur=Xe("marimo:file-explorer-panel:state",{openSections:["files"],hasUserInteracted:!1},Ze),Kr=t=>{let e=(0,It.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}=$t(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)($r,{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)(br,{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},Wr=33,Gr=()=>{let t=(0,It.c)(36),{ref:e,height:r}=Ka(),o=r===void 0?500:r,[i,n]=_e(Ur),m=ge(da).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-Wr*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 _=g,j=Math.max(200,N?p-_:p),d;t[12]===Symbol.for("react.memo_cache_sentinel")?(d=(0,a.jsx)(mt,{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)(Xa,{children:m}),t[13]=m,t[14]=v);let F;t[15]===v?F=t[16]:(F=(0,a.jsxs)(jt,{children:[d," Remote storage",v]}),t[15]=v,t[16]=F);let h;t[17]===_?h=t[18]:(h={maxHeight:_},t[17]=_,t[18]=h);let w;t[19]===Symbol.for("react.memo_cache_sentinel")?(w=(0,a.jsx)(yr,{}),t[19]=w):w=t[19];let S;t[20]===h?S=t[21]:(S=(0,a.jsx)(bt,{className:"overflow-auto",style:h,children:w}),t[20]=h,t[21]=S);let C;t[22]!==S||t[23]!==F?(C=(0,a.jsxs)(gt,{value:"remote-storage",children:[F,S]}),t[22]=S,t[23]=F,t[24]=C):C=t[24];let P;t[25]===Symbol.for("react.memo_cache_sentinel")?(P=(0,a.jsxs)(jt,{children:[(0,a.jsx)(dt,{className:"w-4 h-4"}),"Files"]}),t[25]=P):P=t[25];let M;t[26]===j?M=t[27]:(M=(0,a.jsxs)(gt,{value:"files",children:[P,(0,a.jsx)(bt,{children:(0,a.jsx)(Kr,{height:j})})]}),t[26]=j,t[27]=M);let T;t[28]!==f||t[29]!==c||t[30]!==C||t[31]!==M?(T=(0,a.jsxs)(Yt,{type:"multiple",value:c,onValueChange:f,children:[C,M]}),t[28]=f,t[29]=c,t[30]=C,t[31]=M,t[32]=T):T=t[32];let H;return t[33]!==e||t[34]!==T?(H=(0,a.jsx)("div",{ref:e,className:"h-full overflow-auto",children:T}),t[33]=e,t[34]=T,t[35]=H):H=t[35],H};export{Gr as default};
|